Microsoft Embraces Go Programming Language for Azure Cloud Development

Coinciding with the start of the GopherCon show for developers using the Go programming language created by Google, Microsoft today published an extensive series of videos to help Azure cloud developers use Go.

Microsoft also today announced open source contributions to Go projects "as part of an ongoing commitment to Go developers and community."

Microsoft is embracing Go despite the fact that Google -- a primary backer of the open source language (sometimes referred to as Golang) -- also offers the Google Cloud Platform, a direct competitor to Microsoft Azure.

Go was created by Google engineers about eight years ago because they sought a programming language that provided efficient compilation, efficient execution and ease of programming, finding that no existing mainstream language accommodated all three.

It's described as "a statically typed, compiled language in the tradition of C, with memory safety, garbage collection, structural typing and CSP-style concurrency" by Wikipedia.

With its affinity for cloud programming, Go has become a focal point for Microsoft's Azure efforts, culminating with today's launch of the seven-part video series on the company's Channel 9 site.

The first video, titled "Go on Azure: Part 1 -- Build Go apps with Visual Studio Code," features Ramya Achutha Rao (Sr. Software Engineer), who details using the open source, cross-plaftorm VS Code editor -- said to be the favorite among Go developers -- to first construct a simple Hello World app and eventually create a Docker container for the app that is ready to be pushed to the cloud.

She takes advantage of the Go for Visual Studio Code extension in the Visual Studio Code Marketplace, which, speaking to the popularity of the language and the tool, has been installed more than 5.2 million times, earning a 4.8 rating (0-5 scale) from 145 developers who have reviewed it. It provides smart code completion, integrated debugging and more.

"There are a host of language features that can help you in your day-to-day development, be it if you're code editing, you're navigating your code, you're testing your code trying to find errors or if you're debugging," Rao said in the video. "We have something for each of these areas."

Microsoft also touts its support for Go applications across many Azure services, including Web Apps, Azure Kubernetes Service and Linux Virtual Machines, with more planned. "The Azure SDK for Go makes it easier to build apps that interact with Azure services too, such as Storage," a spokesperson said.

Furthermore, the spokesperson said "Visual Studio Team Services provides Git repositories and enables Continuous Integration and Continuous Delivery capabilities for Go applications, and it's free for individuals and small teams up to five."

In addition to video mentioned above, other videos in the "Go on Azure" series include:

Further illustrating Microsoft's embrace of Go for Azure is a blog post published today that reviews the company's Go initiatives, written by Josh Gavant, Senior Program Manager, Azure Developer Experience.

"Since making the Azure SDK for Go generally available earlier this year, our teams have been hard at work building Go tools and services for Azure, Visual Studio Code and Visual Studio Team Services," Gavant said. "We continue to strive to help Go developers build better cloud apps, faster, with an expanding range of services covering the cloud-native workflow.

He listed those services as:

  • Write and test code with Visual Studio Code, the most popular editor amongst Go developers. Debug with visual breakpoints, apply Go formatting on save and use code completions to increase developer speed and productivity.
  • Host your private Git repositories, then integrate and release apps with Visual Studio Team Services and Azure DevOps Projects.
  • Run code, containers and apps on Azure Kubernetes Service, a fully managed Kubernetes cluster, or with Azure App Service. Or, use your favorite Linux distribution on Azure Virtual Machines.
  • Store structured data in managed PostgreSQL and MySQL databases, objects in Blob Storage and cache items in Redis Cache. You can also use Cosmos DB, a globally-replicated, multi-model database that is compatible with MongoDB.
  • Communicate between microservices with Azure Service Bus, Event Hubs and Event Grid.
  • Authenticate users and manage a directory with OpenID Connect and Azure Active Directory.
  • Gather and monitor traces with Application Insights and soon OpenCensus.

Gavant also reviewed several other Go-related initiatives continually being improved by Microsoft and invited Go developers to provide input to help shape that effort.

Also today, at the aforementioned GopherCon show, Microsoft announced contributions to the open source Project Athens and GopherSource.

Those projects were described by Microsoft thusly:

  • Project Athens is an open source project released under the MIT license and hosted on GitHub to create the first proxy server for Go modules. Along with the Athens community, Microsoft is currently focusing on improving the modules experience, ensuring that Go modules work seamlessly with all proxy servers, and working to set up a federated, organizationally diverse proxy network.
  • GopherSource is an initiative to strengthen and diversify the Go ecosystem through building up more contributors to upstream Go and key Go projects, such as Project Athens, from within the community. By encouraging the Go community's own talented developers to contribute to upstream Go, the Go ecosystem will continue to work to meet the needs of the entire community.

More information on those projects, the Microsoft Go experience and the use of Go at Microsoft can be found in yet another blog post published today, titled "Announcing Project Athens and GopherSource for the Go community."

"We already use and have so much fun with Go internally, and with our new investments into the community and technology we hope to do our part to grow the community and contribute great innovations wherever we can," said Aaron Schlesinger, Sr. Software Engineer, Microsoft Containers, in the post.

About the Author

David Ramel is an editor and writer for Converge360.

comments powered by Disqus


  • VS Code Java Team Details 5 Best Dev Practices

    Microsoft's Visual Studio Code team for Java development added a new Coding Pack for Java installer and detailed best practices for setting up a development environment.

  • Binary Classification Using PyTorch: Defining a Network

    Dr. James McCaffrey of Microsoft Research tackles how to define a network in the second of a series of four articles that present a complete end-to-end production-quality example of binary classification using a PyTorch neural network, including a full Python code sample and data files.

  • Blazor Debugging Boosted in .NET 5 RC 2

    In highlighting updates to ASP.NET Core in the just-launched second and final Release Candidate of .NET 5, Microsoft pointed out better debugging for Blazor, the red-hot project that allows for C# coding of web projects.

  • Block Stack

    Final Go-Live .NET 5 Release Candidate Ships Ahead of Nov. 10 Debut

    Having been deemed "feature complete" and "near final" and "go live" for some time now, .NET 5 is out in a second and final Release Candidate, scheduled for a Nov. 10 debut during .NET Conf 2020.

  • Edge Browser Dev Tools for VS Code Now Generally Available

    Microsoft has moved its Edge browser development tools for Visual Studio Code from preview to general availability, providing in-editor web site debugging and other functionality.

Upcoming Events