Archive for developers

Google Grants $9M in GCP Credit to Kubernetes project

Kubernetes Logo

This was also published on Amalgam Insights.

Kubernetes has, in the span of a few short years, become the de facto orchestration software for containers. As few as two years ago there were more than a half-dozen orchestration tools vying for the top spot and now there is only Kubernetes. Even the Linux Foundation’s other orchestrator project, CloudFoundry Diego, is starting to give way to Kubernetes. Part of the success of Kubernetes can be attributed to the support of Google. Kubernetes emerged out of Google and they have continued to 0the project even as it fell under the auspices of the Linux Foundation’s CNCF.

On August 29, 2018, Google announced that it is giving $9M in Google Cloud Platform (GCP) credit to the CNCF Kubernetes project. This is being hailed by both Google and the CNCF as an announcement of major support. $9M is a lot of money, even if it is credits. However, let’s unpack this announcement a bit more and see what it really means.

  • Google Already Hosts the project’s Development. The Kubernetes project’s development is currently hosted on GCP. The donation helps to ensure that the project does not migrate to a different cloud platform. Google’s donation ensures that it will pretty much stay where it is. So, for the immediate future, one would not expect disruptions such as migration to other platforms.
  • $9M now but what about later? Google is allocating $9M to the project now, but what will happen when the credits run out? There are a number of options. First, Google may give more credits to the CNCF. Or, they might not. If they don’t then the CNCF will have to start paying for the Kubernetes project to continue to be hosted on GCP or migrate to another platform. The latter would be disruptive but may happen if someone else ponies up free or cheap resources. $9M represents a lot of cloud resources but it’s not forever.
    The $9M in credits is also over three years. That suggests that after that period of time CNCF or sponsors will have to start paying for these resources themselves or that Google will get to make another announcement.
  • Might they pull the rug out from under the CNCF? Probably not. While it’s possible Google might shove the Kubernetes project off the GCP when the $9M runs out, it would be incredibly stupid. Google is many things but stupid isn’t one of them. The reputational risk and negative PR alone mean they wouldn’t do this. They would risk losing much of the influence they have over Kubernetes and Kubernetes is important to them. So, no they won’t do something like that.
  • What does “opening the Kubernetes project’s cloud resources up to contributors” mean? This was the terminology used in the Google press release. Google goes on to say that it had provided “CI/CD testing infrastructure, container downloads, and other services like DNS” but doesn’t explain how that affects the Kubernetes project. CNCF expresses this a little differently. They say that “CNCF and Kubernetes community members will take ownership of all day-to-day Kubernetes project operations. Responsibilities will include operational tasks for the development of Kubernetes such as testing and builds, as well as maintenance and operations for the distribution of Kubernetes.” This suggests that Google has been managing the actual project operations despite this being a CNCF project. When the community doesn’t control the operations of an open source project, the source may be open, but the project really isn’t.

Ultimately, it’s a positive development for the Kubernetes project. The CNCF will take more responsibility for the Kubernetes project which, in turn, makes them less reliant on Google. This makes the Kubernetes project an open project and not just open source. There is, however, some risk. If the cost of the Kubernetes project grows or the community finds itself at odds with Google, they may find themselves searching for more money or donated resources. Given the three year outlook, project leaders have plenty of time to de-risk the project resources.

This change in project responsibility makes sense for Google as well. They get some positive PR while removing themselves from long term responsibility of the project. They also shield themselves from claims that they are using their resources to maintain control of the project to the detriment of their competitors. The Free and Open Source (FOSS) community can be suspicious of the motives of large companies even while benefiting from those same companies.

Open source projects are a little like children. They need parents to nurture them through their formative stages of development. After awhile though, they need to fully leave the nest and become grownups. Kubernetes has grownup and it’s time for it take charge of its own future.

Cloud Vendors Release CI/CD Tools

Cloud CI/CD Tools

This was also released under a slightly different name on Amalgam Insights.

Development organization continue to feel increasing pressure to produce better code more quickly. To help accomplish that faster-better philosophy, a number of methodologies have emerged that that help organizations quickly merge individual code, test it, and deploy to production. While DevOps is actually a management methodology, it is predicated on an integrated pipeline that drives code from development to production deployment smoothly. In order to achieve these goals, companies have adopted continuous integration and continuous deployment (CI/CD) tool sets. These tools, from companies such as Atlassian and GitLab, help developers to merge individual code into the deployable code bases that make up an application and then push them out to test and production environments.

Cloud vendors have lately been releasing their own CI/CD tools to their customers. In some cases, these are extensions of existing tools, such as Microsoft Visual Team Studio on Azure. Google’s recently announced Cloud Build as well as AWS CodeDeploy and CodePipeline are CI/CD tools developed specifically for their cloud environments. Cloud CI/CD tools are rarely all-encompassing and often rely on other open source or commercial products, such as Jenkins or Git, to achieve a full CI/CD pipeline.

These products represent more than just new entries into an increasingly crowded CI/CD market. They are clearly part of a longer-term strategy by cloud service providers to become so integrated into the DevOps pipeline that moving to a new vendor or adopting a multi-cloud strategy would be much more difficult. Many developers start with a single cloud service provider in order to explore cloud computing and deploy their initial applications. Adopting the cloud vendor’s CI/CD tools embeds the cloud vendor deeply in the development process. The cloud service provider is no longer sitting at the end of the development pipeline; They are integrated and vital to the development process itself. Even in the case where the cloud service provider CI/CD tools support hybrid cloud deployments, they are always designed for the cloud vendors own offerings. Google Cloud Build and Microsoft Visual Studio certainly follow this model.

There is danger for commercial vendors of CI/CD products outside these cloud vendors. They are now competing with native products, integrated into the sales and technical environment of the cloud vendor. Purchasing products from a cloud vendor is as easy as buying anything else from the cloud portal and they are immediately aware of the services the cloud vendor offers.  No fuss, no muss.

This isn’t a problem for companies committed to a particular cloud service provider. Using native tools designed for the primary environment offers better integration, less work, and ease of use that is hard to achieve with external tools. The cost of these tools is often utility-based and, hence, elastic based on the amount of work product flowing through the pipeline. The trend toward native cloud CI/CD tools also helps explain Microsoft’s purchase of GitHub. GitHub, while cloud agnostic, will be much for powerful when completely integrated into Azure – for Microsoft customers anyway.

Building tools that strongly embed a particular cloud vendor into the DevOps pipeline is clearly strategic even if it promotes monoculture. There will be advantages for customers as well as cloud vendors. It remains to be seen if the advantages to customers overcome the inevitable vendor lock-in that the CI/CD tools are meant to create.