Archive for software trends

Canonical Takes a Third Path to New Platforms

This was originally published on the Amalgam Insights website.

We are in the midst of another change up in the IT world. Every 15 to 20 years there is a radical rethink of the platforms that applications are built upon. During the course of the history of IT we have moved from batch-oriented, pipelined systems (predominantly written in COBOL) to client-server and n-Tier systems that are the standards of today. These platforms were developed in the last century and designed for last century applications. After years of putting shims into systems to accommodate the scale and diversity of modern applications, IT has just begun to deploy new platforms based on containers and Kubernetes. These new platforms promise greater resiliency and scalability, as well as greater responsiveness to the business.

As is often the case with new technology, Kubernetes and container platforms began as a decidedly DIY affair. Over time, however, software vendors have begun to craft curated platform experiences for sale. The DIY platform is a customized experience but difficult and expensive to engineer; the vendor curated platform is much easier but has more constraints. These are typical tradeoffs seen in any emerging platform environment. Curation reduces risk and degree of difficulty but at the expense of choice. DIY has ultimate choice but requires additional personnel costs, not only to build but to support and maintain the platform. These are the two paths open to IT shops looking to Kubernetes and containers to solve the problems of their 21st century applications.

Canonical, however, is creating a third path to new platforms. At the Canonical Analyst Day (September 12, 2019) in New York City, Canonical CEO Mark Shuttleworth articulated a different vision for Kubernetes platforms than is typically expressed by vendors. Based on their Juju and Charms toolset, Canonical hopes to offer the benefits of the curated experience and the flexibility of the DIY. With Charms, Canonical hopes to encapsulate best practices and integrations, in effect curating the parts. Instead of combining these into a set platform, they are offering Juju as a way to combine these parts, Lego like, into a custom platform. Charms describes what the software should be; Juju says where the software should go. At the component level, Charms knows how to configure, provision, and deploy a piece of software while Juju knows the existing infrastructure and where a Charmed component can and should go.

So, why a third path? The most obvious benefit is flexibility. Most platform plays assume that you will want what they have already tested and integrated. Simplicity is the byword since complexity is harder to do and support. If the platform vendor has integrated Istio and Envoy for the service mesh, that is what is supported. If IT’s platform engineers believe Linkerd makes more sense, they now have the responsibility for figuring out how to integrate it and manage its deployment. It’s a simple trade off – the cost of engineering versus the constraints of pre-determined components. While this works for a lot of applications, there are plenty where deviation from the platform is called for. The third path that Canonical is envisioning changes that dynamic. It provides the advantages of DIY with the advantages of the curated platform. This is not to say that DIY or curated platforms are wrong. For many companies, one or the other works for them. Not all IT environments, however, can go in the two common directions. They lack the resources to build their own platforms from scratch but need more flexibility than a standard platform can give them. They need purpose-built platforms at standardized pricing. This is where the third path becomes valuable.

It’s not at all unexpected that Canonical would take a path that diverges from the pack. This has been their modus operandi since the very beginning. The Charm-Juju experience is just another example of Canonical refusing to accept the status quo and, instead, looking for a way to forge a different trail through the woods of IT.

Kubernetes Grows Up – The View from KubeCon EU 2019

This was originally published on the Amalgam Insights site on Wednesday June 5 2019.

Our little Kubernetes is growing up.

By “growing up” I mean it is almost in a state that a mainstream company can consider it fit for production. While there are several factors that act as a drag against mainstream reception, a lack of completeness has been a major force against Kubernetes broader acceptance. Completeness, in this context, means that all the parts of an enterprise platform are available off the shelf and won’t require a major engineering effort on the part of conventional IT departments. The good news from KubeCon+CloudNativeCon EU 2019 in Barcelona, Spain (May 20 – 23 2019) is that the Kubernetes and related communities are zeroing in on that ever so important target. There are a number of markers pointing toward mainstream acceptance. Projects are filling out the infrastructure – gaining completeness – and the community is growing.

Project Updates

