# ISD Architecture

## **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.

![](/files/mUfQL7Th31uTgUvBUKkT)

#### 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:
   * OES-gate  or
   * 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.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.opsmx.com/opsmx-1/opsmx-context-engine/additional-resources/previous-releases/isd-3.12/opsmx-intelligent-software-delivery-platform/oes-architecture.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
