BT

Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ

Topics

Choose your language

InfoQ Homepage News Ambassador Developer Control Plane Integrates Common Kubernetes Full Lifecycle Tooling

Ambassador Developer Control Plane Integrates Common Kubernetes Full Lifecycle Tooling

This item in japanese

Bookmarks

Ambassador Labs announced the release of their Developer Control Plane (DCP). The DCP brings together tooling to support the full development and operations of Kubernetes based services. This includes popular Cloud Native Computing Foundation (CNCF) tools such as Argo, Telepresence, and Envoy Proxy.

The DCP aims to simplify the code-ship-run workflow by providing a single interface to manage the necessary tools. Integrated within the control plane are a number of CNCF projects with other common tooling such as GitHub, GitLab, DataDog, Docker, and Jenkins.

Ambassador Developer Control Plane showing current and future planned integrations

Ambassador Developer Control Plane showing current and future planned integrations (source: Ambassador Labs)

 

DCP's integration with Telepresence simplifies the local development workflow. Telepresence allows for testing of local code from the developer machine against remote services and datastores. It does this by creating a two-way network proxy for the pod running in the Kubernetes cluster. This pod proxies data from the Kubernetes environment to the local running process. This removes the need for running all necessary services locally to validate and test new changes.

Once the changes are ready to deploy, DCP integrates with Argo and Edge Stack to streamline canary releases. Argo is a collection of tooling that supports a GitOps style continuous deployment as well as canary and Blue Green deployment strategies. Edge Stack is an API gateway for Kubernetes which supports traffic shaping methods such as circuit breaking, progressive delivery, and rate limiting.

With these tools, it is possible to define a Custom Resource (CRD) to define an incremental rollout. This CRD example shows the declaration of a rollout that first sends 20% of traffic to the new version.

apiVersion: argoproj.io/v1alpha1
kind: Rollout
metadata:
 name: rollout-canary
spec:
 replicas: 5
 revisionHistoryLimit: 2
 selector:
   matchLabels:
     app: rollout-canary
 template:
   metadata:
     labels:
       app: rollout-canary
   spec:
     containers:
     - name: rollouts-demo
       image: argoproj/rollouts-demo:blue
       imagePullPolicy: Always
       ports:
       - containerPort: 8080
 strategy:
   canary:
     steps:
     - setWeight: 20
     # The following pause step will pause the rollout indefinitely until manually resumed.
     # Rollouts can be manually resumed by running `kubectl argo rollouts promote ROLLOUT`
     - pause: {}
     - setWeight: 40
     - pause: {duration: 40s}
     - setWeight: 60
     - pause: {duration: 20s}
     - setWeight: 80
     - pause: {duration: 20s}


Once the services are deployed, the Service Catalog can be used to discover which services are active. The integration with Emissary-Ingress and Edge Stack allows for service discovery as well as L7 traffic management. Annotations can be used to add metadata to the services. The following command would add the owner annotation to the service: kubectl annotate service MYSERVICE a8r.io/owner="sallydev".

The service specific view provides an integrated interface for these components. The Preview URLs option allows for local testing via Telepresence. Deployments via Argo can be done through the Rollouts option. Annotations appear on the page allowing for specifying Slack channels, API documentation, and logs.

Annotated view of the Service Catalog showing a single service

Annotated view of the Service Catalog showing a single service (credit: Ambassador Labs)

 

The Ambassador Developer Control Plane can be leveraged for free. The Service Catalog requires Edge Stack version 1.12 or greater and API Gateway 1.13 or greater to be installed within the cluster. Support is available via Slack and weekly office hours.

Rate this Article

Adoption
Style

BT