
12 Cloud-ready applications and communications
This chapter covers
- Following best practices for containerization and deployment of Go applications
- Keeping microservices highly available in the cloud
- Speeding up communications among microservices
- Compiling to various operating systems and architectures
- Monitoring the Go runtime in an application
- Approaches to handling back pressure in services
In previous chapters, we worked toward building fully featured applications using Go. With development and testing covered, a natural next step is deployment. Although we can still deploy applications in myriad ways, sending an application to the cloud in some way is the standard. In this chapter, we’ll start with an introduction to cloud computing that explores this question and what cloud computing looks like in a practical sense. You’ll see how it relates to the traditional models working with hardware servers and virtual machines (VMs).
Cloud computing is a space filled with various cloud providers, which are easy to get locked into. You’ll learn how to avoid vendor lock-in through generalization while architecting code in a manner that’s easier to develop and test locally.