Blackbird Reference ArchitectureAgile workflows for building microservices on Kubernetes
Minimize friction from idea to users on Kubernetes
The reference architecture shows how Datawire's open source tools can be used to build a cloud-native workflow on Kubernetes
- Code Locally
- Deploy to Kubernetes
- Measure Impact on Users
Every change starts with an idea or hypothesis.
High velocity organizations focus on getting from idea to users as quickly as possible, enabling continuous improvement.
Datawire’s open source tools make it easy to code faster on Kubernetes.
Code a single service locally
- Use your favorite IDE, debugger, or any other tool
- Connect to your dependencies running on a remote cluster so they don’t consume local resources
- Code in an environment that’s identical to production
Deploy locally, in QA, or in prod
- Easily deploy 100s of microservices with robust dependency management
- Deploy only the services that have changed on disk
- Deploy custom deployment profiles for dev, QA, canary, or any other environment
- Works with any Kubernetes distribution and Docker Registry
- Integrate with your CI/CD build pipelines
Test with the Ambassador API Gateway
- Publish new services to end users via Kubernetes annotations
- Canary test new versions of a service
- Full support for gRPC, websockets, HTTP/2, Istio, and TLS
- Integrated diagnostics
- Full access to Envoy Proxy semantics
- Native integration with Prometheus
- Transparent application layer (L7) monitoring and observability
- Use other monitoring services via statsd interface
Our core technologies
Install the Reference Architecture
The reference architecture works with an RBAC-enabled Kubernetes 1.6 or later cluster. This means that it does not install (yet) on Minikube. Before starting, make sure you have
kubectl, a recent version of Docker, and credentials to a Docker registry (e.g., Docker Hub or Google Container Registry).
The following steps will install Forge and Telepresence locally, and deploy the reference architecture onto your cluster. All Kubernetes services are deployed into
datawire namespace. The full source is available in the Blackbird GitHub repository.
Download and run the installation script (source). The script will clone the reference architecture GitHub repository.
curl -L https://d6e.co/2EAPL1u | bash
The reference architecture includes demo microservices written in Python, Java/Spring, and NodeJS. Change to the blackbird directory created by the installation script.
Configure your Docker Registry.
Deploy the reference architecture to your cluster. This will take a few minutes, as the deployment will need to download a number of NodeJS, Java, and Python dependencies to build the services.
The reference architecture installs the Ambassador API Gateway as a
LoadBalancerservice. Get the external IP address for the
ambassadorservice, and open the IP address in your browser.
$ kubectl get svc -n datawire ambassador NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE ambassador 10.43.252.164 184.108.40.206 80:31445/TCP 3d