Skip to content

Instantly share code, notes, and snippets.

@pedes
Created February 8, 2023 13:03
Show Gist options
  • Save pedes/d5f0a6d12728e0399b4b90fbfdcd60fd to your computer and use it in GitHub Desktop.
Save pedes/d5f0a6d12728e0399b4b90fbfdcd60fd to your computer and use it in GitHub Desktop.

ADR [number]: [Title]

Context

[Provide context for the decision, including any constraints or requirements that influenced the decision.]

Decision

[State the decision that was made, including any options that were considered and rejected.]

Status

[Indicate the current status of the decision, such as "proposed", "accepted", "rejected", "superseded", or "obsolete".]

Consequences

[Describe the consequences, both positive and negative, of the decision, including any risks or dependencies.]

Related documents

[List any related documents, such as requirements or design documents, that influenced the decision.]

References

@pedes
Copy link
Author

pedes commented Nov 25, 2024

ADR 001: Mule Applications Deployment Model
Context

Our organization needs to deploy Mule applications while adhering to strict security requirements and ensuring data residency in the geographical region of Europe, specifically Poland. The deployment model must accommodate the following key constraints and needs:

Security Compliance: The solution must comply with strict organizational and regulatory security standards, including data residency within Poland.
Containerized Deployment: Applications must be containerized to align with modern DevOps practices, ensuring scalability, portability, and resource efficiency.
Operational Efficiency: The deployment model should minimize the operational overhead for the DevOps team, promoting automation and ease of management.
Cloud Provider Availability: The chosen deployment model must operate within a supported cloud region. Microsoft Azure is the only cloud provider offering regional availability in Poland that meets our security and compliance requirements.

Given these requirements, the decision to use Runtime Fabric (RTF) on Azure Red Hat OpenShift (ARO) is proposed.
Decision

Deploy Mule applications using MuleSoft Runtime Fabric (RTF) on Azure Red Hat OpenShift (ARO).
Why this decision?

Data Residency in Poland:
    Azure provides robust regional availability in Poland, which is critical to ensuring compliance with local data residency laws and corporate policies.
    ARO operates natively on Azure, leveraging its regional infrastructure.

Enhanced Security and Compliance:
    OpenShift offers enterprise-grade security features such as role-based access control (RBAC), container isolation, and compliance-ready configurations.
    Azure integrates seamlessly with existing security tools (e.g., Azure Security Center, Azure Monitor) to enhance the overall security posture.

Support for Containerized Deployments:
    Runtime Fabric (RTF) is designed to run Mule applications in containerized environments. Coupled with OpenShift’s Kubernetes platform, this ensures scalability, fault tolerance, and efficient resource utilization.

Reduced Operational Overhead:
    ARO is a fully managed OpenShift service, reducing the operational burden on the DevOps team.
    DevOps can focus on application deployment and automation rather than managing underlying infrastructure.

Integration with Azure Ecosystem:
    Leveraging Azure’s ecosystem simplifies connectivity with other Azure services, including Azure Active Directory (for IAM) and Azure Key Vault (for secrets management).

Status

Proposed

This decision will be reviewed and ratified following a detailed evaluation of cost implications, performance testing, and security assessments.
Consequences
Positive Consequences

The deployment model aligns with regulatory and organizational security requirements.
Simplifies the operational load on the DevOps team by leveraging managed services.
Offers a scalable and modern architecture capable of handling future growth.

Potential Trade-offs

Dependency on Azure as the cloud provider (limited flexibility to switch providers in the future).
Requires the DevOps team to gain familiarity with OpenShift and Runtime Fabric if they are not already proficient.

References

[Azure Red Hat OpenShift (ARO)](https://azure.microsoft.com/en-us/products/openshift/)
[MuleSoft Runtime Fabric Documentation](https://docs.mulesoft.com/runtime-fabric/latest/)
[Azure Regional Availability](https://azure.microsoft.com/en-us/global-infrastructure/regions/)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment