Container Orchestration

Right now, you have a working server side and client side rendered TODO app. Lets imagine that your app has become very popular and you have thousands of users. How you can handle this load? In this challenge, you will learn how to scale your application's computation.

Isolated Environments

A common need in software development is to run your app in an isolated environment. This is especially important in production environments. There are some reasons why you need to run your app in an isolated environment:

  1. Security: Another app that is running on the same machine can affect your app by using file system, network, or memory. This should be avoided because your app may behave unexpectedly.
  2. Performance: Also another app that is running on the same machine can affect your app's performance. For instance, another app can consume all the memory or CPU, which can slow down your app.
  3. Versioning: You may need to run multiple versions of an app on the same machine.

Also, app is not just your backend code. It is also may be a database, a message queue, a cache, a search engine, etc. In order to solve these problems, there are two common approaches: virtual machines and containers.

ECS and ECR

Kubernetes