Building microservices with Go
In the past ten years microservice architecture has become a widely used pattern for creating web-based applications. Go was created to suite this particular need. Its vibrant community, fast compilation, ease of use, and statically-linked builds make it one of the best tools for the job. Widely used across well established companies such as Google and Netflix, microservice architecture has become popular because of its simplicity and the ability to split large and complex tasks, into smaller easily manageable ones. This course teaches you the basic concepts of microservice design by introducing you to a wide variety of scenarios and tools. From handling simple http requests to managing asynchronous operations on the backend, Go is the language in which microservices are thriving. No wonder that some of the most popular tools used in the Cloud Native movement, such as Kubernetes, Docker, Vault, and Terraform are using Go as their language of choice.
Learning Outcomes:
By the end of this course the students will be able to:
- Differentiate between monolith, service oriented, and microservice architecture
- Plan microservice architecture
- Build scalable microservices
- Handle security check-points by using middleware
- Plan and write REST services
- Handle data from SQL and NoSQL databases
- Test microservices
- Document APIs
Prerequisites:
In order to be able to follow this course, attendees need to have a general knowledge of the Go programming language and web development.
Who should attend:
This course it aimed at developers that want to expand their knowledge with the new paradigm of Cloud-Native development.
Training methodology:
The framework behind every lesson follows an inclusive approach and involves everyone in the class by relating to real world experiences and problems they have or may encounter in the field. Classes are filled with practical exercises that push everyone to think and experience real-life coding techniques. Questions are always welcomed, since that is the best way to learn a practical skill.
Course level:
(Foundation/Intermediate/Advanced): Intermediate
Course Outline:
Microservice architecture basics
- What are microservices
- Microservice benefits
- Creating a scalable microservices
Building a REST services from scratch
- Getting familiar with the http package
- Handling requests and responses
- Working with HTTP status codes
Overview of popular REST routers and frameworks
- Gorilla
- Goji
- Echo
- http router
Using and writing REST middlewares
- Using prebuilt middleware functions
- Writing your own middleware
Handling data with databases
- Using SQL database
- Using NOSQL databases
RPC message frameworks
- RPC overview
- Working with protobuf
Scalable Microservice authentication
- Using JWT for authentication and authorization
- Configuring JWT for better security
Microservice event and error logging
- Logging to standard output
- Creating log files
- Logging libraries
Using scalable file storage systems
- Using S3 and compatible services
Asynchronous data processing with message queues
- Introduction to MQ systems
- Using RabbitMQ
Microservice testing
- Unit testing
- HTTP handler testing
- External testing tools
Documenting your REST APIs
- Documenting code and functions
- Documenting REST endpoints
About the instructor: Bojan Gavrovski
Bojan Gavrovski holds a BSc degree in Computer Science from SEEU, and Master’s candidate status in Cloud Computing at UKIM Faculty of Computer Science and Engineering. His professional work started back in 2002 as a web designer and front-end developer.
Over the years, he´s created a large list of courses in the fields of front-end and back-end development. Some of the most notable courses are HTML5 & CSS3, HTML5 APIs, PHP & MySQL for Beginners, Advanced PHP and MVC, Javascript Libraries and Frameworks, Programming in ReactJs & Redux, NodeJs & MongoDB for beginners, and Go. He is a distinct member of partner Semos Education and winner of many “Best Trainer” awards in this company.