Can Kubernetes Prevent Vendor Lock In?

How does Kubernetes create lock in versus how could Kubernetes be used to prevent lock in?

Lock in is not always a bad thing. When you avoid committing to a single vendor, you may have to work to the lowest common denominator or deal with heterogeneity in your infrastructure. Heterogeneity is pretty normal, and you might have to do this work regardless, but when you commit to a vendor you get to focus on using the vendor’s strengths.

In this episode, you’ll pick up some great tips on how to reduce your lock in when using Kubernetes.

Transcript: otter.ai/u/vIo1p15bb6VmcrWjwgOLbM25nq4
Image: www.pexels.com/photo/silhouette-…door-knob-792032/

Rob’s Hot Take:

In the April 12th episode of the Cloud 2030 Podcast, Rob Hirschfeld delves into the nuanced discussion of whether Kubernetes prevents or exacerbates vendor lock-in. The key takeaway is that lock-in is not inherently negative, and there’s a need to balance risks and consider the inertia associated with established systems and practices. The podcast encourages listeners to think intentionally about using Kubernetes as an abstraction layer and to recognize the value and challenges of inertia in platform development efforts. For further insights and discussions on DevOps and future strategies, visit the2030.cloud and join the conversation.

Expanding GitOps Beyond K8s

GitOps is a really important way of collaborating and communicating about infrastructure.

But can GitOps escape from Kubernetes? While we did talk about Kubernetes too, we mainly talked about what it takes to implement GitOps outside of Kubernetes. We considered building a GitOps architecture and then having people understand and use it. We also cover the fundamental parts of GitOps like having a reconciler and a bunch of tools that drive clusters.

Transcript: otter.ai/u/oq4D06Sd_rtUvXBVXC0Wx3KA2sQ
Image: www.pexels.com/photo/people-with…popcorns-7234318/

Rob’s Hot Take:

In the March 8th DevOps Lunch and Learn session on GitOps, Rob Hirschfeld emphasizes the crucial role of immutability in operations. The concept of specifying a fixed state, configuration set, or resource transforms how automation, infrastructure building, and system maintenance are approached. The investment in immutable components enhances change resilience, making it easier to adapt and keep up with changes while ensuring stability. Join the ongoing conversations and roundtables at the2030.cloud to contribute to discussions on these transformative concepts.

Is Complexity Real?

Today’s episode is about measuring complexity. Complexity is a topic that we cover a lot. And in this case, we really went past the idea that we could measure complexity, and into looking at the causes and costs of complexity.

We had a remarkable conversation about what it means to say something’s too complex? What are the consequences of complexity? And what should we do about them? Ultimately, it’s about how how we measure the cost or the risk of complexity?

In the end, we are reframing complexity in business terms and human terms. That is the important approach to looking at complexity.

Transcript: otter.ai/u/qOBFHwMfUd0ELCnnD63AXcTLe9I
Photo: www.pexels.com/photo/colorful-th…on-floor-5723513/

Rob’s Hot Take:

In the March 3rd Cloud 2030 Podcast discussion on complexity, Rob Hirschfeld delves into the notion that measuring or fully understanding complexity might be challenging, leading to an exploration of its sources and causes. The conversation shifts towards viewing complexity through the lenses of risk and change management, reframing it as a challenge rather than inherently negative. The nuanced discussion emphasizes the importance of mitigating complexity-related risks for more productive outcomes. To engage in these conversations and enhance your understanding of complexity, visit the2030.cloud.

What’s up with Containers for 2022

This discussion sifts into tactical concerns for containers in the near term. We’ve gotten far with containers and Kubernetes. But what about process controls that we need to wrap around containers?

We talked through how we need to be thinking about containers now that we have good control surfaces around them to make things work. If you were using containers and Kubernetes, this podcast will certainly inform your thinking.

Transcript: otter.ai/u/NKNuTQQCXGXbVrZq_4pHazt4sZA
Image: www.pexels.com/photo/person-hold…ed-beans-9902268/

Is Edge HCI Necessary?

