Human Factors of XR: Using Human Factors to Design XR Systems
DevOps.docx
1. Prerequisites:
- Programming basics in Java & Python
- Some exposure to AWS cloud
- Basics of Linux OS
- AWS Account with free plan
Tools:
- Mobaxterm
- Intellij community edition
- MongoDB
Overview of DevOps :
- Course outlines
- What is DevOps?
- DevOps vs Site Reliability Engineer vs DevSecOps and where they fit in software development.
- Need of cloud(On premise vs Cloud)
Linux Basics :
- OS
- Virtualization
- Package manager
- Users & Permissions
- FileSystem
- Commands
-- man (man <cmd>)
3. - SSH into remote machine(MobaXTerm): Win to AWS EC2
- API Development(Java/Spring) :
- Create an API in Spring Boot Applications
- Connect with DataBase(MongoDB)
- Hibernate & JPA
- Fetch dynamic data from Database
- Exception handling and error logging
- importance of logging framework
Version Control Mastery:
- Need of VC(GitHub)
- git init
- git status
- git add
- git commit
- git push
- git pull
- git merge
- resolve conflicts
- .gitignore
- Branches & protection rules
- Pull Requests
- Branching strategies
Cloud & Iaas :
4. - Intro to AWS Cloud
- AWS Pricing
- Creating aws account and admin user
- IAM
- Regions & Availability Zones
- VPC, Subnets, Security Groups, Internet Gateway, CIDR blocks, Prefix lists,
- EC2
- Run app using userdata
- AWS CLI, AWS configure from local machine
- S3
- Cloudwatch
- Monitoring EC2 DISK, CPU etc
- Discuss Compute resources on AWS
- ECR
- API Gateway
- Route53
Containers Mastery:
- Container intro
- Containers vs VMs
- Docker intro and Architecture
- Docker commands
- Containerized Spring Boot Application
-- docker login
-- docker build
-- docker tag
5. -- docker push
-- docker images
-- docker images -a
-- docker ps
-- docker ps -a
-- docker rmi
-- docker rm
-- docker exec -it <container_id> /bin/bash
-- docker logs <container_id>
- docker volume mapping with the host machine
- docker network
- pull and run docker images from DockerHub like mysql/MongoDB
CI/CD(Jenkins) Mastery:
- Need of Build automation tool
- Install Jenkins on AWS EC2 manually & automatically using user-data script
- Configure Java & Maven on Jenkins
- Create Pipeline Jobs on Jenkins
- Jenkinsfile & Syntax
- Create Pipeline job using Jenkinsfile
-- Configure GIT with Jenkins Pipeline job
-- Build docker image by pulling the code from GitHub
-- Push Docker image to AWS ECR
- Creating Multibranch Pipeline
- Deploy Java app on AWS EC2 by pulling Docker image from AWS ECR
Python for Scripting:
6. - Basics
- Installation & Package manager
- BOTO3 library
- Upload and download objects using boto3
- Start and Stop EC2 instances using boto3
- EC2 health Checks
- Application Health Checks
Serverless Mastery(AWS Lambda):
- Advantages on Serveless computing
- Create a Python lambda
- Explore template code & template.yml file for deployemnt
- Run Lambda functions locally
- Lambda integration
- AWS SAM for lambda deployment
- Execution Role of Lambda
- Deploying Lambda inside the VPC
- CI/CD pipeline for Lambda deployment using Jenkins and SAM Script
- Things to keep in mind while designing lambda functions.
Loggins & Monitoring:
- Configure AWS EC2 to ship application logs from EC2 to Cloudwatch
- Monitor logs on AWS Cloudwatch
- Cloudwatch Query to filter logs
- Monitor Lambda logs on AWS Cloudwatch
7. Tracing(XRay) :
- Introduction & need to Tracing
- Implementing the XRay Traces on Spring boot apps
- implementing the XRay Traces on AWS Lambda
- Observing the Traces on AWS Cloudwatch Console
IAAC(AWS CDK):
- Need of IAAC
- Setting up AWS CDK on local machine
- Creating the AWS resources using AWS CDK
-- SQS
-- AWS Lambda
-- EC2
DevSecOps:
- Application Security/Pentest
- Installation of ZapProxy
- Security Testing of SPring boot application usinf Zap/ PenTest
Code Quality Check using SONAR Qube:
- Introduction & Need of Sonar
- Installing Sonar server on AWS EC2
- Integrating Sonar with Jenkins for Spring boot application
8. - Fixing sonar reported issues
Other AWS Services:
- AMI
- Discuss the ASG , LoadBalancer, API Gateway, Launch Template & Target Groups Architecture for
Minimizing the downtime
- AWS EventBridge & AWS Batch Jobs
Upcoming:
- Configuration management(Ansible)
- Grafana & Prometheus
- Kubernetes
Workshops:
- End to End Deployment on AWS EC2(Jenkins Demo)
- Automate Database(MongoDB) backups(Linux Scripting Example)
- Take S3 snapshot before prod deployment
- Automate Servers start-shutdown(Jenkins Example)
- Automate DB(MongoDB) data migration for Spring boot Applications(MongoCK)
- AutoScale the servers(EC2+ASG)
- Performance Testing(K6)