# ISD Architecture

{% hint style="info" %}
This is an older version of the document. To view the most recent version of the document, click [here](https://docs.opsmx.com/products/opsmx-intelligent-software-delivery-platform/oes-architecture).
{% endhint %}

## **Architecture**

The figure below depicts the component view of the ISD architecture. As mentioned earlier, it consists of two modules, Orchestration and the Data & Intelligence module.

<div align="left"><img src="https://2047464521-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MBEa1hoX6SqpDj-ymNs%2F-MkpPsPPdoZe5LMdQwmc%2F-MkpRV0B7_OfGGoD0Ckj%2F11.png?alt=media&#x26;token=0d238d9f-1987-4ea4-a8cb-e1eca151ed44" alt=""></div>

#### ISD Services

ISD consists of the following services.

1. Autopilot = Verification service
2. SAPOR  = connect with Spinnaker and git/S3 Repo for updating dynamic accounts
3. Visibility  = implementation of approval service
4. Dashboard = Collate data for graphical presentation of applications and pipelines
5. OES-Gate = Authentication gateway
6. Sapor-gate = OPTIONAL: spin-gate with basic-auth for Sapor communication
7. Controller = OPTIONAL: remote deployments (Not shown in the Schematic below)
8. OES-UI  = Serves the UI elements (Not shown in the Schematic below)

These services also use two databases:

1. OES-db : Postgres DB customized for OES
2. OES-redis : Used by OES-gate

Apart from these, OES includes all the Spinnaker components, configured in HA mode. Spinnaker services functional roles are as follows:

* Deck (GUI)
* Gate (API)
* Clouddriver (Deployments)
* Orca (Orchestrator)
* Echo (Notifications)
* Front50 (DB Frontend)
* Redis (Execution cache)

Key communication paths in the ISD:

1. SAPOR Service communicates with the Spinnaker Gateway and makes API calls to retrieve data, update pipelines, etc.
2. SAPOR can also be configured to use Sapor-gate which uses Basic Authentication. This is useful in cases where Spinnaker is configured with 2-factor authentication.
3. Application is designed based on API-gateway architecture. All data from the web-browser goes through:
   1. OES-gate  or
   2. Spin-gate&#x20;

## **Ingress**

ISD requires 5 ingress points:

1. Spinnaker UI : spin-deck service on port 9000
2. Spinnaker Gate: spin-gate service on port 8084
3. OES UI: OES-UI service on port 8080&#x20;
4. OES gate: OES-API service on port 8084
5. Controller: For an agent to contact the controller, we need an ingress/LB. Note that TLS + gRPC traffic needs to be routed to the controller, shown in red.
