Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Infrastructure as Code

Your app works perferctly. However, when you want to make a simple change, you need to deploy your app manually. If you are a lazy developer, then this challange is for you. In this challange, you will implement a continuous deployment pipeline for your TODO app. This means that, when you push your code to your repository, your app will be automatically deployed to your server. Also, you may notice that, when you made a change you do not have an environment to test your changes. In this challange, you will also separate your environments.

In this challenge, it is expected to learn basics of:

  • Continuous Deployment with Github Actions
  • Infrastructure as Code with Terraform
  • Environment
  • AWS SSO
  • AWS CLI

Continuous Deployment is a software development practice where code changes are automatically built, tested, and to an environment. This means that, when you push your code to your repository, your app will be automatically deployed to your server.

Environment

An environment is a place where your app is running. Yo

Terraform

AWS Technologies

Extra Resources

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