If you work on the cloud, containers and any aspect of cloud-native computing, you know how completely complicated it is. There are almost 150 cloud-native programs under the aegis of the Cloud Native Computing Foundation. If anyone tells you they’re a master of all of them, they’re lying. But, thought the good people of the Open Infrastructure Foundation, perhaps we could put together a best-of collection of open-source tools for automating cloud provisioning and management. And, so they did, and they called it Airship. It provides a declarative framework for defining and managing open infrastructure tools and their underlying hardware. These tools include OpenStack for virtual machines, with bare metal extensions; Kubernetes for container orchestration; and a host of other programs. Now, the next major update, Airship 2.0, is available.
SEE: AWS Lambda, a serverless computing framework: A cheat sheet (free PDF) (TechRepublic)
Before getting into its new features and improvements, let’s go over Airship’s basics. The framework consists of four components. These are:
- Use a declarative architecture: Sites are declared using YAML. This includes hard assets such as network configuration and bare-metal hosts and soft assets like Helm charts, their overrides and container images. You manage the document, and Airship implements it.
- A single workflow for life-cycle management: We needed a system with predictable life-cycle management at its core. This meant ensuring we had one workflow that handled both initial deployments and future site updates. In other words, there should be virtually nothing different when interacting with a new deployment or providing an update to an existing site.
- Containers are the only unit of software delivery: Containers are the unit of software delivery for Airship. Everything is a container. This allows us to progress environments from development, to testing and finally to production with confidence.
- Flexible for different architectures and software: Airship is delivering environments both tiny and large with a wide range of configurations. You can also use Airship to manage other cloud platforms besides OpenStack.
These program elements are all loosely coupled together using declarative YAML documents. The name of the game, according to Jonathan Bryce, Open Infrastructure Foundation director, is not replacing existing cloud-native programs that span bare metal, virtual machines and containers, but giving you control over a complex cloud and container software stack. This framework is licensed under Apache 2.0.
SEE: Kubernetes: What no one tells you, but you need to know (TechRepublic)
So what can you do with it? The real question is what can you not do with it. Airship can:
- Manage traditional Infrastructure-as-a-Service (IaaS) clouds.
- Run continuous integration/continuous delivery (CI/CD) using Kubernetes orchestrated containers with such programs as CI/CD programs as Gerrit, Jenkins or Zuul while using pooled virtual machines (VMs) for testing.
- Run high-end software-defined network and network function virtualizatio on Kubernetes clusters.
- Deploy and manage Kubernetes-based containers using Helm to deploy any Kubernetes friendly program such as TensorFlow, Hadoop, ElasticSearch, Kafka and so on.
It sounds good, but does it work? Yes, it does. The AT&T assistant VP of Network Cloud Software Engineering said when Airship was introduced in 2019 that “AT&T has been using Airship in our production network since last December.” In particular, AT&T is powering its 5G rollouts on an Airship-based, containerized OpenStack cloud.
Today, with Airship 2.0, more cloud-native programs such as Cluster API, Kustomize, Metal3 and the Helm-Controller have been added. All of these, and more, have been integrated into an end-to-end solution with a smooth operator experience.
How smooth? According to the developers, “We’ve made airshipctl [the new Airship shell program] as simple to use as possible for new community users, folks who need to stand up four servers in a lab but lend itself to those same users if they want to take it into production with 100 servers or hundreds of clouds. It is also straightforward for operators to leverage workload definitions from the Airship Treasure Map project and seamlessly integrate their own workloads.”
Thanks to Cluster API, Airship 2.0 also supports a wide variety of infrastructure backends and operating system choices. This includes public cloud, such as Azure and Google; VMs via Openstack; and bare metal using Metal3. Better still you stand up, configure and lifecycle over all these cloud platforms with a single tool.
Airship 2.0 also brings a GitOps approach to the table. That is to say, “Airshipctl can pull declarative intent, in the form of Kubernetes resource files, directly from versioned git repositories. Through integrating with Kustomize as a library, airshipctl can render document bundles… right out of the box as part of any action. These features allow intent to be tested and validated before it is deployed to a live site, providing strong predictability guarantees.”
Airship 2.0’s goal was to provide a declarative interface to assemble and orchestrate best-of-breed CNCF building blocks. You know what? I think they’ve been pretty darn successful. Give it a try yourself. You might find its approach to be exactly what you need for your cloud-native computing needs.