Deploy a real world E-Commerce application API using DevOps Best Practices
Deployment is usually one of the aspects that is tackled last when it comes to application development, and until only recently deployment experience for both Developers and Operations teams was very painful.
What you’ll learn
- How to deploy infrastructure with Terraform.
- How to Dockerize applications with Docker.
- How to build custom Images for Virtual Machines with Packer.
- How to create a Continuous Integration & Deployment pipeline with GitHub Actions.
- How to bring different technologies together to achieve painless automated deployment.
Course Content
- Introduction –> 2 lectures • 19min.
- Terraform: Basics –> 10 lectures • 54min.
- Terraform: Deploy Cluster of Webservers –> 12 lectures • 1hr 8min.
- Terraform: State –> 7 lectures • 35min.
- Terraform: Modules –> 9 lectures • 57min.
- Docker –> 7 lectures • 34min.
- Packer –> 14 lectures • 1hr 19min.
- CI/CD –> 1 lecture • 7min.
- API Deployment 1 –> 12 lectures • 1hr 15min.
- Environment Terraform Resource Config –> 13 lectures • 1hr 43min.
- API Deployment 2 –> 7 lectures • 46min.
- Next Steps –> 2 lectures • 2min.
Requirements
Deployment is usually one of the aspects that is tackled last when it comes to application development, and until only recently deployment experience for both Developers and Operations teams was very painful.
To this end, DevOps practices have now been adopted quite widely, and in a nutshell, DevOps is the intersection between Development and Operations.
A lot of tools have been created to tackle the pain points of making a deployment and these fall into different categories, like configuration tools, server templating, and Infrastructure as Code to mention a few.
Now in a lot of tutorials and courses, the focus is on learning and using these tools individually without any real world context. This means that you will need to use these different tools together yourself, and this can be difficult to use them in a real world context.
In this course we will be making a hands on deployment of an E-commerce Node API application with a custom SSL domain using a combination of the deployments tools that are available. These include:
- Git Version control
- Linux
- Bash Scripts
- Terraform
- Docker
- Packer
- Continuous Integration – GitHub Actions
- AWS
We’re going to use all of these tools together to make an automated deployment without any manual steps such as configuring infrastructure resources in the UI console. We’re also going to have the advantage of versioning our infrastructure in Git, which means that should there be any issues we can simply roll back the infrastructure deployed to a previous state very easily.