Azure Resources for Go (Golang)
Microsoft Azure provides development support for a wide variety of languages. Official Software Development Kits (SDKs) are available for the most popular web programming languages including .NET, Java, Node.js (JavaScript), PHP, Python, and Ruby.
One of the newest languages that Microsoft supports is Go (sometimes styled as Golang).
About Go
Go is an open source language created at Google in 2007. It was grown in popularity and influence rapidly, now powering vital infrastructure throughout the intranet. It was named 2016’s Programming Language of the Year by TIOBE and is a core language within Docker, CloudFlare, and Uber.
Go is an incredibly efficient language, rivaling C/C++ and significantly beating JavaScript in most performance tests. Go’s “goroutine” approach to paralellism allows it to process large “map-reduce” workloads efficiently, as are often seen in the cloud. It’s an ideal back-end networking language and is poised to grow in popularity on Azure.
Microsoft SDK Support for Go
Microsoft is actively developing SDKs for Go, which are available as importable packages hosted in GitHub. The following six are available as of Q1 2017:
- azure-sdk-for-go: The official library, providing methods for most Azure IaaS and PaaS workloads. This library is under heavy active development, so (https://github.com/golang/go/wiki/PackageManagementTools)[vendoring] is recommended.
- azure-storage-go: The official library for interacting with Azure storage.
- go-ansiterm: Helper library for ANSI terminal emulation in Windows.
- go-autorest: Library with a reusable HTTP request pipeline, built for high-volume REST API calls.
- go-ntlmssp: Helper library implementing NTLM/Negotiate authentication.
- go-pkcs12: Helper library implementing PKCS#12 cryptography.
- azure-quickstart-templates: Quickstart templates, including an exteion for hosting Go web apps.
- azure-samples: Sample implementations, including network, VM, storage, and keyvault clients.
Third-Party SDK Support for Go
Beyond Microsoft’s official offerings, there are dozens of third-party libraries available. GoDoc provides an organized catalog of all Go packages, including a page listing all Azure packages.
Running Go Applications on Azure App Service
The SDKs and packages listed above are great because they can be run anywhere (within your IaaS, in PaaS, or on-premises).
To run Go in the Azure App Service (PaaS), Microsoft added experimental support in 2015. Check out this article by Xiaomin Wu to get started.