To explore HCI at the edge, we started with SUSE’s Harvester. It’s an HCI integration of Kubernetes, KubeVirt, and Longhorn (their storage system) plus some PXE booting magic they threw in there. From there we explored how Kubernetes can fit into Edge HCI.

That really morphed into Edge operations more generally. It’s not clear if hyperconverged infrastructure can or can’t fit. We covered items like AWS Outpost which is Amazon’s edge. We included items for the cloud to edge migration from an application development perspective.

There are a lot of fascinating ops and development topics throughout the conversation.

Transcript: otter.ai/u/Y2OH7SuJhPp4VRQSBAJk31-0_eI
Photo: www.pexels.com/photo/crop-person…ontainer-4498143/

Rob’s Hot Take:

Rob Hirschfeld, CEO and co-founder of RackN and host of the Cloud 2030 Podcast, provides insights from the January 4th discussion on hyper-converged infrastructure (HCI) for the edge. The conversation explores the operational desire for clean and simple architectures with modular building blocks for easy implementation. However, it challenges the notion that platforms like Kubernetes can create a straightforward, self-building architectural solution for edge clusters, emphasizing the associated cost considerations. Hirschfeld suggests exploring the full episode at the2030.cloud for a comprehensive discussion on the complexities and potential solutions in the realm of hyper-converged infrastructure for the edge.

A Path for Cloud Standardization?

We discuss standards, de facto standards, and cloud standards. It comes down to how we are creating repeatable results for the cloud marketplace.

Ideally, we’re creating marketplaces where standards can be shared. We’d consider Amazon as the primary example, but we also talk about hardware and Kubernetes which have their own marketplaces.

Ultimately, we asked if we are creating standardized cloud infrastructure? The short answer is no.

Transcript: otter.ai/u/kGT8pGfbslZRgFktM0pE3AifwWI
Image: www.pexels.com/photo/measuring-g…tar-pick-3988555/

Rob’s Hot Take:

Rob Hirschfeld, CEO and co-founder of RackN and host of the Cloud 2030 Podcast, reflects on the November 30th DevOps Lunch and Learn session focused on standards and vendors’ attempts to establish standard operating processes. He highlights the market’s lack of convergence or trust in vendor-driven standards, emphasizing the durability of certain influential standards in the industry compared to vendor-specific APIs. Hirschfeld underscores the ongoing need for standard operating models and APIs to address market complexity, encouraging listeners to explore the insightful discussion at the2030.cloud for deeper insights into standardization efforts within the industry.

How about a CaaPuccino? Krish and Rob discuss containers, platforms, hybrid issues around Kubernetes and OpenStack.

CaaPuccino: A frothy mix of containers and platforms.

Check out Krish Subramanian’s (@krishnan) Modern Enterprise podcast (audio here) today for a surprisingly deep and thoughtful discussion about how frothy new technologies are impacting Modern Enterprise IT. Of course, we also take some time to throw some fire bombs at the end. You can use my notes below to jump to your favorite topics.

The key takeaways are that portability is hard and we’re still working out the impact of container architecture.

The benefit of the longer interview is that we really dig into the reasons why portability is hard and discuss ways to improve it. My personal SRE posts and those on the RackN blog describe operational processes that improve portability. These are real concerns for all IT organizations because mixed and hybrid models are a fact of life.

If you are not actively making automation that works against multiple infrastructures then you are building technical debt.

Of course, if you just want the snark, then jump forward to 24:00 minutes in where we talk future of Kubernetes, OpenStack and the inverted intersection of the projects.

Krish, thanks for the great discussion!

Rob’s Podcast Notes (39 minutes)

2:37: Rob intros about Digital Rebar & RackN

4:50: Why our Kubernetes is JUST UPSTREAM

5:35: Where are we going in 5 years > why Rob believes in Hybrid

  • Should not be 1 vendor who owns everything
  • That’s why we work for portability
  • Public cloud vision: you should stop caring about infrastructure
  • Coming to an age when infrastructure can be completely automated
  • Developer rebellion against infrastructure

8:36: Krish believes that Public cloud will be more decentralized

  • Public cloud should be part of everyone’s IT plan
  • It should not be the ONLY thig

