Case Study | Sameeksha Chepecoreview
Build and deployment automation always fascinated me. Whatever is done is never all that can be done. However, it’s never in as much limelight as the core functionality of a product is — it doesn’t even grab as much attention as its close friend Test Automation! It’s something the engineering team desires for their day-to-day deployment woes and it definitely boosts productivity by taking away mundane tasks from developers.
We recently came across a requirement to set up a new product on AWS. The product was brand new, moreover, it was built since inception by our own team! We wanted the product to scale well to the rising demands at the same time optimizing the resources to ensure we do not allocate way too much. Scalability should be built into the product right from day 1, rather than applying it when needed like a patchwork… Believing in this paradigm, we decided to automate the build and deployment process.
AWS CodeDeploy pipeline doesn’t have direct integration with the BitBucket source control, however, the Pipelines feature on the BitBucket server allows triggering the AWS CodeDeploy pipeline. We configured the BitBucket pipeline to trigger a commit to the main branch. The BitBucket build creates Docker images, the CodeDeploy pipeline deploys on an EC2 instance. The downtime during the deployment is very minimal, which will be totally eliminated as we move ahead. With AWS auto-scaling groups, the deployment scales up instantaneously when needed. Health checks ensure the deployment is up and running all the time.
The process was lengthy but the outcome was super-satisfying. After figuring out the nitty-gritty of the process, now the development team and the product owners can sit back and relax!!
It just makes us realize how Automation is a huge blessing in our life, to avoid human errors and wasted efforts in repetitive tasks. Not just in our jobs, but even in our everyday life, we see automation playing a huge role. Which real-life automation helps you make life better?