On the second day of GopherCon, 28th Aug, Microsoft announced contributions to the open-source Project Athens and their involvement with GopherSource. These announcements add to Microsoft’s efforts to better enable Go developers for making better apps and services. They support GO in Microsoft Visual Studio and on Azure cloud.
Package version changes in Go causes the current builds to break. This happens when the changed packages are dependencies for a working project. Project Athens stores and serves packages outside of Github, which means that Athens holds dependencies. It is an open source project released under the MIT license and is hosted on GitHub. Microsoft’s current focus is on improving the whole module experience. The aim is to ensure seamless working of Go modules with all proxy servers. They are working to set up a federated and diverse proxy network to include features like:
- Proxy server implementation for edge deployments in Go modules
- A new protocol for authenticated module proxies
- Adding module notary servers for source code authentication
- An include/exclude list for companies using Go to filter external Go packages
Project Athens has been open-source and community owned since it was formed. While Microsoft engineers remain the core maintainers of the project, Athens is supported by many developers from the open-source community now.
Go can be confusing and intimidating to start using for both new and experienced developers. GopherSource is an initiative to enhance and expand the Go ecosystem by building up more contributors to contribute to Go and key Go projects, this includes Project Athens. GopherSource is like a community for Go developers, to contribute for upstreaming Go, give feedback, make proposals, and provide mentorship.
Go at Microsoft
There are many users at Microsoft who use Go to build products at scale. They implemented the core services behind Azure Kubernetes Service (AKS) in Golang. Aaron Schlesinger, developer at Microsoft Azure, and core maintainer of Project Athens, stated in Microsoft’s blog post: “Internally, we contribute a significant amount of Go code to the cloud native ecosystem, including Virtual Kubelet, which enables scheduling Kubernetes workloads to off-cluster resources such as IoT Edge or Azure Container Instances; and Helm, the Kubernetes package manager.”
For more, visit the Microsoft Blog.