Implementing CI/CD pipeline for E-commerce Platform and CMS/ Website Deployed on Azure using GitHub Actions.
Challenge
An e-commerce platform and a CMS website faced significant challenges in their development and deployment processes, as the project utilized agile methodologies and required daily deployments.
Manual Deployment Process: Deployments were manual, occurring 2-3 times daily, each taking 9-12 minutes and requiring a dedicated resource.
Limited Developer Access: Deployment was restricted to a dedicated resource, causing delays.
Inconsistent Deployments: Manual handling led to potential errors.
Solution
Backend CI/CD Process.
The backend was hosted on Azure Web Apps and deployments were done manually.
To automate the backend services, we implemented a CI/CD pipeline using GitHub Actions. The process starts when developers push code to the main or environment-specific branches, triggering a GitHub action defined by a YAML file. This action builds and runs the application and creates a Docker image from the code, which is then pushed to the Azure Container Registry (ACR). ACR triggers a webhook that deploys the latest Docker image to Azure Webapps, ensuring the latest changes are live and verifiable via Azure Web App logs.
Frontend CI/CD Process.
The frontend application was deployed on Azure Static Web Apps.
For the frontend, we set up a CI/CD pipeline that also uses GitHub Actions. When developers push code to the relevant branch, a GitHub action defined by a YAML file is triggered. The pipeline builds the frontend application and deploys it directly to Azure Static Web Apps, leveraging its built-in CI/CD capabilities for hosting static web applications.
Benefits
Deployment Time Reduction: Decreased from 9 - 12 minutes to 3 minutes (70% - 75% reduction).
Resource Efficiency: No longer required a dedicated resource for deployments.
Increased Deployment Frequency: Enabled deployments on each code push.
Developer Autonomy: All developers gained the ability to perform deployments, reducing bottlenecks and delays.
Implementing the CI/CD pipeline significantly streamlined the development and deployment processes for both the e-commerce platform and the CMS/ website, ensuring rapid, reliable, and scalable updates.