title: “Go for Cloud & Network Services” linkTitle: “Cloud & Network Services” description: “With a strong ecosystem of tools and APIs on major cloud providers, it is easier than ever to build services with Go.” date: 2019-10-04T15:26:31-04:00 series: Use Cases books:


Overview {#overview .sectionHeading}

{{< rawhtml >}}

<p>As applications and processing move to the cloud, concurrency becomes a very big issue. Cloud computing systems, by their very nature, share and scale resources. Coordinating access to shared resources is an issue that impacts every application processing in the cloud, and requires programming languages “explicitly geared to develop highly reliable concurrent applications.”</p>

{{< quote author=“Ruchi Malik” title=“developer at Choozle” link=“https://builtin.com/software-engineering-perspectives/golang-advantages” >}} Go makes it very easy to scale as a company. This is very important because, as our engineering team grows, each service can be managed by a different unit. {{< /quote >}}

Key Benefits {#key-benefits .sectionHeading}

Address tradeoff between development cycle time and server performance

Go was created to address exactly these concurrency needs for scaled applications, microservices, and cloud development. In fact, over 75 percent of projects in the Cloud Native Computing Foundation are written in Go.

Go helps reduce the need to make this tradeoff, with its fast build times that enable iterative development, lower memory and CPU utilization. Servers built with Go experience instant start up times and are cheaper to run in pay-as-you-go and serverless deployments.

Address challenges with the modern cloud, delivering standard idiomatic APIs

Go addresses many challenges developers face with the modern cloud, delivering standard idiomatic APIs, and built in concurrency to take advantage of multicore processors. Go’s low-latency and “no knob” tuning make Go a great balance between performance and productivity - granting engineering teams the power to choose and the power to move.

Use Case {#use-case .sectionHeading}

Use Go for Cloud Computing

Go's strengths shine when it comes to building services. Its speed and built-in support for concurrency results in fast and efficient services, while static typing, robust tooling, and emphasis on simplicity and readability help build reliable and maintainable code.

Go has a strong ecosystem supporting service development. The standard library includes packages for common needs like HTTP servers and clients, JSON/XML parsing, SQL databases, and a range of security/encryption functionality, while the Go runtime includes tools for race detection, benchmarking/profiling, code generation, and static code analysis.

The major Cloud providers (GCP, AWS, Azure) have Go APIs for their services, and popular open source libraries provide support for API tooling (Swagger), transport (protocol buffers, gRPC), monitoring (OpenCensus), Object-Relational Mapping (gORM), and authentication (JWT). The open source community has also provided several service frameworks, including Go Kit, Go Micro, and Gizmo, which can be a great way to get started quickly.

Go tools for Cloud Computing

{{< toolsBlurbs >}}

{{< rawhtml >}}{{< /rawhtml >}}

Featured users {#featured-users .sectionHeading}

{{< featuredProjects >}}

{{< rawhtml >}}{{< /rawhtml >}}

Get Started {#get-started .sectionHeading}

Go books for cloud computing

{{< books >}} {{< goLibraries >}}