Technical Infrastructure
Last updated
Last updated
The Toknox application infrastructure leverages AWS services to create a robust, scalable, and secure environment for deploying services. By utilizing AWS ECS for container orchestration and automating the deployment process with AWS CodePipeline, we ensure efficient resource management and rapid delivery of updates. This document’s part outlines the setup and configuration of the infrastructure components, including source control, build, and deployment stages, as well as security and monitoring practices.
Toknox utilizes GitHub, adopting a Git Flow-like strategy for source control, which is central to managing code versions, supporting feature development, releases, and bug fixes. This setup is integrated with AWS CodePipeline, automating the continuous integration and delivery process that begins with code changes in GitHub triggering the pipeline through a webhook. AWS CodeBuild takes over to compile the code, run tests, and build Docker images according to specifications in a buildspec.yml file, while also pushing these images to Amazon Elastic Container Registry (ECR) for secure hosting. Deployment is handled by AWS ECS, using Fargate to abstract the underlying infrastructure, pulling Docker images from ECR to run in a scalable environment. All these operations are safeguarded within a protected Virtual Private Cloud, ensuring isolation and security, with AWS RDS managing the database layer for high availability and resilience.
Automation and Efficiency: The CI/CD pipeline automates the entire build and deployment process, reducing manual interventions and speeding up the release cycle.
Scalability: ECS and Fargate provide robust scaling options, automatically adjusting resources based on application demand, ensuring high availability and performance.
Security: The use of IAM roles, VPCs, and security groups ensures secure access control and networking configurations, protecting the application and data.
Monitoring and Logging: Integration with AWS CloudWatch enables comprehensive monitoring and logging, providing insights into application performance and facilitating quick issue resolution.