
Explore building a scalable web app with docker, django, nginx, and redis, from virtual environments and microservices to caching, load balancing, horizontal scaling, and defense against denial-of-service.
Install and initialize Anaconda on Linux, create and activate a conda virtual environment, install Django, and manage Python versions to isolate project dependencies.
Install PyCharm, the JetBrains IDE, by downloading the Ubuntu community edition, extracting it, moving it to a programs folder, and creating a desktop entry for easy access.
Install docker on ubuntu and configure the docker group, then verify installation with hello-world, list images and containers, and clean up by removing containers and images.
Trace how a web app handles browser requests through a server stack, uncover architectural drawbacks, and configure PyCharm with Anaconda and a conda environment for Django from requirements.txt.
Explore organizing a web app as microservices behind a load balancer with containerized containers, including a Django web app, a database, and Redis cache, for scalable, decoupled development.
Create and run a docker-based web app: set up app-net, launch MySQL and Python containers, install requirements, run Django migrations, populate 2,786 events, and expose on port 8080.
Create a docker-based load tester to benchmark a web application under simulated database load, using loadtest and curl to measure performance and guide container restart strategies.
set up a production-ready load balancer with nginx and gunicorn to route traffic to a python web app, replacing runserver and configuring docker-based deployment and static file handling.
Test how a load balancer affects web app performance under increasing concurrency, reveal database bottlenecks and latency, and show Nginx configuration as a speed boost beyond Gunicorn tuning.
Add Redis as the default Django cache to serve data from memory, reducing database hits. Dockerize Redis, configure cache with 60-second expiry, cache the events list, and achieve faster responses.
Learn how simulating server-side intense calculations affects performance and how caching strategies balance dynamic content with fast loads.
Scale your web app by adding a second Django container and configuring Nginx load balancing to route traffic to both containers, sharing cache and database for improved throughput under load.
Learn to upgrade a dockerized nginx load balancer by implementing rate limiting for requests per second and connections per IP, configuring burst, buffers, and a custom error page.
Have you found yourself, after having learned about Docker / Django / Redis / Nginx / etc., not fully understanding how to put them into practice and how to best make use of your knowledge and hardware resources to deliver a high-performance web application?
Many of our students have experienced the same thing, so we decided to cover this topic with a hands-on course on the subject.
We structured this course based on real-world applications that we have deployed and are successfully running in production.
This course will take you through:
Setting up your development environment;
Configuring and deploying a Django web application with Docker;
Designing the micro-service architecture;
Assessing a web app's performance;
Improving performance by using modern technologies like: Nginx, Gunicorn, Redis.
Docker and Redis can work wonders on your web app's response time and scalability.
This course will show you how to harness the power of the latest technologies to make the best of your web app.
Join us in this hands-on course that will teach you how to improve the response time of your website and be ready to scale it as it grows.
This course will teach you how to create fast and scalable web applications from the start, how to build the correct architecture and how to adapt your existing web applications for a better performance.
So let's get started!