We may earn an affiliate commission when you visit our partners.
Course image
Packt Publishing

Ever wanted to build massive, scalable, and performance-oriented cloud native applications that don’t crush under the demands of today’s customers? Well, look no further.

Read more

Ever wanted to build massive, scalable, and performance-oriented cloud native applications that don’t crush under the demands of today’s customers? Well, look no further.

Embark on a journey like never before with Packt’s latest offering, Go: Building Cloud Native Go Applications

“Cloud native” has been the term du jour for quite some time now. As the world slowly moves towards the cloud, which promises lesser downtime, and more speed and efficiency, websites and applications that take full advantage of the capabilities of the cloud are dominating the world like never before, fast replacing monolithic web applications.

This Learning Path takes you on a journey to building fast, scalable cloud-based applications using Go, specifically, microservices in Go. We begin with learning about the basics of cloud-native applications. Then, we start learning about microservices, which form an integral part of applications that run on the cloud. We learn how to create simple microservices using the Go programming language. We then deploy our first application in the cloud using Kubernetes and Docker. Later, we cover topics such as service discovery and microservice communication in detail. Along the way, we will also be working with and learning to use a plethora of useful tools such as Kubernetes, RabbitMQ, Kafka, and Consul.

By the end of this Learning Path, you would have become skilled in creating seamless cloud-first applications and services using Go.

About The Author

Mario-Leander Reimer has been a chief technician at QAware since the beginning of 2014. He is responsible for the technical success of projects in the field of after sales for their customer BMW. He is a specialist in the design and implementation of complex system and software architectures based on open source technologies. As a member of the Java Community Process (JCP), his goal is to further improve the Java platform and to develop practical specifications. He is a speaker at international conferences and guest lecturer at Rosenheim University of Applied Sciences.

Enroll now

What's inside

Learning objectives

  • Design and architect cloud native applications
  • Learn all about go microservices
  • Containerize and orchestrate go microservices using docker and kubernetes
  • Learn to use consul for microservice discovery
  • Implement asynchronous communication in go using rabbitmq as well as kafka

Syllabus

Getting started with Cloud Native Go

This video gives an overview of the entire course.

The aim of the video is to introduce the motivation and key concepts of cloud native applications.

Read more

Cloud native applications have additional challenges compared to traditional monolithic applications. This video aims to discuss the design principles that should be taken into account when developing these kind of applications.

This video introduces the new concept and anatomy of ops components and discusses the decomposition trade-offs associated with microservices.

The development of cloud native applications brings along several challenges and complexities that need to be addressed. This videos introduces the Cloud native stack with its anatomy and key technologies to meet those challenges and presents the stack used throughout this course.

Every microservice needs an HTTP server to serve its API. The aim of this video is to show how this can be achieved with plain Go and standard packages only.

JSON is the de facto standard data transfer format for microservices and REST APIs. The aim of this video is to demonstrate how Go structs are marshalled and unmarshalled and how the JSON format can be customized using tags.

The aim of this video is to show how to leverage HTTP verbs, status codes, and URIs to implement a REST API that offers basic CRUD functionality.

Docker is a virtualization technology that operates at the OS level.Cloud native applications are packaged, distributed, and run as containers. The aim of this video is to teach the Docker basics required throughout this section.

Cloud native applications are packaged, distributed, and run in containers. Docker is a key container technology. This video shows how a Docker image for a Go microservice is built and distributed.

Cloud native applications are packaged, distributed, and run in containers. Docker is a key container technology. This video shows how a Docker containers for a Go microservicecan be run locally. It also shows how ENV variables, port mappings, and resource constraints can be specified.

Cloud native applications are packaged, distributed, and run in containers. Docker is a key container technology. This video shows how an improved Docker image can be built and how Docker Compose can be used to build and run the image in combination with other services.

Kubernetes is a cluster operating system used to run cloud native applications and microservices. The aim of this video is to give the audience a rough understanding of Kubernetes with its key concepts that are required this section.

In order to run a Docker container in Kubernetes we need to define a Pod. The aim of this video is to show how deploy and run a containerized Go microservice using Minikube on a local developer machine.

