PT. Idmarco Perkasa Indonesia or known as idmarco.com is one retailer that focuses on selling daily needs to their customers. They are one the biggest conglomerates group in Indonesia, Salim Group. They sell not only for wholesalers but currently they also sell to personal people who require daily essentials, health products, and many other daily household products. They have been building their business since 2016, and they released their mobile apps for wholesalers in 2018. They currently have 1300 warehouses across Indonesia, and 30,000 members. They are building their business through Indonesia’s marketplace, where they could sell their products too and add more revenue streams to their business.
The application will be made in 2 environments, there are staging & production. We use CodePipeline as automatic deployment tools. So, it can save developer time and increase security because developers do not need to enter the server. We create 2 pipelines (production and staging).
The stages in CodePipeline are divided into 3 stages:
Sources are taken from IDMarco GitHub repository according to application and branch. Then the build process is done via AWS CodeBuild to check quality code automatically, write the application configuration and create the docker image. Including uploading to ECR, and creating ECS tasks
Overall average CodePipeline process from build to deployment, it takes less than 5 minutes. Compared to the manual deployment process takes 1 hour and causes 15 minutes of downtime. This deployment process is up to 12 times faster.
From the security side, we enable Amazon ECR basic scanning type which uses the Common Vulnerabilities and Exposures (CVEs) database from the open-source Clair project. Using automated image scans, we can ensure container image vulnerabilities are found before getting pushed to production.
By implementing CICD, developers do not need access to enter the server to carry out deployment and debug issues. Then we added auto scale based on the cpu and memory utilization threshold to anticipate traffic spikes