DevOps is an operational approach aimed at consistently delivering high-quality software by integrating development, building, and deployment processes. It utilizes various tools and services to ensure Continuous Delivery, increasing efficiency, speed, and reliability in software development and application delivery.
DevOps involves planning, coding, building, testing, upon successful testing, deploying and releasing it, operating, monitoring, gathering feedback and planning again. These stages are in a continuous loop ensuring continuous delivery.
Introduction to DevOps Tools:
- Mention of various DevOps tools such as Docker, Kubernetes, Ansible, Terraform, GitHub, Jenkins, Prometheus, and Grafana.
Application Delivery Workflow:
- starting with an idea to developing the code in a development environment, making the build of the code into an executable file in build environment, testing in test environment and then deploying it in the production environment.
- Usage of different tools at different stages of deployment, for overcoming the challenges of manual work and time consumption, and ensuring software consistency and reliability. for example, installing the configuration for the application in various servers, provisioning all the prod servers for consistent delivery.
- Performing Different Stages of Development, Build, Test and Production in Dedicated Servers which run 24/7 to ensure seamless delivery.
- DNS(Domain Name System) used for giving the application a catchy name for users to identify you application on internet.
Introduction to Git and GitHub:
- Collaboration with additional developers to add new code suggestions in a single repository in GitHub to avoid making multiple copies of same version of code.
- Introduction to version control in git, so no version of code is lost if you want to jump back to a specific version.
- Automation of the different stages of Development, Build, Test and Production through pipeline.
- Every time a developer makes a change to the codebase, an automated build process is triggered. This build process compiles the code, runs automated tests, and checks for any errors or bugs.
Introduction to Docker and Containers:
- Packaging of the dependencies in a single container image and pushing it to all the prod servers.
- For instance, if the code is written in Python, Python-related packages must be installed on all servers.
- Docker is the tool for containerization.
Introduction to Kubernetes:
- Kubernetes is a container orchestrator used to manage various containers and how they should be deployed across servers. It ensures it is always run in same way as declared.
Infrastructure as Code (IaC):
- tools like Terraform automate the provisioning and configuration of servers, ensuring they are in the same state at all times.
- Ansible automates server configurations once they are provisioned.
Monitoring and Visualization with Prometheus and Grafana:
- for monitoring the CPU utilization of different servers, the memory consumption, monitor the processes, identify what process is causing higher consumption, etc. Prometheus tool is used, it collects information or metrics from the different servers and stores it centrally.
- To visualize this into charts and Graphs tools like Graphana are used. it gathers feedback about the software lifecycle.
Continuous Improvement and Feedback Loop:
- According to the feedback it jumps back to development stage and it goes in a continuous cycle of coding, building, testing, deploying, operating, monitoring and feedback gathering.
- DevOps as a combination of people, processes, and tools.
- Aim to deliver high-quality software consistently.
This is all I learned briefly from the lecture on my first week of DevOps Bootcamp, further we will be exploring on these in detail, hope all the key points which are covered is right and accurate. Feel free to provide your valuable suggestions.
Looking forward to another productive week of learning and doing Hands-on Labs provided by this course on #kodekloud.
Great insights, Harshit Jain! DevOps sounds like an incredible approach for delivering top-notch software consistently. Thank you for sharing.
Serving Notice Period | Data Engineer @ In Time Tec | Big Data, Data Engineering, Python
10 个月Keep exploring ????