This is the code repository for Microservices with Go, Second Edition, published by Packt.
Alexander Shuiskov
Microservices with Go, Second Edition explains the key benefits and common issues faced by developers when working with microservices, helping you understand the problems microservice architecture solves, the issues it introduces, and how to tackle them. The author distils his 18+ years of experience in building scalable and reliable infrastructure to help you grasp the importance of using the right principles and standards to achieve all that microservice architecture has to offer. You'll see why Go is a popular choice for microservice development, as well as navigate its foundational aspects, including service scaffolding, discovery, data serialization, communication, deployment, and testing. After covering development, you'll move to maintenance and reliability. This second edition is fully updated with newly added topics, including security and compliance, distributed system challenges, and performance monitoring. The final section focuses on advanced concepts, such as system reliability, observability, maintainability, and scalability. Through best practices and practical examples, you'll learn how to apply key ideas to existing applications using previously scaffolded services. By the end of this book, you'll have gained hands-on experience in developing scalable, reliable, and high-performance microservices with Go.
- Leverage event-driven architecture and messaging patterns for efficient microservice communication
- Automate testing, CI/CD pipelines, and deployment strategies for Go microservices
- Establish secure communication between microservices
- Optimize microservice performance by monitoring, profiling, and debugging techniques
- Get hands-on experience in cloud-native observability and deployment tools
- Explore solutions to advanced distributed system scenarios, such as leader election
- Introduction to Microservices
- Scaffolding Go Microservices
- Service Discovery
- Serialization
- Synchronous Communication
- Asynchronous Communication
- Storing Service Data
- Setting Up Service Deployments
- Unit and Integration Testing
- Security and Compliance
- Reliability Overview
- Collecting Service Telemetry Data
- Setting Up Service Alerting
- Performance Monitoring
- Implementing Distributed System Scenarios
- Advanced Topics
| Software/Hardware | Supported Operating Systems |
|---|---|
| Go 1.18 or above | Windows, macOS, or Linux |
| Docker | Windows, macOS, or Linux |
| grpcurl | Windows, macOS, or Linux |
| Kubernetes | Windows, macOS, or Linux |
| Prometheus | Windows, macOS, or Linux |
| Jaeger | Windows, macOS, or Linux |
| Graphviz | Windows, macOS, or Linux |
Alexander Shuiskov is an independent researcher and software expert specializing in distributed systems, microservices, and observability. He has worked at major tech companies, including Uber, Booking(dot)com and eBay, where he helped solve large-scale infrastructure challenges, as well as establish reliability and monitoring of thousands of microservices.