9:25: Docker helps create portability, what else creates portability? Will there be a standard

  • Containers are a huge change, but it’s not just packaging
  • Smaller units of work is important for portability
  • Container schedulers & PaaS are very opinionated, that’s what creates portability
  • Deeper into infrastructure loses portability (RackN helps)
  • Rob predicts that Lambda and Serverless creates portability too

11:38: Are new standards emerging?

  • Some APIs become dominate and create de facto APIs
  • Embedded assumptions break portability – that’s what makes automation fragile
  • Rob explains why we inject configuration to abstract infrastructure
  • RackN works to inject attributes instead of allowing scripts to assume settings
  • For example, networking assumptions break portability
  • Platforms force people to give up configuration in ways that break portability

14:50: Why did Platform as a Service not take off?

  • Rob defends PaaS – thinks that it has accomplished a lot
  • Challenge of PaaS is that it’s very restrictive by design
  • Calls out Andrew Clay Shafer’s “don’t call it a PaaS” position
  • Containers provide a less restrictive approach with more options.

17:00: What’s the impact on Enterprise? How are developers being impacted?

  • Service Orientation is a very important thing to consider
  • Encapsulation from services is very valuable
  • Companies don’t own all their IT services any more – it’s not monolithic
  • IT Service Orientation aligns with Business Processes
    Rob says the API economy is a big deal
  • In machine learning, a business’ data may be more valuable than their product

19:30: Services impact?

  • Service’s have a business imperative
  • We’re not ready for all the impacts of a service orientation
  • Challenge is to mix configuration and services
  • Magic of Digital Rebar is that it can mix orchestration of both

22:00: We are having issues with simple, how are we going to scale up?

  • Barriers are very low right now

22:30: Will Kubernetes help us solve governance issues?

  • Kubernetes is doing a go building an ecosystem
  • Smart to focus on just being Kubernetes
  • It will be chaotic as the core is worked out

24:00: Do you think Kubernetes is going in the right direction?

  • Rob is bullish for Kubernetes to be the dominant platform because it’s narrow and specific
  • Google has the right balance of control
  • Kubernetes really is not that complex for what it does
  • Mesos is also good but harder to understand for users
  • Swarm is simple but harder to extend for an ecosystem
  • Kubernetes is a threat to Amazon because it creates portability and ecosystem outside of their platform
  • Rob thinking that Kubernetes could create platform services that compete with AWS services like RDS.
  • It’s likely to level the field, not create a Google advantage

27:00: How does Kubernetes fit into the Digital Rebar picture?

  • We think of Kubernetes as a great infrastructure abstraction that creates portability
  • We believe there’s a missing underlay that cannot abstract the infrastructure – that’s what we do.
  • OpenStack deployments broken because every data center is custom and different – vendors create a lot of consulting without solving the problem
  • RackN is creating composability UNDER Kubernetes so that those infrastructure differences do not break operation automation
  • Kubernetes does not have the constructs in the abstraction to solve the infrastructure problem, that’s a different problem that should not be added into the APIs
  • Digital Rebar can also then use the Kubernetes abstractions?

30:20: Can OpenStack really be managed/run on top of Kubernetes? That seems complex!

  • There is a MESS in the message of Kubernetes under OpenStack because it sends the message that Kubernetes is better at managing application than OpenStack
  • Since OpenStack is just an application and Kubernetes is a good way to manage applications
  • When OpenStack is already in containers, we can use Kubernetes to do that in a logical way
  • “I’m super impressed with how it’s working” using OpenStack Helm Packs (still needs work)
  • Physical environment still has to be injected into the OpenStack on Kubernetes environment

35:05 Does OpenStack have a future?

  • Yes! But it’s not the big “data center operating system” future that we expected in 2010. Rob thinks it a good VM management platform.
  • Rob provides the same caution for Kubernetes. It will work where the abstractions add value but data centers are complex hybrid beasts
  • Don’t “square peg a data center round hole” – find the best fit
  • OpenStack should have focused on the things it does well – it has a huge appetite for solving too many problems.

