Architect requires no code changes to your applications, and works with any Dockerized services.
Simply write a component that describes your services, the interfaces it exposes, and any components it depends on, and Architect will make it discoverable and deployable.
# architect.yml
name: architect/component
description: Description of my component
parameters:
LOG_LEVEL:
default: info
dependencies:
other/component: latest
services:
api:
build:
context: ./path/to/api/src/
interfaces:
main: 8080
environment:
LOG_LEVEL: ${{ parameters.LOG_LEVEL }}
OTHER_COMPONENT_ADDR: |
${{ dependencies['other/component'].interfaces.public.url }}
interfaces:
public:
description: Exposes the API service to outside connections
url: ${{ services.api.interfaces.main.url }}
With each deploy, the first thing we do is traverse your dependencies and distill the application into a set of nodes (services) and edges (networking). This gives our platform a full view of your application topology.
Once we’ve graphed your application, we’re able to lace in global rules to apply to the nodes and edges of your application graph.
Production needs to support a higher degree of security and scalability than private developer environments. The ability to apply rules globally affords production engineers with wide capabilities without the need to be intimitely aware of the application architecture.
Armed with an enriched graph that represents the end-state of the application deployment, Architect can compare it to the live application state to show you exactly what needs to change.
Never get caught off-guard by disparate service changes again. By treating your application as a single unit, Architect is able to prevent breaking changes and minimize the risk of each deployment.
Every graph Architect generates as a result of a deployment gets stored on the platform to ensure your cloud remains compliant. This holistic state persistence also allows the platform to instrument push-button rollbacks with ease should anything ever go wrong!