Armory Continuous Deployment architecture
Armory Continuous Deployment is an enterprise version of open source Spinnaker. It is composed of several microservices for resiliency and follows the single-responsibility principle. It allows for faster iteration on each individual component and a more pluggable architecture for custom components. See the open source Spinnaker microservices overview for port mappings and a table of service interdependencies.
Armory Continuous Deployment microservices
Clouddriver is a core component of Armory Continuous Deployment and facilitates the interaction between a given cloud provider such as AWS, GCP or Kubernetes. There is a common interface that is used so that additional cloud providers can be added.
Deck is the UI for interactive and visualizing the state of cloud resources. It depends on Gate to interact with the cloud providers.
Echo is the service for Spinnaker which manages notifications, alerts and scheduled pipelines (Cron). It can also propagate these events out to other REST endpoints such as an Elastic Search, Splunk’s HTTP Event Collector or a custom event collector/processor.
Fiat is the microservice responsible for authorization (authz) for the other microservices. By default, it is not enabled, so users are able to perform any action in Armory Continuous Deployment.
Front50 is the persistent datastore for Spinnaker. Most notabily pipelines, configurations, and jobs.
Gate is the front-end API that is exposed to the users of your Spinnaker instance. It also manages authentication and authorization for sub-service APIs and resources with Spinnaker. All communication between the UI and the back-end services happen through Gate. You can find a list of the endpoints available through Swagger:
Igor is a wrapper API which communicates with Jenkins. It is responsible for kicking-off jobs and reporting the state of running or completing jobs.
Kayenta is Spinnaker’s canary analysis service, integrating with 3rd party monitoring services such as Datadog or Prometheus.
Orca is responsible for the orchestration of pipelines, stages, and tasks within Armory Continuous Deployment. Orca acts as the “traffic cop” within Armory Continuous Deployment making sure that sub-services, their executions and states are passed along correctly.
The smallest atomic unit within Orca is a task - stages are composed of tasks and pipelines are composed of stages.
Rosco is the “bakery” service. It is a wrapper around Hashicorp’s Packer command line tool which bakes images for AWS, GCP, Docker, Azure, and other builders.
Armory Continuous Deployment proprietary microservices
Armory Scale Agent for Spinnaker and Kubernetes
The Scale Agent for Spinnaker and Kubernetes is a lightweight, scalable service that monitors your Kubernetes infrastructure and streams changes back to the Clouddriver service.
Dinghy is the microservice used to manage Pipelines-as-Code. It supports two main capabilities:
- Automatically synchronizing pipeline definitions from an external Github or BitBucket repository to Armory.
- Creating a library of pipeline modules (components) that can be templatized and used in Dinghy-managed pipeline definitions.
The Armory Policy Engine is designed to allow enterprises more complete control of their software delivery process by providing them with the hooks necessary to perform more extensive verification of their pipelines and processes in Spinnaker. This policy engine is backed by Open Policy Agent(OPA) and uses input style documents to perform validation of pipelines during save time and runtime
Terraformer is the microservice behind Armory’s Terraform Integration. It allows Armory to natively use your infrastructure-as-code Terraform scripts as part of a deployment pipeline.
Installation and management
The Armory Operator is a Kubernetes Operator that makes it easy to install, deploy, and upgrade Armory Continuous Deployment.
Was this page helpful?
Thank you for letting us know!
Sorry to hear that. Please tell us how we can improve.
Last modified May 26, 2023: (a7d5a9eb)