Open Source Collaboration: The Power of No

TL;DR: The days of using open software passively from vendors are past, users need to have a voice and opinion about project governance. This post is a joint effort with Rob Hirschfeld, RackN, and Chris Ferris, IBM, based on their IBM Interconnect 2017 “Open Cloud Architecture: Think You Can Out-Innovate the Best of the Rest?” presentation.

nullIt’s a common misconception that open source collaboration means saying YES to all ideas; however, the reality of successful projects is the opposite.

Permissive open source licenses drive a delicate balance for projects. On one hand, projects that adopt permissive licenses should be accepting of contributions to build community and user base. On the other, maintainers need to adopt a narrow focus to ensure project utility and simplicity. If the project’s maintainers are too permissive, the project bloats and wanders without a clear purpose. If they are too restrictive then the project fails to build community.

It is human nature to say yes to all collaborators, but that can frustrate core developers and users.

For that reason, stronger open source projects have a clear, focused, shared vision. Historically, that vision was enforced by a benevolent dictator for life (BDFL); however, recent large projects have used a consensus of project elders to make the task more sustainable. These roles serve a critical need: they say “no” to work that does not align with the project’s mission and vision. The challenge of defining that vision can be a big one, but without a clear vision, it’s impossible for the community to sustain growth because new contributors can dilute the utility of projects. [author’s note: This is especially true of celebrity projects like OpenStack or Kubernetes that attract “shared glory” contributors]

There is tremendous social and commercial pressure driving this vision vs. implementation balance.

The most critical one is the threat of “forking.” Forking is what happens when the code/collaborator base of a project splits into multiple factions and stops working together on a single deliverable. The result is incompatible products with a shared history. While small forks are required to support releases, and foster development; diverging community forks can have unpredictable impacts for a project.

Forks are not always bad: they provide a control mechanism for communities.

The fundamental nature of open source projects that adopt a permissive license is what allows forks to become the primary governance tool. The nature of permissive licenses allows anyone to create a new line of development that’s different than the original line. Forks can allow special interests in a code base to focus on their needs. That could be new features or simply stabilization. Many times, a major release version of a project evolves into forks where both old and newer versions have independent communities because of deployment inertia. It can also allow new leadership or governance without having to directly displace an entrenched “owner”.

But forking is expensive because it makes it harder for communities to collaborate.

To us, the antidote for forking is not simply vision but a strong focus on interoperability. Interoperability (or interop) means ensuring that different implementations remain compatible for users. A simplified example would be having automation that works on one OpenStack cloud also work on all the others without modification. Strong interop creates an ecosystem for a project by making users confident that their downstream efforts will not be disrupted by implementation variance or version changes.

Good Interop relieves the pressure of forking.

Interop can only work when a project defines what is expected behavior and creates tests that enforce those standards. That activity forces project contributors to agree on project priorities and scope. Projects that refuse to define interop expectations end up disrupting their user and collaborator base in frustrating ways that lead to forking (Rob’s commentary on the potential Docker fork of 2016).

nullUnfortunately, Interop is not a generally a developer priority.

In the end, interoperability is a user feature that competes with other features. Sadly, it is often seen as hurting feature development because new features must work to maintain existing interop standards. For that reason, new contributors may see interop demands as a impediment to forward progress; however, it’s a strong driver for user adoption and growth.

The challenge is that those users are typically more focused on their own implementation and less visible to the project leadership. Vendors have similar disincentives to do work that benefits other vendors in the community. These tensions will undermine the health of communities that do not have strong BDFL or Elders leadership. So, who then provides the adult supervision?

Ultimately, users must demand interop and provide commercial preference for vendors that invest in interop.

Open source has definitely had an enormous impact on the software industry; generally, a change for the better. But, that change comes at a cost – the need for involvement, not just of vendors and individual developers, but, ultimately it demands the participation of consumers/users.

Interop isn’t naturally a vendor priority because it levels the playing field for all vendors; however, vendors do prioritize what their customers want.

