Topics

Featured in Development

Peter Alvaro talks about the reasons one should engage in language design and why many of us would (or should) do something so perverse as to design a language that no one will ever use. He shares some of the extreme and sometimes obnoxious opinions that guided his design process.

Featured in AI, ML & Data Engineering

Today on The InfoQ Podcast, Wes talks with Katharine Jarmul about privacy and fairness in machine learning algorithms. Jarul discusses what’s meant by Ethical Machine Learning and some things to consider when working towards achieving fairness. Jarmul is the co-founder at KIProtect a machine learning security and privacy firm based in Germany and is one of the three keynote speakers at QCon.ai.

Featured in Culture & Methods

Organizations struggle to scale their agility. While every organization is different, common patterns explain the major challenges that most organizations face: organizational design, trying to copy others, “one-size-fits-all” scaling, scaling in siloes, and neglecting engineering practices. This article explains why, what to do about it, and how the three leading scaling frameworks compare.

Upbound Release Preview of "Crossplane", a Universal Control Plane API for Cloud Computing

Ahead of KubeCon NA 2018, Upbound, creators of the Rook storage orchestrator for Kubernetes, have released Crossplane, an open source multi-cloud control plane that aims to provide a "universal API for cloud computing". Crossplane exposes workload and resource abstractions on-top of Kubernetes and existing cloud-based managed services with the goal of enabling a high degree of workload portability across cloud providers.

A comprehensive "Introducing Crossplane" document -- written by the Upbound team Bassam Tabbara, Illya Chekrygin and Jared Watts -- argues that although the cloud computing model is now pervasive, it "remains completely under the control of a small set of cloud providers". As explored previously on InfoQ, the authors also discusses that "while these cloud providers are themselves heavy adopters of open source technologies, cloud-computing remains predominantly proprietary and closed source". Accordingly, running applications across multiple clouds with differing APIs and SDKs requires significant engineering effort.

The document states that there is exception to previous failed attempts at homogenising and integrating multi-cloud APIs, and this is Kubernetes, which "has always had a focus on workload portability, and defined a set of portable abstractions for running containers and their related networking and storage". The Kubernetes community has recently focused on offering extension points for the framework, for example with Custom Resource Definitions (CRDs) and the creation of operators that support deployment and operational maintenance, but this often means that organisations are forced to run their own instance of data stores and middleware. Kubernetes also represents a small fraction of the workloads that many organisations are running in the cloud.

Upbound are presenting Crossplane as a "new portability layer on top of existing managed services and cloud offerings". It introduces a set of workload and resource abstractions that build upon those provided by Kubernetes, and is based on project's declarative resource management architecture. Crossplane uses the unmodified Kubernetes API server (kube-apiserver), etcd, and several of the core controllers. The documentation states that Crossplane can run directly on-top of an existing Kubernetes cluster without requiring any changes. Cloud vendors currently supported include: Google Cloud Platform, Microsoft Azure and Amazon Web Services.

Anyone familiar with Kubernetes resource definitions will instantly be familiar with Crossplane workloads definitions, and (outside of the initial cloud-specific environment configuration) within the examples provided the workloads are deployed with the Kubernetes 'kubectl' CLI tool. The example configuration YAML below, taken from the Crossplane documentation, shows a MySQL "dependency resource" and an excerpt from a WordPress "workload":

The Crossplane documentation cautions that despite the obvious similarities, it should not be confused with Kubernetes. The two operate at different layers and solve different problems:

Kubernetes is a container orchestrator and is responsible for managing containers (pods), and the resources they consume (storage volumes, and networking) across a set of nodes. Crossplane is a multicloud workload and resource orchestrator and manages workloads (container, serverless, others) and resources they consume (databases, message queues, buckets, data pipelines, and others) across a set of cloud providers or on-premise environments.

Crossplane aims to be thought of as a "higher-order orchestrator" across cloud providers. It is appears to be similar to the federation project in Kubernetes, but is not limited to just containers and clusters.