Build a serverless ecommerce web app with Python, Cloud Run, Cloud SQL, and Firebase

Learn how to build a modern serverless ecommerce web app using a Django and Cloud Run backend, Cloud SQL data storage, and Firebase.

 

Overview: Building a serverless ecommerce web app

Video

Learn about architecting a serverless, content-driven web application built with a Django backend on Cloud Run, using Cloud SQL for data storage and Firebase. Explore the critical considerations for building a serverless ecommerce web app.

Backend for a serverless content-driven app

Article Optional

This pathway uses the Django REST framework to build its backend. This is a popular choice due to its ease of use, scaling and performance features, and extensive developer community.

Building this backend includes the following:

  • Following the serverless approach to a three-tier web application architecture: the frontend communicates with the Django-based backend, which communicates with data storage services.
  • Using Cloud Build, Django framework features, and Playwright to automate testing and deployment.
  • Deploying the application to Cloud Run and Firebase, which manage the underlying infrastructure and automatically handle scaling.

Learn more about designing the backend for a content-driven web application and the key considerations when selecting an architecture and framework, such as a serverless, containerized approach.

Data Storage for a serverless content-driven app

Article Optional

This application uses CloudSQL for PostgreSQL as a relational database system to store product and transaction data.

This data storage model offers the following for an ecommerce application:

  • Strong data consistency, transactional reliability, and support for advanced SQL-based queries.
  • Automatic scaling and management of the database system.
  • Native connection to Django's data model system, making integration into the backend easier.

Static assets and files, such as product photos, are stored in Cloud Storage, which is optimized for storing, retrieving and serving files and blobs.

For any content-driven application, using a dedicated storage system for static assets offers the following:

  • Automatic scaling, caching and distributed serving of content.
  • Media can be served directly at scale using built-in access control and content delivery features, including the option to connect it to a CDN service such as Cloud CDN.
  • Direct integrations into the backend to simplify the management of data.

Learn more about data storage options for a content-driven web application including how to choose the best database type and data storage model, how to improve your storage's performance, and the regulatory requirements that should be considered.

Frontend for a modern ecommerce application with Lit and Material Web Components

Article Optional

The frontend is broken down into web components using Lit, a well-established framework chosen for its broad browser support and adherence to web standards:

  • Web components make it easy to structure the frontend into small interoperable components supported by all modern browsers.
  • Web components add little performance overhead and simplify development, including abstractions through scoped styles and reactive properties for efficient re-renders.

The UI uses Material Web Components, a UI toolkit built to support Material 3 on the web, which includes the following:

  • UI components that follow accessibility standards for typography, contrast, and more.
  • Elements that follow web forms best practices, which is critical for a smooth shopping and checkout experience.

Learn more about designing and building the frontend for a modern ecommerce application.

Hosting a serverless content-driven app

Article Optional

This application is hosted on Firebase, Cloud Run, and Cloud Storage:

  • Frontend uses client-side rendering and is hosted on Firebase, which automatically manages scaling, latency, and performance.
  • Backend is deployed to Cloud Run, which offers scalable, serverless hosting of containerized applications.
  • Static assets are stored and served directly from Cloud Storage, which is optimized for static files and can be enhanced using a content delivery network (CDN).
  • Deployments to these services are managed through Cloud Build, which handles testing and configuring the environment.

Learn more about hosting and serving options for a serverless, content-driven web application.

Build and deploy a dynamic web application with Python and JavaScript

Article

Explore the sample ecommerce application through a jump-start solution - "Dynamic Web Application with Python and JavaScript."

As you explore the application, consider the critical parts discussed in this pathway: the backend, data storage, hosting, and frontend.

Deploy and run it directly on Google Cloud and see how to structure and build a modern ecommerce web application with Django, Firebase, Cloud Run, and Cloud SQL.

To get started, open the article and deploy the application. Alternatively, you can explore the code on GitHub or try it directly in your Google Cloud project.

Quiz

Test your knowledge and earn your build a serverless ecommerce web app badge.