├── Readme.md └── Week 1 ├── Configuration Management.md ├── Git.md ├── Hypervisor & Virtual machine.md ├── Important AWS Services.md ├── System Libraries, Linux Benefits & Why move to AWS.md ├── What is DevOps & Why DevOps.md └── What is SDLC & Where do DevOps Engineers come to place in SDLC.md /Readme.md: -------------------------------------------------------------------------------- 1 | This Repository will have things i have learned from Devops Course by Abhishek Veeramalla. 2 | 3 | Contents will be divided week wise. 4 | -------------------------------------------------------------------------------- /Week 1/Configuration Management.md: -------------------------------------------------------------------------------- 1 | Used to manage **Configuration of servers**. Configuration management tools like Ansible, Puppet, Chef, etc are used. 2 | 3 | ## Ansible 4 | 5 | ### Push Mechanism 6 | 7 | Script can be written in 1 place and pushed whenever needed. 8 | 9 | ### Agentless 10 | 11 | (You don't need ansible installed on the servers you are configuring with ansible - means ansible can be on any 1 machine & using it you can configure multiple machines) 12 | 13 | (No master - slave architecture) 14 | 15 | ### Its Simple - since it uses YAML. 16 | 17 | We can write our **own modules** & share it with others using ansible galaxy. 18 | 19 | ### Disadvantage of Ansible 20 | 21 | 1. **Windows modules** aren't that good. 22 | 23 | 2. **Debugging** is not that good. 24 | 25 | 3. Performance isn't good when you do parallel execution. 26 | 27 | (All these are areas to improve) 28 | 29 | ## Does Ansible support AWS? 30 | 31 | -> Yes, it supports almost all cloud providers. Only thing needed is Public IP address, ssh enabled to the machine, ssh allowed to access from ansible host. 32 | 33 | ## Puppet 34 | 35 | 1. **Pull mechanism** 36 | 37 | 2. Master-slave architecture 38 | 39 | 3. Puppet language (Used for Script) 40 | -------------------------------------------------------------------------------- /Week 1/Git.md: -------------------------------------------------------------------------------- 1 | Git is distributed version control system. 2 | 3 | ## Need of Git? 4 | 5 | In real world scenario, there are hundreds of files & packages & many people are working on it simultaneously. So we need a tool to track these files - see things like who created the file, who updated, what was updated, who deleted, what was deleted from the file, etc. 6 | 7 | ## Git branching strategy 8 | 9 | Primary goal of an organization is to ensure that customer gets releases on time & frequently. 10 | 11 | So for this, we need a proper & effective branching strategy. 12 | 13 | ## Why branching? 14 | 15 | Any new changes should not effect our existing application, it should be added only after proper testing. 16 | 17 | Branches are created to fix a particular bug & after testing, the branch is merged 18 | 19 | ## .git 20 | 21 | Its responsible for tracking files & directories. Here we have a directory called hooks, in this we can write a pre-commit if we want to avoid pushing sensitive data. 22 | 23 | ### git add is used to add a file for tracking. 24 | -------------------------------------------------------------------------------- /Week 1/Hypervisor & Virtual machine.md: -------------------------------------------------------------------------------- 1 | ### Hypervisor 2 | 3 | #### Software that can install the virtual machine on your bare metal / Pysical server. 4 | 5 | So now instead of 1 Physical server, we can have multiple Physical server. **(By logical partition of resources)** 6 | 7 | Popular Hypervisor - Vmware, Xen 8 | 9 | ### Virtual Machine 10 | 11 | Functions as virtual computer systems, & they've their own CPU, Memory & also Hardware. It's not dependent on any other V.M. 12 | -------------------------------------------------------------------------------- /Week 1/Important AWS Services.md: -------------------------------------------------------------------------------- 1 | ### EC2 2 | 3 | ### Private VPC 4 | 5 | (For Security, CIDR, Inbound, Outbound) 6 | 7 | ### EBS 8 | 9 | (For Attaching Volume, Detaching, Taking Backups) 10 | 11 | ### S3 12 | 13 | (For Storage - By default Encryption, Versioning) 14 | 15 | ### IAM 16 | 17 | (For Granting / Removing Permissions) 18 | 19 | ### CloudWatch 20 | 21 | (For Monitoring the application) 22 | 23 | ### Lambda 24 | 25 | (Serverless Compute to execute short actions) 26 | 27 | ### Cloud Build Services 28 | 29 | (Like AWS Code Pipeline, AWS CodeBuild, AWS CodeDeploy) 30 | 31 | ### AWS Configuration 32 | 33 | ### Biling & Costing 34 | 35 | ### AWS KMS 36 | 37 | (For Storing Secret Keys, Certificates) 38 | 39 | ### CloudTrail 40 | 41 | (Stores Information about API activities) 42 | 43 | ### AWS EKS 44 | 45 | ### Fargate, ECS 46 | 47 | (ECS is AWS properterier service (its own service) & EKS is fully-managed Kubernetes Service) 48 | 49 | ### ELK 50 | -------------------------------------------------------------------------------- /Week 1/System Libraries, Linux Benefits & Why move to AWS.md: -------------------------------------------------------------------------------- 1 | ## System Libraries 2 | 3 | They are responsible for performing any task. When an user tries to do some task, it comes from the system library, then it goes to the Kernel. 4 | 5 | ## Very Fast, Secure, Open Source, Multiple distributions 6 | 7 | are some of the benefits of using Linux & that's why linux is used as a OS in **Production Systems**. 8 | 9 | ### Kernel - Heart of any OS 10 | 11 | 4 Main things that kernel does - **Device, Memory, Process Management & Handling Systen calls**. 12 | 13 | ## Why move to AWS? 14 | 15 | - **Cost effective** 16 | 17 | - **Less management overhead** 18 | -------------------------------------------------------------------------------- /Week 1/What is DevOps & Why DevOps.md: -------------------------------------------------------------------------------- 1 | ## What is DevOps? 2 | 3 | ### DevOps is a **culture** followed that would increase the organization's ability to **deliver applications**. 4 | 5 | Delivery is improved by ensuring there's proper **Automation, Code Quality, Continous Monitoring / Observability, Continous Testing** - To ensure quality is maintained. 6 | 7 | ## Why DevOps - To Automate entire Deployment process 8 | 9 | Earlier, Sys Admins, Build & Release Engineers, Server Admins, were working closely as a team to deliver the applicaions. All of this was a manual process & it would take a lot of time. 10 | 11 | ### To improve this manual delivery process, everybody moved to automation 12 | -------------------------------------------------------------------------------- /Week 1/What is SDLC & Where do DevOps Engineers come to place in SDLC.md: -------------------------------------------------------------------------------- 1 | ### SDLC - Software Development Lifecycle 2 | 3 | Planning -> Defining -> Designing -> Build -> Testing -> Deploy 4 | 5 | ## Where DevOps Enginners come? 6 | 7 | ### In Build, Test, & Deploy phases of the the Cycle 8 | 9 | - We can automate these processes. 10 | 11 | ### Building - Developing the application 12 | 13 | Developer will read **Jira items**, **documents** prepared during designing phase. 14 | 15 | Write Code -> Push onto Git repository (After Code Review) 16 | 17 | Code is deployed on server -> QA engineers check if quality is maintained or not. 18 | 19 | Deployment - Code is Deployed on Production Server 20 | 21 | ### DevOps Engineers improves these Processes & ensures everything happens in an automated way 22 | --------------------------------------------------------------------------------