Microservices with Go

Description

The microservice architectural style encourages the development of a single application as a suite of small services, each running in its process and communicating with lightweight mechanisms, often an HTTP resource API. These services are built around the business capabilities and are independently deployable by fully automated deployment systems. Microservices come with specialized design patterns that are optimized to deal with intense interservice synchronous and asynchronous communication, distributed data management, service failures, and recovery in a random fashion as well as many more scenarios. Golang, as a new language built to be closer to the cloud, matches perfectly with microservices architecture, which due to its distributed nature is inherently close to the cloud. Go’s simplicity and reliability render it a perfect choice for microservices.

Through this Code.Learn Microservices with Go Lang program, certified by Athens Tech College, participants will learn all the concepts and features required to construct microservices using Go Lang. Followed by an introduction to Go Lang and the Microservices architecture, participants will be taught how to design and implement microservices in Go using RESTful APIs, gRPC and more.


Key Objectives

The key learning objectives of this program can be summarized as follows:

  • Setting up a development environment
  • Overview of language features with shortcode examples
  • Programming fundamentals (e.g. variables, constants, Booleans, numbers, Strings)
  • Collection types (e.g. arrays, slices, maps)
  • Flow control
  • Error handling
  • Pointers
  • Object-oriented aspects (e.g. key concepts, custom types, overriding methods, interfaces)
  • Concurrent programming (Goroutines, channels, ranging over channels)
  • File handling (JSON, XML, Go binary files, custom, archive)
  • Survey of Go standard library
  • Go commands
  • Definition of Microservices
  • Comparison of microservices against monolith approach (pros & cons)
  • A brief overview of key architectural components: API Gateway, Service Discovery, Centralized Configuration Server, Load Balancer
  • RESTful APIs with Golang
  • gRPC (server streaming, client streaming, bi-directional streaming, advanced features)
  • Embedding datastore to a Go microservice and serving RESTful
  • Test HTTP services with GoConvey
  • Add health checks to a Go microservice
  • Service Discovery
  • Load Balancing
  • Centralized Configuration
  • Messaging with AMQP
  • Circuit Breakers and Resilience
  • Distributed Tracing
  • GraphQL with Go
  • Implement microservices with Go-micro, a microservice framework for Go

Target Audience

Higher education graduates in one of the following fields:

  • Computer Science,
  • Ιnformatics,
  • Software Engineering,
  • Web and Mobile Development,
  • Computer Engineering,
  • or any other relevant area

Prerequisite Knowledge

No prerequisite knowledge is required.


Classroom

Sessions can be carried out:

  • Live in a physical classroom
  • Live online through video conferencing environments
  • Using a Hybrid combination of both live physical and online approaches

The teaching method will depend on the conditions at the time the training will run and on the participants’ preferences.

  • PREMISES: Code.Hub Training Center Leof. Alexandras 205, Athina 115 23