While Kubernetes may be at the core, there are many supporting projects that are striving to add capabilities to the ecosystem that will result in a more complete platform for microservices. Some of the projects featured in the project updates show the drive for completeness. For example, OpenEBS and Rook are two projects striving to make container storage more enterprise friendly. Updates to both projects were announced at the conference. Storage, like networking, is an area that must be tackled before mainstream IT can seriously consider container microservices platforms based on Kubernetes.

Managing microservices performance and failure is a big part of the ability to deploy containers at scale. For this reason, the announcement that two projects that provide application tracing capabilities, OpenTracing and OpenCensus, were merging into OpenTelemetry is especially important. Ultimately, developers need a unified approach to gathering data for managing container-based applications at scale. Removing duplication of effort and competing agendas will speed up the realization of that vision.

Also announced at KubeCon+CloudNativeCon EU 2019 were updates to Helm and Harbor, two projects that tackle thorny issues of packaging and distributing containers to Kubernetes. These are necessary parts of the process of deploying Kubernetes applications. Securely managing container lifecycles through packaging and repositories is a key component of DevOps support for new container architectures. Forward momentum in these projects is forward movement toward the mainstream.

There were other project updates, including updates to Kubernetes itself and Crio-io. Clearly, the community is filling in the blank spots in container architectures, making Kubernetes a more viable application platform for everyone.

The Community is Growing

Another gauge pointing toward mainstream acceptance is the growth in the community. The bigger the community, the more hands to do the work and the better the chances of achieving feature critical mass. This year in Barcelona, KubeCon+CloudNativeCon EU saw 7700 attendees, nearly twice last year in Copenhagen. In the core Kubernetes project, there are 164K commits and 1.2M comments in Github. This speaks to broad involvement in making Kubernetes better. Completeness requires lots of work and that is more achievable when there are more people involved.

Unfortunately, as Cheryl Hung, Director of Ecosystems at CNCF says, only 3% of contributors are women. The alarming lack of diversity in the IT industry shows up even in Kubernetes despite the high-profile women involved in the conference such as Janet Kuo of Google. Diversity brings more and different ideas to a project and it would be great to see the participation of women grow.

Service Mesh Was the Talk of the Town

The number of conversations I had about service mesh was astounding. It’s true that I had released a pair of papers on it, one just before KubeCon+CloudNativeCon EU 2019. That may have explained why people want to talk to me about it but not the general buzz. There was service mesh talk in the halls, at lunch, in sessions, and from the mainstage. It’s pretty much what everyone wanted to know about. That’s not surprising since a service mesh is going to be a vital part of large scale out microservices applications. What was surprising was that even attendees who were new to Kubernetes were keen to know more. This was a very good omen.

It certainly helped that there was a big service mesh related announcement from the mainstage on Tuesday. Microsoft, in conjunction with a host of companies, announced the Service Mesh Interface. It’s a common API for different vendor and project service mesh components. Think of it as a lingua franca of service mesh. There were shout-outs to Linkerd and The latter especially had much to do with creating SMI. The fast maturation of the service mesh segment of the Kubernetes market is another steppingstone toward the completeness necessary for mainstream adoption.

Already Way Too Many Distros

There were a lot of Kubernetes distributions a KubeCon+CloudNativeCon EU 2019. A lot. Really. A lot. While this is a testimony the growth in Kubernetes as a platform, it’s confusing to IT professionals making choices. Some are managed cloud services; others are distributions for on-premises or when you want to install your own on a cloud instance. Here’s some of the Kubernetes distros I saw on the expo floor. I’m sure I missed a few:

Microsoft Azure Google
Digital Ocean Alibaba
Canonical (Ubuntu) Oracle
IBM Red Hat
Rancher Pivotal
Mirantis Platform9

From what I hear this is a sample not a comprehensive list. The dark side of this enormous choice is confusion. Choosing is hard when you get beyond a handful of options. Still, only five years into the evolution of Kubernetes, it’s a good sign to see this much commercial support for it.

The Kubernetes and Cloud Native architecture is like a teenager. It’s growing rapidly but not quite done. As the industry fills in the blanks, as communities better networking, storage, and deployment capabilities it will go mainstream and become applicable to companies of all sizes and types. Soon. Not yet but very soon.