Ideally, customer needs translate into new features that have a broad base of consumer interest. Interop ensure that features can be used broadly. Thus interop is an important attribute to consumers not only for vendors, but by the open source communities building the software. This alignment then serves as the foundation upon which (increasingly) that vendor software is based.

Customers should be actively and publicly supportive of interop efforts of projects on which their vendor’s offerings depend. If there isn’t such an initiative in those projects, then they should demand one be started through their vendor partners and in the public forums for the project.

Further, if consumers of an open source project sense that it lacks a strong, focused, vision and is wandering off course, they need to get involved and say so, either directly and/or through their vendor partners.

While open source has changing the IT industry, it also has a cost. The days of using software passively from vendors are past, users need to have a voice and opinion. The need to ensure that their chosen vendors are also supporting the health of the community.

What do you think? Reach out to Rob (@zehicle) and Chris (@christo4ferris) and let us know!

Note: Cross posted on IBM OpenTech site.

Don’t Balkanize My Installer, Yo!

kubernetesLast week, RackN announced our enterprise support for Kubernetes using nothing but upstream Ansible from the project itself.  This effort represents years of effort by the RackN founders to keep platforms interoperable via open and shareable operations automation.

That’s why our Digital Rebar approach targets underlay challenges and leverages existing automation tools instead of investing yet another install path.

dcosThis week, we added Install Wizard templates to the DC/OS install automation we build in collaboration with Mesosphere last year.  That makes it even easier to run DC/OS on physical infrastructure.  Like our Kubernetes work, the Digital Rebar automation uses the same community dcos_install.sh that’s used in the community documentation.  The difference is that we’re also driving all the underlay prep and configuration automatically.

If this approach appeals to you, contact RackN and join in the open Day 2 revolution.

Interested in seeing the DC/OS install in action?  Here’s a demo video:

 

Accelerating Community Ops on Kubernetes in Hybrid Style

Preface: RackN is looking for SRE teams who are enthusiastic about accelerating Kubernetes on-premises in a long term operational way that can be shared and reused across the community.

kubernetesWe’re excited to see and be part of the community progress towards enterprise-ready Kubernetes operations on both cloud and on-premises.  The RackN team is excited to be part of multiple groups establishing patterns with shareable/reusable automation. I strongly recommend watching (or, better, collaborating in) these efforts if you are deploying Kubernetes even at experimental scale.

We’ve worked hard to make shared community ops work accessible, repeatable and multi-platform without compromising scale or security.

The RackN team has been enthusiastic supporters of Kubernetes since the 1.0 launch with our first deployments going back to June 2015 with updates for 1.2, 1.3 and now 1.5. I’m excited to report that fully converged the composable Digital Rebar approach with the Kubernetes Kargo Ansible. Our 1.2 efforts leveraged the Kargo predecessor “Kubespray.” This integration brings the parallel hybrid operation and node-by-node function of Digital Rebar with the Ansible community efforts around Kargo.

Composable design is a key element the RackN focus on SRE automation because it allows ecosystem

That allows a fully integrated deploy where Digital Rebar stages the environment and then use Kargo directly from upsteam to install Kubernetes. Post-deployment, Digital Rebar is able to extend the cluster with packages like Helm, Deis, Dashboard and others.

Since Digital Rebar supports parallel deployments, it’s possible to fully exercise the options enabled by Kargo simultaneously for development and testing.  Benefits????

For example, you can built-test-destroy coordinated Kubernetes installs on Centos, Redhat and Ubuntu as part of an automation pipeline. Unlike client side approaches like Terraform or Ansible, our infrastructure allows transparent monitoring of the deployments including Slack integration.

Flexibility is also important between users because Ops variation is both a benefit and a cost.

A key Digital Rebar design goal is for users to explore useful variation and still share operational best practices. We are proving that shared community automation can support many different scenarios including variation between between clouds, physical, operating system, networking and container engine.

If we cannot manage this variation in a consistent way then we’re doomed to operational fragmentation (like OpenStack has endured).

We’re inviting you to check out our open work supporting the Kubernetes Ops community. As Rob Hirschfeld says, looking for “Day 2” minded operators who want to make sure that we are always able to share Kubernetes best practices.