Kubernetes provides several high level abstractions to manage and access containerized applications: deployments and services. The aim of this video is to demonstrate how these abstractions can be declared and used in Kubernetes to run a small Go microservice.

Kubernetes is a sophisticated cluster operating system that supports many ops tasks out of the box. Theaim of this video is to show how Kubernetes deployments can be scaled horizontally and how rolling updates can be performed easily.

Advanced Cloud Native Go

This video provides an overview of the entire course.

Cloud native application development brings several complexities that need to be addressed. A cloud native application platform provides abstractions and APIs to tackle these complexities and help during the development.

The aim of this video is to provide an overview of the multitude of available Go microservice frameworks and application platforms.

The aim of this video is to put some of the Go frameworks and libraries into action and implement an advanced microservice.

Microservices need to be packaged, distributed, and run in containers. Docker is the key technology.

Cloud native applications require an orchestrator to run and operate the individual microservices. The aim of this video is to deploy and run a Go microservice with Kubernetes.

The aim of this video is to introduce Consul as an infrastructure component for service discovery and show its main functionality.

The aim of this video is to introduce Consul as central K/V configuration server and show its main functionality.

The aim of this video is to enhance the Go microservice with the service registration functionality using Consul.

The aim of this video is to implement a client service to perform a service lookup using Consul.

The aim of this video is to implement service discovery and configuration using the Kubernetes only functionality.

Synchronous calls as well as asynchronous messaging can be used for communication between microservices. The aim of this video is to discuss the challenges imposed by both communication patterns.

Microservice communication is often RPC-based. JSON is not very well suited here. Binary protocols such as ProtoBuf are a much more efficient way to implement RPC.

The aim of this video is to guard a synchronous microservice call using a circuit breaker library such as Hystrix to add resilience.

Message Queuing is a simple form of async communication. The aim of this video is to implement a simple work queue using Go and RabbitMQ.

Publish/Subscribe is another form of async communication. The aim of this video is to implement topic-based messaging using Go and Kafka.

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
Teaches industry-standard methods and tools used to build cloud native applications and microservices, catering to professionals in the field
Taught by instructors recognized for their expertise in cloud native and Go microservices development
Provides hands-on labs and interactive exercises to reinforce learning and develop practical skills in building and deploying cloud native Go applications
Suitable for intermediate learners with a foundational understanding of Go and cloud computing
Requires familiarity with Docker, Kubernetes, and other related technologies, which may necessitate additional learning for some learners
Focuses on Go microservices and cloud native development, which may not be directly relevant to all software developers

Save this course

Save Learning Path: Go: Building Cloud Native Go Applications to your list so you can find it easily later:
Save

Reviews summary

Basic go explanation

According to students, this course offers basic explanations of Go programming. However, some students found that the rationale and examples were insufficient, making it difficult to understand certain concepts.
Difficult to understand some concepts due to missing rationales.
"He explained how to do stuff but never explained the reason for doing so."
Not enough examples to clarify concepts.
"also there weren't enough examples of why we're doing what we're doing."

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in Learning Path: Go: Building Cloud Native Go Applications with these activities:
Find a mentor who can help you with your cloud native Go development.
Having a mentor can help you accelerate your learning and get the support you need to succeed.
Show steps
  • Identify your goals.
  • Look for potential mentors.
  • Reach out to potential mentors.
  • Build a relationship with your mentor.
Practice creating Go microservices using Docker.
This activity will help you reinforce your understanding of Docker and how to use it to create microservices.
Browse courses on Docker
Show steps
  • Create a new Go project.
  • Add the necessary Docker files.
  • Build and run your microservice.
  • Test your microservice.
Practice using Kubernetes to deploy and manage Go microservices.
This activity will help you reinforce your understanding of Kubernetes and how to use it to deploy and manage microservices.
Browse courses on Kubernetes
Show steps
  • Create a new Kubernetes cluster.
  • Deploy your microservice to the cluster.
  • Manage your microservice using Kubernetes.
  • Test your microservice.
