Deploy an ecommerce web app

Deploy an ecommerce web app

Set up an ecommerce web app with a geographically distributed user base.
New customers get $300 in free credits to fully explore and conduct an assessment of Google Cloud.
Who this is for
Developers, new Cloud users and Students
What you'll deploy
An ecommerce web app with a geographically distributed user base. You will learn how to manage traffic and capacity for your workloads during seasonal variations and special events
How you'll deploy
Once you've signed up for Google Cloud, you can deploy through the console.

What is an ecommerce app?

An ecommerce app is a software application that enables users to buy and sell products or services online. Ecommerce apps require different types of features based on consumer types. A key benefit is to be able to add on the necessary functionality as needed, for example a shopping cart, inventory management, wish-lists, or product reviews.

How do you build a multi-functional ecommerce application?

Modern ecommerce applications adopt a microservice architecture, putting each functional unit into a separate service so that the service can be deployed in isolation and scale and replicate as needed. By decomposing the application into the multiple services, only services that are changed need to be redeployed. Each individual service (i.e. displaying product info, cart management, or payment processing) can be updated with minimal impact to the other services. This composability allows you to focus your efforts on the most crucial services to your customers and impact to your business.

What are key design concerns of an ecommerce application?

The essential concerns when developing an ecommerce application:

  • Product catalog management. This includes the ability to add, edit, and remove products from the catalog over time and manage product details such as pricing, availability, and descriptions.
  • Performance. Ecommerce applications need to be able to handle high volumes of traffic without slowing down. Consider, how will you anticipate and adapt to spikes in traffic caused by Cyber Monday sales, holidays, or less predictable events such as natural disasters?
  • User base distribution. This refers to the geographic location of your user base. Ecommerce applications need to be designed to handle different time zones, languages and currencies. Additionally, consider the latency that your users will experience based on where they access your site from.

By carefully considering these factors, you can create an ecommerce application that is successful and meets the needs of your customers.

Solution Details
Solution Architecture
  1. A user interacts with the Cymbal Shops website in their browser, which sends an HTTP request to a Google Cloud Load Balancer. This is a load balancer that sits at the edge of Google's network and directs traffic to the appropriate destination within Google Cloud.
  2. The user request is directed to one of the two GKE clusters where the application frontend is running. By default this is the cluster nearest the user: in our diagram above, the nearest cluster to the user is in Europe, so that's where the request goes.
  3. The request is handled by one or more of the backend microservices that make up the rest of the Cymbal Shops application.
  4. The application's cartservice stores the state of the user's shopping cart while they're visiting the site, using a Redis database. One Redis database is deployed to the US cluster only.
Deploy an ecommerce web app
Google Cloud experience level
Estimated deployment time
21 min
1 min to configure, 20 min to deploy
New customers get $300 in free credits to fully explore and conduct an assessment of Google Cloud.
  • Active Google Cloud account
  • Administrator rights to your project
Solution Architecture
  1. The web client is hosted on Firebase Hosting
  2. The web client calls an API backend written in Python that is running as a Cloud Run service
  3. The configuration and other secrets for the Python application are stored in Cloud Secret Manager
  4. Static assets for the application, and container images are stored in Cloud Storage
  5. CloudSQL for PostgreSQL is used as the relational database backend for the Python application
  6. Cloud Logging, Cloud Trace, and Error Reporting stores logs, OpenTelemetry traces, and error reports sent by Cloud Run and the API server. This enables insight into application behavior and troubleshooting unexpected behavior.
Google Cloud
  • ‪English‬
  • ‪Deutsch‬
  • ‪Español‬
  • ‪Español (Latinoamérica)‬
  • ‪Français‬
  • ‪Italiano‬
  • ‪Português (Brasil)‬
  • ‪简体中文‬
  • ‪繁體中文‬
  • ‪日本語‬
  • ‪한국어‬