- Geeky [Full-stack Dynamic Mathematical game]
- Tattle [Full-stack Real-time Chat app]
- EventApp [Full-stack Event Management app]
- Contained Rails [Multi container Dockerized (docker-compose) application]
- Articles API [REST API Backend]
Linux, Docker, Bash shell, AWS, Ansible, Terraform, Jenkins, GitOps, Prometheus, Grafana, Kubernetes and others
- This project uses AWS CLI to perform EC2 instance related tasks and a bash script to minimize the time it takes for developers to deploy rails code.
- Script is based on Deploy guide by Gorails
Link to blog for walkthrough with screenshots: Project1
- The second project is deploying a Docker image on Amazon ECS cluster.
- Docker Image pushed to Docker Hub
- The rails application lives here (uses branch
main
for ECS deployment) - [Containerd_Rails uses
Docker Compose
when as a multi-container application]
Link to my blog for walkthrough, covering ECR, ECS and the steps to follow: Project2
- Rails application deployed based on Microservices architecture. Used different instance for running
postgres database
andredis cache service
. - Learnt about configuration files and setting up secure remote connections.
- Deployed application: Geeky
- [Edit after Project 4] We can also use Ansible for microservice deployment, automating a large part of this setup
Link to blog for walkthrough with screenshots: Project3
-
Ansible to deploy Rails application
-
Deployed application: Tattle
-
Contains a shell script to be run to set env vars for application deployment, then the main playbook can be run.
-
Link to blog for walkthrough with screenshots: Project4
- Terraform & Ansible: Complete Microservice Infrastructure Automation
- Deployed application: Tattle
- Any rails developer can make use of this project to deploy their application very quickly, setting up the infrastructure and configuring the instances.
Link to blog for walkthrough with screenshots: Project5
- Jenkins for CICD: Automating the workflow Deployed application: EventApp (branch: jenkins) Continuous Integration and Deployment achieved using Jenkins, the Jenkinsfile responds to GitHub webhooks and does the following:
- Prepares environment by installing dependencies
- Clones repository
- Builds Docker image
- Runs RSpec tests
- Pushes the image to the registry (docker hub)
- Sends notification about build status on slack
Requires Global properties -> Environment variables to be set.
Link to the latest auto pushed docker image: EventApp on Docker Hub
Link to blog for walkthrough with screenshots: Project6
- GitOps Project: Deploying to Docker hub when code is pushed to main
- Deployed application: Contained Rails
- DockerHub image: App
Link to blog for walkthrough with screenshots: Project7
- Prometheus and Grafana for monitoring the application
- Deployed and monitored application: Geeky
Link to blog for walkthrough with screenshots: Project8
- App Deployment on Kubernetes Cluster, this project is deployed using kOps on AWS EC2, it ensures data persistence using EBS service by AWS. Services used in this project: EC2, S3, EBS, Route53, IAM, and more.
- One control plane and two worker nodes
- Different manifests for rails and postgres services
- EventApp on GitHub
- EventApp on Docker Hub
Link to blog for walkthrough with screenshots: Project9