Source code is potentially your most valuable asset which requires an efficient management tool with security with role-based access controls. Manual deployments are time-consuming, much buggier and more prone to breaks. Once we deploy applications on production servers, we need to ensure that high availability and efficient monitoring of server resources and application state. One of the main challenges is in achieving high availability, durability, and scalability. We want to minimize the management burden of supporting the underlying infrastructure. So that, team can focus on development faster and can provision resources in an optimal way for their on-demand needs. One of the challenges is to take automatic backups which helps to restore application from an earlier point in time to help the business recover from an unplanned event.
DevOps software implementations help developers and operations teams build, test, deploy and monitor applications with speed, quality and control by removing manual steps, reduce errors, increase team agility and scale beyond small, isolated teams.
We have chosen AWS Maged CodeCommit for managing code by synchronization of code from GitLab with help of codemirror. We have chosen AWS managed services like Amazon RDS for PostgreSQL for database, EC2 Spot Instances for EKS nodes to deploy applications from Amazon Elastic Container Registry, and AWS ElastiCache for Redis for server side caching to improve performance of the application. This helped us in minimizing the management burden of supporting the underlying infrastructure.
Gitlab Runners are responsible for running CI jobs, and the actual jobs are described as YAML files stored in Gitlab’s git repository along with source code. We have used Amazon CloudWatch to monitor your infrastructure and then extend capabilities through Prometheus. For interactive visualization of metrics, we have used AWS service Amazon Managed Service for Grafana (AMG).
Amazon S3 is durable, secure, and highly available by design making it the preferred choice to store EBS-level backups.