Stage 1 – Customer Login
The customer logs into the e-commerce application.
The customer enters their credentials. The application authenticates the customer and provides access to their account.
This project creates an automated deployment system for an e-commerce application that allows software updates without stopping the website. When a new version is ready, the system creates a second environment, tests the new version, and gradually moves customer traffic to it. Spinnaker manages the release, while Envoy Proxy controls traffic between the old and new versions. If the new version causes errors or performance problems, the system automatically sends traffic back to the stable version. The main goal is to provide zero-downtime releases, safe deployments, automatic rollback, and continuous availability for the e-commerce application.
To design and implement a highly reliable, zero-downtime release automation pipeline using GitHub Actions, Spinnaker, and Envoy Proxy on Cloud to manage safe deployments, canary releases, and automatic rollback.
The customer logs into the e-commerce application.
The customer enters their credentials. The application authenticates the customer and provides access to their account.
The customer searches and browses available products.
The application retrieves product information such as name, price, description, and availability and displays it to the customer.
The customer selects products and adds them to the shopping cart.
The application stores the selected products and calculates the cart total.
The customer confirms the products and places an order.
The application creates the order, records the customer and product details, and updates the order status.
The customer makes payment for the order.
The application sends the payment request to the payment gateway. After successful payment, the order status is updated.
The customer checks the status of their order.
The application displays the current order status such as Confirmed, Processing, Shipped, or Delivered.
Automates the application build, testing, and packaging process whenever new code is pushed or merged.
Manages the application release process, including blue-green deployments, canary deployments, traffic progression, and automatic rollback when problems are detected.
Controls customer traffic and moves users between the old and new application versions during deployment.
Packages the e-commerce application and its dependencies into containers so the application runs consistently in different environments.
Provides the virtual servers used to run the e-commerce application, Spinnaker, and Envoy Proxy.
Provides the stable Linux operating system for the EC2 servers.
Creates the secure cloud network and separates public traffic from private application environments.
Control network access and protect the application servers from unauthorized traffic.
Provides storage for the operating system, application files, deployment data, and logs.
Stores the Docker container images created by the deployment pipeline so they can be used during application releases.
The solution combines GitHub Actions, Spinnaker, Envoy Proxy, and Docker to create an automated zero-downtime deployment system. The e-commerce application runs in two parallel environments on Cloud EC2. GitHub Actions builds and tests the application, Docker packages it, Spinnaker manages the release, and Envoy Proxy controls customer traffic. The new version is first tested with a small percentage of users. If it works correctly, traffic is gradually increased until all users are moved to the new version. If a problem occurs, traffic is automatically returned to the stable version.