DevOps Full Course 2026 | DevOps Tutorial for Beginners | DevOps Training | Edureka
Key Takeaways
This video teaches DevOps tools and techniques for beginners, including certification training and data analytics skills
Full Transcript
Hello everyone and welcome to the DevOps full course. Your complete guide to mastering how development and operations work together to build, test and deploy software faster and more reliably. In this course, we will start with the fundamentals of DevOps including its principles, life cycle, and benefits. Then we will move onto the essential tools like git, docker, kubernetes, genkins, anible, terraform and cicd pipelines. You will also gain hands-on experience with automation, containerization, cloud deployment, monitoring and security best practices, all of which are key to modern software delivery. And by the end of this course, you will be able to confidently apply DevOps practices to real world projects, improve collaboration between teams and accelerate software delivery in any organization. So before we begin, please like, share and subscribe to Edureka's YouTube channel and hit the bell icon to stay updated on the latest content from Edureka. Also do check out Edureka's DevOps training program designed to equip learners with the skills to master AI integrated DevOps. across the entire software delivery life cycle. Through hands-on learning, you will gain expertise in building intelligent, automated and secure CI/CD pipelines. This comprehensive course covers repeat. This comprehensive course covers essential tools like Git, Genkins, Terapform and Sibil, Docker, Kubernetes and monitoring frameworks while also integrating AIdriven solutions for the cloud generation, testing and analytics. Check out the course link given in the description box below. And now let us get started with our first topic that is what is DevOps. >> What is DevOps? DevOps is basically a combination of two words development and operations. So what do we get when we combine these two? Simply speaking, DevOps is a culture that implements technology in order to promote collaboration between development and operations team to deploy code to production faster in an automated and repeatable way. The goal of DevOps is to increase an organization's speed when it comes to delivering applications and services. Many companies have successfully implemented DevOps to enhance their user experience. Let's take for example Facebook's mobile app which is updated every 2 weeks effectively telling users you can have what you want and you can have it now. Ever wondered how Facebook is able to do this so smoothly? It's the DevOps philosophy that helps Facebook ensure that its apps aren't outdated and that its users get the best experience. Facebook accomplishes this through a code ownership model that makes its developers responsible. That includes testing and supporting through production and delivery for each kernel of code they write and update. It's through policies like this that Facebook has developed a DevOps culture and has successfully accelerated its development life cycle. Industries have started to gear up for the digital transformation by shifting their needs to weeks and months instead of years while maintaining high quality. As a result, we will soon see that DevOps engineers have more access and control of the end user than any other person in the enterprise. So, what are you waiting for? Don't be in the sidelines when that happens. To master your skills, enroll in Edurea's DevOps certification program and become a leader. [Music] Now, let's find out what exactly is DevOps. So DevOps is a set of practices that aims to automate and integrate software development and IT operations processes. The term DevOps is a combination of development and operations reflecting the collaboration and communication between these two traditionally separate teams. The infinity symbol is often associated with DevOps as a representation of the continuous and iterative nature of the DevOps life cycle. DevOps is a holistic approach that aims to develop a culture of cooperation and continuous improvement while automating procedures. The end goal is to deliver highquality software faster and more reliably to meet the demands of today's fast-paced digital landscape. In 2008, the term DevOps was officially coined by Patrick Deo, a Belgian consultant and Andrew Schaffer, a system administrator. The concept of DevOps emerged as a response to the challenges and inefficiencies that arose from the traditional approach to software development and IT operations. How is DevOps different from traditional models? DevOps differs from traditional models of software development and IT operations in several key ways. Traditional models often involve separate and distinct phases for development and operation with less emphasis on collaboration, automation, and continuous delivery. Here are some of the key differences between DevOps models and traditional models. Development and operations teams often work in separate departments leading to communication barriers and delays in the software delivery process. DevOps focuses on collaboration and communication between the operations team, development team, and other stakeholders. Teams work together throughout the entire development life cycle, fostering a culture of shared responsibility. Traditional models rely heavily on manual processes for tasks like code deployment, testing and infrastructure provisioning. This manual approach is time consuming and is also prone to errors. DevOps advocates for automation at every stage of the development life cycle. Automation tools and scripts are used to streamline and accelerate processes, reducing the risk of human errors and increasing efficiency. Traditional models often follow a waterfall model with sequential phases. Changes are not frequently released leading to longer development life cycle. Whereas DevOps embraces continuous delivery where incremental changes are delivered frequently. This enables organizations to meet customer needs, release new features and resolve problems more quickly. Traditional models involve manually managing and configuring infrastructure which can result in inconsistencies and difficulties in reproducing code environments. Whereas DevOps utilizes infrastructure as code principles allowing for the automated provisioning and management of infrastructure. This ensures consistency across different environments and facilitates scalability. For traditional models, testing is often performed in isolated phases leading to delays in identifying and addressing integration issues. DevOps adopts continuous integration where developers integrate code changes regularly, triggering automated tests. This helps identify and fix integration issues early in the development process. Monitoring may be limited and issues may not be detected until they impact users or systems. Whereas DevOps emphasizes continuous monitoring to detect and address issues in real time. This proactive approach helps maintain system reliability and provides valuable feedback for continuous improvements. In summary, DevOps represents a departure from the traditional models by promoting collaboration, automation, continuous delivery, and a cultural shift towards shared responsibility. These differences enable organizations to deliver software faster, more reliably, and with greater adaptability to changing requirements. DevOps workflow. A DevOps workflow typically consists of several key stages, each playing a crucial role in the software development and delivery process. Here are four fundamental parts of a DevOps workflow. Continuous integration. Continuous integration is a software development practice that involves regularly integrating code changes from multiple contributors into a shared repository. The main goal of CI is to detect and address integration issues early in the development process promoting a more collaborative and efficient workflow. Continuous testing automated CI processes are triggered whenever developers push code changes to the version control system. So CI involves building and testing the application to ensure that the new code integrates successfully with the existing codebase. Continuous delivery is a software development practice that extends the principles of continuous integration to ensure that code changes are not only integrated and tested but also automatically prepared for release and deployment. The ultimate goal of continuous delivery is to enable continuous and reliable delivery of software to production. Continuous deployment automates the process of deploying code changes to different environments such as development, testing, staging and production. So CD pipelines define the steps involved in deploying applications and they may include tasks like packaging, provisioning, infrastructure and deploying the applications. phases of DevOps life cycle. The adoption of DevOps practices often involves a series of interconnected activities that span the entire software development and IT operations life cycle. The DevOps life cycle is characterized by continuous feedback, collaboration and the iterative improvement of processes. Different phases of the DevOps life cycle can be broken down into eight C's. This is a generalized representation of various phases of the DevOps life cycle. Plan. In the planning phase, development and operations teams collaborate to define project goals, set priorities, and plan the features and improvements to be delivered. This phase involves aligning development efforts with businesses objectives and determining the necessary resources. Quote, "The coding phase involves developers writing and committing code to version control systems. Collaboration and communication between team members are crucial during this phase. Continuous integration practices ensure that code changes are frequently and automatically integrated. Build. The build phase involves compiling the code, running automated tests, and creating executable binaries. This process is often automated through continuous integration tools ensuring that the software is built consistently and tested thoroughly. Test continuous testing is an ongoing process throughout the DevOps life cycle. It includes unit testing, integration testing, performance testing, and other tests to verify the functionality, security, and performance of the software. Automated testing is a key aspect of identifying issues early in the development process. Release. Making sure the environment is ready for the updated software to launch successfully is the main objective of the release phase. Deploy. In the deployment phase, validated changes are automatically deployed to production environments. Continuous delivery practices ensure that the software changes are ready for deployment at any time. Operate. The operations phase involves monitoring the performance and health of applications and infrastructure in real time. Continuous monitoring provides insights into system behavior, allowing for proactive issue detection and resolution. Automated scripts may be used to manage and maintain infrastructure. Monitor continuous monitoring and logging are essential for capturing data on system behavior, user interactions, and performance metrics. Monitoring tools provide visibility into application and infrastructure health, enabling teams to make datadriven decisions and respond to issues promptly. DevOps use cases. Companies across diverse sectors have adopted DevOps practices. It's important to note that the use of DevOps is not limited to a specific sector and organizations of all sizes from startups to enterprises can benefit from its principles. Some examples of companies that were known for their DevOps adoption are Amazon. Amazon has been a pioneer in adopting and promoting DevOps practices particularly within its cloud computing division AWS that is Amazon web services. Amazon heavily emphasizes on CI/CD practices to enable rapid and reliable software releases. Amazon adopts DevOps practices to enhance its service delivery and infrastructure management. Amazon employs a microservices architecture for building and scaling its applications. The company's success in delivering scalable and reliable cloud services is indicative of its effective adoption of DevOps principles. Netflix. Netflix is one well-known example of a company that has embraced DevOps practices to enhance its software delivery processes, ensure high availability and provide an exceptional streaming experience for its users. Netflix has a microservices architecture where its application is divided into a large number of small independently deployable services. This enables teams to develop, deploy and scale services independently, fostering agility and ease of maintenance. Netflix is known for its Charles Monkey and Simeon army tools which are part of its Chowo engineering approach. These tools intentionally introduce failures and disruptions into the system to test its resilience and identify potential weaknesses. Netflix's success in delivering a reliable streaming service with millions of users worldwide is a testament to its effective implementation of DevOps practices. Google Google introduced the concept of site reliability engineering which combines aspects of software engineering and applies them to infrastructure and operations. Google is a pioneer in containerization technology and is one of the main contributors to the Kubernetes container orchestration system. Google Kubernetes Engine is a managed Kubernetes service that enables the deployment and management of containerized applications. Google's DevOps practices extend to its data analytics and machine learning initiatives. Tools like BigQuery and TensorFlow are integrated into the development and deployment process for datadriven decision making and machine learning model management. Spotify Spotify a popular music streaming service has implemented DevOps practices to enhance its software development, delivery and operations processes. Spotify employs a squad model which is a form of cross functional team. Each squad is a small autonomous team responsible for a specific aspect of the product. So this organizational structure promotes collaboration and shared ownership of the entire development and delivery process. Spotify follows agile principles and scrum practices for its iterative and incremental development. Agile methods allow teams to respond quickly to changing requirements and deliver software in small frequent releases. Spotify's emphasis on DevOps principles has enabled the company to maintain its position as a leader in the music streaming industry. Microsoft offers an extensive range of tools and services under the umbrella of Azure DevOps. This includes services like Azure Repos for version control, Azure pipelines for continuous integration and continuous delivery, Azure boards for work tracking and Azure test plans for testing and release management. Microsoft leverages Azure DevOps insights for analytics and reporting. This tool provides visibility into development workflows, code quality, and release pipelines, enabling datadriven decisions and continuous improvement. Facebook is known for its rapid and continuous deployment of features and updates. DevOps practices, including continuous integration and continuous deployment, play a crucial role in enabling frequent and efficient releases. Feature toggles or feature flags may be used to enable or disable specific features without redeploying the entire application. This allows Facebook to conduct AB testing and roll out features gradually. Now that we have an idea about what is DevOps and how it is used in the industry, let's move ahead with the roles and responsibilities of a DevOps engineer. A DevOps engineer is an IT professional who combines software development and IT operations to enhance the efficiency and teamwork of an organization's software development and delivery process. They should ensure fast, reliable, and secure software delivery. A DevOps engineer is responsible for creating scripts and tools to automate various aspects of the software development process such as code integration, testing, and deployment. DevOps engineers frequently work with infrastructure that's managed through code and act as cloud architects. DevOps engineers also carry out quality assurance software testing to understand the effectiveness of various software tools. They put in place mechanisms to monitor the functionality of applications and gather logs in order to identify and fix problems. Let's move on to some essential technical skills required for a DevOps engineer. Version control. DevOps engineers must be proficient in version control systems such as Git to manage and track changes in code and configurations. Scripting and programming skills. A DevOps engineer must have a basic understanding of Linux fundamentals such as file handling, system administration, text processing, and process management. A strong grasp of programming languages is also important for automating tasks and building custom tools. Cloud services. A DevOps engineer should have cloud computing skills and should have an understanding of public cloud services such as AWS, Azure or Google Cloud to deploy and manage applications and infrastructure in the cloud. Testing proficiency in automation testing is crucial as it guarantees DevOps engineers ability to detect errors in software projects and products. Containerization. To deploy and manage applications effectively, a DevOps engineer must be familiar with container orchestration platforms like Kubernetes and containerization technologies like Docker. Moving on to the qualifications and certifications of a DevOps engineer. A bachelor of computer science or a related degree that focuses on software development is a minimum requirement for a DevOps engineer. A post-graduate degree will be beneficial. Industry experience in roles that expose you to scripting and programming languages, cloud technologies, and experience in a leadership role may also be beneficial. Some in- demand DevOps certifications required for a DevOps engineer include AWS certified DevOps engineer professional certificate. So, Edureka offers the AWS DevOps engineer certification training course that improves technical expertise in provisioning, operating, and managing distributed application systems on the AWS platform. Second, certified Kubernetes administrator. Kubernetes certification training by Edureka is curated by top industry experts and will help you clear the official certified Kubernetes administrator era. So this Kubernetes training is live and instructorled and helps you master key Kubernetes concepts with hands-on demonstrations which in turn helps you become a certified Kubernetes professional. Microsoft certified DevOps engineer expert certificate. Edureka's Microsoft Azure DevOps certification AZ 400 course is curated by industry professionals as per the industry requirements and demands. This Azure DevOps training gives you a solid foundation to appear for the Microsoft certified DevOps engineer expert certification. Please check out the training courses offered by Edureka for these certifications. The link to these is in the description box below. Now let's move ahead with some common tools used by a DevOps engineer. Version control. Git widely used for source code version control. Git is the backbone of many DevOps workflows. Git is used to monitor changes in the source code enabling multiple developers to collaborate on nonlinear development. CICD continuous integration continuous deployment is a technique that involves automating different stages of app development to regularly deliver apps to customers. Some popular CI/CD tools are Jenkins, an open-source automation server that supports building, testing, and deploying code. GitLab CI integrated CI/CD solution tightly coupled with version control platforms. TravisCI a cloud-based CI/CD service that integrates with GitHub repositories. Configuration management. Anible, an open-source automation tool for task automation, configuration management, and application deployment. Chef, an automation platform that manages infrastructure as core. Containerization. Docker, a platform for containerizing applications, is one of the most widely used container technologies today. A Docker container image is a lightweight executable standalone software package that includes code runtime, system tools, and system libraries. That is everything needed to run an application. Orchestration. Container orchestration automates the deployment, management, and scaling of networking containers. Kubernetes, an open-source platform for container orchestration that automates containerized application development, scaling, and management. Infrastructure as code. Terraform is the most popular infrastructure provisioning tool. It is a tool for building, changing, and versioning infrastructure as code. Cloud formation AWS native IA tool for defining and provisioning AWS infrastructure. Cloud platforms. Public cloud platforms such as AWS, Microsoft Azure, and GCP offer a wide range of services for building and deploying cloud-based applications. What is CI/CD? CICD brings continuous automation and continuous monitoring to apps at every stage of their life cycle from delivery and deployment to integration and testing. So these connected techniques are often referred to as a CI/CD pipeline and are used by the development and operations teams. CI/CD is a solution to the problems that arise when integrating new code. Continuous integration and continuous delivery are integral components of the DevOps philosophy contributing significantly to the efficiency, reliability and speed of software development and deployment. So let's explore one important CI/CD tool that is Jenkins. Jenkins is an open-source automation server widely used for building, deploying and automating any project particularly in the field of continuous integration and continuous delivery. It helps automate parts of the software development process making it more efficient and reducing manual intervention. So, Jenkins is an amazing tool to build a CI/CD pipeline because of its flexibility, extensibility, and strong community support. Jenkins plays a crucial role in the DevOps tool chain by automating key processes and providing a flexible and extensible platform for developing, testing, and releasing software. Its popularity and widespread adoption make it an essential tool for many DevOps teams. Next, let's explore the installation of Jenkins. The prerequisite of Jenkins is that we should have Java that is JDK installed in our system. If you haven't installed Java, go ahead and install it. You can refer to the Edureka's Java installation video. First, open the web browser and type Jenkins. Open the first link from the official Jenkins website. Yeah, this is the Jenkins website. Let's go ahead and click on download. So now we are directed to this page. Here we can see uh the version download Jenkins 2.4 to 6.1. This is LTS version. So we can download Jenkins using Docker, Kubernetes or an Ubuntu. here in this demo I will be showing how to install Jenkins in Windows. So let's click on this. Yeah. So now Jenkins installer is downloaded. Let's just save it here. Wait for the download. Yeah. So it's preparing to install. Let's now click next. So this is the path where Jenkins will be downloaded. Now here I am not setting up the password and username right now. So I'm just clicking run service as local system. We'll set it after Jenkins is installed. Next. So this is the port where Jenkins will run that is at80. So let's just test if that port is available. So this green tick shows that the port is available. So let's just click on next. So now here we need to paste the JDK link. Okay, the path to our JDK. So for that let's just go. Yeah, this is the path. Let's just copy the path of JDK and let's just paste it here. Click on next. Let this be the default. Click on next. And let's press on install. Yeah. Once that is done, let's go to this link. Click on this link. So now we need to unlock Jenkins. To unlock Jenkins, we need the initial admin password. So the initial admin password is here. Okay. in this link that they have already provided. So let's go to explore. Let's go to our quick access and let's just copy paste this link. Okay, let's just open it using notepad. Yeah, so this is the password. So let's just copy it. and paste it here. Then click on install suggested plugins. So now all these plugins will be installed. Let's just wait for the installation to be over. Yeah. Now we need to create a username. So let's keep it at Eureka and password. Okay. Give your email address as well. Save and continue. Yeah, this is the URL in which Jenkins will run. Let's just save and finish. Now click on start using Jenkins. Yeah. So this is the Jenkins dashboard and we have successfully installed Jenkins in our system. Now that you have installed Jenkins, we can go ahead and create a CI/CD pipeline. Click on new item and name it as Shenkins demo and click on pipeline then okay. Okay, then we need to go down and let's try some existing pipeline. So here we have an already existing pipeline that is hello world. So this is the pipeline script. So basically a Jenkins scripted pipeline is a sequence of stages to perform CI/CD related tasks that can be specified as code. So it enables you to develop a pipeline script and add it to your code repository so that you can version it. So first we have the node block. Okay, that is the pipeline. Then we have the stage block. Here we will define what the pipeline will do. So this step here it will echo hello world. Okay, that is it will print hello world. So this is basically a simple pipeline script. Now let's save it. and let's click on build now. Okay. So here you can see that the pipeline is getting built. And so these are the different stages. Okay. In the stage view you can see different stages of the pipeline that we are pitting. So now here you can see that there is a green tick. Green tick indicates that the pipeline is built. So we'll just go ahead and click on it. Yeah. Now we can see that this is the console output. So here you can see that hello world is printed here. That is e code and our hello world is a success. Next let's see how to pull code from a GitHub repository and build a pipeline. So GitHub is a web-based repository of code that plays a major role in DevOps. It provides a common platform for multiple developers working on the same code or project to upload and retrieve updated code thereby facilitating continuous integration. So Jenkins needs to have a GitHub plugin installed to pull code from the GitHub repository. Also we need to have git installed on the local machine. So download the appropriate git file for your operating system in this case Windows and install it into your local machine. So you can execute git repositories in your Jenkins once git has been installed on your machine. So to check if git has been installed on your system, open command prompt and type git. Yeah, this shows us that git has been installed in the system. The second thing that you need to make sure is that we need to add the git.exe path to the global tool configuration in Jenin. So for that open Jenkins and click on manage Jenkins. Click on tools. Under git installation you can see this path. Okay. This is the path to the git executable. Okay. So for that to get this path go to command prompt and type where git. Yeah. So this is the path to my git executable. So we need to copy this path and paste it here. Okay. And then we save it. Yeah. So that is done. Next what we need to do is we need to create a repository in GitHub. So this is my repository CICD pipeline. This repository I created it for the sake of this demo. So and you'll also have to add a file that is Jenkins. Okay. So this is a document named Jenkins. So the Jenkins file is a text file that includes the description of a Jenkins pipeline. Okay. So this is the pipeline code. So the stage block comprises a number of stages in a pipeline showing the Jenkins pipeline flow. So here there are three stages built, test and deploy. So each stage will print building example. The first stage will print building example. Second will echo testing example and the third deploying example. So now that everything is set, let's go ahead and build the pipeline in Jenkins. Okay. So click on new item, name it as Jenkins demo 2 and then click on pipeline and click on okay. Yeah, here we need to click on GitHub project and for the project URL we need to go to the GitHub repository and click on code. Here we have the HTTPS link. Copy that and paste it here. Then go down and also enable this option that is GitHub hook trigger for gits cm polling. Now once that is done go to pipeline and pipeline script from SCM. Yeah. So now we need to choose our SCM which is git and the repository URL will be the same thing that we had copied. Okay. So ctrl paste and then here under the branches to build replace master with the asterisk. Once that is done you also need to change the script path to Jenkins and save it. Okay. So now our pipeline is ready. Now we'll have to build it. So click on build now. Yeah. Now we can see that our pipeline is getting built. So these are the different stages. You can see the progress here. Yeah. Now the pipeline is built. We can see the green tick. So click on that. This shows us the console output. So you can go down. You can see if the statements are being printed. Now you can see that building example, testing example and deploying example. The three statements are being echoed that is being printed here. So now we have successfully created a pipeline in Jenkins. [Music] Let's start out with what's version control. So to understand what is version control system, we need to understand first why we need a version control system. So we'll see why do we exactly need a version control system. So for that let's take a scenario where there are three developers working remotely on a web application or a mobile application. Now for simplicity's sake let's just assume that it is a streaming application and one of them is working on a streaming page. Let's call them developer one. Developer two is working on a user information page and developer 3 is creating the payment portal. Now all three of them are done with their respective pages at 10:00, 11:00 and 12:00 respectively. Now the thing is all three developers are working in isolation. There may be their own changes. There may be changes in somebody's else's page. They're all kind of adding some new files or modifying older files, changing the source code or something like that throughout the course of this project. But how exactly are they going to collaborate considering that they are working remotely? The solution to this is a version control system. With this system, I'll tell you what happens. At 10:00, developer 1 uploads all the files regarding the streaming page. With a version control system, this modification is recorded and updated to one central directory or folder. So every time you're modifying an older file or adding a new file, it creates a snapshot of the latest version or the latest update of the changes that you've made or all the files that you've uploaded. So the snapshot of your update at 10:00 is saved. And then when developer 2 adds their user info page, this modification is also saved as a snapshot. Now there are two snapshots saved and finally the payment portal page is added and this is the last modification done at 12:00 and this is the most recent snapshot saved along with other snapshots of other updates and modifications done throughout the course of this project. Every change in your project a snapshot is created and your entire project is saved that way. And these snapshots are actually known as different versions which are basically the state of your project at a particular time or at the current time. It means that it'll contain the kind of files your project is storing at one particular time and what kind of changes you have made so far between the previous version and this particular version. And this is exactly how a version control system works. So version control system basically is a system that records changes to a file or a set of files over time so that you can record specific versions later. These versions are recorded in a repository and they can be recalled any time from these repositories during the course of your project. So version control system essentially are of three types. Now the local version control system is one of the simplest forms of VCS and has a database that keeps all the changes of the files under revision control. So all the files are saved by this one user and they manage all of the files. But it's actually really hard to maintain the changes of the file and you can accidentally replace one or the other file that you need. It also needs something known as RCS or revision control system which keeps patch sets or the differences between updates in a special format on your disk. All of this your local version control systems maintains all the track of all the files within your local system. As a user, you can track specifically versions later and it basically works as an independent standalone system for an application. So your applications like spreadsheets and word processors have this control mechanism. So that's one type. Apart from this, you also have your centralized version control system which basically uses a central server to store all the files and enables team collaboration. So it's not one local system but multiple systems which work on a single repository to which users can directly access as a central server. So the repository is a central server that could be local or remote which is directly connected to each of the programmers workstation. And the third kind of VCS is a distributed version control system. Now these systems do not necessarily rely on a central server to store all the versions of a project file. In a distributed version control system, every contributor has a local copy or a clone of the main repository. So everyone maintains their own local repository which contains all the files and the metadata present in the main repository and they can push or commit or update the main repository if and when required. Now we are going to cover more on the latter two version control systems further in the session. So now let's try and understand in depth what's the difference between a centralized version control system and a distributed version control system. As I had mentioned before in a centralized version control system each programmer working on a branch on a project has absolute access to the central server. So the centralized version control system uses a central server to store all the files and everybody on the team can directly access the central server as it is one single repository. So if you have three workstations, workstation one, workstation 2, workstation 3, all of them can directly commit to the repository and get updates from the repository which is your central server. The repository here indicates a server that could be local or remote directly connected to each programmer's workstation. Every programmer can extract or update their workstations with the data present in the repository or can make changes or updates or commit in the repository and every operation is performed directly on this repository. Even though this seems pretty convenient when we are just talking about three people to maintain a single repository like this has some major drawbacks. One of them is that it's not locally available. Meaning every change that you have to make you will have to be connected to a network to perform any action. Also in any case the central server getting crashed or corrupted will result in losing the entire data of the project. Also another small thing which is revertible but is if one person accidentally makes some unwanted updates instead of his or her local system they will be making that changes directly in the central server. So recovering that part back will be again a timeconuming process. This is where distributed version control systems come to the rescue. Now these systems do not necessarily rely on a central server to store all the versions of a project file. In the distributed version control system, each and every contributor has a local copy or a local workstation clone of the main repository. That is everybody maintains a local repository of their own which contains all the files and metadata present in the main repository. You will understand it better if you take a look at the diagram. As you can see, every programmer maintains a local repository or a local copy on its own, which is actually the copy or clone of the central repository on their local hard drive. They can commit and update their local repository without any interference from one another and then they can update their local repositories with new data from the central server by an operation called pull. Once they are done with their bit of the code, they can affect the changes of the main repository by an operation called push from their local repository. Now, this system or this act of cloning an entire repository to your workstation and making all the changes on a local repository gives you a couple of advantages over a centralized version control system. First of all, all the operations except push and pull are very fast because the tool only needs access to the hard drive and not a remote server. Hence, you do not always need to be connected via a network connection or you always do not need an internet connection. Committing new change sets can be done locally without manipulating the data on the main repository. Once you have a group of change sets ready, you can push them all at once. So you complete your set of code on your local system and then you push all the files once and for all into the main repository. Third, since every contributor has a full copy of the project repository, they can share changes with one another on wanting to get some feedback before affecting the changes in the main repository. So this enhances the essence of collaboration amongst a development team. And finally, if the server gets crashed at any point in time, the lost data can be easily recovered from one of the contributors local repository. And that is why distributed version control system has been picking up popularity over the past decade. So why version control is important? First of all, it helps collaboration. It allows remote development, shared workspace and realtime updates. All versions of your code are preserved. Hence, it helps you manage versions of the same code. Easy roll back from current version. Suppose a part of your project has been headed to a wrong direction, you can easily roll back from the current version to the last version which was stable. Now, because you can reverse faulty updates, you can save time and hence it reduces downtime of your project development. And finally, it improves visibility. You can analyze and compare different versions and that gives you like a 50-ft top view of your entire project which just accelerates your product delivery. So now that you have a bare sense of what is version control and why do you need version control, let's understand one of the most popular version control systems that exists today and that is Git. So, Git is a distributed version control tool that supports distributed nonlinear workflows by providing data assurance from developing quality software. So, basically what it does is that it lets you and your team of developers work together on the same project remotely from anywhere across the world. Your team members can work efficiently on files and easily merge their changes into one source without the fear of losing or deleting anything of importance due to the easy roll back feature. Git is primarily used to manage your project comprising of a set of code or text files that you may want to change from time to time. Now, Git is an integral part of DevOps. DevOps as most of you might have the idea of is the practice of bringing agility to the process of development and operations. A couple years ago, it was this entirely revolutionary ideology which swept IT organizations worldwide, boosting project life cycles and in turn increasing profits. DevOps promoted communication between development engineers and operations participating together in the entire life cycle from design through development process to production support. Now in the entire life cycle of DevOps starting from planning of the projects to its deployment and monitoring git plays a vital role when it comes to managing the code that collaborators contribute to the shared repository. This code is extracted for performing continuous integration to create a build and test it on the test server and eventually deploy it to production. Tools like git enable communication between the development and operations team. When you are developing a large project with a huge number of collaborators, it is extremely important to have communication between the collaborators between the developers while making changes in the project. Comet messages in git play a very important role in this particular collaboration or communication amongst the team. The bits and pieces that we deploy or update lies in this version control system such as git. To succeed in DevOps, you need to have all the communication in version control. Hence, git plays an extremely vital role in succeeding at DevOps. And due to this very reason, git has earned way more popularity compared to other version control tools available in the market such as Apachi subversion, concurrent version systems and mercurial. If you compare the interest of git by time with other version control systems, you shall realize that larger companies products are generally developed by developers using git all around the globe. And some famous names out of them are Facebook, Yahoo, Zingga, Kora, Twitter, eBay, Salesforce, Microsoft, and many, many more. Now, lately, all of Microsoft's new development work has been in Git features. Microsoft Migrating.NET and many of its open-source projects on GitHub, which are managed by Git. One of such projects is the light GBM. It's a fast distributed high performance gradient boosting framework based on the decision tree algorithms which is used for ranking classification and many other machine learning tasks. Here git plays an important role in managing this distributed version of light GBM by providing speed and accuracy. So basically to enable version control gate is your go-to solution. It's fast and suitable for handling massive code bases scattered across multiple developers which makes it the most popular tool used today. Now that you know about Git, a terminology we'll be using a lot while talking about Git and GitHub is a repository. Now repository or a repo as it's most commonly known as is a directory or a storage space where your projects can basically live. It can be local to a folder or your computer or it can be a storage space in another online host such as your GitHub. And in this particular space, in this particular directory, you can keep your code files, text files, images, you name it, all of it inside a repository. Through the course of this, we shall also be talking about something known as GitHub, which is nothing but a central repository. The kind that we spoke about when we discussed centralized versus distributed version control systems. There's a central repository and that is where all of your code will live. You have your local repository where you'll make the changes and there you have the central repository to which you will push all of the changes. Yeah. And the central repository is something that all of the developers involved in this particular project in a certain project have access to. All right, moving on. Let's discuss a few Git features which make it so popular amongst organizations as well as individuals. First of all, it's economical. It's free and open-source. Git is released under GPL's general public licenses open-source license. So you don't need to purchase Git. It is absolutely free and since it's open source you can modify the source code as per your requirement. Second is its speed. Now since you do not have to connect to any network for performing all of the operations, it completes all the tasks really fast. Performance tests done by Mozilla showed it was an order of magnitude faster than other version control systems. Fetching version history from locally stored repository can be 100 times faster than fetching it from the remote server. So the core part of git is written in C which avoids runtime overheads associated with other highle languages which makes it extremely fast compared to other version control systems. Next is that git supports nonlinear development. Git supports rapid branching and merging and includes specific tools for visualization and navigation of a nonlinear development history. A core assumption in git is that a change will be merged more often than it's written as it is passed around various reviewers. Hence branches in git are very very lightweight and is only a reference to a single comet. With its parental comets the full branch structure can be constructed. Next, let's talk about the robustness. Nearly every single task in Git is undoable. Git gives each developer a local copy of the entire development history and the changes copied from one repository to another. These changes are imported as additional development branches and can be merged and deleted and recovered the same way as a locally developed branch. Next is the snapshots which are recorded changes made to a file rather than the file itself followed by which you have integrity which means no changes can be made without git recording it. Since every contributor has their own local repository on the events of a system crash the lost data can be recovered from any of the local repositories. You will always have a backup of all of your files and none of the changes made to the central repository will go unlocked by git. Git uses the sa1 or the secure hash function to name and identify objects within its repository and every file every comet is check summed and retrieved by its check sum at the time of the checkout. The git history is stored in such a way that the ID of a particular version. A comet in git's terms depends upon the complete development history leading up to that comet. Once it's published, it's not possible to change the old versions without it being recorded. Then it's a distributed system which means every user has their own copy of the repository and the data is stored locally. Git gives each developer a local copy of the entire development history and the changes are copied from one such repository to another. These changes are imported as additional development branches and can be merged in the same way as a locally developed branch. And finally, it's easy branching. Now, branch management with Git is very simple. It only takes a few seconds to create, delete, and merge branches. Feature branches provide an isolated environment for each change to your codebase. So when a developer wants to start working on something, no matter how big or small, they can create a fresh new branch which is not interfering with the main branch which ensures that the master branch or the main branch always contains production quality code. So any little experimentation that you want to do or little things that you want to try out can always be on a separate feature branch instead of the changes made to your master branch because ultimately your master branch should contain your publishable product. So now that you know the basic features of git, let's try and understand what the basic workflow of git is or how does git work. So the basic overview of how git works goes like this. You basically create a repository or a project with a git hosting tool like Git or Bitbucket. You copy or clone the repository to your own local machine or your working directory. You add a file to your local repository and commit the changes which basically means you save the changes. Then you push the changes to your master branch. Then you make changes to your file and commit. Then you pull the changes to your local machine. You create a branch or a version. Make a change, commit the change. Same process. Open a pull request and merge your branch to the master branch. Now, this is a little complicated listening to it like this. But once we get on to our demonstration, I think things will be way more clear. You can still take a good look at this diagram. But if you don't get it, don't worry. I will be explaining these operations one by one when we get to the demonstration part of this Git tutorial. Moving on, let's get to the good part, the hands-on section. Starting with the installation and setup of Git. Now, there are two ways in which this goes. First of all, for Windows users, you need to install Git Bash for Windows. And for Linux users, you'll have to start by updating the package index and then install git using the terminal. So first of all, for our learners using Windows, you'll have to log on to git sem.com/d downloads and then click on downloads for Windows button and then run the executable file and follow through till you finally install git bash. I'm not going to install it completely as I already have git bash downloaded but I'm still going to open the page to show you guys. All right. So the latest source release is get 2.30.1 on the 8th of Feb. And you can just click on this button. The moment you click on this bu
Original Description
🔥DevOps Certification Training Course with Gen AI: https://www.edureka.co/devops-certification-training
🔥Integrated MS+PGP Program in Data Science & AI:https://www.edureka.co/dual-certification-programs/ms-data-science-pgp-gen-ai-ml-birchwood
Discover the *DevOps Full Course* which will teach you important concepts like infrastructure as code (IaC), CI/CD pipelines, Docker containerization, Kubernetes orchestration, monitoring, and automation. This course will walk you through every step of learning DevOps techniques, regardless of your level of experience or desire to become a DevOps engineer. Start optimizing software delivery right now by watching!
🔥DevOps Engineer Masters Program: https://www.edureka.co/masters-program/devops-engineer-training
00:00:00 Introduction
00:01:44 What is DevOps?
00:03:37 DevOps Explained
00:35:55 What Is Git?
01:30:21 What is GitHub?
01:59:55 What is CI/CD?
02:48:03 what is jenkins?
03:42:22 What is Continuous Testing?
04:24:32 Why Docker?
05:10:40 What is Kubernetes
05:55:13 What is Ansible?
06:20:46 Why Terraform
06:56:13 What is DevSecOps
07:18:57 Monitoring using Prometheus & Grafana
08:25:59 Aws DevOps
08:48:43 what is Azure DevOps?
09:11:29 DevOps Vs Agile
09:17:15 DevOps Tools
09:59:21 Top 5 DevOps Certifications
10:06:44 DevOps Career Path
10:14:13 How to Become a DevOps Engineer?
10:29:06 DevOps Interview Questions
🔴 𝐋𝐞𝐚𝐫𝐧 𝐓𝐫𝐞𝐧𝐝𝐢𝐧𝐠 𝐓𝐞𝐜𝐡𝐧𝐨𝐥𝐨𝐠𝐢𝐞𝐬 𝐅𝐨𝐫 𝐅𝐫𝐞𝐞! 𝐒𝐮𝐛𝐬𝐜𝐫𝐢𝐛𝐞 𝐭𝐨 𝐄𝐝𝐮𝐫𝐞𝐤𝐚 𝐘𝐨𝐮𝐓𝐮𝐛𝐞 𝐂𝐡𝐚𝐧𝐧𝐞𝐥: https://edrk.in/DKQQ4Py
📝Feel free to share your comments below.📝
🔴 𝐄𝐝𝐮𝐫𝐞𝐤𝐚 𝐎𝐧𝐥𝐢𝐧𝐞 𝐓𝐫𝐚𝐢𝐧𝐢𝐧𝐠 𝐚𝐧𝐝 𝐂𝐞𝐫𝐭𝐢𝐟𝐢𝐜𝐚𝐭𝐢𝐨𝐧𝐬
🔵 DevOps Online Training: http://bit.ly/3VkBRUT
🌕 AWS Online Training: http://bit.ly/3ADYwDY
🔵 React Online Training: http://bit.ly/3Vc4yDw
🌕 Tableau Online Training: http://bit.ly/3guTe6J
🔵 Power BI Online Training: http://bit.ly/3VntjMY
🌕 Selenium Online Training: http://bit.ly/3EVDtis
🔵 PMP Online Training: h
Watch on YouTube ↗
(saves to browser)
Sign in to unlock AI tutor explanation · ⚡30
Playlist
Uploads from edureka! · edureka! · 0 of 60
← Previous
Next →
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
ChatGPT Not Working - 4 Fixes | How To Fix ChatGPT Not Working | Why Is ChatGPT Not Working |Edureka
edureka!
Advanced Java script Tutorial | JavaScript Training | JavaScript Programming | Edureka Rewind
edureka!
Java script interview question and answers | Java script training | Edureka Rewind
edureka!
OpenAI API Tutorial using Python | How to use OpenAI GPT-3 API - Ada Babbage Curie Davinci | Edureka
edureka!
What is Unsupervised Learning ? | Unsupervised Learning Algorithms| Machine Learning | Edureka
edureka!
Top 10 Applications of Machine Learning in 2023 | Machine Learning Training | Edureka Rewind - 7
edureka!
Machine Learning Engineer Career Path in 2023 | Machine Learning Tutorial | Edureka Rewind - 6
edureka!
10 Must Have Machine Learning Engineer Skills That Will Get You Hired | Edureka Rewind - 7
edureka!
Data Structures in Python | Data Structures and Algorithms in Python | Edureka | Python Live - 5
edureka!
Python Lists | List in Python | Python Training | Edureka Rewind
edureka!
Predictive Analysis Using Python | Learn to Build Predictive Models | Python Training | Edureka
edureka!
Machine Learning Tutorial | Machine Learning Algorithm | Machine Learning Engineer Program | Edureka
edureka!
How to use Pandas in Python | Python Pandas Tutorial | Python Tutorial | Edureka Rewind
edureka!
Parameters in Tableau | Tableau Parameters Examples | Tableau Tutorial | Edureka Rewind
edureka!
Top 10 Reasons to Learn Tableau in 2023 | Tableau Certification | Tableau | Edureka Rewind
edureka!
Tableau Developer Roles & Responsibilities | Become A Tableau Developer | Tableau | Edureka Rewind
edureka!
Deep Learning With Python | Deep Learning Tutorial For Beginners | Edureka Rewind
edureka!
Realtime Object Detection | Object Detection with TensorFlow | Edureka | Deep Learning Rewind - 2
edureka!
Top 20 Tableau Tips and Tricks in 20 Minutes | Tableau Tutorial | Tableau Training | Edureka Rewind
edureka!
Climate Change Prediction using Time Series | Python Projects | Edureka | DS Rewind - 5
edureka!
ReactJS Installation Tutorial | ReactJS Installation On Windows | ReactJS Tutorial | Edureka Rewind
edureka!
Phases in Cybersecurity | Cybersecurity Training | Edureka | Cybersecurity Rewind - 2
edureka!
What Is React | ReactJS Tutorial for Beginners | ReactJS Training | Edureka Rewind
edureka!
Cybersecurity Frameworks Tutorial | Cybersecurity Training | Edureka | Cybersecurity Rewind- 2
edureka!
React vs Angular 4 | Angular 2 vs React | React & Angular | ReactJS Training | Edureka Rewind - 5
edureka!
ReactJS Components Life-Cycle Tutorial | React Tutorial for Beginners | Edureka Rewind
edureka!
Ethical Hacking using Kali Linux | Ethical Hacking Tutorial | Edureka | Cybersecurity Rewind - 3
edureka!
Types Of Artificial Intelligence | Artificial Intelligence Explained | What is AI? | Edureka
edureka!
Top 10 Applications Of Artificial Intelligence in 2023 | Artificial Intelligence| Edureka Rewind
edureka!
The Future of AI | How will Artificial Intelligence Change the World in 2023? | Edureka Rewind
edureka!
What is Artificial Intelligence | Artificial Intelligence Tutorial For Beginners | Edureka Rewind
edureka!
Google Cloud IAM | Identity & Access Management on GCP | Edureka | GCP Rewind - 5
edureka!
Google Cloud AI Platform Tutorial | Google Cloud AI Platform | GCP Training | Edureka Rewind
edureka!
Projects in Google Cloud Platform | GCP Project Structure | GCP Training | Edureka Rewind
edureka!
How to Become a Data Scientist | Data Scientist Skills | Data Science Training | Edureka Rewind - 3
edureka!
Agglomerative and Divisive Hierarchical Clustering Explained | Data Science Training | Edureka Live
edureka!
Climate Change Prediction using Time Series | Python Projects | Edureka | DS Rewind - 5
edureka!
Data Science Project - Covid-19 Data Analysis | Python Training | Edureka | DS Rewind - 6
edureka!
What is Honeycode? | Introduction to Honeycode | Edureka
edureka!
Difference between Amazon AWS and Google Cloud | GCP Training Google Cloud | Edureka Live
edureka!
DevOps Lifecycle | Introduction To DevOps | DevOps Tools | What is DevOps? | Edureka Rewind
edureka!
Introduction to DevOps | DevOps Tutorial for Beginners | DevOps Tools | DevOps | Edureka Rewind
edureka!
How to Create Login System using Python | Python Programming Tutorial | Edureka Rewind
edureka!
Python Developer | How to become Python Developer | Python Tutorial | Edureka Rewind
edureka!
How to become a Data Engineer | Complete Roadmap to become a Data Engineer| Data Engineer | Edureka
edureka!
Azure Data Engineer Certification [DP 203] | How to Become Azure Data Engineer [2023] | Edureka
edureka!
Data Analyst vs Data Engineer vs Data Scientist | Data Analytics Masters Program | Edureka Rewind
edureka!
DevOps Engineer day-to-day Activities | DevOps Engineer Responsibilities | Edureka Rewind
edureka!
How to Become a DevOps Engineer? | DevOps Engineer Roadmap | Edureka | DevOps Rewind
edureka!
How to Become a Data Engineer? | Data Engineering Training | Edureka
edureka!
How To Become A Big Data Engineer? | Big Data Engineer Roadmap | Edureka Rewind
edureka!
Python Integration for Power BI and Predictive Analytics | Power BI Training | Edureka
edureka!
Power BI KPI Indicators Tutorial | Custom Visuals In Power BI | Power BI Training | Edureka Rewind
edureka!
Apache HBase Tutorial For Beginners | What is Apache HBase? | Big Data Training | Edureka Rewind
edureka!
Big Data Hadoop Tutorial For Beginners | Hadoop Training | Big Data Tutorial | Edureka Rewind
edureka!
Big Data Analytics | Big Data Analytics Use-Cases | Big Data Tutorial | Edureka Rewind
edureka!
What Is Power BI? | Introduction To Microsoft Power BI | Power BI Training | Edureka Rewind
edureka!
Triggers in Salesforce | Salesforce Apex Triggers | Salesforce Tutorial | Edureka Rewind
edureka!
How To Become A Salesforce Developer | Salesforce For Beginners| Salesforce Training Edureka Rewind
edureka!
Java ArrayList Tutorial | Java ArrayList Examples | Java Tutorial | Edureka Rewind
edureka!
Related AI Lessons
⚡
⚡
⚡
⚡
Qwen 3.6 27B Is the Local Dev Sweet Spot — Here's Why
Dev.to · Carter May
Deploying Spring Petclinic Microservices with Docker Compose: An End-to-End DevOps Deployment Experience
Dev.to · Nice Nwogu
Qwen 3.6 27B Is the Local Dev Sweet Spot — Here's Why
Dev.to · Carter May
Terraform Seems Annoying. But It’s Just Saving You.
Medium · DevOps
Chapters (22)
Introduction
1:44
What is DevOps?
3:37
DevOps Explained
35:55
What Is Git?
1:30:21
What is GitHub?
1:59:55
What is CI/CD?
2:48:03
what is jenkins?
3:42:22
What is Continuous Testing?
4:24:32
Why Docker?
5:10:40
What is Kubernetes
5:55:13
What is Ansible?
6:20:46
Why Terraform
6:56:13
What is DevSecOps
7:18:57
Monitoring using Prometheus & Grafana
8:25:59
Aws DevOps
8:48:43
what is Azure DevOps?
9:11:29
DevOps Vs Agile
9:17:15
DevOps Tools
9:59:21
Top 5 DevOps Certifications
10:06:44
DevOps Career Path
10:14:13
How to Become a DevOps Engineer?
10:29:06
DevOps Interview Questions
🎓
Tutor Explanation
DeepCamp AI