diff --git a/src/data/roadmaps/full-stack/content/125-monitoring.md b/src/data/roadmaps/full-stack/content/125-monitoring.md index 0301d9798..7c80901b9 100644 --- a/src/data/roadmaps/full-stack/content/125-monitoring.md +++ b/src/data/roadmaps/full-stack/content/125-monitoring.md @@ -1,6 +1,6 @@ # Checkpoint -You should now implement monitoring and autorestarts for your application using monit. +You should now implement monitoring and autorestarts for your application using monit. Regarding autorestarts, you can also use [pm2](https://pm2.keymetrics.io/). Here are some of the monitors you should implement for the application. @@ -10,3 +10,5 @@ Here are some of the monitors you should implement for the application. - Network Usage - Service Availability - Process Availability + +Monit comes with existing configurations for many services. You can find them in `/etc/monit/conf-available`. You can copy them (and modify if required) to `/etc/monit/conf-enabled` to enable them. diff --git a/src/data/roadmaps/full-stack/content/128-ansible.md b/src/data/roadmaps/full-stack/content/128-ansible.md index a445a9048..57224c2a3 100644 --- a/src/data/roadmaps/full-stack/content/128-ansible.md +++ b/src/data/roadmaps/full-stack/content/128-ansible.md @@ -1,5 +1,10 @@ # Ansible -Ansible is an open-source automation tool that simplifies complex software management, deployment, and configuration processes. It helps automate day-to-day IT tasks by defining them as simple, human-readable YAML files (called 'playbooks') that can be shared and understood easily by the whole team. +Ansible is an open-source configuration management, application deployment and provisioning tool that uses its own declarative language in YAML. Ansible is agentless, meaning you only need remote connections via SSH or Windows Remote Management via Powershell in order to function -> —— In Progress —— +Visit the following resources to learn more: + +- [Ansible Website](https://www.ansible.com/) +- [Official Documentation](https://docs.ansible.com/) +- [Ansible Getting Started Guide](https://www.ansible.com/resources/get-started) +- [Ansible Full Course for Beginners](https://www.youtube.com/watch?v=9Ua2b06oAr4) diff --git a/src/data/roadmaps/full-stack/content/129-automation.md b/src/data/roadmaps/full-stack/content/129-automation.md index c2167e403..bb97ed518 100644 --- a/src/data/roadmaps/full-stack/content/129-automation.md +++ b/src/data/roadmaps/full-stack/content/129-automation.md @@ -1,3 +1,5 @@ # Checkpoint -> —— In Progress —— +Now that you have learnt ansible, you can use it to automate the deployment of your application. + +A task for you at this point would be to automate the steps that you manually performed earlier when setting up the EC2 instance i.e. SSH into the server, install Node.js, Git, PostgreSQL, Running the application etc. Write an ansible playbook that automates these and see if you can spin up a new EC2 instance without SSHing into it and manually installing all the dependencies. diff --git a/src/data/roadmaps/full-stack/content/130-terraform.md b/src/data/roadmaps/full-stack/content/130-terraform.md index 5f94642a8..282eac4f0 100644 --- a/src/data/roadmaps/full-stack/content/130-terraform.md +++ b/src/data/roadmaps/full-stack/content/130-terraform.md @@ -1,5 +1,15 @@ # Terraform -Terraform is an open-source infrastructure as code (IaC) tool that allows you to define, provision, and manage cloud infrastructure in a declarative manner. It is developed by HashiCorp and is written in the Go programming language. Terraform supports multiple cloud providers such as AWS, Google Cloud, Microsoft Azure, and many others. It uses a configuration language called HashiCorp Configuration Language (HCL) to write infrastructure definitions, and it maintains the state of your infrastructure in a state file. +Terraform is an extremely popular open source Infrastructure as Code (IaC) tool that can be used with many different cloud and service provider APIs. Terraform focuses on an immutable approach to infrastructure, with a terraform state file center to tracking the status of your real world infrastructure. -> —— In Progress —— +Visit the following resources to learn more: + +- [Terraform Website](https://www.terraform.io/) +- [Terraform Documentation](https://www.terraform.io/docs) +- [Terraform Tutorials](https://learn.hashicorp.com/terraform) +- [Intro to Terraform Video](https://www.youtube.com/watch?v=h970ZBgKINg&ab_channel=HashiCorp) +- [Terraform CDK Website](https://www.terraform.io/cdktf) +- [What is the CDKTF?](https://www.terraform.io/cdktf/concepts/cdktf-architecture) +- [CDKTF Getting Started Guide](https://learn.hashicorp.com/tutorials/terraform/cdktf-install?in=terraform/cdktf) +- [CDKTF Examples](https://www.terraform.io/cdktf/examples) +- [How to Scale Your Terraform Infrastructure](https://thenewstack.io/how-to-scale-your-terraform-infrastructure/) diff --git a/src/data/roadmaps/full-stack/content/131-infrastructure.md b/src/data/roadmaps/full-stack/content/131-infrastructure.md index c2167e403..4b3b1ef6d 100644 --- a/src/data/roadmaps/full-stack/content/131-infrastructure.md +++ b/src/data/roadmaps/full-stack/content/131-infrastructure.md @@ -1,3 +1,14 @@ # Checkpoint -> —— In Progress —— +If you remember, earlier in the roadmap, you manually logged into the AWS console and had to setup the services. Now that you know terraform, go ahead and automate the process of creating the infrastructure for your application using terraform and with that your deployments will be fully automated i.e., you should have: + +- Infrastructure setup using terraform +- Provisioning using Ansible +- CI/CD using GitHub Actions +- Monitoring using Monit + +And that is it! You have successfully completed the roadmap and are now a full-stack developer. Congratulations! 🎉 + +## What's next? + +Go ahead and build something cool! Share your learnings with the community and help others learn as well. If you have any questions, feel free to join our [discord server](https://discord.gg/cJpEt5Qbwa) and ask away!