Blackbird Reference Architecture

Agile 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

  • Idea
  • Code Locally
  • Deploy to Kubernetes
  • Experiment/Canary
  • Measure Impact on Users

Idea

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
Get Telepresence Now

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
Get Forge Now

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
Get Ambassador Now

Monitor

  • 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.

  1. Download and run the installation script (source). The script will clone the reference architecture GitHub repository.

    curl -L https://d6e.co/2EAPL1u | bash
  2. The reference architecture includes demo microservices written in Python, Java/Spring, and NodeJS. Change to the blackbird directory created by the installation script.

    cd blackbird
  3. Configure your Docker Registry.

    forge setup
  4. 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.

    forge deploy
  5. The reference architecture installs the Ambassador API Gateway as a LoadBalancer service. Get the external IP address for the ambassador service, 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   35.229.31.157   80:31445/TCP   3d
    
  6. Questions? Join our Gitter chat or file a GitHub issue.