While DevOps culture was already a part of the company prior to working with Craftech, there were certain areas for improvement. Technologies that might not have been the most suitable for the use case were being used, and there was also a lack of standardization when deploying new projects. Their multiple applications also had different implementation approaches, and the use of non-AWS managed services was prevalent. This included the use of docker-compose on EC2 instances or kOps with the deployment of databases using persistent volumes within a self-managed Kubernetes cluster. This led to a high demand for cloud personnel for service maintenance. Infrastructure state wasn’t being maintained in code, and there were no tools for control or traceability of resource deployment.
The main challenge was to assist in achieving a reliable, secure, scalable, and observable infrastructure.
- Standardize the way services are deployed.
- Restructure the cloud infrastructure by segmenting AWS accounts and each environment.
- Apply AWS Well-Architected Framework principles.
- Implement Helm to manage Kubernetes applications.
- Deploy infrastructure as code for better traceability.
- Collaborate with Coinscrap’s DevOps team to educate and instill DevOps culture in the company.
AWS accounts were segmented within the organization, with environments distinguished by networking and user security. EKS clusters were deployed, tools for better observability and resource management were installed, workflow was defined, and the progressive migration of microservices began. These microservices were deployed using Helm charts.
New pipelines were created for this new infrastructure to enable continuous deployment.
Documentation was provided as a reference guide for the Coinscrap team.
A complete logging and monitoring stack was deployed for their applications.
- New applications were deployed, and existing ones were migrated to the new infrastructure in both production and lower environments.
- Application deployment processes were standardized.
- The newly deployed infrastructure is code-based, has a defined state, and is documented, leading to better traceability and making it easy to deploy new infrastructure through code reuse.