Five other activities
Expand to see all activities and additional details
Show all eight activities
Practice using Consul for service discovery and configuration.
This activity will help you reinforce your understanding of Consul and how to use it for service discovery and configuration.
Browse courses on Consul
Show steps
  • Install Consul.
  • Create a new Consul cluster.
  • Register your microservice with Consul.
  • Use Consul to discover and configure your microservice.
  • Test your microservice.
Practice using RabbitMQ for asynchronous communication.
This activity will help you reinforce your understanding of RabbitMQ and how to use it for asynchronous communication.
Browse courses on RabbitMQ
Show steps
  • Install RabbitMQ.
  • Create a new RabbitMQ broker.
  • Create a producer and consumer.
  • Use RabbitMQ to send and receive messages.
  • Test your microservice.
Practice using Kafka for asynchronous communication.
This activity will help you reinforce your understanding of Kafka and how to use it for asynchronous communication.
Browse courses on Kafka
Show steps
  • Install Kafka.
  • Create a new Kafka broker.
  • Create a producer and consumer.
  • Use Kafka to send and receive messages.
  • Test your microservice.
Create a blog post about your experience building cloud native Go applications.
This activity will help you solidify your understanding of cloud native Go applications and how to build them.
Show steps
  • Choose a topic.
  • Write your blog post.
  • Publish your blog post.
Create a presentation about cloud native Go applications.
This activity will help you solidify your understanding of cloud native Go applications and how to build them.
Show steps
  • Choose a topic.
  • Create your presentation.
  • Give your presentation.

Career center

Learners who complete Learning Path: Go: Building Cloud Native Go Applications will develop knowledge and skills that may be useful to these careers:
Cloud Software Engineer
Cloud Software Engineers design, build, and manage cloud-based applications and services. They work with cloud computing platforms such as Amazon Web Services (AWS), Microsoft Azure, and Google Cloud Platform (GCP) to develop and deploy applications that are scalable, reliable, and secure. This course can help you build a foundation in cloud-native application development using Go, which is a popular programming language for cloud computing. You will learn about microservices, containers, and Kubernetes, which are essential technologies for building cloud-native applications.
Cloud Architect
Cloud Architects design and manage the architecture of cloud-based systems. They work with stakeholders to understand their business needs and translate them into technical requirements. They also work with cloud engineers to implement and manage cloud-based solutions. This course can help you build a foundation in cloud-native application development using Go, which is a popular programming language for cloud computing. You will learn about microservices, containers, and Kubernetes, which are essential technologies for building cloud-native applications.
DevOps Engineer
DevOps Engineers work with developers and operations teams to build and maintain software systems. They use automation tools and techniques to streamline the software development and deployment process. This course can help you build a foundation in cloud-native application development using Go, which is a popular programming language for cloud computing. You will learn about microservices, containers, and Kubernetes, which are essential technologies for building cloud-native applications.
Software Engineer
Software Engineers design, develop, and maintain software systems. They work with stakeholders to understand their business needs and translate them into technical requirements. They also work with other engineers to implement and test software systems. This course can help you build a foundation in cloud-native application development using Go, which is a popular programming language for cloud computing. You will learn about microservices, containers, and Kubernetes, which are essential technologies for building cloud-native applications.
Cloud Security Engineer
Cloud Security Engineers design and implement security measures for cloud-based systems. They work with stakeholders to understand their security requirements and translate them into technical requirements. They also work with cloud engineers to implement and manage cloud-based security solutions. This course can help you build a foundation in cloud-native application development using Go, which is a popular programming language for cloud computing. You will learn about microservices, containers, and Kubernetes, which are essential technologies for building cloud-native applications.
Data Engineer
Data Engineers design and build data pipelines that collect, process, and store data. They work with stakeholders to understand their data needs and translate them into technical requirements. They also work with other engineers to implement and maintain data pipelines. This course may be useful for Data Engineers who want to learn about cloud-native application development using Go.
Data Scientist
Data Scientists use data to solve business problems. They work with stakeholders to understand their business needs and translate them into technical requirements. They also work with other engineers to implement and maintain data science solutions. This course may be useful for Data Scientists who want to learn about cloud-native application development using Go.
Machine Learning Engineer
Machine Learning Engineers design and build machine learning models. They work with stakeholders to understand their business needs and translate them into technical requirements. They also work with other engineers to implement and maintain machine learning models. This course may be useful for Machine Learning Engineers who want to learn about cloud-native application development using Go.
IT Manager
IT Managers plan and direct the activities of an organization's IT department. They work with stakeholders to understand their business needs and translate them into technical requirements. They also work with other managers to implement and maintain IT solutions. This course may be useful for IT Managers who want to learn about cloud-native application development using Go.
Product Manager
Product Managers develop and manage the products of an organization. They work with stakeholders to understand their business needs and translate them into technical requirements. They also work with other managers to implement and maintain products. This course may be useful for Product Managers who want to learn about cloud-native application development using Go.
Project Manager
Project Managers plan and execute projects for an organization. They work with stakeholders to understand their business needs and translate them into technical requirements. They also work with other managers to implement and maintain projects. This course may be useful for Project Managers who want to learn about cloud-native application development using Go.
Technical Writer
Technical Writers create and maintain documentation for software and hardware products. They work with stakeholders to understand their needs and translate them into clear and concise documentation. This course may be useful for Technical Writers who want to learn about cloud-native application development using Go.
User Experience Designer
User Experience Designers design and evaluate the user experience of software and hardware products. They work with stakeholders to understand their needs and translate them into clear and concise designs. This course may be useful for User Experience Designers who want to learn about cloud-native application development using Go.
Web Developer
Web Developers design and develop websites. They work with stakeholders to understand their needs and translate them into clear and concise designs. This course may be useful for Web Developers who want to learn about cloud-native application development using Go.
Mobile Developer
Mobile Developers design and develop mobile applications. They work with stakeholders to understand their needs and translate them into clear and concise designs. This course may be useful for Mobile Developers who want to learn about cloud-native application development using Go.

