Deployment Architecture
Deployment Architecture Overview
Helm Charts for Microservices
In our deployment architecture, each microservice is managed using its dedicated Helm chart. Helm charts are packages of pre-configured Kubernetes resources that define and deploy microservices. By organizing microservices into individual Helm charts, we ensure modularity, ease of management, and scalability for each component of our application.
This modular approach provides several benefits:
Isolation: Each microservice operates independently within its own Helm chart, allowing for isolation and decoupling of services. This isolation enhances fault tolerance and simplifies updates and maintenance.
Customization: Microservices can have their specific configurations and dependencies defined within their Helm charts, making it easier to tailor each service to its unique requirements.
Umbrella Chart for Coordinated Deployment (Gen3 Chart)
To orchestrate the deployment of our microservices and additional development-related resources, we employ the "gen3" Helm chart as our umbrella chart. This "gen3" chart serves as the central point for deploying and managing our application as a whole.
The "gen3" chart includes the following components:
Microservices Helm Charts: All individual microservice Helm charts are incorporated into the "gen3" chart, ensuring a coordinated and cohesive deployment of the entire application stack.
Development Resources: Development tools and resources, such as PostgreSQL and Elasticsearch, are included in the "gen3" chart to streamline the development and testing process. These resources are essential for replicating the production environment in a development context.
Common Chart for Shared Components
To streamline the deployment of shared components and utilities across our microservices, we have a dedicated "common" Helm chart. The common chart includes various components and configurations that are shared among multiple microservices. These components typically encompass:
Database Setup Jobs: Common database setup tasks, such as schema initialization and data migration jobs, are defined within the common chart. This ensures consistent database management across microservices.
Secrets Management: Shared secrets and credentials required by multiple microservices are securely managed within the common chart. This centralization enhances security and simplifies secrets management.
Shared Components: Other components and utilities that are reused across microservices. This promotes code reuse and maintainability.
By centralizing these common features in a dedicated chart, we reduce redundancy, ensure consistency, and simplify the maintenance and updates of shared components.