‘Dancing Skeleton,’ APIs and Microservices
Datawire has announced a significant update to Ambassador Edge Stack, the popular Kubernetes API gateway. Ambassador’s new Delivery Acceleration Module enables teams to deploy containers directly from GitHub code and integrate with CI/CD pipelines to streamline application delivery.
I chatted with Datawire CEO Richard Li to learn more about the recent updates to Ambassador Edge Stack. The new MicroCD ability rapidly stands up development environments, bringing more flexibility and developer experience benefits by streamlining a Version 0 or “dancing skeleton” setup for microservices.
Quick Overview: Ambassador Edge Stack
Ambassador Edge Stack is an open source API gateway built on Envoy. Ambassador prides itself on being one of only a handful of Kubernetes-native API gateways. “We found that as more companies adopt Kubernetes, they really need a gateway that is Kubernetes-native,” says Li.
The Ambassador API gateway manages edge traffic, helping organizations develop microservices that integrate into the software development life cycle. Now, new Ambassador features enable companies to deploy software from source control.
K8s and CI/CD Become Roadblocks
There are many moving parts with a continuous microservices development cycle. Teams want to leverage the benefits of Kubernetes, but in practice, the process of deploying to Kubernetes can become quite cumbersome. As Li describes, developers must wire in a container registry, stand up a CI pipeline and integrate with an API gateway, among other operations.
When coding features in our modern Kubernetes paradigm, developers don’t always have a quick method to respond to customer feedback. “From the very beginning, there’s a focus on: how can I rapidly get updates out?” notes Li.
Also, a CI/CD pipeline may be overkill for simple microservices that teams won’t significantly alter in the future. An application that returns zip codes, for example, could be extremely lightweight, and wouldn’t undergo a series of iterations, thus negating the need for a complex CI/CD process.
To leverage the benefits of a cloud-native Kubernetes stack while retaining agility, developers need a better way to launch and preview services quickly. According to Li, the answer lies in Version 0.
Ambassador Edge’s ‘Dancing Skeleton’ Approach
Datawire’s philosophy is to leverage Kubernetes and build a mechanism to validate your microservice designs. Ambassador Edge calls this prototype a “dancing skeleton.”
The Ambassador Edge skeleton is more than just bone, though. It provides the base mechanics necessary to support a holistic modern microservices development loop. That includes a CI pipeline, to-production delivery mechanisms and the ability to observe usage and update code.
A dancing skeleton, also known as a Version 0, is “an extraordinarily powerful concept important with microservices,” says Li. “When you start coding a service, you want to make sure there is a good way to change and push it live.” Overall, the approach could add enormous benefits around velocity and agility.
Using Ambassador Edge’s new Delivery Acceleration Module, teams can advance their dancing skeleton quite quickly throughout a development cycle. The module also comes with two abilities: the new MicroCD pipeline and the previously released Service Preview.
Version 0 With MicroCD Pipeline
MicroCD enables developers to build and deploy containers directly from GitHub code to assemble a dancing skeleton rapidly. Setting up a frictionless CI/CD is challenging, especially when scaling an enterprise. Thus, having a way to quickly test the viability of new services outside of bulky CI/CD processes is crucial.
“Standing up a continuous delivery pipeline that is frictionless, yet robust is an important, but challenging endeavor for organizations new to the cloud-native world,” says Bjorn Freeman-Benson, SVP of Engineering at Datawire. “The new MicroCD Pipeline feature will ease this process significantly so that teams can deliver value sooner.”
Leveraging a dancing skeleton with MicroCD pipeline brings multiple benefits:
- Rapidly Deploy: MicroCD pipeline lets you get going super fast without additional software. The alternative would be to configure a CD pipeline, wire in container registry, and then integrate it with API gateway. Ambassador optimizes this all within a simple stack.
- Service Preview With Service Preview, MicroCD users can instantly preview a function with each change made to source code. Unique URLs simulate a production environment. Service Preview is built with Telepresence, a CNCF project.
- Feedback Loop: Streamlining the build process enables faster response time to customer feedback and bugs, quickening your feedback loop.
- Self-Service: Developers own the deploys. No need to sync with operational teams. This streamlined developer experience increases potential productivity.
- Independence: Each team has one copy and can independently manage Ambassador as they see fit. Different groups can maintain the same API gateway at the same time.
- Portability: Once the microservice is improved, teams can easily switch from MicroCD to a Jenkins X integration through Ambassador or continue to leverage MicroCD, depending on the scenario.
“The MicroCD pipeline is something that will be very useful for us,” says Dave Harding, co-founder and technical director of Cinolla Software. “We would start by deploying some of our small, non-critical services first, and then we could expand to set up new larger services in the future using this feature.”
MicroCD is constructed with Kaniko, a popular open source project from Google that helps build containers. MicroCD also integrates the Docker registry, Jenkins X and additional integration code from Ambassador.
MicroCD In Action: Appddiction DoD Project
To see how users are implementing MicroCD pipeline in practice, I spoke with Ambassador Stack Edge user Kevin Summersill, solutions architect at Appddiction Studio.
Appddiction is a small development company specializing in DevSecOps. The company often works on government contracts, helping transform legacy technical debt into more robust, K8s-enabled microservice architecture.
Appddiction utilizes MicroCD within a U.S. Department of Defense (DoD) project that involves civil engineering systems used by the Airforce. Within this project, Appddiction is running Ambassador Edge for a few reasons. One, it helps the company quickly stand up subdomains with SSL certificates. Two, it helps break down monolithic applications incrementally. Third, Ambassador is built on the Envoy proxy, which allows Appddiction to grab certificates to plug into downstream applications.
Appddiction is “delivering software to Kubernetes environments using a GitOps approach, and MicroCD helps us do that,” says Summersill. “One of the other things I really like about Ambassador is the ingress controllers,” he adds, noting benefits for high-security environments. He also cites developer experience benefits from Ambassador Edge’s CLI.
Final Thoughts: Using a Dancing Skeleton for GitOps
Continuous delivery is now an established best practice. But how can we achieve CD as quickly as possible? The way Li sees it, teams require an inner development loop to code and test changes readily. They also need an outer loop with a dancing skeleton to port source control to K8s clusters in a more effective way.
MicroCD is a new way to achieve this, enabling teams to test microservices in production outside of CI/CD quickly. According to Li, the dancing skeleton concept has floated around programming circles for a while now, but Datawire is the first to formalize it within the Kubernetes-native stack. It could be a helpful strategy for many development scenarios. As Summersill notes, “the next step is using MicroCD for GitOps.”
In terms of a road map for new features, Datawire continues to iterate its Delivery Acceleration Module to improve the developer experience and meet customer feedback. Li anticipates future emphasis on abilities to improve manageability and collaboration when deploying thousands of microservices through Ambassador Edge.