Reading list

We've selected seven books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in Learning Path: Go: Building Cloud Native Go Applications.
Provides a comprehensive guide to the cloud native way of building and operating applications. It covers topics such as microservices, containers, and Kubernetes. This book valuable resource for anyone who wants to learn how to build and operate cloud native applications.
Provides a practical guide to building microservices in Go. It covers topics such as microservice design, API design, and testing. This book valuable resource for anyone who wants to learn how to build microservices in Go.
Provides a comprehensive guide to Docker. It covers topics such as Docker basics, Docker Compose, and Docker Swarm. This book valuable resource for anyone who wants to learn how to use Docker to build and deploy cloud native applications.
Provides a comprehensive guide to Kubernetes. It covers topics such as Kubernetes basics, Kubernetes deployments, and Kubernetes services. This book valuable resource for anyone who wants to learn how to use Kubernetes to manage cloud native applications.
Provides a comprehensive guide to service discovery. It covers topics such as service discovery patterns, service discovery tools, and service discovery in the cloud. This book valuable resource for anyone who wants to learn how to use service discovery to build cloud native applications.
Provides a comprehensive guide to Apache Kafka. It covers topics such as Apache Kafka basics, Apache Kafka architecture, and Apache Kafka use cases. This book valuable resource for anyone who wants to learn how to use Apache Kafka to build cloud native applications.
Provides a comprehensive guide to building cloud native applications with Java. It covers topics such as microservices, Docker, Kubernetes, and service discovery. This book valuable resource for anyone who wants to learn how to build cloud native applications in Java.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Here are nine courses similar to Learning Path: Go: Building Cloud Native Go Applications.
Go for Cloud and Networks
Most relevant
Go Fundamentals
Most relevant
Cloud-Native: Microservices, Kubernetes, Service Mesh,...
Most relevant
Building Modern Web Applications with Go (Golang)
Most relevant
Intel Telco Cloud Technologies
Most relevant
Working with Microservices in Go (Golang)
Most relevant
Application Development using Microservices and...
Most relevant
Working with React and Go (Golang)
Most relevant
Cloud Virtualization, Containers and APIs
Most relevant
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2024 OpenCourser