title
DevOps Tutorial for Beginners | Learn DevOps in 7 Hours - Full Course | DevOps Training | Edureka

description
🔥 Edureka DevOps Training (Use Code "𝐘𝐎𝐔𝐓𝐔𝐁𝐄𝟐𝟎"): https://www.edureka.co/devops-certification-training This Edureka DevOps Tutorial for Beginners will help you learn DevOps concepts and DevOps tools with examples and demos. You will understand how a DevOps pipeline can be imagined for existing infrastructure. Furthermore, it will cover different DevOps tools & phases. Below are the topics covered in this Full Course DevOps Tutorial for Beginners: 00:00 Introduction 2:06 Waterfall Model 3:35 Limitations of Waterfall Model 6:39 Agile Methodology 7:32 Waterfall vs Agile 8:20 Limitation of Agile Methodology 11:21 What is DevOps? 13:06 DevOps Stages 17:02 Source Code Management 21:40 Introduction to Git 23:50 Basic Git Commands 28:50 Continuous Integration 30:19 Continuous Delivery 31:33 Continuous Deployment 34:06 Jenkins Demo 35:44 Configuration Management 41:56 Containerization 45:15 Docker Demo 47:38 Continuous Monitoring 49:28 Introduction to Nagios 51:53 DevOps Use-Case 1:00:27 Git & GitHub 1:01:21 Version Control System 1:03:43 Why Version Control? 1:04:08 Collaboration 1:05:56 Storing Versions 1:08:06 Backup 1:09:57 Analyze 1:10:54 Version Control Tools 1:13:04 Git & GitHub 1:17:06 GitHub Case Study 1:20:33 What is Git? 1:21:33 Features of Git 1:32:42 What is a Repository? 1:33:26 Central & Local Repository 1:35:15 Git Operations & Commands 1:36:00 Creating Repositories 1:43:32 Syncing Repositories 1:47:22 Making Changes 1:56:12 Parallel Development 1:56:25 Branching 2:01:00 Merging 2:06:35 Rebasing 2:20:36 Git Flow 2:27:04 Continuous Integration using Jenkins 2:27:44 Process Before Continuous Integration 2:28:29 Problem Before Continuous Integration 2:33:27 What is Continuous Integration? 2:34:09 Continuous Integration Case Study 2:36:48 What is Jenkins? 2:36:58 Jenkins Plugins 2:39:52 Jenkins Example 2:52:39 Shortcomings of Single Jenkins Server 2:53:19 Jenkins Distributed Architecture 2:56:50 Introduction to Docker 2:57:39 Why we need Docker 3:01:39 What is Docker? 3:05:30 Docker Case Study 3:08:50 Docker Registry 3:10:22 Docker Image & Containers 3:14:33 Docker Compose 3:21:14 Kubernetes 3:21:14 Kubernetes Installation 3:48:35 Introduction to Kubernetes 3:55:20 Kubernetes: Container Management Tool 3:57:44 Kubernetes Features 4:01:40 Uncovering Myths About Kubernetes 4:07:06 Kubernetes vs Docker Swarm 4:12:09 Kubernetes Use-Case: Pokemon Go 4:18:42 Kubernetes Architecture 4:20:15 Working of Kubernetes 4:21:40 Kubernetes Hands-on 4:52:06 Ansible 4:53:03 Configuration Management 4:54:42 Why Configuration Management 5:03:30 Configuration Management Tools 5:04:17 What is Ansible? 5:04:48 Features of Ansible 5:06:32 Ansible Case Study: NASA 5:13:32 Ansible Architecture 5:17:05 Writing a Playbook 5:18:37 Ansible Playbook Example 5:20:12 How to use Ansible? 5:28:53 Ansible Hands-on 5:48:23 Introduction to Puppet 5:49:07 Why Configuration Management? 5:53:06 What is Configuration Management? 5:55:22 Configuration Management Components 5:56:39 Configuration Management Tools 5:57:07 What is Puppet? 5:57:55 Puppet Master-Slave Architecture 5:59:33 Puppet Master Slave Connection 6:03:46 Puppet Use-Case 6:05:20 Resources, Classes, Manifests & Modules 6:21:01 Continuous Monitoring using Nagios 6:21:36 Why Continuous Monitoring? 6:25:36 What is Continuous Monitoring? 6:29:35 Continuous Monitoring Tools 6:30:07 What is Nagios? 6:31:43 Nagios Features 6:32:26 Nagios Architecture 6:35:24 Monitoring Remote Linux Hosts 6:37:15 Nagios Case Study 6:33:26 Nagios Demo 🔹Edureka DevOps Tutorial Playlist: https://bit.ly/3iJoJIP 🔹Edureka DevOps Tutorial Blog Series: https://goo.gl/05m82t Edureka DevOps Trainings 🔵DevOps Online Training: http://bit.ly/2GV1SG2 🔵Kubernetes Online Training: http://bit.ly/2v3VSbu 🔵Docker Online Training: http://bit.ly/2v9TYG8 🔵Azure DevOps Online Training: https://bit.ly/3oLqmba 🔵AWS Certified DevOps Engineer Online Training: http://bit.ly/2OvjmwZ 🔵DevOps Engineer Masters Program: http://bit.ly/2Osdpkq University Program 🌕 Professional Certificate Program in DevOps with Purdue University: https://bit.ly/3yqRlMS ⏩ NEW Top 10 Technologies To Learn In 2024 - https://www.youtube.com/watch?v=vaLXPv0ewHU Instagram: https://www.instagram.com/edureka_learning Facebook: https://www.facebook.com/edurekaIN/ Twitter: https://twitter.com/edurekain LinkedIn: https://www.linkedin.com/company/edureka SlideShare: https://www.slideshare.net/edurekaIN #edureka #DevOpsEdureka #DevOpsTutorial #DevOpsTraining #DevOpsTools - - - - - - - - - - - - - - For more information, please write back to us at sales@edureka.in or call us at IND: 9606058406 / US: +18338555775 (toll-free).

detail
{'title': 'DevOps Tutorial for Beginners | Learn DevOps in 7 Hours - Full Course | DevOps Training | Edureka', 'heatmap': [{'end': 978.74, 'start': 731.03, 'weight': 0.764}, {'end': 1957.543, 'start': 1218.919, 'weight': 0.879}, {'end': 2444.909, 'start': 2194.981, 'weight': 0.79}], 'summary': "This 7-hour devops tutorial covers devops methodology and tools, version control systems, docker, jenkins, kubernetes, ansible, puppet, and nagios, emphasizing practical workflows and benefits. it compares methodologies like waterfall, agile, and devops, explores microservice architecture, and provides hands-on guides for setting up kubernetes and deploying applications, using ansible for it infrastructure, and configuring puppet. additionally, it showcases real-world success stories, such as pokemon go's scaling with kubernetes and bitnetics' dramatic improvement in it management and monitoring for an e-commerce retailer.", 'chapters': [{'end': 231.277, 'segs': [{'end': 42.42, 'src': 'embed', 'start': 10.97, 'weight': 6, 'content': [{'end': 12.732, 'text': 'Welcome everyone to Edureka YouTube channel.', 'start': 10.97, 'duration': 1.762}, {'end': 17.095, 'text': "My name is Saurabh and today I'll be taking you through this entire session on DevOps full course.", 'start': 13.052, 'duration': 4.043}, {'end': 22.78, 'text': 'So we have designed this crash course in such a way that it starts from the basic topics and also covers the advanced ones.', 'start': 17.736, 'duration': 5.044}, {'end': 26.103, 'text': "So we'll be covering all the stages and tools involved in DevOps.", 'start': 23.341, 'duration': 2.762}, {'end': 28.405, 'text': 'So this is how the modules are structured.', 'start': 26.964, 'duration': 1.441}, {'end': 31.148, 'text': "We'll start by understanding what is the meaning of DevOps?", 'start': 28.786, 'duration': 2.362}, {'end': 33.109, 'text': 'What was the methodology before DevOps?', 'start': 31.528, 'duration': 1.581}, {'end': 36.032, 'text': 'Right, so all those questions will be answered in the first module.', 'start': 33.67, 'duration': 2.362}, {'end': 42.42, 'text': 'Then we are going to talk about what is Git, how it works and what is the meaning of version control and how we can achieve that with the help of Git.', 'start': 36.596, 'duration': 5.824}], 'summary': 'Devops full course covering basic and advanced topics, stages, and tools.', 'duration': 31.45, 'max_score': 10.97, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hQcFE0RD0cQ/pics/hQcFE0RD0cQ10970.jpg'}, {'end': 171.366, 'src': 'embed', 'start': 144.575, 'weight': 0, 'content': [{'end': 148.197, 'text': 'waterfall development has distinct goals for each phase of development.', 'start': 144.575, 'duration': 3.622}, {'end': 152.899, 'text': "Now you must be thinking why the name waterfall model because it's pretty similar to a waterfall.", 'start': 148.897, 'duration': 4.002}, {'end': 154.699, 'text': 'Now what happens in a waterfall?', 'start': 153.359, 'duration': 1.34}, {'end': 158.301, 'text': 'once the water has flowed over the edge of the cliff, it cannot turn back.', 'start': 154.699, 'duration': 3.602}, {'end': 161.162, 'text': 'the same is the case for waterfall development strategy as well.', 'start': 158.301, 'duration': 2.861}, {'end': 164.843, 'text': 'an application will go to the next stage only when the previous stage is complete.', 'start': 161.162, 'duration': 3.681}, {'end': 168.525, 'text': 'So let us focus on what are the various stages involved in waterfall methodology.', 'start': 165.424, 'duration': 3.101}, {'end': 171.366, 'text': 'So notice the diagram that is there in front of your screen.', 'start': 169.245, 'duration': 2.121}], 'summary': 'Waterfall development has distinct stages with no turning back.', 'duration': 26.791, 'max_score': 144.575, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hQcFE0RD0cQ/pics/hQcFE0RD0cQ144575.jpg'}, {'end': 207.621, 'src': 'embed', 'start': 179.982, 'weight': 3, 'content': [{'end': 182.584, 'text': 'So you gather that requirement and you try to analyze it.', 'start': 179.982, 'duration': 2.602}, {'end': 186.765, 'text': 'Then what happens, you design the application, how the application is going to look like.', 'start': 183.084, 'duration': 3.681}, {'end': 189.687, 'text': 'Then you start writing the code for the application and you build it.', 'start': 186.925, 'duration': 2.762}, {'end': 194.569, 'text': 'When I say build it, it involves multiple things, compiling your application, unit testing.', 'start': 190.107, 'duration': 4.462}, {'end': 196.79, 'text': 'Then even it involves packaging as well.', 'start': 195.089, 'duration': 1.701}, {'end': 201.852, 'text': 'After that, it is deployed onto the test servers for testing and then deployed onto the prod servers for release.', 'start': 197.27, 'duration': 4.582}, {'end': 204.633, 'text': 'And once the application is live, it is monitored.', 'start': 202.372, 'duration': 2.261}, {'end': 207.621, 'text': 'Now I know this model looks perfect and trust me guys.', 'start': 205.299, 'duration': 2.322}], 'summary': 'Development process involves requirement gathering, design, coding, testing, deployment, and monitoring.', 'duration': 27.639, 'max_score': 179.982, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hQcFE0RD0cQ/pics/hQcFE0RD0cQ179982.jpg'}, {'end': 245.779, 'src': 'embed', 'start': 216.567, 'weight': 2, 'content': [{'end': 219.729, 'text': 'So first one is once the application is in the testing stage,', 'start': 216.567, 'duration': 3.162}, {'end': 224.232, 'text': 'it is very difficult to go back and change something that was not well thought out in the concept stage.', 'start': 219.729, 'duration': 4.503}, {'end': 231.277, 'text': "Now what I mean by that suppose you have written the code for the entire application, but in testing there's some bug in that particular application.", 'start': 224.752, 'duration': 6.525}, {'end': 238.757, 'text': 'Now, in order to remove that bug, you need to go through the entire source code of the application, which used to take a lot of time, right?', 'start': 231.835, 'duration': 6.922}, {'end': 241.978, 'text': 'So that is one a very big limitation of waterfall model.', 'start': 239.097, 'duration': 2.881}, {'end': 245.779, 'text': 'apart from that, no working software is produced until late during the life cycle.', 'start': 241.978, 'duration': 3.801}], 'summary': 'Waterfall model has limitations in testing, leading to time-consuming bug fixes and late software production.', 'duration': 29.212, 'max_score': 216.567, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hQcFE0RD0cQ/pics/hQcFE0RD0cQ216567.jpg'}], 'start': 10.97, 'title': 'Devops methodology and waterfall model', 'summary': 'Covers the devops methodology, its stages, and tools, and provides a detailed explanation of the waterfall model with its stages and disadvantages, emphasizing its linear and sequential nature and the difficulties in making changes during the testing stage.', 'chapters': [{'end': 104.172, 'start': 10.97, 'title': 'Devops full course overview', 'summary': 'Covers an overview of a devops full course, including discussions on various stages and tools involved in devops and the structured modules covering topics from basic to advanced, with specific details about each tool and technology mentioned and their instructors.', 'duration': 93.202, 'highlights': ['The session covers an overview of a DevOps full course, including discussions on various stages and tools involved in DevOps and the structured modules covering topics from basic to advanced.', 'The course includes teachings on Git, Jenkins, Maven, Git and GitHub, Docker, Kubernetes, Ansible, Puppet, and NagiOS for continuous monitoring.', 'The instructors for specific sessions include Saurabh, Ms. Reshma, Varadhan, and others.', 'Puppet is a mature tool in the market since 2005, while Ansible is trending in the market for configuration management.', 'The chapter emphasizes the reasons for needing DevOps and how it overcomes the limitations of traditional software delivery methodologies.']}, {'end': 231.277, 'start': 104.692, 'title': 'Devops methodology and waterfall model', 'summary': 'Discusses the devops methodology, its stages and tools, and provides a detailed explanation of the waterfall model, its stages, and disadvantages, emphasizing its linear and sequential nature and the difficulties in making changes during the testing stage.', 'duration': 126.585, 'highlights': ['The waterfall model describes a development method that is linear and sequential, with distinct goals for each phase of development, and was first documented in the year 1970 by Royce.', 'The various stages involved in the waterfall methodology include gathering requirements, analysis, design, coding, building, testing, deployment onto test servers, deployment onto production servers, and monitoring.', 'Disadvantages of the waterfall model include the difficulty in making changes during the testing stage, as it is very difficult to go back and change something that was not well thought out in the concept stage.']}], 'duration': 220.307, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hQcFE0RD0cQ/pics/hQcFE0RD0cQ10970.jpg', 'highlights': ['The course includes teachings on Git, Jenkins, Maven, Git and GitHub, Docker, Kubernetes, Ansible, Puppet, and NagiOS for continuous monitoring.', 'The session covers an overview of a DevOps full course, including discussions on various stages and tools involved in DevOps and the structured modules covering topics from basic to advanced.', 'The chapter emphasizes the reasons for needing DevOps and how it overcomes the limitations of traditional software delivery methodologies.', 'Puppet is a mature tool in the market since 2005, while Ansible is trending in the market for configuration management.', 'The various stages involved in the waterfall methodology include gathering requirements, analysis, design, coding, building, testing, deployment onto test servers, deployment onto production servers, and monitoring.', 'The waterfall model describes a development method that is linear and sequential, with distinct goals for each phase of development, and was first documented in the year 1970 by Royce.', 'Disadvantages of the waterfall model include the difficulty in making changes during the testing stage, as it is very difficult to go back and change something that was not well thought out in the concept stage.', 'The instructors for specific sessions include Saurabh, Ms. Reshma, Varadhan, and others.']}, {'end': 1061.479, 'segs': [{'end': 255.202, 'src': 'embed', 'start': 231.835, 'weight': 2, 'content': [{'end': 238.757, 'text': 'Now, in order to remove that bug, you need to go through the entire source code of the application, which used to take a lot of time, right?', 'start': 231.835, 'duration': 6.922}, {'end': 241.978, 'text': 'So that is one a very big limitation of waterfall model.', 'start': 239.097, 'duration': 2.881}, {'end': 245.779, 'text': 'apart from that, no working software is produced until late during the life cycle.', 'start': 241.978, 'duration': 3.801}, {'end': 249.38, 'text': 'We saw that when we are discussing about various stages of waterfall more.', 'start': 246.219, 'duration': 3.161}, {'end': 255.202, 'text': 'There are high amount of risk and uncertainty, which means that once your product is live, it is there in the market.', 'start': 249.82, 'duration': 5.382}], 'summary': 'Waterfall model has limitations: time-consuming bug fixes, late software production, high risk and uncertainty.', 'duration': 23.367, 'max_score': 231.835, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hQcFE0RD0cQ/pics/hQcFE0RD0cQ231835.jpg'}, {'end': 661.18, 'src': 'embed', 'start': 636.416, 'weight': 0, 'content': [{'end': 643.421, 'text': 'now we are going to look at the solution to all the problems that we have just discussed, and the solution is none other than devops.', 'start': 636.416, 'duration': 7.005}, {'end': 650.005, 'text': 'devops is basically a software development strategy which bridges the gap between the dev side and the upside of the company.', 'start': 643.421, 'duration': 6.584}, {'end': 655.896, 'text': 'So DevOps is basically a term for a group of concepts that, while not all new,', 'start': 650.672, 'duration': 5.224}, {'end': 661.18, 'text': 'have catalyzed into a movement and are rapidly spreading throughout the technical community.', 'start': 655.896, 'duration': 5.284}], 'summary': 'Devops is the solution bridging dev and ops, catalyzing a movement in the technical community.', 'duration': 24.764, 'max_score': 636.416, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hQcFE0RD0cQ/pics/hQcFE0RD0cQ636416.jpg'}, {'end': 740.433, 'src': 'embed', 'start': 715.002, 'weight': 3, 'content': [{'end': 719.667, 'text': "So when I will explain you infrastructure is code, you'll understand why I'm using this particular definition.", 'start': 715.002, 'duration': 4.665}, {'end': 721.727, 'text': 'right. so, as you know,', 'start': 720.126, 'duration': 1.601}, {'end': 730.21, 'text': 'that devops is a software development strategy which bridges the gap between the dev part and the upside of the company and helps us to deliver good quality software in time.', 'start': 721.727, 'duration': 8.483}, {'end': 731.03, 'text': 'and how this happens?', 'start': 730.21, 'duration': 0.82}, {'end': 734.911, 'text': 'this happens because of various stages and tools involved in devops.', 'start': 731.03, 'duration': 3.881}, {'end': 740.433, 'text': 'so here is a diagram which is nothing but an infinite loop, because everything happens continuously in devops.', 'start': 734.911, 'duration': 5.522}], 'summary': 'Devops bridges gap between dev and ops, delivering quality software in time through continuous processes.', 'duration': 25.431, 'max_score': 715.002, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hQcFE0RD0cQ/pics/hQcFE0RD0cQ715002.jpg'}, {'end': 978.74, 'src': 'heatmap', 'start': 731.03, 'weight': 0.764, 'content': [{'end': 734.911, 'text': 'this happens because of various stages and tools involved in devops.', 'start': 731.03, 'duration': 3.881}, {'end': 740.433, 'text': 'so here is a diagram which is nothing but an infinite loop, because everything happens continuously in devops.', 'start': 734.911, 'duration': 5.522}, {'end': 746.381, 'text': 'guys. everything, starting from coding, testing, deployment, monitoring, everything is happening continuously.', 'start': 740.433, 'duration': 5.948}, {'end': 751.83, 'text': 'And these are the various tools which are involved in the DevOps methodology right?', 'start': 746.862, 'duration': 4.968}, {'end': 757.876, 'text': 'So not only the knowledge of these tools are important for a DevOps engineer, but also how to use these tools.', 'start': 752.452, 'duration': 5.424}, {'end': 763.339, 'text': 'How can I architect my software delivery lifecycle such that I get the maximum output right?', 'start': 757.956, 'duration': 5.383}, {'end': 765.22, 'text': "So it doesn't mean that you know.", 'start': 763.779, 'duration': 1.441}, {'end': 769.723, 'text': 'if I have a good knowledge of Jenkins or Git or Docker, then I become a DevOps engineer.', 'start': 765.22, 'duration': 4.503}, {'end': 770.924, 'text': 'No, that is not true.', 'start': 770.024, 'duration': 0.9}, {'end': 772.565, 'text': 'You should know how to use them.', 'start': 771.324, 'duration': 1.241}, {'end': 775.307, 'text': 'You should know where to use them to get the maximum output.', 'start': 772.705, 'duration': 2.602}, {'end': 778.614, 'text': "So I hope you have got my point what I'm trying to say here.", 'start': 775.993, 'duration': 2.621}, {'end': 782.355, 'text': "In the next slide, I'll be discussing about various stages that are involved in DevOps.", 'start': 778.894, 'duration': 3.461}, {'end': 787.217, 'text': "Fine So let's move forward guys and we are going to focus on various stages involved in DevOps.", 'start': 782.876, 'duration': 4.341}, {'end': 790.038, 'text': 'So these are the various stages involved in DevOps.', 'start': 788.097, 'duration': 1.941}, {'end': 792.319, 'text': 'Let me just take you through all of these stages one by one.', 'start': 790.078, 'duration': 2.241}, {'end': 793.799, 'text': 'So starting from version control.', 'start': 792.339, 'duration': 1.46}, {'end': 796.801, 'text': "So I'll be discussing all of these stages one by one as well.", 'start': 794.32, 'duration': 2.481}, {'end': 800.522, 'text': 'But let me just give you an entire picture of these stages in one slide first.', 'start': 796.841, 'duration': 3.681}, {'end': 804.023, 'text': 'So version control is basically maintaining different versions of the code.', 'start': 801.101, 'duration': 2.922}, {'end': 804.923, 'text': 'what I mean by that?', 'start': 804.023, 'duration': 0.9}, {'end': 808.145, 'text': 'suppose there are multiple developers writing a code for a particular application.', 'start': 804.923, 'duration': 3.222}, {'end': 809.926, 'text': 'So how will I know that?', 'start': 808.766, 'duration': 1.16}, {'end': 815.53, 'text': 'which developer has made which commit, at what time and which commit is actually causing the error?', 'start': 809.926, 'duration': 5.604}, {'end': 817.411, 'text': 'and how will I revert back to the previous commit?', 'start': 815.53, 'duration': 1.881}, {'end': 818.992, 'text': "So I hope you're getting my point.", 'start': 817.831, 'duration': 1.161}, {'end': 826.136, 'text': 'My point here is how will I manage that source code suppose developer a has made a commit and that commit is causing some error.', 'start': 819.052, 'duration': 7.084}, {'end': 832.893, 'text': 'Now, how will I know that developer a has made that commit and at what time he made that comment and where in the code was that?', 'start': 826.796, 'duration': 6.097}, {'end': 834.073, 'text': 'editing happened right?', 'start': 832.893, 'duration': 1.18}, {'end': 836.554, 'text': 'So all of these questions can be answered.', 'start': 834.113, 'duration': 2.441}, {'end': 840.477, 'text': 'Once you use version control tools like git subversion, etc, etc.', 'start': 836.655, 'duration': 3.822}, {'end': 842.037, 'text': 'We are going to focus on git in our course.', 'start': 840.517, 'duration': 1.52}, {'end': 844.159, 'text': 'So then we have continuous integration.', 'start': 842.518, 'duration': 1.641}, {'end': 847.981, 'text': 'So continuous integration is basically building your application continuously.', 'start': 844.199, 'duration': 3.782}, {'end': 848.901, 'text': 'What I mean by that?', 'start': 848.021, 'duration': 0.88}, {'end': 851.182, 'text': 'suppose any developer made a change in resource code.', 'start': 848.901, 'duration': 2.281}, {'end': 855.585, 'text': 'a continuous integration server should be able to pull that code and prepare a build.', 'start': 851.182, 'duration': 4.403}, {'end': 859.788, 'text': 'now, when I say build, people have this misconception of, you know, only compiling the source code.', 'start': 855.585, 'duration': 4.203}, {'end': 866.613, 'text': 'It is not true, guys, includes everything, starting from compiling your source code, validating your source code code, review, unit testing,', 'start': 859.908, 'duration': 6.705}, {'end': 868.534, 'text': 'integration testing, Etc.', 'start': 866.613, 'duration': 1.921}, {'end': 872.237, 'text': 'Etc And even packaging your application as well then comes continuous delivery.', 'start': 868.614, 'duration': 3.623}, {'end': 876.18, 'text': 'Now the same continuous integration tool that we are using suppose Jenkins.', 'start': 872.717, 'duration': 3.463}, {'end': 878.01, 'text': 'Now what Jenkins will do.', 'start': 876.77, 'duration': 1.24}, {'end': 882.892, 'text': 'once the application is built, it will be deployed onto the test servers for testing to perform.', 'start': 878.01, 'duration': 4.882}, {'end': 886.093, 'text': 'you know user acceptance test or end user testing that you call it.', 'start': 882.892, 'duration': 3.201}, {'end': 891.454, 'text': 'there will be using tools like selenium right for performing automation testing and once that is done,', 'start': 886.093, 'duration': 5.361}, {'end': 894.515, 'text': 'it will be then deployed onto the prod servers for release right.', 'start': 891.454, 'duration': 3.061}, {'end': 899.757, 'text': "that is called continuous deployment, and here we'll be using configuration management and containerization tools.", 'start': 894.515, 'duration': 5.242}, {'end': 904.1, 'text': 'So this is basically to provision your infrastructure to provision your prod environment.', 'start': 900.217, 'duration': 3.883}, {'end': 910.304, 'text': 'And let me tell you guys, continuous deployment is something which is not a good practice, because before releasing your product in the market,', 'start': 904.62, 'duration': 5.684}, {'end': 912.986, 'text': 'there might be multiple checks that you want to do before that right?', 'start': 910.304, 'duration': 2.682}, {'end': 915.568, 'text': 'There might be multiple other testings that you want to do.', 'start': 913.466, 'duration': 2.102}, {'end': 921.071, 'text': "So you don't want this to be automated, right? That's why continuous deployment is something which is not preferred.", 'start': 915.928, 'duration': 5.143}, {'end': 927.115, 'text': 'After continuous delivery we can go ahead and manually use configuration management tools like Puppet, Chef, Ansible and SaltStack,', 'start': 921.492, 'duration': 5.623}, {'end': 933.039, 'text': 'or we can even use Docker for a similar purpose, and then we can go ahead and deploy it onto the prod service for release.', 'start': 927.115, 'duration': 5.924}, {'end': 938.922, 'text': 'And once the application is live, it is continuously monitored by tools like Nagios or Splunk,', 'start': 933.499, 'duration': 5.423}, {'end': 941.324, 'text': 'which will provide the relevant feedback to the concerned teams.', 'start': 938.922, 'duration': 2.402}, {'end': 945.311, 'text': 'right. so these are various stages involved in devops right.', 'start': 941.989, 'duration': 3.322}, {'end': 948.212, 'text': 'so now let me just go back to clear if there are doubts.', 'start': 945.311, 'duration': 2.901}, {'end': 949.893, 'text': 'so this is how various stages are scheduled.', 'start': 948.212, 'duration': 1.681}, {'end': 951.354, 'text': 'various jobs are scheduled.', 'start': 949.893, 'duration': 1.461}, {'end': 952.654, 'text': 'so we have jenkins here.', 'start': 951.354, 'duration': 1.3}, {'end': 954.795, 'text': 'we have a continuous integration server.', 'start': 952.654, 'duration': 2.141}, {'end': 956.176, 'text': 'so what jenkins will do?', 'start': 954.795, 'duration': 1.381}, {'end': 959.298, 'text': 'the moment any developer makes a change in the source code,', 'start': 956.176, 'duration': 3.122}, {'end': 964.26, 'text': 'it will take that code and then it will trigger a build using tools like maven or ant or gradle.', 'start': 959.298, 'duration': 4.962}, {'end': 972.018, 'text': 'Once that is done, it will deploy it onto the test servers for testing, for end user testing using tools like Selenium, JUnit, et cetera.', 'start': 964.736, 'duration': 7.282}, {'end': 973.418, 'text': 'Then what happens?', 'start': 972.518, 'duration': 0.9}, {'end': 978.74, 'text': 'it will automatically take that tested application and deploy it onto the prod servers for release right?', 'start': 973.418, 'duration': 5.322}], 'summary': 'Devops involves continuous processes: coding, testing, deployment, monitoring, using various tools for maximum output.', 'duration': 247.71, 'max_score': 731.03, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hQcFE0RD0cQ/pics/hQcFE0RD0cQ731030.jpg'}], 'start': 231.835, 'title': 'Waterfall model limitations and agile & devops comparison', 'summary': 'Delves into the drawbacks of the waterfall model, citing issues such as time-consuming bug removal, late software production, high risk, and unsuitability for complex or changing projects. it also compares the waterfall model with agile and devops, focusing on conflicts between teams and emphasizing the continuous deployment and monitoring aspects of devops.', 'chapters': [{'end': 304.705, 'start': 231.835, 'title': 'Limitations of waterfall model', 'summary': 'Discusses the limitations of the waterfall model, highlighting the time-consuming nature of bug removal, late production of working software, high risk and uncertainty, and unsuitability for complex and object-oriented projects or those with changing requirements.', 'duration': 72.87, 'highlights': ['The waterfall model poses a significant limitation in terms of bug removal, requiring a time-consuming process of going through the entire source code of the application.', 'Working software is not produced until late in the life cycle of the waterfall model, leading to delays in delivering usable products.', 'High risk and uncertainty are associated with the waterfall model, leading to potential issues once the product is live in the market.', 'The waterfall model is not suitable for complex and object-oriented projects, as well as projects with moderate to high risk of changing requirements.']}, {'end': 1061.479, 'start': 305.085, 'title': 'Comparison: waterfall, agile, and devops', 'summary': 'Discusses the limitations of the waterfall model and the continuous development and testing process of agile methodology, highlighting the conflicts between development and operations teams. it also explains the key stages and tools involved in devops, emphasizing its bridging of the gap between development and operations for continuous deployment and monitoring.', 'duration': 756.394, 'highlights': ['DevOps: Bridging the gap between dev and ops for continuous deployment and monitoring', 'Agile Methodology: Continuous development and testing with multiple iterations', 'Waterfall Model: Linear process with no iterations', 'DevOps Stages: Continuous integration, delivery, deployment, and monitoring', 'Source Code Management: Centralized and distributed version control for team collaboration']}], 'duration': 829.644, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hQcFE0RD0cQ/pics/hQcFE0RD0cQ231835.jpg', 'highlights': ['DevOps: Bridging the gap between dev and ops for continuous deployment and monitoring', 'Agile Methodology: Continuous development and testing with multiple iterations', 'The waterfall model poses a significant limitation in terms of bug removal, requiring a time-consuming process of going through the entire source code of the application', 'Working software is not produced until late in the life cycle of the waterfall model, leading to delays in delivering usable products', 'High risk and uncertainty are associated with the waterfall model, leading to potential issues once the product is live in the market']}, {'end': 3025.904, 'segs': [{'end': 1957.543, 'src': 'heatmap', 'start': 1218.919, 'weight': 0.879, 'content': [{'end': 1222.28, 'text': 'basically, the act of cloning an entire repository gives you that advantage.', 'start': 1218.919, 'duration': 3.361}, {'end': 1222.92, 'text': 'Let me tell you how.', 'start': 1222.32, 'duration': 0.6}, {'end': 1230.947, 'text': 'Now all operations apart from push and pull are very fast, because the tool only needs to access the hard drive, not a remote server.', 'start': 1223.624, 'duration': 7.323}, {'end': 1234.208, 'text': 'Hence, you do not always need an internet connection.', 'start': 1231.427, 'duration': 2.781}, {'end': 1239.75, 'text': 'committing new chainsets can be done locally, without manipulating the data on the main repository.', 'start': 1234.208, 'duration': 5.542}, {'end': 1243.352, 'text': 'Once you have a group of chainsets ready, you can push them all at once.', 'start': 1240.311, 'duration': 3.041}, {'end': 1248.843, 'text': 'So what you can do is you can actually commit to your local repository, which is there in your local hard drive.', 'start': 1243.88, 'duration': 4.963}, {'end': 1251.945, 'text': 'You can commit the changes that you want in the source code.', 'start': 1249.283, 'duration': 2.662}, {'end': 1257.388, 'text': 'You can, you know, once review it and then, once you have quite a lot of change sets ready,', 'start': 1252.265, 'duration': 5.123}, {'end': 1259.99, 'text': 'you can go ahead and push it onto the central server as well.', 'start': 1257.388, 'duration': 2.602}, {'end': 1267.835, 'text': 'If the central server gets crashed at any point of time, the lost data can be easily recovered from any one of the contributors local repository.', 'start': 1260.45, 'duration': 7.385}, {'end': 1269.734, 'text': 'This is one very big advantage.', 'start': 1268.553, 'duration': 1.181}, {'end': 1274.556, 'text': 'Apart from that, since every contributor has a full copy of the project repository,', 'start': 1270.134, 'duration': 4.422}, {'end': 1280.399, 'text': 'they can share changes with one another if they want to get some feedback before affecting the changes in the main repository as well.', 'start': 1274.556, 'duration': 5.843}, {'end': 1286.782, 'text': 'So these are the various ways in which a distributed version control system is actually better than a centralized version control system.', 'start': 1280.839, 'duration': 5.943}, {'end': 1291.105, 'text': 'So we saw the two types of source code management systems and I hope you have understood it.', 'start': 1287.242, 'duration': 3.863}, {'end': 1296.589, 'text': 'We are going to discuss a one source code management tool called git which is very popular in the market right now.', 'start': 1291.485, 'duration': 5.104}, {'end': 1298.811, 'text': 'Almost all the companies actually use git.', 'start': 1296.629, 'duration': 2.182}, {'end': 1306.016, 'text': "For now, I'll move forward and we'll going to focus on a source code management tool a distributed version control tool that is called as git.", 'start': 1299.651, 'duration': 6.365}, {'end': 1308.738, 'text': 'Now before I move forward guys, let me make this thing clear.', 'start': 1306.656, 'duration': 2.082}, {'end': 1311.7, 'text': "So when I say version control or source code management, it's one of the same thing.", 'start': 1308.758, 'duration': 2.942}, {'end': 1313.51, 'text': "Let's talk about git now.", 'start': 1312.409, 'duration': 1.101}, {'end': 1323.075, 'text': 'Now, git is a distributed version control tool that supports distributed nonlinear workflows by providing data assurance for developing quality software right?', 'start': 1313.91, 'duration': 9.165}, {'end': 1328.898, 'text': "So it's a pretty tough definition to follow, but it'll be easier for you to understand with the diagram that is there in front of your screen.", 'start': 1323.095, 'duration': 5.803}, {'end': 1333.381, 'text': 'So, for example, I am a developer and this is my working directory right?', 'start': 1329.378, 'duration': 4.003}, {'end': 1339.544, 'text': 'Now, what I want to do is I want to make some changes to my local repository, because it is a distributed version control system.', 'start': 1333.721, 'duration': 5.823}, {'end': 1341.425, 'text': 'I have my local repository as well.', 'start': 1339.624, 'duration': 1.801}, {'end': 1344.342, 'text': "So what I'll do, I'll perform a git add operation.", 'start': 1341.82, 'duration': 2.522}, {'end': 1349.547, 'text': 'Now because of git add, whatever was there in my working directory will be present in this staging area.', 'start': 1344.803, 'duration': 4.744}, {'end': 1356.172, 'text': 'Now you can visualize the staging area as something which is between the working directory and your local repository right?', 'start': 1349.927, 'duration': 6.245}, {'end': 1362.438, 'text': 'And once you have done git add, you can go ahead and perform git commit to make changes to your local repository.', 'start': 1356.573, 'duration': 5.865}, {'end': 1367.582, 'text': 'And once that is done, you can go ahead and push your changes to the remote repository as well.', 'start': 1363.198, 'duration': 4.384}, {'end': 1368.814, 'text': 'After that,', 'start': 1368.234, 'duration': 0.58}, {'end': 1378.48, 'text': 'you can even perform git pull to add whatever is there in your remote repository to your local repository and perform git checkout to add everything which was there in your local repository to your working directory as well.', 'start': 1368.814, 'duration': 9.666}, {'end': 1381.601, 'text': 'All right, so let me just repeat it once more for you guys.', 'start': 1379.12, 'duration': 2.481}, {'end': 1383.402, 'text': 'So I have a working directory here.', 'start': 1381.981, 'duration': 1.421}, {'end': 1389.725, 'text': 'Now in order to add that to my local repository, I need to first perform git add that will add it to my staging area.', 'start': 1384.022, 'duration': 5.703}, {'end': 1394.388, 'text': 'Staging area is nothing but an area between the working directory and the local repository.', 'start': 1390.186, 'duration': 4.202}, {'end': 1399.852, 'text': 'After git add I can go ahead and execute git commit which will add the changes to my local repository.', 'start': 1395.131, 'duration': 4.721}, {'end': 1401.112, 'text': 'Once that is done,', 'start': 1400.312, 'duration': 0.8}, {'end': 1409.754, 'text': 'I can perform git push to push the changes that I made in my local repository to the remote repository and in order to pull other changes which are there in the remote repository to the local repository,', 'start': 1401.112, 'duration': 8.642}, {'end': 1412.795, 'text': 'you can perform git pull and finally git checkout.', 'start': 1409.754, 'duration': 3.041}, {'end': 1417.356, 'text': 'that will be added to your working directory as well, and git merge is also a pretty similar command.', 'start': 1412.795, 'duration': 4.561}, {'end': 1421.551, 'text': 'Now before we move forward guys, let me just show you a few basic commands of git.', 'start': 1417.944, 'duration': 3.607}, {'end': 1424.576, 'text': "So I've already installed git in my CentOS virtual machine.", 'start': 1421.891, 'duration': 2.685}, {'end': 1430.207, 'text': 'So let me just quickly open my CentOS virtual machine to show you a few basic operations that you can perform with git.', 'start': 1424.857, 'duration': 5.35}, {'end': 1434.35, 'text': "device virtual machine, and I've told you that I've already installed git.", 'start': 1431.189, 'duration': 3.161}, {'end': 1440.032, 'text': 'now, in order to check the version of git, you can just type in here git hyphen hyphen version and you can see that I have 2.7..', 'start': 1434.35, 'duration': 5.682}, {'end': 1441.753, 'text': '2 here.', 'start': 1440.032, 'duration': 1.721}, {'end': 1443.614, 'text': 'let me go ahead and clear my terminal.', 'start': 1441.753, 'duration': 1.861}, {'end': 1452.157, 'text': "so now let me first make a directory and let me call this as edureka hyphen repository, and I'll move into this edureka repository.", 'start': 1443.614, 'duration': 8.543}, {'end': 1456.859, 'text': 'so first thing that I need to do is initialize this repository as an empty git repository.', 'start': 1452.157, 'duration': 4.702}, {'end': 1464.253, 'text': 'so for that all I have to type here is git init and it will go ahead and initialize this empty directory as a local git repository.', 'start': 1456.859, 'duration': 7.394}, {'end': 1472.019, 'text': 'So it has been initialized now as you can see initialize empty git repository in home edureka edureka-report.kit or write net.', 'start': 1464.973, 'duration': 7.046}, {'end': 1475.001, 'text': "So over here I'm just going to create a file a python file.", 'start': 1472.459, 'duration': 2.542}, {'end': 1482.327, 'text': "So let me just name that as edureka.py and I'm going to make some changes in this particular file.", 'start': 1475.582, 'duration': 6.745}, {'end': 1483.648, 'text': "So I'll use gedit for that.", 'start': 1482.467, 'duration': 1.181}, {'end': 1493.232, 'text': "I'm just going to write in here a normal print statement welcome to edureka.", 'start': 1484.849, 'duration': 8.383}, {'end': 1494.373, 'text': 'close the parenthesis.', 'start': 1493.232, 'duration': 1.141}, {'end': 1497.034, 'text': 'save it, close it.', 'start': 1494.373, 'duration': 2.661}, {'end': 1502.616, 'text': 'let me clear my terminal now, if i hit an ls command, so i can see that edureka.py file is here.', 'start': 1497.034, 'duration': 5.582}, {'end': 1509.738, 'text': 'now, if you can recall from the slides, i was telling you, in order to add a particular file or a directory into the local git repository,', 'start': 1502.616, 'duration': 7.122}, {'end': 1511.759, 'text': 'first i need to add it to my staging area.', 'start': 1509.738, 'duration': 2.021}, {'end': 1512.8, 'text': 'and how will i do that?', 'start': 1511.759, 'duration': 1.041}, {'end': 1514.54, 'text': 'by using the git add command.', 'start': 1512.8, 'duration': 1.74}, {'end': 1519.571, 'text': 'so all i have to type here is git add as the name of my file, which is edureka.py.', 'start': 1514.54, 'duration': 5.031}, {'end': 1520.071, 'text': 'and here we go.', 'start': 1519.571, 'duration': 0.5}, {'end': 1521.332, 'text': 'So it is done now.', 'start': 1520.651, 'duration': 0.681}, {'end': 1526.315, 'text': 'Now if I type in here git status, it will give me the files which I need to commit.', 'start': 1521.692, 'duration': 4.623}, {'end': 1529.257, 'text': 'So this particular command gives me the status.', 'start': 1527.255, 'duration': 2.002}, {'end': 1533.659, 'text': "Status as in it'll tell me what all files I need to commit to the local repository.", 'start': 1529.597, 'duration': 4.062}, {'end': 1541.284, 'text': 'So it says when new file has been created that is edureka.py and it is present in the staging area and I need to commit this particular file.', 'start': 1533.699, 'duration': 7.585}, {'end': 1547.885, 'text': 'So all I have to type here is git commit hyphen m and the message that I want.', 'start': 1541.704, 'duration': 6.181}, {'end': 1553.128, 'text': "So I'll just type in here first commit and here we go.", 'start': 1548.226, 'duration': 4.902}, {'end': 1555.149, 'text': 'So it is successfully done now.', 'start': 1553.668, 'duration': 1.481}, {'end': 1558.711, 'text': "So I've added a particular file to my local git repository.", 'start': 1555.529, 'duration': 3.182}, {'end': 1562.953, 'text': "So now what I'm going to show you is basically how to deal with the remote repositories.", 'start': 1559.271, 'duration': 3.682}, {'end': 1565.714, 'text': 'So I have a remote git repository present on GitHub.', 'start': 1563.273, 'duration': 2.441}, {'end': 1567.715, 'text': 'So I have created a GitHub account.', 'start': 1566.394, 'duration': 1.321}, {'end': 1572.397, 'text': 'So the first thing that you need to do is create a GitHub account and then you can go ahead and create a new repository there.', 'start': 1567.735, 'duration': 4.662}, {'end': 1576.824, 'text': "And then I'll tell you how to add that particular repository to a local Git repository.", 'start': 1573.183, 'duration': 3.641}, {'end': 1579.064, 'text': 'Let me just go to my browser once.', 'start': 1577.444, 'duration': 1.62}, {'end': 1582.785, 'text': 'Let me just zoom it a bit.', 'start': 1580.005, 'duration': 2.78}, {'end': 1586.486, 'text': 'And yeah, so this is my GitHub account, guys.', 'start': 1583.225, 'duration': 3.261}, {'end': 1592.848, 'text': "And what I'm going to do is I'm first going to go to this repositories tab and I'm going to add one new repository.", 'start': 1586.706, 'duration': 6.142}, {'end': 1593.688, 'text': "So I'll click on new.", 'start': 1592.868, 'duration': 0.82}, {'end': 1597.009, 'text': "I'm going to give a name to this repository.", 'start': 1595.148, 'duration': 1.861}, {'end': 1599.789, 'text': 'So whatever name that you want to give, you just go ahead and do that.', 'start': 1597.029, 'duration': 2.76}, {'end': 1602.03, 'text': 'Let me just write here.', 'start': 1600.91, 'duration': 1.12}, {'end': 1608.569, 'text': 'git hyphen tutorial, hyphen devops, whatever name that you feel like.', 'start': 1603.047, 'duration': 5.522}, {'end': 1610.43, 'text': 'just go ahead and write that.', 'start': 1608.569, 'duration': 1.861}, {'end': 1611.51, 'text': "i'm going to keep it public.", 'start': 1610.43, 'duration': 1.08}, {'end': 1616.372, 'text': 'if you want any description, you can go ahead and give that and i can also initialize it with a readme.', 'start': 1611.51, 'duration': 4.862}, {'end': 1621.214, 'text': "create repository, and that's all you have to do in order to create a remote github repository.", 'start': 1616.372, 'duration': 4.842}, {'end': 1623.995, 'text': "now over here, you can see that there's only one readme.md file.", 'start': 1621.214, 'duration': 2.781}, {'end': 1624.915, 'text': "so what i'm going to do?", 'start': 1623.995, 'duration': 0.92}, {'end': 1634.848, 'text': "i'm just going to copy this particular ssh link and i'm going to perform git remote add origin and the link that I've just copy.", 'start': 1624.915, 'duration': 9.933}, {'end': 1637.088, 'text': "I'll paste it here and here we go.", 'start': 1634.848, 'duration': 2.24}, {'end': 1641.35, 'text': 'So this has basically added my remote repository to my local repository.', 'start': 1637.409, 'duration': 3.941}, {'end': 1647.872, 'text': 'Now what I can do is I can go ahead and pull whatever is there in my remote repository to my local git repository.', 'start': 1642.03, 'duration': 5.842}, {'end': 1652.513, 'text': 'for that, all I have to type here is git pull origin master and here we go.', 'start': 1647.872, 'duration': 4.641}, {'end': 1657.706, 'text': "So it is done now as you can see that I've pulled all the changes.", 'start': 1654.685, 'duration': 3.021}, {'end': 1660.107, 'text': 'So let me clear my terminal and hit an LS command.', 'start': 1657.886, 'duration': 2.221}, {'end': 1661.487, 'text': "So you'll find readme.md.", 'start': 1660.127, 'duration': 1.36}, {'end': 1662.227, 'text': 'present here, right?', 'start': 1661.487, 'duration': 0.74}, {'end': 1667.549, 'text': "Now, what I'm going to show you is basically how to push this edureka.py file onto my remote repository.", 'start': 1662.767, 'duration': 4.782}, {'end': 1674.351, 'text': 'So for that all I have to type here is git push origin master and here we go.', 'start': 1667.629, 'duration': 6.722}, {'end': 1676.732, 'text': 'So it is done now.', 'start': 1676.031, 'duration': 0.701}, {'end': 1682.513, 'text': "Let me just go ahead and refresh this particular repository and you'll find edureka.py file here.", 'start': 1677.192, 'duration': 5.321}, {'end': 1684.214, 'text': 'Let me just go ahead and reload this.', 'start': 1682.914, 'duration': 1.3}, {'end': 1688.48, 'text': "So you can see edureka.py file where I've written welcome to edureka.", 'start': 1685.117, 'duration': 3.363}, {'end': 1689.761, 'text': "So it's that easy guys.", 'start': 1688.5, 'duration': 1.261}, {'end': 1692.003, 'text': 'Let me clear my terminal now.', 'start': 1690.802, 'duration': 1.201}, {'end': 1693.885, 'text': "So I've covered few basics of git.", 'start': 1692.464, 'duration': 1.421}, {'end': 1699.911, 'text': "So let's move forward with this devops tutorial and we are going to focus on the next stage which is called continuous integration.", 'start': 1694.225, 'duration': 5.686}, {'end': 1701.672, 'text': 'So we have seen few basic commands of git.', 'start': 1700.091, 'duration': 1.581}, {'end': 1705.836, 'text': 'We saw how to initialize an empty directory into a git repository, how we can, you know,', 'start': 1701.712, 'duration': 4.124}, {'end': 1709.58, 'text': 'add a file to the staging area and how we can go ahead and come in it in the local repository.', 'start': 1705.836, 'duration': 3.744}, {'end': 1715.325, 'text': 'After that we saw how we can push the changes in the local repository to the remote repository.', 'start': 1710.22, 'duration': 5.105}, {'end': 1717.026, 'text': 'My repository was on GitHub.', 'start': 1715.725, 'duration': 1.301}, {'end': 1722.672, 'text': 'I told you how to connect with that remote repository and then how even you can pull the changes from the remote repository right?', 'start': 1717.547, 'duration': 5.125}, {'end': 1724.733, 'text': 'So all of these things we have discussed in detail.', 'start': 1722.692, 'duration': 2.041}, {'end': 1729.618, 'text': "Now, let's move forward guys and we are going to focus on the next stage which is called continuous integration.", 'start': 1725.094, 'duration': 4.524}, {'end': 1743.168, 'text': 'So continuous integration is basically a development practice in which the developers are required to commit changes to the source code in a shared repository several times a day or you can say more frequently and every commit made in the repository is then built.', 'start': 1730.316, 'duration': 12.852}, {'end': 1745.61, 'text': 'This allows the teams to detect the problems early.', 'start': 1743.468, 'duration': 2.142}, {'end': 1749.474, 'text': 'So let us understand this with the help of the diagram that is there in front of your screen.', 'start': 1746.091, 'duration': 3.383}, {'end': 1756.727, 'text': 'So here we have multiple developers which are writing code for a particular application, and all of them are committing code to a shared repository,', 'start': 1750.066, 'duration': 6.661}, {'end': 1759.708, 'text': 'which can be a git repository or subversion repository.', 'start': 1756.727, 'duration': 2.981}, {'end': 1760.248, 'text': 'from there.', 'start': 1759.708, 'duration': 0.54}, {'end': 1763.389, 'text': 'the Jenkins over, which is nothing but a continuous integration tool,', 'start': 1760.248, 'duration': 3.141}, {'end': 1767.95, 'text': 'will pull that code the moment any developer commits a change in the source code.', 'start': 1763.389, 'duration': 4.561}, {'end': 1771.611, 'text': 'the moment any developer commits a change in the source code, Jenkins over will pull that.', 'start': 1767.95, 'duration': 3.661}, {'end': 1773.011, 'text': 'it will prepare a build.', 'start': 1771.611, 'duration': 1.4}, {'end': 1777.252, 'text': 'now, as I have told you earlier as well, build does not only mean compiling the source code.', 'start': 1773.011, 'duration': 4.241}, {'end': 1780.48, 'text': 'It includes compiling but apart from that there are other things as well.', 'start': 1777.739, 'duration': 2.741}, {'end': 1786.722, 'text': 'For example code review unit testing integration testing, you know packaging your application into an executable file.', 'start': 1780.74, 'duration': 5.982}, {'end': 1788.843, 'text': 'It can be a war file or can be a jar file.', 'start': 1786.763, 'duration': 2.08}, {'end': 1790.704, 'text': 'So it happens in a continuous manner.', 'start': 1789.163, 'duration': 1.541}, {'end': 1796.306, 'text': 'the moment any developer coming to change in the source code Jenkins over will pull that, prepare a build right?', 'start': 1790.704, 'duration': 5.602}, {'end': 1798.427, 'text': 'So this is called as continuous integration.', 'start': 1796.326, 'duration': 2.101}, {'end': 1805.151, 'text': 'So Jenkins has various tools in order to perform this so it has various tools for development testing and deployment technologies.', 'start': 1798.88, 'duration': 6.271}, {'end': 1807.615, 'text': 'It has well over 2, 500 plugins.', 'start': 1805.572, 'duration': 2.043}, {'end': 1812.724, 'text': 'So you need to install that plug-in and you can just go ahead and trigger whatever job you want with the help of Jenkins.', 'start': 1807.835, 'duration': 4.889}, {'end': 1819.239, 'text': "It is originally written in Java right and let's move forward and we are going to focus on containers delivery now.", 'start': 1813.334, 'duration': 5.905}, {'end': 1822.963, 'text': 'So continuous delivery is nothing but taking continuous integration to the next step.', 'start': 1819.6, 'duration': 3.363}, {'end': 1824.344, 'text': 'So what are we doing?', 'start': 1823.403, 'duration': 0.941}, {'end': 1826.746, 'text': 'in a continuous manner or in an automated fashion?', 'start': 1824.344, 'duration': 2.402}, {'end': 1834.493, 'text': 'We are taking this build application onto the test server for end user testing or unit or user acceptance test right?', 'start': 1827.066, 'duration': 7.427}, {'end': 1836.615, 'text': 'So that is basically what is continuous delivery.', 'start': 1834.593, 'duration': 2.022}, {'end': 1839.424, 'text': 'So let us just summarize containers delivery again.', 'start': 1837.122, 'duration': 2.302}, {'end': 1843.007, 'text': 'moment any developers makes a change in the source code, Jenkins will pull that code.', 'start': 1839.424, 'duration': 3.583}, {'end': 1845.349, 'text': 'prepare a build once build is successful.', 'start': 1843.007, 'duration': 2.342}, {'end': 1851.794, 'text': 'It will take the build application and Jenkins will deploy it onto the test server for end user testing or user acceptance test.', 'start': 1845.369, 'duration': 6.425}, {'end': 1855.76, 'text': 'So this is basically what continuous delivery is this happens in a continuous fashion.', 'start': 1852.338, 'duration': 3.422}, {'end': 1857.462, 'text': 'So what advantage we get here?', 'start': 1856.181, 'duration': 1.281}, {'end': 1860.043, 'text': "basically, if there's a build failure,", 'start': 1857.462, 'duration': 2.581}, {'end': 1867.849, 'text': "then we know which commit has caused that error and we don't need to go through the entire source code of the application similarly for testing,", 'start': 1860.043, 'duration': 7.806}, {'end': 1870.05, 'text': 'even if any bug appears in testing as well.', 'start': 1867.849, 'duration': 2.201}, {'end': 1873.512, 'text': 'We know which comment has caused that error and we can just go ahead and, you know,', 'start': 1870.11, 'duration': 3.402}, {'end': 1877.655, 'text': 'have a look at that particular comment instead of checking out the entire source code of the application.', 'start': 1873.512, 'duration': 4.143}, {'end': 1881.538, 'text': 'So they basically this system allows the teams to detect problems early.', 'start': 1878.116, 'duration': 3.422}, {'end': 1884.572, 'text': 'right, as you can see it from the diagram as well.', 'start': 1882.188, 'duration': 2.384}, {'end': 1887.456, 'text': "now, if you want to learn more about jenkins, i'll leave a link in the chat box.", 'start': 1884.572, 'duration': 2.884}, {'end': 1892.144, 'text': 'you can go ahead and refer that, and people who are watching it on youtube can find that link in the description box below.', 'start': 1887.456, 'duration': 4.688}, {'end': 1894.556, 'text': "Now we're going to talk about continuous deployment.", 'start': 1892.754, 'duration': 1.802}, {'end': 1900.201, 'text': 'So continuous deployment is basically taking the application, the build application that you have tested,', 'start': 1894.576, 'duration': 5.625}, {'end': 1903.744, 'text': 'and deploying that onto the prod servers for release in an automated fashion.', 'start': 1900.201, 'duration': 3.543}, {'end': 1908.428, 'text': 'So once the application is tested, it will automatically be deployed onto the broad servers for release.', 'start': 1904.084, 'duration': 4.344}, {'end': 1911.871, 'text': "Now, this is something not a good practice, as I've told you earlier as well,", 'start': 1908.888, 'duration': 2.983}, {'end': 1915.534, 'text': 'because there might be certain checks that you need to do in order to release your software in the market.', 'start': 1911.871, 'duration': 3.663}, {'end': 1918.115, 'text': 'or you might want to market your product before that.', 'start': 1916.034, 'duration': 2.081}, {'end': 1921.377, 'text': 'So there are a lot of things that you want to do before deploying your application.', 'start': 1918.175, 'duration': 3.202}, {'end': 1928.201, 'text': "So it's not advisable or a good practice to you know, actually automatically deploying your application onto the broad service for release.", 'start': 1921.758, 'duration': 6.443}, {'end': 1931.503, 'text': 'So this is basically continuous integration delivery and deployment.', 'start': 1928.702, 'duration': 2.801}, {'end': 1933.725, 'text': 'Any questions you have guys you can ask me.', 'start': 1932.004, 'duration': 1.721}, {'end': 1936.186, 'text': 'All right, the geography wants me to repeat it once more.', 'start': 1934.345, 'duration': 1.841}, {'end': 1937.147, 'text': 'Sure, Dorothy.', 'start': 1936.586, 'duration': 0.561}, {'end': 1937.667, 'text': "I'll do that.", 'start': 1937.187, 'duration': 0.48}, {'end': 1939.448, 'text': "Let's start with continuous integration.", 'start': 1937.767, 'duration': 1.681}, {'end': 1944.759, 'text': 'So continuous integration is basically committing the changes in the source code more frequently,', 'start': 1939.958, 'duration': 4.801}, {'end': 1949.981, 'text': 'and every commit will then be built using a Jenkins over right or any continuous integration server.', 'start': 1944.759, 'duration': 5.222}, {'end': 1951.782, 'text': "So this Jenkins what it'll do?", 'start': 1950.341, 'duration': 1.441}, {'end': 1957.543, 'text': 'it will trigger a build the moment any developer commits a change in the source code and build includes your compiling code, review, unit testing,', 'start': 1951.782, 'duration': 5.761}], 'summary': 'Distributed version control system like git allows for local operations, easy data recovery, and sharing changes, while continuous integration, delivery, and deployment aid in early problem detection and automated software release.', 'duration': 738.624, 'max_score': 1218.919, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hQcFE0RD0cQ/pics/hQcFE0RD0cQ1218919.jpg'}, {'end': 1452.157, 'src': 'embed', 'start': 1417.944, 'weight': 4, 'content': [{'end': 1421.551, 'text': 'Now before we move forward guys, let me just show you a few basic commands of git.', 'start': 1417.944, 'duration': 3.607}, {'end': 1424.576, 'text': "So I've already installed git in my CentOS virtual machine.", 'start': 1421.891, 'duration': 2.685}, {'end': 1430.207, 'text': 'So let me just quickly open my CentOS virtual machine to show you a few basic operations that you can perform with git.', 'start': 1424.857, 'duration': 5.35}, {'end': 1434.35, 'text': "device virtual machine, and I've told you that I've already installed git.", 'start': 1431.189, 'duration': 3.161}, {'end': 1440.032, 'text': 'now, in order to check the version of git, you can just type in here git hyphen hyphen version and you can see that I have 2.7..', 'start': 1434.35, 'duration': 5.682}, {'end': 1441.753, 'text': '2 here.', 'start': 1440.032, 'duration': 1.721}, {'end': 1443.614, 'text': 'let me go ahead and clear my terminal.', 'start': 1441.753, 'duration': 1.861}, {'end': 1452.157, 'text': "so now let me first make a directory and let me call this as edureka hyphen repository, and I'll move into this edureka repository.", 'start': 1443.614, 'duration': 8.543}], 'summary': 'Demonstrating basic git commands on centos virtual machine with git version 2.7.2.', 'duration': 34.213, 'max_score': 1417.944, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hQcFE0RD0cQ/pics/hQcFE0RD0cQ1417944.jpg'}, {'end': 1541.284, 'src': 'embed', 'start': 1514.54, 'weight': 0, 'content': [{'end': 1519.571, 'text': 'so all i have to type here is git add as the name of my file, which is edureka.py.', 'start': 1514.54, 'duration': 5.031}, {'end': 1520.071, 'text': 'and here we go.', 'start': 1519.571, 'duration': 0.5}, {'end': 1521.332, 'text': 'So it is done now.', 'start': 1520.651, 'duration': 0.681}, {'end': 1526.315, 'text': 'Now if I type in here git status, it will give me the files which I need to commit.', 'start': 1521.692, 'duration': 4.623}, {'end': 1529.257, 'text': 'So this particular command gives me the status.', 'start': 1527.255, 'duration': 2.002}, {'end': 1533.659, 'text': "Status as in it'll tell me what all files I need to commit to the local repository.", 'start': 1529.597, 'duration': 4.062}, {'end': 1541.284, 'text': 'So it says when new file has been created that is edureka.py and it is present in the staging area and I need to commit this particular file.', 'start': 1533.699, 'duration': 7.585}], 'summary': "Using 'git add edureka.py' and 'git status' to commit a new file.", 'duration': 26.744, 'max_score': 1514.54, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hQcFE0RD0cQ/pics/hQcFE0RD0cQ1514540.jpg'}, {'end': 2444.909, 'src': 'heatmap', 'start': 2194.981, 'weight': 0.79, 'content': [{'end': 2199.183, 'text': 'So you know, before Edmonds used to write these long scripts in order to provision the infrastructure,', 'start': 2194.981, 'duration': 4.202}, {'end': 2202.084, 'text': "whether it's the test environment or the prod environment or the dev environment.", 'start': 2199.183, 'duration': 2.901}, {'end': 2208.626, 'text': 'So they used to like those long scripts right, which was prone to error, plus it used to take a lot of time and apart from that,', 'start': 2202.524, 'duration': 6.102}, {'end': 2213.668, 'text': "the admin who has written that script, no one else can actually recognize what's the problem with it once if you have to debug it.", 'start': 2208.626, 'duration': 5.042}, {'end': 2217.97, 'text': 'So there are a lot of problems that were there with the admin side or the opposite of the company,', 'start': 2214.028, 'duration': 3.942}, {'end': 2220.652, 'text': 'which were removed by the help of configuration management tools,', 'start': 2217.97, 'duration': 2.682}, {'end': 2225.235, 'text': 'and one very important concept that you guys should understand is called infrastructure as code,', 'start': 2220.652, 'duration': 4.583}, {'end': 2227.396, 'text': 'which means that writing code for your infrastructure.', 'start': 2225.235, 'duration': 2.161}, {'end': 2228.116, 'text': "That's what it means.", 'start': 2227.496, 'duration': 0.62}, {'end': 2233.119, 'text': "Suppose, if I want to install LAMP stack on all of these three environments, whether it's dev test abroad,", 'start': 2228.577, 'duration': 4.542}, {'end': 2239.263, 'text': "I'll write the code for installing LAMP stack in one central location and I can go ahead and deploy it on to dev test and prod.", 'start': 2233.119, 'duration': 6.144}, {'end': 2244.718, 'text': 'So I have the record of the system state present in my one central locations.', 'start': 2240.234, 'duration': 4.484}, {'end': 2250.504, 'text': 'Even if I upgrade it to the next version, I still have the record of the previous stable version of the software stack right?', 'start': 2244.858, 'duration': 5.646}, {'end': 2255.108, 'text': "So I don't have to manually go ahead and, you know, write scripts and deploy it onto the nodes.", 'start': 2250.784, 'duration': 4.324}, {'end': 2256.99, 'text': 'This is that easy guys.', 'start': 2255.569, 'duration': 1.421}, {'end': 2261.254, 'text': 'So let me just focus on few challenges that configuration management helps us to overcome.', 'start': 2257.03, 'duration': 4.224}, {'end': 2266.445, 'text': 'First of all, it can help us to figure out which components to change when requirements change.', 'start': 2262.023, 'duration': 4.422}, {'end': 2274.069, 'text': 'It also helps us in redoing an implementation, because the requirements have changed since the last implementation and very important point, guys,', 'start': 2266.885, 'duration': 7.184}, {'end': 2279.231, 'text': 'that it helps us to revert to a previous version of the component if you have replaced with a new, but the flawed version.', 'start': 2274.069, 'duration': 5.162}, {'end': 2283.293, 'text': 'Now, let me tell you the importance of configuration management through a use case.', 'start': 2279.712, 'duration': 3.581}, {'end': 2286.675, 'text': 'Now, the best example I know is of New York Stock Exchange.', 'start': 2283.954, 'duration': 2.721}, {'end': 2291.877, 'text': 'A software glitch prevented the NYC from trading stocks for almost 90 minutes.', 'start': 2287.213, 'duration': 4.664}, {'end': 2295.039, 'text': 'This led to millions of dollars of loss.', 'start': 2292.717, 'duration': 2.322}, {'end': 2303.365, 'text': 'a new software installation caused the problem that software was installed on eight of its 20 trading terminals and the system was tested out the night before.', 'start': 2295.039, 'duration': 8.326}, {'end': 2306.467, 'text': 'However in the morning it failed to operate on the eight terminals.', 'start': 2303.745, 'duration': 2.722}, {'end': 2309.149, 'text': 'So there was a need to switch back to the old software.', 'start': 2306.928, 'duration': 2.221}, {'end': 2315.614, 'text': "Now, you might think that this was a failure of NYC's configuration management process, but in reality, it was a success.", 'start': 2309.469, 'duration': 6.145}, {'end': 2323.181, 'text': 'As a result of proper configuration management, NYC recovered from that situation in 90 minutes, which was pretty fast.', 'start': 2316.315, 'duration': 6.866}, {'end': 2327.105, 'text': 'had the problem continued longer, the consequences would have been more severe guys.', 'start': 2323.181, 'duration': 3.924}, {'end': 2329.287, 'text': 'So I hope you have understood its importance.', 'start': 2327.705, 'duration': 1.582}, {'end': 2332.71, 'text': "Now, let's focus on various tools available for configuration management.", 'start': 2329.447, 'duration': 3.263}, {'end': 2335.732, 'text': 'So we have multiple tools like puppet chef ansible and salt stack.', 'start': 2333.01, 'duration': 2.722}, {'end': 2337.173, 'text': "I'm going to focus on puppet for now.", 'start': 2335.772, 'duration': 1.401}, {'end': 2342.218, 'text': 'So puppet is a configuration management tool that is used for deploying configuring and managing servers.', 'start': 2337.534, 'duration': 4.684}, {'end': 2344.771, 'text': "So let's see what are the various functions of puppet.", 'start': 2342.89, 'duration': 1.881}, {'end': 2345.971, 'text': 'So, first of all,', 'start': 2345.311, 'duration': 0.66}, {'end': 2355.636, 'text': 'you can define distinct configurations for each and every host and continuously check and confirm whether the required configuration is in place and is not altered on the host.', 'start': 2345.971, 'duration': 9.665}, {'end': 2359.832, 'text': 'So what I mean by that you can actually define distinct configuration.', 'start': 2356.508, 'duration': 3.324}, {'end': 2361.934, 'text': 'For example in my one particular node.', 'start': 2360.172, 'duration': 1.762}, {'end': 2363.716, 'text': 'I need this office stack and another node.', 'start': 2361.954, 'duration': 1.762}, {'end': 2365.738, 'text': 'I need this office stack so I can, you know,', 'start': 2363.756, 'duration': 1.982}, {'end': 2374.307, 'text': 'define distinct configurations for different nodes and continuously check and confirm whether the required configuration is in place and is not altered.', 'start': 2365.738, 'duration': 8.569}, {'end': 2378.031, 'text': 'and if it is altered, puppet will revert back to the required configurations.', 'start': 2374.307, 'duration': 3.724}, {'end': 2379.535, 'text': 'This is one function of puppet.', 'start': 2378.412, 'duration': 1.123}, {'end': 2382.502, 'text': 'It can also help in dynamic scaling up and scaling down of machines.', 'start': 2379.595, 'duration': 2.907}, {'end': 2387.315, 'text': "So what will happen if in your company, there's a big billion day sale, right? And you're expecting a lot of traffic.", 'start': 2382.803, 'duration': 4.512}, {'end': 2390.541, 'text': 'So at that time, in order to provision more servers.', 'start': 2387.839, 'duration': 2.702}, {'end': 2396.366, 'text': 'probably today your task is to provision 10 servers and tomorrow you might have to provision, say, 100 BMS, right?', 'start': 2390.541, 'duration': 5.825}, {'end': 2397.227, 'text': 'So how will you do that?', 'start': 2396.386, 'duration': 0.841}, {'end': 2400.029, 'text': 'You cannot go ahead and do that manually by writing scripts.', 'start': 2397.367, 'duration': 2.662}, {'end': 2404.593, 'text': 'You need tools like puppet that can help you in Dynamic scaling up and scaling down of machines.', 'start': 2400.469, 'duration': 4.124}, {'end': 2407.455, 'text': 'It provides control over all of your configured machines.', 'start': 2405.013, 'duration': 2.442}, {'end': 2410.738, 'text': 'So a centralized change gets propagated to all automatically.', 'start': 2407.495, 'duration': 3.243}, {'end': 2417.701, 'text': 'So it follows a master-slave architecture in which the slaves will pull the central server for changes made in the configuration.', 'start': 2411.238, 'duration': 6.463}, {'end': 2420.262, 'text': 'So we have multiple nodes there which are connected to the master.', 'start': 2417.761, 'duration': 2.501}, {'end': 2422.643, 'text': 'So they will pull they will check continuously.', 'start': 2420.682, 'duration': 1.961}, {'end': 2424.504, 'text': 'Is there any change in the configuration?', 'start': 2422.803, 'duration': 1.701}, {'end': 2425.764, 'text': 'happened the master.', 'start': 2424.504, 'duration': 1.26}, {'end': 2429.946, 'text': 'the moment any change happen? It will pull that configuration and deploy it onto that particular node.', 'start': 2425.764, 'duration': 4.182}, {'end': 2431.301, 'text': "I hope you're getting my point.", 'start': 2430.521, 'duration': 0.78}, {'end': 2433.823, 'text': 'So this is called pull configuration and push configuration.', 'start': 2431.322, 'duration': 2.501}, {'end': 2440.206, 'text': 'The master will actually push the configurations onto the nodes which happens in ansible and solstack but does not happen in puppet and chef.', 'start': 2434.303, 'duration': 5.903}, {'end': 2444.909, 'text': 'So these two tools follow pull configuration and ansible and solstack follows push configuration,', 'start': 2440.246, 'duration': 4.663}], 'summary': 'Configuration management tools help automate infrastructure provisioning, reducing errors and improving scalability. puppet offers distinct configurations for each host and dynamic scaling capabilities.', 'duration': 249.928, 'max_score': 2194.981, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hQcFE0RD0cQ/pics/hQcFE0RD0cQ2194981.jpg'}, {'end': 2601.657, 'src': 'embed', 'start': 2574.505, 'weight': 1, 'content': [{'end': 2579.591, 'text': 'The dependencies of my application, the binary library is required for that application is there in my container.', 'start': 2574.505, 'duration': 5.086}, {'end': 2585.838, 'text': 'Nowadays, if you must have noticed that when you want to install some software, you will actually get ready to use Docker containers right?', 'start': 2579.971, 'duration': 5.867}, {'end': 2590.403, 'text': "That is the reason because it's pretty lightweight when you compare it with virtual machines right?", 'start': 2586.379, 'duration': 4.024}, {'end': 2594.288, 'text': 'So let me discuss a use case how you can actually use Docker in the industry.', 'start': 2590.423, 'duration': 3.865}, {'end': 2598.035, 'text': 'So suppose you have some complex requirements for your application.', 'start': 2594.853, 'duration': 3.182}, {'end': 2599.116, 'text': 'It can be a microservice.', 'start': 2598.075, 'duration': 1.041}, {'end': 2601.657, 'text': 'It can be a monolithic application anything.', 'start': 2599.176, 'duration': 2.481}], 'summary': 'Docker containers are lightweight and useful for complex application requirements in industry.', 'duration': 27.152, 'max_score': 2574.505, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hQcFE0RD0cQ/pics/hQcFE0RD0cQ2574505.jpg'}, {'end': 2634.09, 'src': 'embed', 'start': 2606.16, 'weight': 2, 'content': [{'end': 2609.642, 'text': 'You have written the docker file for that with the help of this docker file.', 'start': 2606.16, 'duration': 3.482}, {'end': 2611.623, 'text': 'I can create a docker image.', 'start': 2609.882, 'duration': 1.741}, {'end': 2614.905, 'text': 'So docker image is nothing, but you know a template.', 'start': 2612.203, 'duration': 2.702}, {'end': 2617.667, 'text': 'you can think of it as a template for your docker container right?', 'start': 2614.905, 'duration': 2.762}, {'end': 2621.649, 'text': 'And with the help of docker image, you can create as many docker containers as you want.', 'start': 2617.767, 'duration': 3.882}, {'end': 2623.165, 'text': 'Let me repeat it once more.', 'start': 2622.205, 'duration': 0.96}, {'end': 2628.388, 'text': 'So we have written the complex requirements for a microservice application in an easy-to-write Docker file.', 'start': 2623.586, 'duration': 4.802}, {'end': 2634.09, 'text': 'From there, we have created a Docker image and with the help of Docker image, we can build as many containers as we want.', 'start': 2628.668, 'duration': 5.422}], 'summary': 'Docker file created for microservice app, generating multiple containers from image.', 'duration': 27.93, 'max_score': 2606.16, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hQcFE0RD0cQ/pics/hQcFE0RD0cQ2606160.jpg'}], 'start': 1061.879, 'title': 'Devops and version control', 'summary': 'Covers centralized and distributed version control systems, including their drawbacks and benefits. it also discusses git basics, devops stages, functional testing, configuration management, importance of configuration management, tools like puppet, and containerization with docker and continuous monitoring tools like nagios.', 'chapters': [{'end': 1152.933, 'start': 1061.879, 'title': 'Centralized version control', 'summary': 'Explains the concept of a centralized version control system where every developer can access and make changes to a shared repository connected to a central server, leading to potential drawbacks such as the need for constant network connectivity and the risk of data loss in case of server issues.', 'duration': 91.054, 'highlights': ['Every developer can access and make changes to a shared repository connected to a central server', 'Need for constant network connectivity', 'Risk of data loss in case of server issues']}, {'end': 1452.157, 'start': 1152.953, 'title': 'Distributed version control system', 'summary': "Discusses the advantages of distributed version control over centralized version control, highlighting that in a distributed version control system, every contributor has a local copy of the main repository, enabling fast operations and the ability to recover lost data from contributors' local repositories if the central server crashes.", 'duration': 299.204, 'highlights': ['In a distributed version control system, every contributor has a local copy of the main repository, which allows fast operations and local data manipulation, reducing the need for constant internet connection.', "The ability to recover lost data from any one of the contributors' local repository in case of central server crash is a significant advantage of a distributed version control system.", 'Committing new chainsets can be done locally without manipulating the data on the main repository, and a group of chainsets can be pushed to the central server at once, streamlining the process of affecting changes to the main repository.', 'Every contributor having a full copy of the project repository enables them to share changes with one another for feedback before affecting the changes in the main repository, enhancing collaboration and quality assurance.', 'Git is a distributed version control tool that supports distributed nonlinear workflows and provides data assurance for developing quality software, making it a popular choice in the market for source code management.']}, {'end': 1995.831, 'start': 1452.157, 'title': 'Git basics and devops stages', 'summary': 'Covers the basics of initializing and adding files to a local git repository, connecting with remote repositories such as github, and introduces the stages of devops, including continuous integration, continuous delivery, and continuous deployment.', 'duration': 543.674, 'highlights': ['The chapter covers the basics of initializing and adding files to a local git repository, connecting with remote repositories such as GitHub, and introduces the stages of DevOps, including continuous integration, continuous delivery, and continuous deployment.', 'Continuous integration involves committing changes to the source code in a shared repository several times a day, with each commit triggering a build using Jenkins, which includes compiling, code review, unit testing, integration testing, and packaging.', 'Continuous delivery entails deploying the built application onto a test server for end user testing or user acceptance test, allowing for early problem detection and automated deployment onto production servers.', "Continuous deployment involves automatically deploying the tested application onto production servers, although it's highlighted as not advisable due to the potential need for additional checks before release."]}, {'end': 2244.718, 'start': 1995.851, 'title': 'Functional testing and configuration management', 'summary': 'Discusses functional testing of an application, including checking the functions after deployment onto a server and the continuous deployment of an application onto production servers. it also covers the use of jenkins for project management and the importance of configuration management in addressing dependency issues and infrastructure provisioning.', 'duration': 248.867, 'highlights': ['The chapter discusses the concept of functional testing, involving the testing of various functions of a website or application after deploying it onto a server, such as checking the search engine and user login functionality.', 'It highlights the continuous deployment of an application onto production servers after testing, emphasizing the importance of avoiding continuous or automated deployment as a good practice.', 'The use of Jenkins for project management is demonstrated, including the installation of plugins and project configuration.', 'The importance of configuration management in addressing dependency issues during deployment and provisioning of servers is explained, with the concept of infrastructure as code being emphasized for centralized system state management.']}, {'end': 2504.765, 'start': 2244.858, 'title': 'Configuration management importance & tools', 'summary': 'Emphasizes the importance of configuration management, highlighting its role in preventing financial losses through a use case, and also details the functions and architecture of puppet as a configuration management tool.', 'duration': 259.907, 'highlights': ['Configuration management played a crucial role in preventing financial losses for the New York Stock Exchange, recovering from a software glitch in just 90 minutes.', "Puppet's function of dynamically scaling up and down of machines provides an efficient solution for managing server capacity during high traffic events, such as a big billion day sale.", 'The architecture of Puppet involves a master-slave setup where the puppet agent sends facts to the puppet master, which then compiles a catalog defining the desired state for each resource on the slave.']}, {'end': 3025.904, 'start': 2504.765, 'title': 'Chapter on containerization & continuous monitoring', 'summary': 'Discusses containerization, emphasizing the lightweight and efficient nature of docker containers compared to virtual machines, and delves into continuous monitoring tools such as nagios, highlighting their significance in detecting and resolving system errors to maintain business productivity.', 'duration': 521.139, 'highlights': ['Docker containers are explained as lightweight alternatives to virtual machines, containing the binaries and libraries required for specific applications, making them significantly more efficient compared to virtual machines.', 'The process of creating Docker images and containers from a Docker file is detailed, highlighting the ability to replicate complex application requirements and maintain consistent computing environments throughout the software delivery lifecycle.', 'Continuous monitoring tools, particularly Nagios, are presented as essential for detecting and resolving system errors to prevent negative impacts on business productivity, including the ability to automatically fix problems when detected.']}], 'duration': 1964.025, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hQcFE0RD0cQ/pics/hQcFE0RD0cQ1061879.jpg', 'highlights': ['Git supports distributed nonlinear workflows and provides data assurance for developing quality software.', 'Every contributor having a full copy of the project repository enables them to share changes with one another for feedback before affecting the changes in the main repository, enhancing collaboration and quality assurance.', 'In a distributed version control system, every contributor has a local copy of the main repository, allowing fast operations and local data manipulation, reducing the need for constant internet connection.', 'Continuous integration involves committing changes to the source code in a shared repository several times a day, with each commit triggering a build using Jenkins, including compiling, code review, unit testing, integration testing, and packaging.', 'The importance of configuration management in addressing dependency issues during deployment and provisioning of servers is explained, with the concept of infrastructure as code being emphasized for centralized system state management.', 'Docker containers are explained as lightweight alternatives to virtual machines, containing the binaries and libraries required for specific applications, making them significantly more efficient compared to virtual machines.']}, {'end': 3659.064, 'segs': [{'end': 3129.664, 'src': 'embed', 'start': 3098.494, 'weight': 1, 'content': [{'end': 3104.118, 'text': 'Then we saw what is configuration management and containerization and finally explained continuous monitoring.', 'start': 3098.494, 'duration': 5.624}, {'end': 3109.219, 'text': 'Right. so in between I was even switching back to my version machine, where I have few tools already installed,', 'start': 3104.438, 'duration': 4.781}, {'end': 3111.72, 'text': 'and I was telling you a few basics about those tools.', 'start': 3109.219, 'duration': 2.501}, {'end': 3115.341, 'text': "now comes the most awaited topic of today's session, which is our use case.", 'start': 3111.72, 'duration': 3.621}, {'end': 3118.461, 'text': "So let's see what we are going to implement in today's use case.", 'start': 3115.861, 'duration': 2.6}, {'end': 3120.082, 'text': "So this is what we'll be doing.", 'start': 3118.941, 'duration': 1.141}, {'end': 3121.902, 'text': 'We have git repository right?', 'start': 3120.322, 'duration': 1.58}, {'end': 3129.664, 'text': 'So developers will be committing code to this git repository and from there Jenkins will pull that code and it will first clone that repository.', 'start': 3122.042, 'duration': 7.622}], 'summary': 'Explained configuration management, containerization, continuous monitoring, and a use case involving jenkins and git repository.', 'duration': 31.17, 'max_score': 3098.494, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hQcFE0RD0cQ/pics/hQcFE0RD0cQ3098494.jpg'}, {'end': 3176.496, 'src': 'embed', 'start': 3151.078, 'weight': 3, 'content': [{'end': 3156.182, 'text': 'So the moment any developers commit to change in the source code Jenkins will clone the entire git repository.', 'start': 3151.078, 'duration': 5.104}, {'end': 3163.088, 'text': 'It will build a docker image based on a docker file that will create and from there it will push the docker image onto the docker hub.', 'start': 3156.703, 'duration': 6.385}, {'end': 3165.85, 'text': 'This will happen automatically with a click of a button.', 'start': 3163.648, 'duration': 2.202}, {'end': 3170.513, 'text': 'So what all tools will be using will be using git Jenkins and docker.', 'start': 3166.55, 'duration': 3.963}, {'end': 3173.756, 'text': "So let me just quickly open my virtual machine and I'll show you there.", 'start': 3171.174, 'duration': 2.582}, {'end': 3176.496, 'text': 'So what our application is all about?', 'start': 3174.975, 'duration': 1.521}], 'summary': 'Jenkins automates cloning, building, and pushing docker images from git repository, using git, jenkins, and docker.', 'duration': 25.418, 'max_score': 3151.078, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hQcFE0RD0cQ/pics/hQcFE0RD0cQ3151078.jpg'}, {'end': 3220.194, 'src': 'embed', 'start': 3189.207, 'weight': 0, 'content': [{'end': 3190.809, 'text': 'So we have a main.js.', 'start': 3189.207, 'duration': 1.602}, {'end': 3194.172, 'text': 'Let me just go ahead and show you on my GitHub repository.', 'start': 3191.029, 'duration': 3.143}, {'end': 3196.454, 'text': 'Let me just go back.', 'start': 3195.133, 'duration': 1.321}, {'end': 3202.037, 'text': 'So this is how our application looks like guys.', 'start': 3199.815, 'duration': 2.222}, {'end': 3207.022, 'text': 'We have main.js right apart from that we have package.json for our dependencies.', 'start': 3202.057, 'duration': 4.965}, {'end': 3209.925, 'text': 'Then we have Jenkins file and Docker file Jenkins file.', 'start': 3207.542, 'duration': 2.383}, {'end': 3212.207, 'text': "I'll explain it to you what we are going to do with it.", 'start': 3210.205, 'duration': 2.002}, {'end': 3220.194, 'text': 'But before that let me just explain you a few basics of Docker file and how we can build a Docker image of this particular very basic node.js application.', 'start': 3212.347, 'duration': 7.847}], 'summary': 'A basic node.js application with main.js, package.json, jenkins file, and docker file is demonstrated for docker image building.', 'duration': 30.987, 'max_score': 3189.207, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hQcFE0RD0cQ/pics/hQcFE0RD0cQ3189207.jpg'}, {'end': 3256.494, 'src': 'embed', 'start': 3228.779, 'weight': 2, 'content': [{'end': 3234.642, 'text': 'It tells docker what the contents and parameters of our image should be so docker images are often based on other images.', 'start': 3228.779, 'duration': 5.863}, {'end': 3238.404, 'text': 'But before that, let me just go ahead and create a docker file for you.', 'start': 3234.982, 'duration': 3.422}, {'end': 3241.646, 'text': 'So let me just first clone this particular repository.', 'start': 3238.784, 'duration': 2.862}, {'end': 3249.61, 'text': 'So let me go to that particular directory first.', 'start': 3247.489, 'duration': 2.121}, {'end': 3252.052, 'text': "It's there in downloads.", 'start': 3250.691, 'duration': 1.361}, {'end': 3256.494, 'text': 'Let me unzip this first.', 'start': 3254.813, 'duration': 1.681}], 'summary': 'Creating a docker file based on existing images and setting parameters for the image.', 'duration': 27.715, 'max_score': 3228.779, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hQcFE0RD0cQ/pics/hQcFE0RD0cQ3228779.jpg'}], 'start': 3026.539, 'title': 'Nagios daemon, devops, docker, and jenkins', 'summary': 'Details the functioning of nagios daemon, devops use case with git, jenkins, and docker for automated deployment, and creation of docker image using docker file, along with automation using jenkins for repository, image building, and pushing to docker hub. it provides insights into jenkins file, credentials setup, and project configuration.', 'chapters': [{'end': 3256.494, 'start': 3026.539, 'title': 'Nagios daemon and devops use case', 'summary': 'Explains the functioning of nagios daemon as a scheduler running plugins to determine the status of hosts and services, as well as provides a detailed overview of the stages and tools involved in a devops use case involving git, jenkins, and docker for automated deployment of a node.js application.', 'duration': 229.955, 'highlights': ['The chapter explains the functioning of Nagios daemon as a scheduler running plugins to determine the status of hosts and services', 'Provides a detailed overview of the stages and tools involved in a DevOps use case involving Git, Jenkins, and Docker for automated deployment of a Node.js application']}, {'end': 3659.064, 'start': 3256.674, 'title': 'Docker image creation and jenkins automation', 'summary': 'Explains the creation of a docker image using a docker file and demonstrates automation using jenkins to clone a repository, build and test the docker image, and push it to docker hub, with details on jenkins file, credentials setup, and project configuration.', 'duration': 402.39, 'highlights': ['The chapter explains the creation of a Docker image using a Docker file', 'Demonstrates automation using Jenkins to clone a repository, build and test the Docker image, and push it to Docker Hub', 'Details on Jenkins file, credentials setup, and project configuration']}], 'duration': 632.525, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hQcFE0RD0cQ/pics/hQcFE0RD0cQ3026539.jpg', 'highlights': ['Detailed overview of DevOps use case with Git, Jenkins, and Docker for automated deployment', 'Functioning of Nagios daemon as a scheduler running plugins to determine status of hosts and services', 'Automation using Jenkins to clone a repository, build and test Docker image, and push to Docker Hub', 'Creation of Docker image using a Docker file', 'Insights into Jenkins file, credentials setup, and project configuration']}, {'end': 5827.808, 'segs': [{'end': 4799.131, 'src': 'embed', 'start': 4773.641, 'weight': 1, 'content': [{'end': 4779.725, 'text': 'and it was very important for Dominion Enterprises to choose a platform that made working together possible.', 'start': 4773.641, 'duration': 6.084}, {'end': 4785.407, 'text': "And this wasn't just a matter of sharing Dominion Enterprise's open source project on GitHub.", 'start': 4780.445, 'duration': 4.962}, {'end': 4793.169, 'text': 'They also had to combat the implications of storing private code publicly to make their work more transparent across the company as well.', 'start': 4785.507, 'duration': 7.662}, {'end': 4799.131, 'text': 'And they were also using Jenkins to facilitate continuous integration environment.', 'start': 4794.009, 'duration': 5.122}], 'summary': 'Dominion enterprises chose a platform for collaboration, shared open source project on github, while combatting implications of storing private code, and used jenkins for continuous integration.', 'duration': 25.49, 'max_score': 4773.641, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hQcFE0RD0cQ/pics/hQcFE0RD0cQ4773641.jpg'}, {'end': 4991.889, 'src': 'embed', 'start': 4949.229, 'weight': 0, 'content': [{'end': 4952.431, 'text': 'someone might be working from the United States, someone might be in India.', 'start': 4949.229, 'duration': 3.202}, {'end': 4956.112, 'text': 'So the word, the project is actually distributed.', 'start': 4952.991, 'duration': 3.121}, {'end': 4960.954, 'text': 'Everyone has a local copy, so it is distributed worldwide, you can say.', 'start': 4956.232, 'duration': 4.722}, {'end': 4963.895, 'text': 'So this is what distributed actually means.', 'start': 4961.574, 'duration': 2.321}, {'end': 4967.657, 'text': 'So the next feature is that it is compatible.', 'start': 4964.836, 'duration': 2.821}, {'end': 4978.383, 'text': "Now let's say that you might not be using Git on the first place, but you have a different version control system already installed, like SVN,", 'start': 4968.598, 'duration': 9.785}, {'end': 4981.084, 'text': 'like Apache Subversion or CVS,', 'start': 4978.383, 'duration': 2.701}, {'end': 4988.987, 'text': "and you want to switch to Git because obviously you're not happy with the centralized version control system and you want a more distributed version control system.", 'start': 4981.084, 'duration': 7.903}, {'end': 4991.889, 'text': 'So you want to migrate from SVN to Git.', 'start': 4989.508, 'duration': 2.381}], 'summary': 'Project is distributed worldwide, compatible for migration from svn to git.', 'duration': 42.66, 'max_score': 4949.229, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hQcFE0RD0cQ/pics/hQcFE0RD0cQ4949229.jpg'}, {'end': 5038.54, 'src': 'embed', 'start': 5010.673, 'weight': 3, 'content': [{'end': 5018.875, 'text': 'So you just have to download and install Git in your system and you can directly access the SVN repository over the network,', 'start': 5010.673, 'duration': 8.202}, {'end': 5020.315, 'text': 'which is the central repository.', 'start': 5018.875, 'duration': 1.44}, {'end': 5024.876, 'text': "So the local repository that you'll have is going to be a Git repository.", 'start': 5020.775, 'duration': 4.101}, {'end': 5029.718, 'text': "And if you don't want to change your central repository, then you can do that as well.", 'start': 5025.456, 'duration': 4.262}, {'end': 5038.54, 'text': 'We can use Git SVN and you can directly access all the files, all the files in your project that is residing in an SVN repository.', 'start': 5029.758, 'duration': 8.782}], 'summary': 'Download and install git to access svn repository, enabling direct file access.', 'duration': 27.867, 'max_score': 5010.673, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hQcFE0RD0cQ/pics/hQcFE0RD0cQ5010673.jpg'}], 'start': 3659.685, 'title': 'Version control systems', 'summary': 'Introduces the basics and benefits of version control systems, highlighting the purpose, advantages, and popular tools. it also discusses the advantages of git over svn, its features, and the economical and efficient aspects of using git for collaboration and repository management.', 'chapters': [{'end': 4025.348, 'start': 3659.685, 'title': 'Version control system basics', 'summary': 'Introduces version control system by explaining its purpose, which is to manage changes in a project, and the need for it, highlighting benefits like collaboration and storing versions.', 'duration': 365.663, 'highlights': ['Version control system manages changes in a project, creating snapshots of the entire project after each change, known as different versions.', "The collaboration benefits of version control system include providing a shared workspace, continuously informing about changes, and visualizing everyone's work, leading to reduced conflicts and time savings.", 'Storing versions is essential, and without a version control system, it can lead to confusion regarding how much to save, whether to save the entire project or just the changes, and how to name the versions.']}, {'end': 4337.835, 'start': 4025.348, 'title': 'Benefits of version control systems', 'summary': 'Highlights the benefits of version control systems, emphasizing the importance of avoiding naming and tracking issues in project versions, providing backup and analysis features, and comparing popular version control tools git, apache subversion, cvs, and mercurial.', 'duration': 312.487, 'highlights': ['The version control system ensures that project versions are neatly packed inside the system, eliminating the need to worry about naming, tracking changes, or remembering differences between versions.', 'A distributed version control system, like Git, provides a backup by allowing developers to maintain local copies of project files, ensuring resilience in case of a central server crash.', 'Version control systems enable project analysis by providing detailed information on changes, timelines, and descriptions, allowing for easy evaluation and improvement.', 'Comparison of popular version control tools including Git, Apache Subversion, CVS, and Mercurial, highlighting the preference for distributed systems and emphasizing the focus on learning Git in the tutorial.']}, {'end': 4832.199, 'start': 4338.015, 'title': 'Git vs svn: why choose git and github', 'summary': 'Discusses the popularity of git over svn, mercurial, and cvs, the distinction between git and github, advantages of distributed version control system over centralized system, and a github case study of dominion enterprises showcasing their successful adoption of github for code sharing and collaboration, leading to faster software delivery and improved transparency.', 'duration': 494.184, 'highlights': ['Git has always been the most popular version control tool as compared to SVN, Mercurial, and CVS, making it a preferred choice for developers.', 'GitHub is a code hosting platform for version control collaboration, providing a secure place for developers to share code and work together, as demonstrated by the Dominion Enterprises case study.', 'Advantages of distributed version control system include providing a backup in case of central server crashes and enabling work on local files without constant internet access, offering benefits that centralized systems cannot provide.']}, {'end': 5491.726, 'start': 4832.84, 'title': 'Understanding git: version control system', 'summary': 'Explains git as a distributed version control tool, highlighting its benefits including local repository creation, compatibility with existing systems, support for non-linear software development, lightweight data storage, high speed, and security with sha1 encryption.', 'duration': 658.886, 'highlights': ['Git is a distributed version control tool that facilitates creating a local repository in your local machine and accessing remote repository, providing speed and reliability.', 'Git supports non-linear software development through a branching model, allowing multiple independent local branches and quick creation, merging, and deletion of branches.', 'Git uses lossless compression for data storage, resulting in minimal space usage and 100 times faster file fetching from local repository compared to a remote one.', 'Git is compatible with existing version control systems like SVN and protocols like SSH, enabling easy migration and usage without major changes.', "Git's security is ensured through SHA1 encryption, making it hard to alter commit objects without detection and providing a secure way to revert to previous versions."]}, {'end': 5827.808, 'start': 5492.387, 'title': 'Git: economical and efficient', 'summary': "Explains that git is released under the general public's license, making it free, enabling users to save money on hardware, and allows for efficient and secure collaboration between central and local repositories. it also highlights the process of creating and syncing central and local repositories and using git operations and commands.", 'duration': 335.421, 'highlights': ["Git is released under the general public's license, making it free.", 'Users can save money on hardware for the central repository.', 'Process of creating and syncing central and local repositories is explained.', 'Usage of Git operations and commands is outlined.']}], 'duration': 2168.123, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hQcFE0RD0cQ/pics/hQcFE0RD0cQ3659685.jpg', 'highlights': ["Git is released under the general public's license, making it free.", 'Git has always been the most popular version control tool as compared to SVN, Mercurial, and CVS, making it a preferred choice for developers.', 'Version control system manages changes in a project, creating snapshots of the entire project after each change, known as different versions.', "The collaboration benefits of version control system include providing a shared workspace, continuously informing about changes, and visualizing everyone's work, leading to reduced conflicts and time savings.", 'Git supports non-linear software development through a branching model, allowing multiple independent local branches and quick creation, merging, and deletion of branches.', 'A distributed version control system, like Git, provides a backup by allowing developers to maintain local copies of project files, ensuring resilience in case of a central server crash.']}, {'end': 7399.191, 'segs': [{'end': 5882.766, 'src': 'embed', 'start': 5849.109, 'weight': 5, 'content': [{'end': 5851.732, 'text': "I already have an account, so I'm just going to sign in here.", 'start': 5849.109, 'duration': 2.623}, {'end': 5859.102, 'text': "So after you're signed in, you'll find this page here.", 'start': 5856.641, 'duration': 2.461}, {'end': 5864.804, 'text': "So you'll get two buttons where you can read the guide of how to use GitHub or you can just start a project right away.", 'start': 5859.242, 'duration': 5.562}, {'end': 5869.826, 'text': "Now I'll be telling you all about GitHub so you don't have to click this button right now.", 'start': 5865.444, 'duration': 4.382}, {'end': 5872.067, 'text': 'So you can just go ahead and start a project.', 'start': 5869.886, 'duration': 2.181}, {'end': 5882.766, 'text': 'So now Git tells that for every project you need to maintain a unique repository.', 'start': 5876.403, 'duration': 6.363}], 'summary': 'Signing into existing account, accessing guide or starting a project on github. emphasizing need for unique repository.', 'duration': 33.657, 'max_score': 5849.109, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hQcFE0RD0cQ/pics/hQcFE0RD0cQ5849109.jpg'}, {'end': 6024.61, 'src': 'embed', 'start': 5997.29, 'weight': 3, 'content': [{'end': 6000.312, 'text': 'and then you can actually add some license as well.', 'start': 5997.29, 'duration': 3.022}, {'end': 6003.435, 'text': 'so you can just go through what this license actually are.', 'start': 6000.312, 'duration': 3.123}, {'end': 6012.361, 'text': 'but if you want, you can just leave it as none and after that just click on this green button here.', 'start': 6003.435, 'duration': 8.926}, {'end': 6017.205, 'text': 'so just create your repository, and so there it is.', 'start': 6012.361, 'duration': 4.844}, {'end': 6019.166, 'text': 'so you can see, this is the initial commit.', 'start': 6017.205, 'duration': 1.961}, {'end': 6024.61, 'text': 'you have initialized your repository with the readme, and this is your readme file.', 'start': 6019.166, 'duration': 5.444}], 'summary': 'Creating a repository with initial commit and readme file.', 'duration': 27.32, 'max_score': 5997.29, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hQcFE0RD0cQ/pics/hQcFE0RD0cQ5997290.jpg'}, {'end': 6452.231, 'src': 'embed', 'start': 6428.124, 'weight': 6, 'content': [{'end': 6437.274, 'text': 'You should not make very frequent changes into the central repository because that might interrupt the work of your other collaborators or other contributors as well.', 'start': 6428.124, 'duration': 9.15}, {'end': 6442.106, 'text': 'So let us move ahead and see how we can make changes.', 'start': 6439.144, 'duration': 2.962}, {'end': 6452.231, 'text': 'So now Git actually has a concept, it has an intermediate layer that resides between your workspace and your local repository.', 'start': 6442.826, 'duration': 9.405}], 'summary': 'Minimize frequent changes to central repository to avoid interruptions. git has intermediate layer between workspace and local repository.', 'duration': 24.107, 'max_score': 6428.124, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hQcFE0RD0cQ/pics/hQcFE0RD0cQ6428124.jpg'}, {'end': 6548.25, 'src': 'embed', 'start': 6518.429, 'weight': 1, 'content': [{'end': 6522.973, 'text': "So let's say that you've made some changes and you have committed those changes.", 'start': 6518.429, 'duration': 4.544}, {'end': 6531.86, 'text': 'What your version control system will do is that it will create another commit object and this is going to be your different version with the changes.', 'start': 6523.353, 'duration': 8.507}, {'end': 6540.126, 'text': 'So your commit snapshots are actually going to contain snapshots of the project which is actually changed.', 'start': 6532.501, 'duration': 7.625}, {'end': 6541.807, 'text': 'So this is what commit is.', 'start': 6540.526, 'duration': 1.281}, {'end': 6548.25, 'text': "So I'll just show you, I'll just go ahead and show you how to commit changes in your local repository.", 'start': 6542.888, 'duration': 5.362}], 'summary': 'Version control system creates commit object with snapshots of changed project.', 'duration': 29.821, 'max_score': 6518.429, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hQcFE0RD0cQ/pics/hQcFE0RD0cQ6518429.jpg'}, {'end': 6905.255, 'src': 'embed', 'start': 6875.649, 'weight': 0, 'content': [{'end': 6879.13, 'text': 'And you see that all the files have been added to the index at once.', 'start': 6875.649, 'duration': 3.481}, {'end': 6883.811, 'text': "And it's similarly with commit as well.", 'start': 6881.791, 'duration': 2.02}, {'end': 6889.953, 'text': 'So now that you have added all the files in the index, I can also commit them all at once.', 'start': 6883.851, 'duration': 6.102}, {'end': 6892.414, 'text': 'And how to do that? Let me just show you.', 'start': 6890.534, 'duration': 1.88}, {'end': 6894.515, 'text': 'You just have to write git commit.', 'start': 6892.434, 'duration': 2.081}, {'end': 6898.368, 'text': 'hyphen small a.', 'start': 6896.506, 'duration': 1.862}, {'end': 6905.255, 'text': 'so if you want to commit all, you have to use hyphen small a in case of git commit, whereas in case of git add.', 'start': 6898.368, 'duration': 6.887}], 'summary': "All files added to index and committed at once using 'git commit -a'.", 'duration': 29.606, 'max_score': 6875.649, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hQcFE0RD0cQ/pics/hQcFE0RD0cQ6875649.jpg'}, {'end': 7342.795, 'src': 'embed', 'start': 7316.455, 'weight': 4, 'content': [{'end': 7323.262, 'text': "and if you remember that we've got a different file in my first branch, which is the edu4, and it's not there in my master branch yet.", 'start': 7316.455, 'duration': 6.807}, {'end': 7327.246, 'text': 'So what I want to do is merge that branch into my master branch.', 'start': 7323.622, 'duration': 3.624}, {'end': 7334.308, 'text': "So for that I'll use a command called git merge and the name of my branch.", 'start': 7328.127, 'duration': 6.181}, {'end': 7342.795, 'text': "And there is a very important thing to remember when you're merging is that you want to merge the work of your first branch into master.", 'start': 7334.608, 'duration': 8.187}], 'summary': 'Merge edu4 branch into master using git merge command', 'duration': 26.34, 'max_score': 7316.455, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hQcFE0RD0cQ/pics/hQcFE0RD0cQ7316455.jpg'}], 'start': 5827.868, 'title': 'Managing github and git operations', 'summary': 'Covers creating and managing a github repository, setting up local and linking with remote repo, committing changes, git commands, branching, and merging, emphasizing best practices and practical examples, with a focus on maintaining unique repositories, syncing repositories, and viewing commit history.', 'chapters': [{'end': 6129.363, 'start': 5827.868, 'title': 'Creating and managing github repository', 'summary': 'Explains the process of creating and managing a github repository, including steps like creating an account, initializing a repository, adding files, and making commits, with emphasis on maintaining a unique repository and the optional public/private setting, along with the associated cost.', 'duration': 301.495, 'highlights': ['Creating a GitHub Repository', 'Maintaining a Unique Repository', 'Committing Changes and Reviewing Logs']}, {'end': 6681.644, 'start': 6129.723, 'title': 'Setting up local repository and linking with remote repository', 'summary': "Covers the process of setting up a local repository, linking it with a remote repository, and committing changes in git, emphasizing the commands 'git init', 'git remote add origin', 'git pull', and 'git commit', with the importance of syncing repositories and best practices for pushing changes.", 'duration': 551.921, 'highlights': ['The importance of syncing repositories and best practices for pushing changes', 'Process of setting up a local repository and linking it with a remote repository', "Importance of 'git add' and 'git commit' in making changes in the local repository"]}, {'end': 6955.693, 'start': 6681.644, 'title': 'Git commit and multiple file additions', 'summary': "Explains the process of committing changes to a local repository using 'git commit' and adding multiple files at once using 'git add -a', emphasizing the importance of commit messages and showcasing the use of 'git log' to view commit history.", 'duration': 274.049, 'highlights': ["The command 'git commit' is used to commit changes to a local repository, requiring a commit message for tracking changes and users, with the user's name being displayed if configured.", "Demonstration of adding multiple files at once using 'git add -A', ensuring all files are added to the index and can be committed collectively.", "Use of 'git log' to view commit history, displaying a 40-digit hexadecimal code, SHA1 hash, date, and the commit message for each commit."]}, {'end': 7399.191, 'start': 6956.113, 'title': 'Git branching and merging', 'summary': 'Explains the concept of branching in git, creating branches, switching between branches, making changes in a branch, and merging branches back into the master branch, emphasizing the importance of merging for combining work, with a focus on practical examples and commands.', 'duration': 443.078, 'highlights': ['The process of branching in Git is explained, detailing its function as a pointer to a specific commit and its role in parallel development, with a focus on the master branch containing all the code and the creation of new branches for separate work.', 'Practical steps for creating and switching between branches are demonstrated, including the creation of local and remote tracking branches, with clear commands and examples provided for better understanding.', 'The process of making changes in a branch and committing those changes is outlined, emphasizing the distinction between the files in the master branch and the new branch, with a focus on the separate workspace of the new branch and the committed changes in it.', 'The importance and process of merging branches back into the master branch are explained, highlighting the significance of combining work and ensuring that the master branch contains production quality code, with practical steps and commands provided for merging.']}], 'duration': 1571.323, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hQcFE0RD0cQ/pics/hQcFE0RD0cQ5827868.jpg', 'highlights': ['Process of setting up a local repository and linking it with a remote repository', 'The importance and process of merging branches back into the master branch', 'Practical steps for creating and switching between branches are demonstrated', 'The process of branching in Git is explained, detailing its function as a pointer to a specific commit', "Use of 'git log' to view commit history, displaying a 40-digit hexadecimal code, SHA1 hash, date, and the commit message for each commit", "Demonstration of adding multiple files at once using 'git add -A', ensuring all files are added to the index and can be committed collectively", "The command 'git commit' is used to commit changes to a local repository, requiring a commit message for tracking changes and users", "Importance of 'git add' and 'git commit' in making changes in the local repository", 'The importance of syncing repositories and best practices for pushing changes', 'Covers creating and managing a GitHub repository, emphasizing best practices and practical examples', 'Maintaining a Unique Repository', 'Committing Changes and Reviewing Logs']}, {'end': 9048.901, 'segs': [{'end': 8598.526, 'src': 'embed', 'start': 8520.025, 'weight': 0, 'content': [{'end': 8527.35, 'text': 'So now you might not want to change everything that you made in Edu1, Edu2, Edu4 or some other files that we just created.', 'start': 8520.025, 'duration': 7.325}, {'end': 8534.736, 'text': "So let's just go and create a new file, modify it two times and revert back to the previous version just for demonstration purpose.", 'start': 8527.771, 'duration': 6.965}, {'end': 8539.094, 'text': "So I'm just going to create new text file.", 'start': 8535.397, 'duration': 3.697}, {'end': 8544.856, 'text': "let's call it revert.", 'start': 8539.094, 'duration': 5.762}, {'end': 8553.218, 'text': 'and now let us just type something hello.', 'start': 8544.856, 'duration': 8.362}, {'end': 8555.238, 'text': "let's just keep it that simple.", 'start': 8553.218, 'duration': 2.02}, {'end': 8558.199, 'text': 'just save it and go back.', 'start': 8555.238, 'duration': 2.961}, {'end': 8566.981, 'text': "we'll add this file, then commit this.", 'start': 8558.199, 'duration': 8.782}, {'end': 8576.7, 'text': "Let's say just call it revert1..", 'start': 8572.495, 'duration': 4.205}, {'end': 8580.264, 'text': 'Just remember that this is the first commit that I made with revert1.', 'start': 8576.84, 'duration': 3.424}, {'end': 8584.709, 'text': 'Enter, so it has been changed.', 'start': 8580.504, 'duration': 4.205}, {'end': 8589.699, 'text': "So now let's go back and modify this.", 'start': 8586.997, 'duration': 2.702}, {'end': 8598.526, 'text': "So after I've committed this file, it means that it has stored a version with the text hello exclamation in my revert text file.", 'start': 8589.819, 'duration': 8.707}], 'summary': 'Creating, modifying, and reverting a new file for demonstration purposes.', 'duration': 78.501, 'max_score': 8520.025, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hQcFE0RD0cQ/pics/hQcFE0RD0cQ8520025.jpg'}], 'start': 7399.471, 'title': 'Git branching and jenkins in ci', 'summary': "Covers topics like modifying branches, rebasing, pushing changes to central repository, ssh authentication, creating and managing branches in github, and jenkins' features and relevance in continuous integration, addressing problems like time-consuming testing, slow software delivery, and lack of continuous feedback.", 'chapters': [{'end': 7763.636, 'start': 7399.471, 'title': 'Branch modification and rebase in git', 'summary': 'Explains how to modify a branch in git, highlighting the process of making changes in a branch and the importance of merging. it also delves into the concept and benefits of rebasing in git.', 'duration': 364.165, 'highlights': ['The chapter emphasizes the process of making changes in a branch and the importance of merging, stating that changes in a branch do not affect the master branch until merged.', 'It details the concept of rebasing in Git, highlighting the process of integrating changes from one branch into another and the benefit of achieving a cleaner project history.', 'The chapter provides a practical demonstration of creating new files in a branch, adding and committing them, emphasizing the difference in handling untracked files compared to modified files.']}, {'end': 8209.995, 'start': 7779.611, 'title': 'Git workflow and pushing changes', 'summary': 'Discusses the use of git rebase to merge branches, the process of pushing changes to a central repository via ssh, and the authentication of ssh keys, with a focus on the linear merging process and the importance of access rights in a central repository.', 'duration': 430.384, 'highlights': ['The chapter discusses the use of git rebase to merge branches, the process of pushing changes to a central repository via SSH, and the authentication of SSH keys.', 'Focuses on the linear merging process and the importance of access rights in a central repository.', 'The process of setting up a public repository and the implications of granting read access to the GitHub community are explained.']}, {'end': 8804.836, 'start': 8209.995, 'title': 'Git repository branching and pushing changes', 'summary': 'Explains how to create and manage branches in a github repository, push changes from a local branch to a central repository, and revert to previous versions using git commands.', 'duration': 594.841, 'highlights': ['Creating and managing branches in a GitHub repository', 'Pushing changes from a local branch to a central repository', 'Reverting to previous versions using Git commands']}, {'end': 9048.901, 'start': 8805.177, 'title': 'Understanding jenkins for continuous integration', 'summary': 'Delves into the features of jenkins and its relevance in continuous integration, highlighting the problems faced before its introduction, including time-consuming testing, bug location, slow software delivery, and lack of continuous feedback.', 'duration': 243.724, 'highlights': ['Before continuous integration, developers faced problems such as time-consuming testing and bug location, slow software delivery, and lack of continuous feedback.', 'Developers had to wait a long time for test results due to the entire source code being built before deployment, resulting in a slow testing process.', 'Locating and fixing bugs in the entire source code was time-consuming, diverting developers from building new applications.', "Continuous feedback related to build failures and test status was absent, leaving developers unaware of their application's performance."]}], 'duration': 1649.43, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hQcFE0RD0cQ/pics/hQcFE0RD0cQ7399471.jpg', 'highlights': ['Developers faced problems like time-consuming testing, slow software delivery, and lack of continuous feedback', 'The chapter emphasizes the process of making changes in a branch and the importance of merging', 'The chapter discusses the use of git rebase to merge branches and the process of pushing changes to a central repository via SSH', 'Creating and managing branches in a GitHub repository', 'The process of setting up a public repository and the implications of granting read access to the GitHub community are explained']}, {'end': 10718.816, 'segs': [{'end': 9993.125, 'src': 'embed', 'start': 9955.516, 'weight': 2, 'content': [{'end': 9955.776, 'text': 'All right.', 'start': 9955.516, 'duration': 0.26}, {'end': 9962.819, 'text': "Now, let us go back to the Jenkins dashboard and now we'll perform unit test on the code that we have compiled for that again.", 'start': 9956.236, 'duration': 6.583}, {'end': 9963.919, 'text': "I'll click on new item.", 'start': 9962.839, 'duration': 1.08}, {'end': 9966.396, 'text': "and I'll give a name to this project.", 'start': 9964.835, 'duration': 1.561}, {'end': 9971.457, 'text': "I'll just type test and I'll click on freestyle project, okay.", 'start': 9966.596, 'duration': 4.861}, {'end': 9975.259, 'text': "Now in the source code management tab, I'll click on git.", 'start': 9972.758, 'duration': 2.501}, {'end': 9993.125, 'text': "Now over here I'll type the repository URL, https github.com slash username slash name of the repository dot git.", 'start': 9975.899, 'duration': 17.226}], 'summary': 'Performing unit test on the compiled code in jenkins dashboard.', 'duration': 37.609, 'max_score': 9955.516, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hQcFE0RD0cQ/pics/hQcFE0RD0cQ9955516.jpg'}, {'end': 10063.257, 'src': 'embed', 'start': 10029.328, 'weight': 6, 'content': [{'end': 10032.969, 'text': "And it'll invoke the test phase of the Maven build lifecycle.", 'start': 10029.328, 'duration': 3.641}, {'end': 10033.269, 'text': 'all right?', 'start': 10032.969, 'duration': 0.3}, {'end': 10035.45, 'text': 'So just click on Apply and Save.', 'start': 10033.689, 'duration': 1.761}, {'end': 10038.13, 'text': 'Finally, click on Build Now.', 'start': 10036.99, 'duration': 1.14}, {'end': 10041.511, 'text': 'To see the console output, click here.', 'start': 10039.89, 'duration': 1.621}, {'end': 10047.932, 'text': "Now in the Source Code Management tab, I'll select Git, all right? Over here, again, I need to type my repository URL.", 'start': 10042.491, 'duration': 5.441}, {'end': 10063.257, 'text': 'That is https github.com slash username slash repository name dot git.', 'start': 10048.868, 'duration': 14.389}], 'summary': 'Invokes test phase of maven build, selects git, and specifies repository url.', 'duration': 33.929, 'max_score': 10029.328, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hQcFE0RD0cQ/pics/hQcFE0RD0cQ10029328.jpg'}, {'end': 10177.099, 'src': 'embed', 'start': 10150.896, 'weight': 12, 'content': [{'end': 10155.078, 'text': "I'll go back to my Jenkins dashboard and I'll show you how to create a build pipeline.", 'start': 10150.896, 'duration': 4.182}, {'end': 10155.338, 'text': 'all right?', 'start': 10155.078, 'duration': 0.26}, {'end': 10158.079, 'text': "So for that I'll move to my Ubuntu box once again.", 'start': 10155.918, 'duration': 2.161}, {'end': 10162.101, 'text': "Now over here you can see that there's an option of plus, okay? Just click over there.", 'start': 10158.92, 'duration': 3.181}, {'end': 10164.683, 'text': 'Now over here click on build pipeline view.', 'start': 10162.742, 'duration': 1.941}, {'end': 10166.504, 'text': 'Whatever name you want you can give.', 'start': 10165.203, 'duration': 1.301}, {'end': 10177.099, 'text': "I'll just give it as edureka underscore pipeline and click on OK now over here.", 'start': 10166.864, 'duration': 10.235}], 'summary': 'Creating a build pipeline on jenkins for ubuntu box with a new view named edureka_pipeline.', 'duration': 26.203, 'max_score': 10150.896, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hQcFE0RD0cQ/pics/hQcFE0RD0cQ10150896.jpg'}, {'end': 10239.115, 'src': 'embed', 'start': 10210.87, 'weight': 1, 'content': [{'end': 10214.112, 'text': 'Now currently you can see that there is only one job that is compiled.', 'start': 10210.87, 'duration': 3.242}, {'end': 10217.434, 'text': "So what I'll do I'll add more jobs to this pipeline for that.", 'start': 10214.532, 'duration': 2.902}, {'end': 10223.024, 'text': "I'll go back to my Jenkins dashboard and Over here, I'll add code review as well.", 'start': 10217.534, 'duration': 5.49}, {'end': 10225.166, 'text': "So for that, I'll go to configure.", 'start': 10223.084, 'duration': 2.082}, {'end': 10231.91, 'text': "And in this build triggers tab, what I'll do, I'll click on build after other projects are built.", 'start': 10227.407, 'duration': 4.503}, {'end': 10235.893, 'text': 'So whatever project that you want to execute before code review, just type that.', 'start': 10232.631, 'duration': 3.262}, {'end': 10237.194, 'text': 'So I want compile.', 'start': 10235.993, 'duration': 1.201}, {'end': 10239.115, 'text': 'Yeah, click on compile.', 'start': 10238.014, 'duration': 1.101}], 'summary': 'One job compiled, adding more for pipeline, configuring build triggers and adding code review.', 'duration': 28.245, 'max_score': 10210.87, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hQcFE0RD0cQ/pics/hQcFE0RD0cQ10210870.jpg'}, {'end': 10432.313, 'src': 'embed', 'start': 10400.503, 'weight': 3, 'content': [{'end': 10404.906, 'text': 'So the Jenkins distributed architecture consists of a Jenkins master and multiple Jenkins slave.', 'start': 10400.503, 'duration': 4.403}, {'end': 10408.789, 'text': 'So this Jenkins master is actually used for scheduling build jobs.', 'start': 10405.607, 'duration': 3.182}, {'end': 10412.572, 'text': 'It also dispatches builds to the slaves for actual execution.', 'start': 10409.389, 'duration': 3.183}, {'end': 10418.536, 'text': 'Alright, it also monitors the slave that is possibly taking them online and offline as required.', 'start': 10413.232, 'duration': 5.304}, {'end': 10421.698, 'text': 'And it also records and presents the build results.', 'start': 10419.357, 'duration': 2.341}, {'end': 10425.181, 'text': 'And you can directly execute a build job on master instance as well.', 'start': 10422.139, 'duration': 3.042}, {'end': 10432.313, 'text': 'Now, when we talk about Jenkins slaves, these slaves are nothing but the Java executable that are present on remote machines.', 'start': 10426.189, 'duration': 6.124}], 'summary': 'Jenkins has a master and multiple slaves. master schedules build jobs, dispatches builds, monitors and presents build results. slaves are java executables on remote machines.', 'duration': 31.81, 'max_score': 10400.503, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hQcFE0RD0cQ/pics/hQcFE0RD0cQ10400503.jpg'}, {'end': 10516.866, 'src': 'embed', 'start': 10482.083, 'weight': 0, 'content': [{'end': 10484.044, 'text': 'Over here you need to write the remote root directory.', 'start': 10482.083, 'duration': 1.961}, {'end': 10485.005, 'text': "So I'll keep it as.", 'start': 10484.184, 'duration': 0.821}, {'end': 10491.861, 'text': 'slash home, slash edureka and labels are not mandatory still.', 'start': 10485.754, 'duration': 6.107}, {'end': 10495.344, 'text': 'if you want, you can use that and launch method.', 'start': 10491.861, 'duration': 3.483}, {'end': 10498.408, 'text': 'I want it to be launch slave agents via SSH.', 'start': 10495.344, 'duration': 3.064}, {'end': 10501.831, 'text': 'All right over here you need to give the IP address of your host.', 'start': 10498.908, 'duration': 2.923}, {'end': 10504.374, 'text': 'So let me show you the IP address of my host.', 'start': 10502.492, 'duration': 1.882}, {'end': 10507.738, 'text': "This is my Jenkins slave which I'll be using like Jenkins slave.", 'start': 10505.235, 'duration': 2.503}, {'end': 10516.866, 'text': "So this is the machine that I'll be using as Jenkins slave.", 'start': 10514.585, 'duration': 2.281}], 'summary': 'Setting up jenkins to launch slave agents via ssh with ip address and remote directory specified.', 'duration': 34.783, 'max_score': 10482.083, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hQcFE0RD0cQ/pics/hQcFE0RD0cQ10482083.jpg'}], 'start': 9048.901, 'title': 'Continuous integration benefits and practical workflow in jenkins', 'summary': "Explains the benefits of continuous integration, such as quick bug identification and easy bug fixing, and provides a practical workflow demonstration involving jenkins installation, managing plugins, and creating a new project. it highlights the shift from nightly build to continuous integration and discusses jenkins' role in faster software delivery with over 1000 plugins.", 'chapters': [{'end': 9117.389, 'start': 9048.901, 'title': 'Continuous integration benefits', 'summary': 'Explains how continuous integration helps in addressing problems by automatically building, testing, and deploying code with every commit, leading to quick bug identification and easy bug fixing, while ensuring that developers do not have to wait for long to get test results.', 'duration': 68.488, 'highlights': ['Continuous integration involves automatically building, testing, and deploying code with every commit, leading to quick bug identification and easy bug fixing, while ensuring that developers do not have to wait for long to get test results.', 'Developers can locate and fix bugs easily as every commit made to the source code is built and tested, enabling them to identify the specific commit that caused the error.']}, {'end': 9519.061, 'start': 9118.137, 'title': 'Continuous integration and its importance', 'summary': 'Emphasizes the importance of continuous integration, highlighting its benefits such as faster software delivery process, continuous feedback for developers, and the shift from nightly build to continuous integration. it also provides an overview of jenkins, an open-source continuous integration tool with over 1000 plugins.', 'duration': 400.924, 'highlights': ['Continuous integration addresses the problem of slow software delivery process by providing faster test results and allowing developers to focus on building new applications.', 'Continuous integration provides continuous feedback to developers about the build status, test results, and application performance, eliminating the previous lack of feedback.', 'Continuous integration ensures that every commit to the source code is immediately built and tested, providing quick and frequent feedback to developers.', 'The highlight of Jenkins as a widely accepted continuous integration tool with over a thousand plugins, supporting various development, deployment, and testing technologies.']}, {'end': 9914.802, 'start': 9519.541, 'title': 'Installing jenkins and practical workflow', 'summary': 'Covers the installation of jenkins, including managing and installing plugins, followed by a practical workflow demonstration involving creating a new project, compiling and testing code using jenkins, with emphasis on key steps and configurations.', 'duration': 395.261, 'highlights': ['Jenkins installation process and plugin management', 'Practical workflow demonstration with Jenkins', 'Compilation of code using Jenkins', 'Testing code using Jenkins and PMD plugin']}, {'end': 10718.816, 'start': 9916.302, 'title': 'Jenkins distributed architecture and build pipeline', 'summary': "Demonstrates the use of jenkins for code review, unit testing, and building a pipeline, providing detailed instructions on setting up a jenkins slave and discussing the disadvantages of using a single jenkins server, with a case study of indiana university's use of docker.", 'duration': 802.514, 'highlights': ['The Jenkins distributed architecture consists of a Jenkins master and multiple Jenkins slaves, used for scheduling build jobs, dispatching builds to slaves, and recording build results.', 'Demonstration of building a Jenkins pipeline with multiple jobs, including compiling, code review, and testing, showcasing the execution of the build pipeline in the Jenkins dashboard.', 'Instructions on setting up a Jenkins slave using SSH, including specifying the remote root directory, labels, launch method, and IP address, with a practical demonstration of adding a Jenkins slave to the Jenkins master.', 'Discussion of the disadvantages of using a single Jenkins server, such as the inability to handle different computing environments and heavier project loads, with a solution proposed as Jenkins distributed architecture.', "Case study of Indiana University's use of Docker, including the problems faced by industries before Docker, an explanation of microservices, and an example of breaking down an online shopping service application into microservices."]}], 'duration': 1669.915, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hQcFE0RD0cQ/pics/hQcFE0RD0cQ9048901.jpg', 'highlights': ['Continuous integration involves automatically building, testing, and deploying code with every commit, leading to quick bug identification and easy bug fixing, while ensuring that developers do not have to wait for long to get test results.', 'Developers can locate and fix bugs easily as every commit made to the source code is built and tested, enabling them to identify the specific commit that caused the error.', 'The highlight of Jenkins as a widely accepted continuous integration tool with over a thousand plugins, supporting various development, deployment, and testing technologies.', 'Continuous integration addresses the problem of slow software delivery process by providing faster test results and allowing developers to focus on building new applications.', 'Continuous integration ensures that every commit to the source code is immediately built and tested, providing quick and frequent feedback to developers.', 'Continuous integration provides continuous feedback to developers about the build status, test results, and application performance, eliminating the previous lack of feedback.', 'The Jenkins distributed architecture consists of a Jenkins master and multiple Jenkins slaves, used for scheduling build jobs, dispatching builds to slaves, and recording build results.', 'Demonstration of building a Jenkins pipeline with multiple jobs, including compiling, code review, and testing, showcasing the execution of the build pipeline in the Jenkins dashboard.', 'Instructions on setting up a Jenkins slave using SSH, including specifying the remote root directory, labels, launch method, and IP address, with a practical demonstration of adding a Jenkins slave to the Jenkins master.', 'Practical workflow demonstration with Jenkins', 'Compilation of code using Jenkins', 'Testing code using Jenkins and PMD plugin', 'Discussion of the disadvantages of using a single Jenkins server, such as the inability to handle different computing environments and heavier project loads, with a solution proposed as Jenkins distributed architecture.', "Case study of Indiana University's use of Docker, including the problems faced by industries before Docker, an explanation of microservices, and an example of breaking down an online shopping service application into microservices.", 'Jenkins installation process and plugin management']}, {'end': 13709.45, 'segs': [{'end': 12589.824, 'src': 'embed', 'start': 12563.997, 'weight': 7, 'content': [{'end': 12569.779, 'text': 'Okay So let me log in as pseudo first of all, okay, pseudo SU is the command and okay.', 'start': 12563.997, 'duration': 5.782}, {'end': 12571.6, 'text': 'I have logged in as a root user.', 'start': 12569.799, 'duration': 1.801}, {'end': 12574.141, 'text': 'Now The next thing is update my repository.', 'start': 12572.18, 'duration': 1.961}, {'end': 12575.862, 'text': 'So after do an app get update.', 'start': 12574.541, 'duration': 1.321}, {'end': 12578.783, 'text': 'Now again, this is going to take some more time.', 'start': 12577.362, 'duration': 1.421}, {'end': 12579.984, 'text': 'So just hold on till then.', 'start': 12578.983, 'duration': 1.001}, {'end': 12585.482, 'text': 'Okay This is also done now again straight away run the command to install docker.', 'start': 12580.784, 'duration': 4.698}, {'end': 12587.823, 'text': 'Now This is the command to install docker.', 'start': 12586.122, 'duration': 1.701}, {'end': 12589.824, 'text': 'Okay from the applicator repository.', 'start': 12588.083, 'duration': 1.741}], 'summary': 'Logged in as root, updated repository, installed docker from applicator repository.', 'duration': 25.827, 'max_score': 12563.997, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hQcFE0RD0cQ/pics/hQcFE0RD0cQ12563997.jpg'}, {'end': 12956.1, 'src': 'embed', 'start': 12914.07, 'weight': 8, 'content': [{'end': 12916.892, 'text': "If you want it to be a static IP address since it's already there for me.", 'start': 12914.07, 'duration': 2.822}, {'end': 12920.834, 'text': "I'm not going to make any change but rather I'm going to go and check what's my host name.", 'start': 12916.932, 'duration': 3.902}, {'end': 12924.336, 'text': "I mean the host name should anyways give the same thing because right now it's keynote.", 'start': 12921.174, 'duration': 3.162}, {'end': 12925.317, 'text': "So that's what it's going to reflect.", 'start': 12924.356, 'duration': 0.961}, {'end': 12927.238, 'text': 'But anyways, let me just show it to you.', 'start': 12925.437, 'duration': 1.801}, {'end': 12931.32, 'text': 'Okay, so my host name is keynote brilliant.', 'start': 12928.638, 'duration': 2.682}, {'end': 12937.505, 'text': "So this means that there's just one thing which I have to change and that is nothing but adding the particular entry for my master.", 'start': 12931.56, 'duration': 5.945}, {'end': 12942.289, 'text': 'So let me first clear the screen and then using my nano editor.', 'start': 12938.106, 'duration': 4.183}, {'end': 12944.21, 'text': "In fact, I'll have to run it as pseudo.", 'start': 12942.609, 'duration': 1.601}, {'end': 12949.715, 'text': "So as a pseudo user, I'm going to open my nano editor and edit my hosts file.", 'start': 12944.531, 'duration': 5.184}, {'end': 12956.1, 'text': 'Okay, so here let me just add the IP address of my master.', 'start': 12951.316, 'duration': 4.784}], 'summary': 'Checking and updating host name and ip address for master server.', 'duration': 42.03, 'max_score': 12914.07, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hQcFE0RD0cQ/pics/hQcFE0RD0cQ12914070.jpg'}, {'end': 13113.466, 'src': 'embed', 'start': 13087.166, 'weight': 1, 'content': [{'end': 13092.852, 'text': 'We have to install a pod Network because all my containers inside a single pod will have to communicate over a network.', 'start': 13087.166, 'duration': 5.686}, {'end': 13095.113, 'text': 'Pod is nothing but a network of containers.', 'start': 13093.312, 'duration': 1.801}, {'end': 13099.937, 'text': 'So there are various container networks, which I can use so I can use the calico port network.', 'start': 13095.554, 'duration': 4.383}, {'end': 13107.802, 'text': 'I can use a flannel port network or I can use anyone you can see the entire list in the kubernetes documentation and in this session.', 'start': 13100.437, 'duration': 7.365}, {'end': 13109.543, 'text': "I'm going to use the calico network.", 'start': 13107.862, 'duration': 1.681}, {'end': 13113.466, 'text': "Okay, so that's pretty simple and straightforward and that's what I'm going to show you next.", 'start': 13109.703, 'duration': 3.763}], 'summary': 'Pods require a network for container communication. options include calico, flannel.', 'duration': 26.3, 'max_score': 13087.166, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hQcFE0RD0cQ/pics/hQcFE0RD0cQ13087166.jpg'}, {'end': 13193.777, 'src': 'embed', 'start': 13165.214, 'weight': 3, 'content': [{'end': 13167.716, 'text': 'and over here we have to replace the IP addresses.', 'start': 13165.214, 'duration': 2.502}, {'end': 13170.598, 'text': 'So the IP address of my master right?', 'start': 13168.176, 'duration': 2.422}, {'end': 13177.064, 'text': 'So this machine, after specify that IP address over here, because this is where the other IP addresses can come and join.', 'start': 13170.618, 'duration': 6.446}, {'end': 13180.046, 'text': 'This is the IP address of the master right?', 'start': 13178.625, 'duration': 1.421}, {'end': 13186.411, 'text': "So I'm just seeing API server advertise the address 56.101,", 'start': 13180.486, 'duration': 5.925}, {'end': 13193.777, 'text': 'so that all the other nodes can come and join the cluster on this IP address and along with this I have to also specify the pod network.', 'start': 13186.411, 'duration': 7.366}], 'summary': 'Replacing ip addresses to 56.101 for nodes to join the cluster.', 'duration': 28.563, 'max_score': 13165.214, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hQcFE0RD0cQ/pics/hQcFE0RD0cQ13165214.jpg'}, {'end': 13234.392, 'src': 'embed', 'start': 13207.409, 'weight': 4, 'content': [{'end': 13212.111, 'text': 'But in case if you want to use a flannel port network, then you can use this network range.', 'start': 13207.409, 'duration': 4.702}, {'end': 13216.033, 'text': 'Okay, so let me just copy this one and paste it.', 'start': 13212.571, 'duration': 3.462}, {'end': 13217.413, 'text': 'All right.', 'start': 13217.113, 'duration': 0.3}, {'end': 13220.975, 'text': 'So the command is pseudo cube ADM in it.', 'start': 13217.974, 'duration': 3.001}, {'end': 13224.986, 'text': 'for Network followed by the IP address from where the other nodes will have to join.', 'start': 13221.363, 'duration': 3.623}, {'end': 13227.087, 'text': "So let's go ahead and it enter.", 'start': 13225.566, 'duration': 1.521}, {'end': 13234.392, 'text': "So since you're doing it for the first time give it a few minutes because communities take some time to install.", 'start': 13229.909, 'duration': 4.483}], 'summary': 'Instructions for setting up a flannel port network and joining nodes with ip address using pseudo cube adm command.', 'duration': 26.983, 'max_score': 13207.409, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hQcFE0RD0cQ/pics/hQcFE0RD0cQ13207409.jpg'}, {'end': 13317.791, 'src': 'embed', 'start': 13286.025, 'weight': 0, 'content': [{'end': 13292.527, 'text': 'then after bring up my port network, then after bring up my dashboard, and then I have to get my notes to join the cluster using this command.', 'start': 13286.025, 'duration': 6.502}, {'end': 13297.309, 'text': "So for my reference, I'm just going to copy this command and store it somewhere else.", 'start': 13292.927, 'duration': 4.382}, {'end': 13300.381, 'text': 'Okay, so right under this.', 'start': 13297.629, 'duration': 2.752}, {'end': 13309.306, 'text': 'Let me just store this command for later reference and in the meanwhile, let me go ahead and execute all these commands one after the other.', 'start': 13301.081, 'duration': 8.225}, {'end': 13317.791, 'text': 'These are as per Kubernetes instructions, right? Yes, I would like to rewrite it and then okay.', 'start': 13310.086, 'duration': 7.705}], 'summary': 'Setting up port network and dashboard, joining cluster using commands as per kubernetes instructions.', 'duration': 31.766, 'max_score': 13286.025, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hQcFE0RD0cQ/pics/hQcFE0RD0cQ13286025.jpg'}, {'end': 13420.088, 'src': 'embed', 'start': 13390.12, 'weight': 11, 'content': [{'end': 13392.161, 'text': 'So these are the default deployments that you get.', 'start': 13390.12, 'duration': 2.041}, {'end': 13394.183, 'text': 'So anyways, as you can see,', 'start': 13392.742, 'duration': 1.441}, {'end': 13401.228, 'text': 'the default deployments are all healthy because it says the status is all running and everything is basically running in the cube system namespace.', 'start': 13394.183, 'duration': 7.045}, {'end': 13404.331, 'text': "All right, and it's all running on my K master.", 'start': 13401.688, 'duration': 2.643}, {'end': 13405.612, 'text': "That's my Kubernetes master.", 'start': 13404.551, 'duration': 1.061}, {'end': 13411.316, 'text': 'So the next thing that I have to do is bring up the dashboard before I can get my notes to join.', 'start': 13406.132, 'duration': 5.184}, {'end': 13416.526, 'text': "Okay, so I'll go to the notepad and copy the command to bring up my dashboard.", 'start': 13411.843, 'duration': 4.683}, {'end': 13420.088, 'text': 'So copy and paste so great.', 'start': 13417.146, 'duration': 2.942}], 'summary': 'Default deployments are healthy, all running in the cube system namespace on k master.', 'duration': 29.968, 'max_score': 13390.12, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hQcFE0RD0cQ/pics/hQcFE0RD0cQ13390120.jpg'}, {'end': 13491.771, 'src': 'embed', 'start': 13445.858, 'weight': 5, 'content': [{'end': 13447.819, 'text': 'This would also be running anyways.', 'start': 13445.858, 'duration': 1.961}, {'end': 13451.801, 'text': 'in the meanwhile, what we can do is we can work on the other things which are needed to bring up the dashboard.', 'start': 13447.819, 'duration': 3.982}, {'end': 13456.244, 'text': 'the first fall, enable your proxy and get it to be whole web server.', 'start': 13451.801, 'duration': 4.443}, {'end': 13458.085, 'text': "There's this cube CDL proxy command.", 'start': 13456.524, 'duration': 1.561}, {'end': 13462.808, 'text': 'Okay So with this your service would be starting to be served on this particular port number.', 'start': 13458.285, 'duration': 4.523}, {'end': 13466.01, 'text': 'Okay, localhost port number 8001 of my master.', 'start': 13463.048, 'duration': 2.962}, {'end': 13467.531, 'text': 'Okay, not from the nodes.', 'start': 13466.23, 'duration': 1.301}, {'end': 13473.426, 'text': 'So if I could just go to my Firefox and go to localhost 8001 then my dad would be up and running over there.', 'start': 13467.904, 'duration': 5.522}, {'end': 13483.308, 'text': 'So basically my dashboard is being served on this particular port number.', 'start': 13479.767, 'duration': 3.541}, {'end': 13489.05, 'text': "But if I want to actually get my dashboard which shows my deployments and all my services then that's a different URL.", 'start': 13483.328, 'duration': 5.722}, {'end': 13491.771, 'text': 'Okay So yeah as you can see here.', 'start': 13489.17, 'duration': 2.601}], 'summary': 'Setting up dashboard on localhost port 8001 for service deployment and visualization.', 'duration': 45.913, 'max_score': 13445.858, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hQcFE0RD0cQ/pics/hQcFE0RD0cQ13445858.jpg'}], 'start': 10719.637, 'title': 'Implementing microservice architecture and docker', 'summary': "Discusses the advantages of microservice architecture, the drawbacks of virtual machines, and the implementation of docker containers, highlighting the benefits of consistent computing environment, lightweight alternative to virtual machines, and the workflow of using docker images and containers throughout the software delivery lifecycle. it also covers indiana university's docker adoption challenges, the use of docker data center for deploying microservices, modernizing applications, and enhancing security, understanding docker images and containers, docker installation on ubuntu, kubernetes cluster installation, and setting up a kubernetes cluster with specific hardware and networking requirements.", 'chapters': [{'end': 11105.712, 'start': 10719.637, 'title': 'Microservice architecture and docker', 'summary': 'Discusses the advantages of microservice architecture, the drawbacks of using virtual machines, and the implementation of docker containers to address these issues, highlighting the benefits of consistent computing environment, lightweight alternative to virtual machines, and the workflow of using docker images and containers throughout the software delivery lifecycle.', 'duration': 386.075, 'highlights': ['Docker containers provide a consistent computing environment throughout the software delivery lifecycle, ensuring the same environment in dev, test, and production, resolving the issue of applications working fine in development but not in production.', 'Docker containers are lightweight alternatives to virtual machines, utilizing RAM and disk space according to application requirements, addressing the wastage of resources in virtual machines, especially beneficial for applications with a large number of microservices.', 'The workflow of using Docker images and containers throughout the software delivery lifecycle ensures the presence of the same environment, resolving the problem of applications not working properly when transitioning from development to production.']}, {'end': 11385.048, 'start': 11106.492, 'title': 'Docker adoption at indiana university', 'summary': 'Discusses how indiana university faced challenges before adopting docker, and how they overcame these by implementing docker data center, which provided solutions for deploying microservices, modernizing applications, and enhancing security.', 'duration': 278.556, 'highlights': ['Indiana University faced challenges before adopting Docker, including issues with manual deployment steps and legacy Java-based environment.', 'Indiana University aimed to modernize their applications by transitioning from a monolithic architecture to a microservice architecture, which led to the need for better security for sensitive student data.', 'Docker Data Center provided solutions for deploying microservices, modernizing applications, and enhancing security at Indiana University.', 'The role-based access controls within Docker Data Center allowed Indiana University to define varying levels of access to different teams, providing read-only or read and write access as needed.', 'Docker Registry serves as the storage for all Docker images, which can be stored in public or private repositories, providing flexibility for users to pull and upload images according to their needs.']}, {'end': 12054.467, 'start': 11385.609, 'title': 'Understanding docker: images, containers, and docker compose', 'summary': 'Covers exploring publicly available repositories, understanding docker images and containers, installing docker on ubuntu, pulling and running a centos image, and demonstrating the usage of docker compose with an example. it also includes practical installation and usage demonstrations.', 'duration': 668.858, 'highlights': ['The chapter covers exploring publicly available repositories, including Nginx, Redis, Ubuntu, Docker Registry, Alpine, Mongo, MySQL, and Swarm.', 'Docker images are read-only templates used to create containers, containing all the dependencies for a particular application or microservice, and can be created, uploaded to Docker Hub, and pulled from public repositories.', 'Docker containers are runtime instances of Docker images, containing everything required to run an application or microservice, and multiple images can be required to create one container.', 'Practical installation of Docker on Ubuntu is demonstrated, including updating packages and installing the recommended packages before installing Docker.', 'The process of pulling a CentOS image from Docker Hub and running a CentOS container is demonstrated, including checking the local registry and pulling the image from Docker Hub.', 'The concept and usage of Docker Compose are explained, including defining multiple containers in a YAML file and executing them with a single command, demonstrated with a practical example of setting up WordPress, MySQL, and phpMyAdmin containers.', 'Practical installation of Docker Compose on Ubuntu is demonstrated, including installing Python pip, installing Docker Compose, creating a directory for the WordPress project, and editing the docker-compose.yaml file to define the containers and their configurations.', 'Demonstration of using docker-compose up -d command to pull images and build containers, followed by accessing and installing WordPress and accessing phpMyAdmin.']}, {'end': 12813.609, 'start': 12054.507, 'title': 'Installing kubernetes cluster', 'summary': 'Covers the installation process of a kubernetes cluster, including the necessary components and commands to be executed on both the master and slave ends, where the master requires at least 2gb of ram and 2 core cpus, and the slaves need 2gb of ram and at least one core cpu.', 'duration': 759.102, 'highlights': ['The master should have at least 2GB of RAM and 2 core CPUs, and the slave should have 2GB of RAM and at least one core CPU.', 'Updating the repository and disabling the swap space are initial steps required for the installation.', 'Installing open SSH server and docker, along with core components like cube ADM, kubelet, and kubectl, is crucial for the Kubernetes environment setup.']}, {'end': 13709.45, 'start': 12814.269, 'title': 'Setting up kubernetes cluster', 'summary': "Demonstrates setting up a kubernetes cluster by ensuring network ip addresses and host names, establishing a static ip address, bringing up the pod network, setting up the kubernetes dashboard, joining nodes to the cluster, and verifying the cluster's status.", 'duration': 895.181, 'highlights': ['Initiating the cluster and installing the pod Network', 'Setting up the Kubernetes dashboard and obtaining the token for admin access', "Joining nodes to the cluster and verifying the cluster's status"]}], 'duration': 2989.813, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hQcFE0RD0cQ/pics/hQcFE0RD0cQ10719637.jpg', 'highlights': ['Docker containers provide consistent computing environment resolving dev to production issues', 'Docker containers are lightweight alternatives to virtual machines, addressing resource wastage', 'Workflow of using Docker images and containers ensures the same environment throughout lifecycle', 'Docker Data Center provided solutions for deploying microservices, modernizing applications, and enhancing security', 'Docker Registry serves as storage for all Docker images, providing flexibility for users', 'Practical installation of Docker on Ubuntu is demonstrated, including updating and installing packages', 'Demonstration of using docker-compose up -d command to pull images and build containers', 'Setting up the Kubernetes dashboard and obtaining the token for admin access', "Joining nodes to the cluster and verifying the cluster's status", 'Master should have at least 2GB of RAM and 2 core CPUs, slave should have 2GB of RAM and at least one core CPU', 'Installing open SSH server, docker, cube ADM, kubelet, and kubectl is crucial for Kubernetes setup', 'Exploring publicly available repositories including Nginx, Redis, Ubuntu, Docker Registry, Alpine, Mongo, MySQL, and Swarm']}, {'end': 14987.569, 'segs': [{'end': 14252.225, 'src': 'embed', 'start': 14222.674, 'weight': 0, 'content': [{'end': 14227.075, 'text': 'scaling down is primarily the game of Kubernetes from your existing architecture.', 'start': 14222.674, 'duration': 4.401}, {'end': 14233.958, 'text': 'It can scale up to any number you want it can scale down anytime and the best part is the scaling can also be set to be automatic.', 'start': 14227.095, 'duration': 6.863}, {'end': 14237.379, 'text': 'Like I just explained some time back right, you can make Kubernetes.', 'start': 14234.298, 'duration': 3.081}, {'end': 14243.662, 'text': 'Kubernetes would analyze the traffic and then figure out if the scaling up needs to be done or the scaling down can be done, and all those things.', 'start': 14237.379, 'duration': 6.283}, {'end': 14246.763, 'text': 'And of course, the most important part load balancing right?', 'start': 14244.082, 'duration': 2.681}, {'end': 14252.225, 'text': 'I mean what good is your container or group of containers if load balancing cannot be enabled right?', 'start': 14246.783, 'duration': 5.442}], 'summary': 'Kubernetes allows automated scaling up/down, load balancing for containers.', 'duration': 29.551, 'max_score': 14222.674, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hQcFE0RD0cQ/pics/hQcFE0RD0cQ14222674.jpg'}], 'start': 13714.918, 'title': 'Kubernetes and its benefits', 'summary': 'Explores the need for kubernetes, its benefits, and dispels myths, highlighting its architecture, use case at pokemon go, challenges in container scaling, features such as automatic scaling and load balancing, and its superiority over docker swarm.', 'chapters': [{'end': 13774.945, 'start': 13714.918, 'title': 'Understanding kubernetes', 'summary': 'Explores the need for kubernetes, clarifies misconceptions, explains its functioning and architecture, and showcases a use case of its success at pokemon go in 2017.', 'duration': 60.027, 'highlights': ['Kubernetes was instrumental in the success of Pokemon Go, contributing to its recognition as one of the best games of 2017.', 'The chapter aims to clarify misconceptions about Kubernetes, particularly addressing the misunderstanding of it as a containerization platform.', 'The session covers the need for Kubernetes, explanation of its functionality, and an overview of its architecture.']}, {'end': 14129.664, 'start': 13774.945, 'title': 'Need for kubernetes in container scaling', 'summary': 'Discusses the need for kubernetes, highlighting the challenges in scaling containers, such as manual effort in scaling, communication and management of containers, lack of auto-scaling functionality, and the need for traffic distribution and load balancing.', 'duration': 354.719, 'highlights': ['Kubernetes addresses challenges in scaling containers by automating deployment, scaling, descaling, and load balancing.', 'The problem with manual effort in scaling containers is evident when dealing with a large number of containers, as managing and ensuring communication between them becomes complex.', 'The lack of auto-scaling functionality in containers leads to challenges in handling traffic spikes, which can be effectively managed by Kubernetes through automated scaling based on traffic analysis.', 'Effective traffic distribution and load balancing are essential in managing a large number of containers, a function that Kubernetes can fulfill.']}, {'end': 14425.653, 'start': 14130.333, 'title': 'Kubernetes: container management tool', 'summary': 'Discusses the benefits of kubernetes, its features, and why it is a must-have, highlighting its ability to work with multiple cloud vendors, automatic scaling, load balancing, and self-healing capabilities.', 'duration': 295.32, 'highlights': ['Kubernetes works brilliantly with all cloud vendors and on premises, making it one of the best container management tools in the market.', 'Kubernetes has automatic scaling capabilities, allowing it to scale up and down based on traffic analysis and can also be set to automatic scaling.', 'Kubernetes provides load balancing, service discovery, and storage orchestration, ensuring seamless networking, communication, and storage management.', 'Kubernetes offers self-healing capabilities, automatically restarting failed containers and relocating containers in case of node failure.', 'Kubernetes can manage batch and CI workloads, replacing failed containers, and restoring the original state as part of the CI workloads.', 'Kubernetes enables the deployment and update of secrets and application configuration without rebuilding the entire image or exposing secrets in the stack configuration.']}, {'end': 14987.569, 'start': 14425.673, 'title': 'Kubernetes features & myths', 'summary': 'Discusses the key features of kubernetes, including horizontal scaling, automatic scaling based on cpu usage, and automatic rollbacks and rollouts, as well as dispels myths about its comparison with docker and its suitability for complex applications, highlighting the robustness of kubernetes, its superiority in scaling up containers, and the comparison with docker swarm in terms of installation, gui, scalability, load balancing, and updates and rollbacks.', 'duration': 561.896, 'highlights': ['Kubernetes enables horizontal scaling and automatic scaling based on CPU usage, with the ability to scale applications up and down easily with a simple command.', 'Kubernetes facilitates automatic rollbacks and rollouts, ensuring progressive updates to application configurations and high availability by updating instances one by one to avoid simultaneous updates and rollbacks changes in case of failure.', 'Kubernetes is not to be compared with Docker as it is a container management platform suitable for managing multiple containers with specified configurations, while Docker is a containerization platform.', "Kubernetes is robust, reliable, and the best solution for scaling up containers in today's market, offering strong cluster configurations and reliability, compared to Docker Swarm, despite Docker Swarm being faster in installation.", 'Kubernetes provides a GUI dashboard for deploying applications with drag-and-drop functionality, offering flexibility and ease of use compared to Docker Swarm, which lacks a GUI.']}], 'duration': 1272.651, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hQcFE0RD0cQ/pics/hQcFE0RD0cQ13714918.jpg', 'highlights': ['Kubernetes was instrumental in the success of Pokemon Go, contributing to its recognition as one of the best games of 2017.', 'Kubernetes addresses challenges in scaling containers by automating deployment, scaling, descaling, and load balancing.', 'Kubernetes works brilliantly with all cloud vendors and on premises, making it one of the best container management tools in the market.', 'Kubernetes enables horizontal scaling and automatic scaling based on CPU usage, with the ability to scale applications up and down easily with a simple command.', 'Kubernetes provides load balancing, service discovery, and storage orchestration, ensuring seamless networking, communication, and storage management.']}, {'end': 15719.915, 'segs': [{'end': 15104.16, 'src': 'embed', 'start': 15084.039, 'weight': 0, 'content': [{'end': 15095.269, 'text': "Okay, and what they've said is that the number of news articles that are produced right in that one particular year had 90% of those covered on Kubernetes compared to the 10% on Docker Swarm.", 'start': 15084.039, 'duration': 11.23}, {'end': 15095.85, 'text': 'amazing, right?', 'start': 15095.269, 'duration': 0.581}, {'end': 15096.991, 'text': "That's a big difference.", 'start': 15095.97, 'duration': 1.021}, {'end': 15101.737, 'text': 'That means for every one blog written or for every one article written on Docker Swarm.', 'start': 15097.452, 'duration': 4.285}, {'end': 15104.16, 'text': 'There are nine different articles written on Kubernetes.', 'start': 15101.957, 'duration': 2.203}], 'summary': '90% of news articles covered kubernetes, 10% covered docker swarm.', 'duration': 20.121, 'max_score': 15084.039, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hQcFE0RD0cQ/pics/hQcFE0RD0cQ15084039.jpg'}, {'end': 15200.838, 'src': 'embed', 'start': 15157.677, 'weight': 1, 'content': [{'end': 15164.361, 'text': 'So Pokemon go is an augmented reality game developed by Niantic for your Android and for iOS devices.', 'start': 15157.677, 'duration': 6.684}, {'end': 15170.545, 'text': "Okay, and those key stats read that they've had like 500 million plus downloads overall.", 'start': 15164.761, 'duration': 5.784}, {'end': 15176.091, 'text': 'and 20 million plus daily active users now that is massive daily.', 'start': 15171.145, 'duration': 4.946}, {'end': 15180.537, 'text': "If you're having like 20 million users plus then you have achieved an amazing thing.", 'start': 15176.312, 'duration': 4.225}, {'end': 15182.619, 'text': "So that's how good this game is.", 'start': 15180.677, 'duration': 1.942}, {'end': 15187.906, 'text': 'Okay, and then this game was actually initially launched only in North America, Australia, New Zealand.', 'start': 15182.82, 'duration': 5.086}, {'end': 15196.073, 'text': "And I'm aware of this fact because I'm based out of India and I did not get access to this game because the moment news got out that we have a game like this.", 'start': 15188.526, 'duration': 7.547}, {'end': 15200.838, 'text': "I started downloading it, but I couldn't really find any link or I couldn't download it at all.", 'start': 15196.234, 'duration': 4.604}], 'summary': 'Pokemon go has 500m+ downloads and 20m+ daily active users, initially launched in north america, australia, new zealand.', 'duration': 43.161, 'max_score': 15157.677, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hQcFE0RD0cQ/pics/hQcFE0RD0cQ15157677.jpg'}], 'start': 14987.569, 'title': "Kubernetes vs docker swarm and pokemon go's success", 'summary': "Compares kubernetes and docker swarm, highlighting kubernetes' dominance in the market. it also discusses pokemon go's success with kubernetes, handling 50 times more traffic than expected and enabling vertical scaling to handle three times the expected traffic.", 'chapters': [{'end': 15312.782, 'start': 14987.569, 'title': 'Kubernetes vs docker swarm: key differences and pokemon go use case', 'summary': 'Compares kubernetes and docker swarm based on rollback functionality, data volumes, logging and monitoring, and presents statistics showing kubernetes dominance in the market. it further highlights the significant impact of kubernetes on powering the popular game, pokemon go, including its massive user base and effective use of kubernetes to handle backend architecture and scaling.', 'duration': 325.213, 'highlights': ["Kubernetes dominance in the market with 90% coverage in news articles, web searches, and GitHub interactions compared to Docker Swarm's 10%.", 'Impact of Kubernetes on powering Pokemon Go with 500 million+ downloads and 20 million+ daily active users, highlighting its significant user base.', "Pokemon Go inspired users to walk over 5.4 billion miles in a year, surpassing engineering expectations by 50 times, showcasing the game's massive impact and Kubernetes's role in the backend architecture.", 'Comparison of data volume sharing: Kubernetes allows sharing within the same pod, while Docker Swarm enables sharing between any other container, highlighting the differences in data volume management.', "Kubernetes's inbuilt tools for logging and monitoring compared to Docker Swarm's requirement for third-party tools, emphasizing Kubernetes's advantage in logging and monitoring capabilities."]}, {'end': 15719.915, 'start': 15313.143, 'title': "Pokemon go's kubernetes success", 'summary': 'Discusses how pokemon go faced 50 times more traffic than expected, how kubernetes overcame the challenge by enabling vertical scaling, and how niantic could handle three times the expected traffic, making it a success story in using kubernetes.', 'duration': 406.772, 'highlights': ['Kubernetes enabled vertical scaling to handle 50 times more traffic than expected for Pokemon Go, making it a success story.', 'Niantic could handle three times the expected traffic with the help of Kubernetes, demonstrating the efficiency of Kubernetes in managing unexpected traffic surges.', 'The Kubernetes architecture involves a master controlling all services on nodes, with containers only running on the nodes, not on the master.']}], 'duration': 732.346, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hQcFE0RD0cQ/pics/hQcFE0RD0cQ14987569.jpg', 'highlights': ["Kubernetes dominance in the market with 90% coverage in news articles, web searches, and GitHub interactions compared to Docker Swarm's 10%.", 'Impact of Kubernetes on powering Pokemon Go with 500 million+ downloads and 20 million+ daily active users, highlighting its significant user base.', 'Kubernetes enabled vertical scaling to handle 50 times more traffic than expected for Pokemon Go, making it a success story.', 'Niantic could handle three times the expected traffic with the help of Kubernetes, demonstrating the efficiency of Kubernetes in managing unexpected traffic surges.', "Pokemon Go inspired users to walk over 5.4 billion miles in a year, surpassing engineering expectations by 50 times, showcasing the game's massive impact and Kubernetes's role in the backend architecture."]}, {'end': 18260.032, 'segs': [{'end': 15829.565, 'src': 'embed', 'start': 15802.725, 'weight': 0, 'content': [{'end': 15806.788, 'text': 'You specify the pod network flag and the API server flag.', 'start': 15802.725, 'duration': 4.063}, {'end': 15813.555, 'text': 'We are specifying the pod network flag because the different containers inside your pod should be able to talk to each other easily, right?', 'start': 15807.349, 'duration': 6.206}, {'end': 15818.239, 'text': 'So that was the whole concept of self-discovery which I spoke about earlier during the features of Kubernetes.', 'start': 15813.575, 'duration': 4.664}, {'end': 15824.603, 'text': 'So for the self-discovery we have like different pod networks using which the containers would talk to each other.', 'start': 15818.699, 'duration': 5.904}, {'end': 15829.565, 'text': 'And if you go to the documentation the Kubernetes documentation, you can find a lot of options there.', 'start': 15824.963, 'duration': 4.602}], 'summary': 'Configuring pod network and api server for inter-container communication in kubernetes.', 'duration': 26.84, 'max_score': 15802.725, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hQcFE0RD0cQ/pics/hQcFE0RD0cQ15802725.jpg'}, {'end': 15880.841, 'src': 'embed', 'start': 15856.658, 'weight': 2, 'content': [{'end': 15862.781, 'text': 'So let me first of all copy this entire line and before I paste it here.', 'start': 15856.658, 'duration': 6.123}, {'end': 15867.834, 'text': 'Let me do an if config and find out what is the IP address of this particular machine of my master machine.', 'start': 15863.351, 'duration': 4.483}, {'end': 15869.104, 'text': 'The IP address is 192.168.', 'start': 15868.354, 'duration': 0.75}, {'end': 15878.84, 'text': "56.101 Okay, so let's just keep that in mind and let me paste the command over here in place of the master IP address.", 'start': 15869.104, 'duration': 9.736}, {'end': 15880.841, 'text': "I'm going to specify the IP address of the master.", 'start': 15879.26, 'duration': 1.581}], 'summary': "The master machine's ip address is 192.168.56.101.", 'duration': 24.183, 'max_score': 15856.658, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hQcFE0RD0cQ/pics/hQcFE0RD0cQ15856658.jpg'}, {'end': 16021.467, 'src': 'embed', 'start': 15998.751, 'weight': 1, 'content': [{'end': 16006.757, 'text': "Okay, you can probably use your pseudo, but yeah, you'll be executing it as your regular user and it's asking me if I want to overwrite the existing.", 'start': 15998.751, 'duration': 8.006}, {'end': 16008.278, 'text': 'whatever is there in this directory.', 'start': 16006.757, 'duration': 1.521}, {'end': 16013.882, 'text': "I would say yes because I've already done this before but if you are setting up the cluster for the first time you will not have this prompt.", 'start': 16008.398, 'duration': 5.484}, {'end': 16019.646, 'text': 'Okay Now, let me go to the third line copy this and paste it here.', 'start': 16014.482, 'duration': 5.164}, {'end': 16021.467, 'text': 'Okay, perfect.', 'start': 16020.686, 'duration': 0.781}], 'summary': 'Executing commands as regular user, overwriting existing directory, setting up cluster for the first time', 'duration': 22.716, 'max_score': 15998.751, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hQcFE0RD0cQ/pics/hQcFE0RD0cQ15998751.jpg'}, {'end': 16223.492, 'src': 'embed', 'start': 16195.512, 'weight': 3, 'content': [{'end': 16198.776, 'text': 'Okay, you have to first of all create a service account for your dashboard.', 'start': 16195.512, 'duration': 3.264}, {'end': 16205.743, 'text': 'Then you have to say that okay, you are going to be the admin user of this particular service account and you have to enable that functionality here.', 'start': 16199.316, 'duration': 6.427}, {'end': 16209.727, 'text': 'You should say dashboard admin privileges and you should do the cluster binding.', 'start': 16205.763, 'duration': 3.964}, {'end': 16211.93, 'text': 'Okay, the cluster role binding is what you have to do.', 'start': 16209.928, 'duration': 2.002}, {'end': 16216.788, 'text': 'and after that to join to that or to get access to that particular dashboard.', 'start': 16212.626, 'duration': 4.162}, {'end': 16219.09, 'text': 'We have to basically give a key.', 'start': 16217.068, 'duration': 2.022}, {'end': 16220.17, 'text': "Okay, it's like a password.", 'start': 16219.31, 'duration': 0.86}, {'end': 16223.492, 'text': 'So we have to generate that token first and then we can access the dashboard.', 'start': 16220.19, 'duration': 3.302}], 'summary': 'Create service account, grant admin privileges, generate token for dashboard access.', 'duration': 27.98, 'max_score': 16195.512, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hQcFE0RD0cQ/pics/hQcFE0RD0cQ16195512.jpg'}, {'end': 16602.244, 'src': 'embed', 'start': 16575.018, 'weight': 4, 'content': [{'end': 16578.259, 'text': "I mean, I won't see the engine service so that I get the service.", 'start': 16575.018, 'duration': 3.241}, {'end': 16580.601, 'text': 'I have to enable one more functionality here.', 'start': 16578.72, 'duration': 1.881}, {'end': 16582.463, 'text': 'Okay, the servers here.', 'start': 16580.842, 'duration': 1.621}, {'end': 16585.445, 'text': 'click on the drop-down and you will have external option right?', 'start': 16582.463, 'duration': 2.982}, {'end': 16586.606, 'text': 'So click on external.', 'start': 16585.465, 'duration': 1.141}, {'end': 16590.409, 'text': 'this would let you access this particular service from your host machine.', 'start': 16586.606, 'duration': 3.803}, {'end': 16593.878, 'text': 'Right. so that is the definition.', 'start': 16591.036, 'duration': 2.842}, {'end': 16602.244, 'text': 'so you can see the explanation here, and internal or external service can be defined to map an incoming port to a target port seen by the container.', 'start': 16593.878, 'duration': 8.366}], 'summary': 'Enabling external functionality allows access to services from host machine, mapping ports to containers.', 'duration': 27.226, 'max_score': 16575.018, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hQcFE0RD0cQ/pics/hQcFE0RD0cQ16575018.jpg'}], 'start': 15720.275, 'title': 'Kubernetes setup and deployment', 'summary': 'Provides a comprehensive guide to setting up a kubernetes cluster with one master and one node, deploying a dashboard, and deploying applications via cli and yaml, covering hardware requirements, commands for initialization, pod network setup, deployment steps, and configuration management benefits.', 'chapters': [{'end': 16108.594, 'start': 15720.275, 'title': 'Setting up kubernetes cluster', 'summary': 'Explains how to set up a kubernetes cluster with one master and one node, including hardware requirements, commands for initializing the cluster, setting up the pod network, and checking the connected nodes and pods.', 'duration': 388.319, 'highlights': ['The hardware prerequisites for the master and node involve a minimum of two core CPUs and 4GB of RAM for the master, and a minimum of one core CPU and 4GB of RAM for the node.', "The cluster setup involves initializing the cluster from the master's end using the command 'cube ADM in it', specifying the pod network and the API server flag.", 'The calico CNI is used for the pod network, with the network range specified for the containers inside the pod, and the IP address of the master provided to start the cluster.', 'The process involves running three suggested commands to set up the environment, generating a token for joining the cluster, and executing additional steps to bring up the dashboard and set up the pod network.', "Checking the connected nodes and pods is done using 'cube CDL get nodes' and 'cube CDL get pods' commands to ensure successful setup."]}, {'end': 16670.165, 'start': 16108.914, 'title': 'Kubernetes dashboard setup', 'summary': 'Covers the setup of a kubernetes dashboard, including creating a service account, role binding, generating a token, and deploying an application through the dashboard, culminating in successful deployment and access to the application ui.', 'duration': 561.251, 'highlights': ['Successfully establishing connection of a node to the cluster', 'Deployment of an application through the dashboard', 'Creation of service account, role binding, and token generation for dashboard access']}, {'end': 16966.012, 'start': 16670.165, 'title': 'Kubernetes deployment tutorial', 'summary': 'Explains deploying kubernetes resources using cli and yaml file, including creating deployments, understanding yaml configurations, and accessing deployments through cli commands.', 'duration': 295.847, 'highlights': ['The deployments can be created using CLI or by uploading the yaml file, with configurations stored in yaml format.', 'Understanding yaml file is crucial for creating Kubernetes deployments, as it involves lists and maps, which might be confusing for beginners.', 'Viewing and editing yaml configurations for deployments, specifying name, API version, and metadata, is essential for customizing deployments.', 'Accessing deployments through CLI commands involves creating deployment, verifying deployment status, and creating services with node ports for accessing the deployment.', "Using CLI commands like 'cube CDL create deployment' and 'cube CDL get deployments' allows creating and accessing deployments respectively."]}, {'end': 17392.506, 'start': 16966.012, 'title': 'Deploying application via cli and yaml', 'summary': 'Covers steps for deploying an application via cli and yaml, including creating service on nodes, accessing service at a particular port, deployment via yaml file, specifying configurations, creating replicas, and checking deployments status in kubernetes.', 'duration': 426.494, 'highlights': ["Creating service on nodes using 'kubectl create service' command and accessing service at a particular port", 'Deployment via YAML file, specifying configurations, and creating replicas', "Checking deployment status in Kubernetes using 'kubectl get deployments' command"]}, {'end': 18260.032, 'start': 17392.806, 'title': 'Config management & deployment strategies', 'summary': 'Discusses the challenges before configuration management, the benefits of configuration management, and the use of ansible for orchestration, provisioning, configuration management, application deployment, and security, with an emphasis on the problems solved by configuration management.', 'duration': 867.226, 'highlights': ['The problems before configuration management and how configuration management solved it', "Configuration management's role in maintaining consistency and control", 'Benefits of configuration management in scaling up and down', "Configuration management's impact on work velocity of developers and system administrators", 'Role of configuration management in seamless upgrades and rollbacks']}], 'duration': 2539.757, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hQcFE0RD0cQ/pics/hQcFE0RD0cQ15720275.jpg', 'highlights': ['The hardware prerequisites for the master and node involve a minimum of two core CPUs and 4GB of RAM for the master, and a minimum of one core CPU and 4GB of RAM for the node.', 'The process involves running three suggested commands to set up the environment, generating a token for joining the cluster, and executing additional steps to bring up the dashboard and set up the pod network.', 'The calico CNI is used for the pod network, with the network range specified for the containers inside the pod, and the IP address of the master provided to start the cluster.', 'Understanding yaml file is crucial for creating Kubernetes deployments, as it involves lists and maps, which might be confusing for beginners.', 'The problems before configuration management and how configuration management solved it']}, {'end': 20193.042, 'segs': [{'end': 18728.414, 'src': 'embed', 'start': 18702.261, 'weight': 0, 'content': [{'end': 18707.684, 'text': 'So this is where you can schedule jobs and provide every job with a particular ID so that you can track it.', 'start': 18702.261, 'duration': 5.423}, {'end': 18712.766, 'text': 'You can check your job status here, whether your job was successful or failed.', 'start': 18708.164, 'duration': 4.602}, {'end': 18718.048, 'text': 'And since Ansible Tower is a configuration management system, it will hold the historical data as well.', 'start': 18713.246, 'duration': 4.802}, {'end': 18722.85, 'text': 'So you can check the job statuses of the past month or the month before that.', 'start': 18718.468, 'duration': 4.382}, {'end': 18725.392, 'text': 'You can check the host status as well.', 'start': 18723.59, 'duration': 1.802}, {'end': 18728.414, 'text': 'You can check how many hosts are up and running.', 'start': 18725.852, 'duration': 2.562}], 'summary': 'Ansible tower schedules jobs, tracks job ids, and monitors job and host statuses, holding historical data.', 'duration': 26.153, 'max_score': 18702.261, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hQcFE0RD0cQ/pics/hQcFE0RD0cQ18702261.jpg'}, {'end': 18854.132, 'src': 'embed', 'start': 18830.194, 'weight': 6, 'content': [{'end': 18836.998, 'text': 'and this configuration management database is a repository that acts as a data warehouse for all your IT installations.', 'start': 18830.194, 'duration': 6.804}, {'end': 18845.304, 'text': 'It holds all the data relating to the collection of your all IT assets, and these are commonly known as configuration items,', 'start': 18837.819, 'duration': 7.485}, {'end': 18849.767, 'text': 'and it also holds the data which describe the relationships between such assets.', 'start': 18845.304, 'duration': 4.463}, {'end': 18854.132, 'text': 'So this is a repository for all your configuration management data.', 'start': 18850.851, 'duration': 3.281}], 'summary': 'A configuration management database stores data for it installations and assets.', 'duration': 23.938, 'max_score': 18830.194, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hQcFE0RD0cQ/pics/hQcFE0RD0cQ18830194.jpg'}, {'end': 19129.396, 'src': 'embed', 'start': 19097.437, 'weight': 4, 'content': [{'end': 19099.379, 'text': "And then I've got handlers at the bottom.", 'start': 19097.437, 'duration': 1.942}, {'end': 19101.481, 'text': 'Now handlers are also tasks.', 'start': 19099.98, 'duration': 1.501}, {'end': 19107.729, 'text': 'But the difference is, in order to execute handlers, you need some sort of triggers in the list of tasks.', 'start': 19102.062, 'duration': 5.667}, {'end': 19110.193, 'text': 'For example, we use notify.', 'start': 19108.31, 'duration': 1.883}, {'end': 19112.035, 'text': "I'll show you an example now.", 'start': 19110.813, 'duration': 1.222}, {'end': 19116.2, 'text': 'Okay, let me show you an example of playbook so that you can relate to this structure.', 'start': 19112.696, 'duration': 3.504}, {'end': 19120.506, 'text': 'So this is an example of an Ansible playbook to install Apache.', 'start': 19116.661, 'duration': 3.845}, {'end': 19129.396, 'text': 'Like I told you it starts with three dashes on the top and remember that every list starts with a dash in the front or a hyphen.', 'start': 19121.004, 'duration': 8.392}], 'summary': 'Handlers are tasks requiring triggers to execute. example: ansible playbook to install apache.', 'duration': 31.959, 'max_score': 19097.437, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hQcFE0RD0cQ/pics/hQcFE0RD0cQ19097437.jpg'}, {'end': 19503.369, 'src': 'embed', 'start': 19477.163, 'weight': 8, 'content': [{'end': 19481.604, 'text': 'and you can start managing them without installing any kind of agent or client software.', 'start': 19477.163, 'duration': 4.441}, {'end': 19488.365, 'text': 'So you can avoid the problem of managing the management, which is very common in different automation systems.', 'start': 19482.424, 'duration': 5.941}, {'end': 19493.747, 'text': "For example, I've got my host machines and Apache web servers installed in each of the host machines.", 'start': 19488.765, 'duration': 4.982}, {'end': 19496.227, 'text': "I've also got PHP and MySQL installed.", 'start': 19494.107, 'duration': 2.12}, {'end': 19503.369, 'text': 'Now if I want to make configuration changes, if I want to update Apache and update my MySQL, I can do it directly.', 'start': 19496.607, 'duration': 6.762}], 'summary': 'Manage systems without installing client software, update configurations directly.', 'duration': 26.206, 'max_score': 19477.163, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hQcFE0RD0cQ/pics/hQcFE0RD0cQ19477163.jpg'}], 'start': 18260.713, 'title': 'Ansible in it infrastructure', 'summary': "Discusses ansible as an efficient configuration management tool, highlighting nasa's case study with significant time reductions, insights into ansible architecture, and its applications in orchestration, provisioning, configuration management, application deployment, and security, including hands-on usage for deploying a lamp stack.", 'chapters': [{'end': 18634.743, 'start': 18260.713, 'title': 'Ansible: it infrastructure automation', 'summary': "Discusses ansible as a powerful, agentless, and efficient configuration management tool that offers large productivity gains, automates cloud, network, and server processes, and comes with over 750 inbuilt modules. it also highlights a case study of nasa's migration to a cloud-based environment using ansible tower for organized and automated end-to-end deployment.", 'duration': 374.03, 'highlights': ['Ansible automates entire IT infrastructure and offers large productivity gains.', 'Features of Ansible include simplicity, agentless nature, and over 750 inbuilt extensible modules.', "NASA's migration to a cloud-based environment using Ansible Tower for organized and automated end-to-end deployment."]}, {'end': 18926.203, 'start': 18635.384, 'title': 'Ansible tower at nasa', 'summary': 'Highlights how ansible tower helped nasa in managing job assignments, monitoring systems, achieving significant time reductions in various tasks, and drastically improving overall management system, resulting in notable time savings such as from 1 hour to 5 minutes for site updates, multi-day security patching updates to 45 minutes, and application stack up time from 1-2 hours to 10 minutes.', 'duration': 290.819, 'highlights': ['Updating nasa.gov used to take one hour of time and after using Ansible it got down to just five minutes.', 'Security patching updates were a multi-day process and now it requires only 45 minutes.', "Earlier the application stack up time required one to two hours and now it's done in only 10 minutes.", 'Achieved near real time RAM and disk monitoring and baselining all the standard Amazon machine images.', 'Ansible Tower helped NASA to organize everything, manage job assignments, and monitor systems, resulting in significant time savings and improved overall management system.']}, {'end': 19265.751, 'start': 18926.749, 'title': 'Understanding ansible architecture and playbooks', 'summary': 'Discusses the ansible architecture, including plugins, connection, and host machines, and provides insights into writing a playbook and the applications of ansible, such as orchestration, application deployment, and configuration management.', 'duration': 339.002, 'highlights': ['Ansible architecture includes plugins like action, cache, and callback plugins, as well as connection plugins for Docker containers, and supports SSH and other network authentication protocols for connecting to host machines.', "Writing a playbook involves structuring it with host machine lists, variables, tasks, and handlers, where tasks are executed in the specified order, and handlers require triggers such as 'notify' to execute.", 'The applications of Ansible encompass orchestration, application deployment, configuration management, security, compliance, provisioning, and understanding the interaction of configurations within infrastructure for maintaining a seamless application flow.']}, {'end': 19615.657, 'start': 19265.751, 'title': 'Ansible: orchestration, provisioning, and configuration management', 'summary': 'Explains how ansible helps with orchestration, provisioning, and configuration management, allowing for proper order of tasks, installation of necessary software, and deployment of applications, ensuring repeatability and reliability.', 'duration': 349.906, 'highlights': ['Ansible helps with orchestration by ensuring proper order of tasks and configuration, such as ensuring the database is up before the backend server and proper VLANs are configured, allowing for smooth deployment of applications.', 'Provisioning in Ansible ensures that all necessary software for application running is properly installed in each environment of the infrastructure, allowing for consistent application provisioning at all stages.', 'Ansible simplifies configuration management with simple data descriptions of infrastructure, requiring only an SSH key to start managing systems, avoiding the need for agent or client software installation.', 'Application deployment is made easier with Ansible, allowing for reliable and consistent deployment of multi-tier applications from a common framework, while ensuring repeatability and reliability in installations and upgrades.']}, {'end': 20193.042, 'start': 19616.517, 'title': 'Ansible for application deployment and security', 'summary': 'Explores how ansible simplifies application deployment, emphasizing its role in maintaining security by using playbooks to define security protocols, applying dsustig cybersecurity methodology, and integrating with security verification tools like openscap and stigma. it also showcases hands-on usage by deploying a lamp stack on virtual machines.', 'duration': 576.525, 'highlights': ['Ansible simplifies application deployment by continuously checking the version control system and configuring test and production servers accordingly, making deployment quick and efficient.', 'Ansible enhances security by allowing the definition of security protocols using playbooks, applying DSUSTIG cybersecurity methodology, and integrating with security verification tools like OpenSCAP and Stigma.', 'Hands-on demonstration involves deploying a LAMP stack on virtual machines, showcasing the use of an Ansible control machine and an Ansible host machine to host a website and collect data in a MySQL server.', 'Detailed explanation of writing an Ansible playbook for provisioning, including installing necessary softwares such as Apache, PHP, and MySQL, and emphasizing the importance of careful indentation in YAML files.']}], 'duration': 1932.329, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hQcFE0RD0cQ/pics/hQcFE0RD0cQ18260713.jpg', 'highlights': ["NASA's migration to a cloud-based environment using Ansible Tower resulted in significant time reductions for end-to-end deployment.", 'Updating nasa.gov reduced from one hour to just five minutes after using Ansible.', 'Security patching updates reduced from multi-day process to only 45 minutes with Ansible.', 'Application stack up time reduced from one to two hours to only 10 minutes using Ansible.', 'Ansible Tower helped NASA to organize everything, manage job assignments, and monitor systems, resulting in significant time savings and improved overall management system.', 'Ansible architecture includes plugins like action, cache, and callback plugins, as well as connection plugins for Docker containers, and supports SSH and other network authentication protocols for connecting to host machines.', 'Ansible simplifies application deployment by continuously checking the version control system and configuring test and production servers accordingly, making deployment quick and efficient.', 'Ansible enhances security by allowing the definition of security protocols using playbooks, applying DSUSTIG cybersecurity methodology, and integrating with security verification tools like OpenSCAP and Stigma.', 'Hands-on demonstration involves deploying a LAMP stack on virtual machines, showcasing the use of an Ansible control machine and an Ansible host machine to host a website and collect data in a MySQL server.']}, {'end': 21738.83, 'segs': [{'end': 20733.438, 'src': 'embed', 'start': 20703.083, 'weight': 7, 'content': [{'end': 20709.386, 'text': 'what I need to do is that I need to copy these files from my control machine to the proper location in my node machine.', 'start': 20703.083, 'duration': 6.303}, {'end': 20712.02, 'text': 'And we can do that using playbooks.', 'start': 20710.359, 'duration': 1.661}, {'end': 20715.243, 'text': 'So let me just show you the playbook to copy files.', 'start': 20712.781, 'duration': 2.462}, {'end': 20720.207, 'text': 'And the name of my file is deploy website.', 'start': 20717.965, 'duration': 2.242}, {'end': 20727.453, 'text': 'So this is my playbook to deploy my application.', 'start': 20724.711, 'duration': 2.742}, {'end': 20733.438, 'text': "And here again I've used the three dashes and then the name of my playbook is copy.", 'start': 20728.534, 'duration': 4.904}], 'summary': "Using playbooks to copy files from control machine to node machine, with 'deploy website' playbook.", 'duration': 30.355, 'max_score': 20703.083, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hQcFE0RD0cQ/pics/hQcFE0RD0cQ20703083.jpg'}, {'end': 20808.315, 'src': 'embed', 'start': 20782.882, 'weight': 8, 'content': [{'end': 20787.725, 'text': 'So, I should be copying my files into this location in order for it to display it on the web page.', 'start': 20782.882, 'duration': 4.843}, {'end': 20791.907, 'text': "And similarly, I've copied my other PHP files using the same copy module.", 'start': 20788.365, 'duration': 3.542}, {'end': 20794.328, 'text': "I've mentioned the source and destination.", 'start': 20792.467, 'duration': 1.861}, {'end': 20797.57, 'text': "I'm copying them to the same destination from the same source.", 'start': 20794.648, 'duration': 2.922}, {'end': 20800.291, 'text': "So I don't think any of you would have questions here.", 'start': 20798.29, 'duration': 2.001}, {'end': 20803.313, 'text': 'This is the most easiest playbook that we have written today.', 'start': 20800.331, 'duration': 2.982}, {'end': 20805.714, 'text': 'So let us deploy our application now.', 'start': 20803.993, 'duration': 1.721}, {'end': 20808.315, 'text': 'And for that, we need to run this playbook.', 'start': 20806.414, 'duration': 1.901}], 'summary': 'Copying files and deploying application using playbook.', 'duration': 25.433, 'max_score': 20782.882, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hQcFE0RD0cQ/pics/hQcFE0RD0cQ20782882.jpg'}, {'end': 20921.704, 'src': 'embed', 'start': 20894.009, 'weight': 6, 'content': [{'end': 20899.831, 'text': 'Now, even though at the beginning it seemed like a huge task to do, Ansible playbooks made it so easy.', 'start': 20894.009, 'duration': 5.822}, {'end': 20907.213, 'text': 'Hello everyone, this is Sourav from Edureka.', 'start': 20905.131, 'duration': 2.082}, {'end': 20910.175, 'text': "In today's session, we'll focus on what is Puppet.", 'start': 20907.813, 'duration': 2.362}, {'end': 20914.438, 'text': 'So without any further ado, let us move forward and have a look at the agenda for today.', 'start': 20910.715, 'duration': 3.723}, {'end': 20917.1, 'text': "First, we'll see why we need configuration management.", 'start': 20914.979, 'duration': 2.121}, {'end': 20921.704, 'text': 'What are the various problems that industries were facing before configuration management was introduced?', 'start': 20917.481, 'duration': 4.223}], 'summary': 'Ansible playbooks made a huge task easy for configuration management.', 'duration': 27.695, 'max_score': 20894.009, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hQcFE0RD0cQ/pics/hQcFE0RD0cQ20894009.jpg'}, {'end': 21090.556, 'src': 'embed', 'start': 21056.66, 'weight': 0, 'content': [{'end': 21058.001, 'text': 'Now, this is the third problem guys.', 'start': 21056.66, 'duration': 1.341}, {'end': 21058.922, 'text': 'Over here.', 'start': 21058.461, 'duration': 0.461}, {'end': 21059.462, 'text': 'what happens?', 'start': 21058.922, 'duration': 0.54}, {'end': 21065.433, 'text': 'You have updated MongoDB in the previous step on, say, development environment and in the testing environment,', 'start': 21060.031, 'duration': 5.402}, {'end': 21069.774, 'text': "but when we talk about the production environment, they're still using the previous version of MongoDB.", 'start': 21065.433, 'duration': 4.341}, {'end': 21076.956, 'text': 'Now what happens there might be certain applications that work that are not compatible with the previous version of MongoDB.', 'start': 21070.134, 'duration': 6.822}, {'end': 21077.276, 'text': 'All right.', 'start': 21076.996, 'duration': 0.28}, {'end': 21083.678, 'text': 'So what happened developers write a code and that works fine in his own environment or beat his own laptop.', 'start': 21077.856, 'duration': 5.822}, {'end': 21090.556, 'text': 'After that it works fine, till testing is well now when it reaches production, since they are using the older version of MongoDB,', 'start': 21084.395, 'duration': 6.161}], 'summary': 'Issue with different mongodb versions across environments causing compatibility problems for applications.', 'duration': 33.896, 'max_score': 21056.66, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hQcFE0RD0cQ/pics/hQcFE0RD0cQ21056660.jpg'}, {'end': 21612.747, 'src': 'embed', 'start': 21577.845, 'weight': 1, 'content': [{'end': 21580.367, 'text': 'it requests for the puppet master certificate.', 'start': 21577.845, 'duration': 2.522}, {'end': 21580.667, 'text': 'all right?', 'start': 21580.367, 'duration': 0.3}, {'end': 21587.19, 'text': "It sends a request for the master certificate and once puppet master receives that request, it'll send the master certificate.", 'start': 21580.787, 'duration': 6.403}, {'end': 21594.935, 'text': 'And once puppet slave has received the master certificate, puppet master will again send a request to the slave regarding its own certificate.', 'start': 21587.791, 'duration': 7.144}, {'end': 21595.195, 'text': 'all right?', 'start': 21594.935, 'duration': 0.26}, {'end': 21598.737, 'text': 'So it will request for the puppet agent to send its own certificate.', 'start': 21595.495, 'duration': 3.242}, {'end': 21603.124, 'text': 'The puppet slave will generate its own certificate and send it to puppet master.', 'start': 21599.343, 'duration': 3.781}, {'end': 21607.405, 'text': 'Now what puppet master has to do puppet master has to sign that certificate.', 'start': 21603.604, 'duration': 3.801}, {'end': 21608.026, 'text': 'All right.', 'start': 21607.726, 'duration': 0.3}, {'end': 21612.747, 'text': 'So once it has signed the certificate puppet slave can actually request for the data.', 'start': 21608.406, 'duration': 4.341}], 'summary': 'Puppet master and slave exchange certificates for secure communication.', 'duration': 34.902, 'max_score': 21577.845, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hQcFE0RD0cQ/pics/hQcFE0RD0cQ21577845.jpg'}, {'end': 21662.352, 'src': 'embed', 'start': 21634.102, 'weight': 9, 'content': [{'end': 21636.665, 'text': 'So let us move forward and execute this practically.', 'start': 21634.102, 'duration': 2.563}, {'end': 21640.584, 'text': 'Now this is my puppet master virtual machine over here.', 'start': 21637.458, 'duration': 3.126}, {'end': 21646.575, 'text': "I've already created a puppet master certificate, but there is no puppet agent certificate right now.", 'start': 21640.664, 'duration': 5.911}, {'end': 21655.87, 'text': "And how will you confirm that there's a command that is puppet So it list and it will display all the certificates that are pending in puppet master.", 'start': 21646.896, 'duration': 8.974}, {'end': 21658.45, 'text': 'I mean that are pending for the approval from the master.', 'start': 21655.89, 'duration': 2.56}, {'end': 21658.73, 'text': 'All right.', 'start': 21658.47, 'duration': 0.26}, {'end': 21661.411, 'text': 'So currently there are no certificates available.', 'start': 21659.451, 'duration': 1.96}, {'end': 21662.352, 'text': "So what I'll do?", 'start': 21661.431, 'duration': 0.921}], 'summary': 'Setting up puppet master virtual machine, checking pending certificates.', 'duration': 28.25, 'max_score': 21634.102, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hQcFE0RD0cQ/pics/hQcFE0RD0cQ21634102.jpg'}], 'start': 20193.783, 'title': 'Configuration management', 'summary': "Details the successful installation of apache 2 and mysql on the node machine using ansible, deployment of a web application, the importance of configuration management, and explains puppet's architecture and communication methods, showcasing its efficiency with quantifiable data and a case study.", 'chapters': [{'end': 20291.671, 'start': 20193.783, 'title': 'Successful installation of apache and mysql', 'summary': 'Details the successful installation of apache 2 and mysql on the node machine using ansible, with eight tasks run okay, seven changes made, zero hosts unreachable, and zero failed tasks.', 'duration': 97.888, 'highlights': ['The playbook successfully executed, with eight tasks run okay, seven changes made, zero hosts unreachable, and zero failed tasks.', 'Confirmation of Apache installation on the node machine through the default web page of Apache 2 web server in the local host of the web browser.', 'Confirmation of successful installation of Apache on the node machine.', 'Confirmation of successful installation of MySQL on the node machine.']}, {'end': 20974.288, 'start': 20292.392, 'title': 'Deploying web application with ansible', 'summary': 'Covers the deployment of a web application using ansible, including the installation of mysql server, provisioning of node machine, creation of database and table, and deployment of html and php files, demonstrating the ease and efficiency of using ansible playbooks for orchestration.', 'duration': 681.896, 'highlights': ['The installation of MySQL server was successfully done on the node machine.', 'Creation of database and table using Ansible playbooks for storing user registration data was demonstrated.', 'Deployment of HTML and PHP files on the node machine was efficiently executed using Ansible playbooks.']}, {'end': 21328.245, 'start': 20974.308, 'title': 'Importance of configuration management', 'summary': "Discusses the problems of manual software management, the importance of configuration management, and its benefits, illustrated with a case study of new york stock exchange's successful recovery from a software glitch, resulting in preventing loss of millions of dollars.", 'duration': 353.937, 'highlights': ['Importance of configuration management illustrated with New York Stock Exchange case study', 'Configuration management benefits in preventing loss and enabling rapid software rollback', 'Explanation of configuration management and infrastructure as code', 'Advantages of configuration management in simplifying infrastructure management', 'Benefits of infrastructure as code in ensuring consistent computing environments']}, {'end': 21738.83, 'start': 21328.245, 'title': 'Puppet configuration management', 'summary': 'Explains the concepts of push and pull configuration, emphasizing the push configuration used by ansible and saltstack, and pull configuration used by puppet and chef. it provides a detailed overview of puppet, highlighting its architecture, the master-slave setup, and the ssl-based communication between the puppet master and slave.', 'duration': 410.585, 'highlights': ['Puppet and Chef use pull configuration, while Ansible and Saltstack use push configuration.', 'Puppet is a configuration management tool used for deploying applications, configuring nodes, and managing servers, employing a master-slave architecture.', 'Puppet master compiles a catalog based on facts received from the Puppet agent, describing the desired state for each resource managed on the slave.', 'SSL-based communication is used for the secure exchange of certificates and configurations between the Puppet master and slave.']}], 'duration': 1545.047, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hQcFE0RD0cQ/pics/hQcFE0RD0cQ20193783.jpg', 'highlights': ['The playbook successfully executed, with eight tasks run okay, seven changes made, zero hosts unreachable, and zero failed tasks.', 'Confirmation of successful installation of MySQL on the node machine.', 'Confirmation of successful installation of Apache on the node machine.', 'Confirmation of Apache installation on the node machine through the default web page of Apache 2 web server in the local host of the web browser.', 'Creation of database and table using Ansible playbooks for storing user registration data was demonstrated.', 'Deployment of HTML and PHP files on the node machine was efficiently executed using Ansible playbooks.', 'Importance of configuration management illustrated with New York Stock Exchange case study', 'Puppet and Chef use pull configuration, while Ansible and Saltstack use push configuration.', 'Puppet is a configuration management tool used for deploying applications, configuring nodes, and managing servers, employing a master-slave architecture.', 'SSL-based communication is used for the secure exchange of certificates and configurations between the Puppet master and slave.']}, {'end': 23566.5, 'segs': [{'end': 21815.826, 'src': 'embed', 'start': 21790.782, 'weight': 8, 'content': [{'end': 21796.988, 'text': 'And after that we saw how important configuration management is with the help of a use case of New York Stock Exchange.', 'start': 21790.782, 'duration': 6.206}, {'end': 21802.833, 'text': 'And finally we saw what exactly configuration management is and what do you mean by infrastructure discord.', 'start': 21797.388, 'duration': 5.445}, {'end': 21808.638, 'text': 'We also looked at various configuration management tools, namely Chef, Puppet, Ansible and Solstack.', 'start': 21803.333, 'duration': 5.305}, {'end': 21815.826, 'text': 'And after that we understood what exactly Puppet is and what is the master-slave architecture that it has,', 'start': 21809.258, 'duration': 6.568}], 'summary': 'Importance of configuration management using new york stock exchange case study and overview of chef, puppet, ansible, and solstack tools.', 'duration': 25.044, 'max_score': 21790.782, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hQcFE0RD0cQ/pics/hQcFE0RD0cQ21790782.jpg'}, {'end': 21944.735, 'src': 'embed', 'start': 21919.959, 'weight': 5, 'content': [{'end': 21927.184, 'text': "Now what happens is, first of all, I'll explain you resources, classes, manifest and modules separately, but before that,", 'start': 21919.959, 'duration': 7.225}, {'end': 21930.227, 'text': 'let me just give you an overview of what are these things all right?', 'start': 21927.184, 'duration': 3.043}, {'end': 21931.568, 'text': 'How do they work together?', 'start': 21930.627, 'duration': 0.941}, {'end': 21932.808, 'text': 'So what happens?', 'start': 21932.168, 'duration': 0.64}, {'end': 21934.489, 'text': 'there are certain resources.', 'start': 21932.808, 'duration': 1.681}, {'end': 21936.85, 'text': 'a user is a resource, a file is a resource.', 'start': 21934.489, 'duration': 2.361}, {'end': 21939.952, 'text': 'basically anything that is there can be considered as a resource.', 'start': 21936.85, 'duration': 3.102}, {'end': 21944.735, 'text': 'So multiple resources actually combine together to form a class.', 'start': 21940.372, 'duration': 4.363}], 'summary': 'Resources like users and files combine to form classes.', 'duration': 24.776, 'max_score': 21919.959, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hQcFE0RD0cQ/pics/hQcFE0RD0cQ21919959.jpg'}, {'end': 22053.741, 'src': 'embed', 'start': 22029.235, 'weight': 6, 'content': [{'end': 22037.6, 'text': "In the example I've shown you that it will create a file that is inetd.conf and this attribute will make sure that it is present.", 'start': 22029.235, 'duration': 8.365}, {'end': 22040.222, 'text': 'So let us execute this practically guys.', 'start': 22037.9, 'duration': 2.322}, {'end': 22042.864, 'text': "I'll again go back to my CentOS virtual machine.", 'start': 22040.662, 'duration': 2.202}, {'end': 22047.579, 'text': "Now over here, what I'll do, I'll use the gedit editor.", 'start': 22043.638, 'duration': 3.941}, {'end': 22049.16, 'text': 'You can use whatever editor you want.', 'start': 22047.599, 'duration': 1.561}, {'end': 22053.741, 'text': "And I'll type the path for my manifest directory.", 'start': 22050.02, 'duration': 3.721}], 'summary': 'Demonstrated creation of inetd.conf file and manifest directory on centos.', 'duration': 24.506, 'max_score': 22029.235, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hQcFE0RD0cQ/pics/hQcFE0RD0cQ22029235.jpg'}, {'end': 22218.096, 'src': 'embed', 'start': 22189.643, 'weight': 7, 'content': [{'end': 22192.566, 'text': 'First you need to write class, then give a name to that class.', 'start': 22189.643, 'duration': 2.923}, {'end': 22196.628, 'text': 'open the braces, write the code in the body, and then close the braces.', 'start': 22193.186, 'duration': 3.442}, {'end': 22197.668, 'text': "It's very simple.", 'start': 22196.748, 'duration': 0.92}, {'end': 22204.832, 'text': 'It is pretty much similar to the other coding languages that you, if you have come across any other coding languages.', 'start': 22198.329, 'duration': 6.503}, {'end': 22207.934, 'text': 'it is pretty much similar to the class that you define over there as well.', 'start': 22204.832, 'duration': 3.102}, {'end': 22210.414, 'text': 'All right, so we have a question from my uncle.', 'start': 22208.454, 'duration': 1.96}, {'end': 22218.096, 'text': "He's asking can you specify what exactly the difference between a resource and a class classes are actually nothing but the bundle of resources.", 'start': 22210.454, 'duration': 7.642}], 'summary': 'Defining a class involves naming, writing code in body, and closing braces, similar to other coding languages. classes are bundles of resources.', 'duration': 28.453, 'max_score': 22189.643, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hQcFE0RD0cQ/pics/hQcFE0RD0cQ22189643.jpg'}, {'end': 23202.021, 'src': 'embed', 'start': 23171.161, 'weight': 4, 'content': [{'end': 23173.583, 'text': "That's what basically is the crux of continuous monitoring.", 'start': 23171.161, 'duration': 2.422}, {'end': 23178.506, 'text': 'So these are the multiple phases given to us by NIST for implementing continuous monitoring.', 'start': 23174.183, 'duration': 4.323}, {'end': 23182.028, 'text': 'NIST is basically National Institute of Standard and Technology.', 'start': 23178.766, 'duration': 3.262}, {'end': 23184.25, 'text': 'So let me just take you through each of these stages.', 'start': 23182.389, 'duration': 1.861}, {'end': 23185.531, 'text': 'First thing is define.', 'start': 23184.51, 'duration': 1.021}, {'end': 23188.333, 'text': 'So you need to basically develop a monitoring strategy.', 'start': 23185.831, 'duration': 2.502}, {'end': 23189.594, 'text': "Then what you're going to do?", 'start': 23188.673, 'duration': 0.921}, {'end': 23197.399, 'text': "you're going to establish measures and matrix and you're also going to establish monitoring and assessment frequencies at how frequently you're going to monitor it right?", 'start': 23189.594, 'duration': 7.805}, {'end': 23202.021, 'text': 'Then you are going to implement whatever you have established, the plan that you have laid down.', 'start': 23197.839, 'duration': 4.182}], 'summary': 'Nist outlines phases for continuous monitoring: define strategy, establish measures, and implement plan.', 'duration': 30.86, 'max_score': 23171.161, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hQcFE0RD0cQ/pics/hQcFE0RD0cQ23171161.jpg'}, {'end': 23446.4, 'src': 'embed', 'start': 23414.549, 'weight': 1, 'content': [{'end': 23418.291, 'text': 'your services and business processes Etc in a devops culture.', 'start': 23414.549, 'duration': 3.742}, {'end': 23423.194, 'text': 'right now, in the event of failure, Nagios can alert technical staff of the problem,', 'start': 23418.291, 'duration': 4.903}, {'end': 23429.738, 'text': 'allowing them to begin remediation processes before outages affect business processes, end users or customers.', 'start': 23423.194, 'duration': 6.544}, {'end': 23430.799, 'text': "So I hope you're getting my point.", 'start': 23429.758, 'duration': 1.041}, {'end': 23439.929, 'text': 'It can alert the technical staff of the problem and they can begin remediation processes before outages affect their business process or end users or customers.', 'start': 23431.219, 'duration': 8.71}, {'end': 23446.4, 'text': "With Nagios, you don't have to explain why an unseen infrastructure outage affect your organization's bottom line.", 'start': 23440.49, 'duration': 5.91}], 'summary': 'Nagios alerts technical staff of problems to begin remediation, preventing outages and business impact.', 'duration': 31.851, 'max_score': 23414.549, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hQcFE0RD0cQ/pics/hQcFE0RD0cQ23414549.jpg'}, {'end': 23476.343, 'src': 'embed', 'start': 23449.89, 'weight': 0, 'content': [{'end': 23456.674, 'text': 'So Nagios basically runs in a server usually as a daemon or a service and it periodically runs plugins residing in the same server.', 'start': 23449.89, 'duration': 6.784}, {'end': 23461.996, 'text': 'What they do, they basically contact hosts on servers or on your network or on the internet.', 'start': 23457.114, 'duration': 4.882}, {'end': 23469.3, 'text': 'Now one can view the status information using the web interface and you can also receive email or SMS notification if something goes wrong.', 'start': 23462.496, 'duration': 6.804}, {'end': 23476.343, 'text': 'Right? So basically, Nargis Daemon behaves like a scheduler that runs certain scripts at certain moments.', 'start': 23469.74, 'duration': 6.603}], 'summary': 'Nagios runs as a daemon, contacts hosts, and provides status info and notifications.', 'duration': 26.453, 'max_score': 23449.89, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hQcFE0RD0cQ/pics/hQcFE0RD0cQ23449890.jpg'}, {'end': 23558.417, 'src': 'embed', 'start': 23530.34, 'weight': 2, 'content': [{'end': 23534.023, 'text': 'If you have configured it in such a way, then definitely you can fix those issues automatically.', 'start': 23530.34, 'duration': 3.683}, {'end': 23537.906, 'text': 'And it also has support for implementing redundant monitoring hosts.', 'start': 23534.463, 'duration': 3.443}, {'end': 23540.448, 'text': 'So I hope you have understood these features.', 'start': 23538.306, 'duration': 2.142}, {'end': 23545.952, 'text': 'There are many more, but these are the pretty attractive features and why NagiOS is so popular is because of these features.', 'start': 23540.488, 'duration': 5.464}, {'end': 23549.134, 'text': 'Let us now discuss the architecture of NagiOS in detail.', 'start': 23546.512, 'duration': 2.622}, {'end': 23554.296, 'text': 'So, basically, Nagios has a server agent architecture right now, usually on a network,', 'start': 23549.574, 'duration': 4.722}, {'end': 23558.417, 'text': 'and Nagios server is running on a host which we just saw in the previous diagram right?', 'start': 23554.296, 'duration': 4.121}], 'summary': 'Nagios offers automatic issue fixes, redundant monitoring hosts, and a server-agent architecture.', 'duration': 28.077, 'max_score': 23530.34, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hQcFE0RD0cQ/pics/hQcFE0RD0cQ23530340.jpg'}], 'start': 21739.39, 'title': 'Puppet configuration and continuous monitoring', 'summary': 'Covers secure connection setup between puppet master and agent, deployment of mysql and php using puppet, puppet basics, resources, manifest usage for apache, php, and mysql deployment, and the importance of continuous monitoring in ci/cd, pre-production testing, server health, and nagios features.', 'chapters': [{'end': 21939.952, 'start': 21739.39, 'title': 'Puppet configuration management overview', 'summary': 'Covers the secure connection setup between puppet master and puppet agent, the importance of configuration management, and the deployment of mysql and php using puppet, along with an overview of puppet basics and resources.', 'duration': 200.562, 'highlights': ['The secure connection between Puppet Master and Puppet Agent has been successfully established.', 'The chapter provides a quick recap of the discussed topics, including the problems before configuration management, the significance of configuration management with a use case of New York Stock Exchange, and an overview of configuration management tools.', 'The deployment of MySQL and PHP using puppet is outlined, including the download of predefined modules from the Puppet Forge, defining classes, and declaring classes in the manifest before deploying onto the nodes.', 'The overview of Puppet basics and resources is provided, covering classes, manifest, modules, and resources, along with a detailed explanation of their functioning together.']}, {'end': 22231.959, 'start': 21940.372, 'title': 'Puppet resources and classes', 'summary': 'Explains how resources combine to form classes, the syntax of resource declarations, and the difference between resources and classes in puppet, emphasizing the importance of combining resources in the form of classes for easier management.', 'duration': 291.587, 'highlights': ['Resources combine to form classes, which can be declared in multiple manifests and bundled together to form a module.', 'Syntax of resource declarations includes specifying the type, name, and attributes of the resource.', 'Classes are groups of resources that can be declared in multiple manifests, with a syntax similar to other coding languages.']}, {'end': 22800.201, 'start': 22232.379, 'title': 'Puppet manifest for deploying apache, php, and mysql', 'summary': 'Covers the usage of manifest in puppet to deploy apache, php, and mysql, including defining classes, downloading and installing modules from puppetforge, and executing the manifest to deploy the services, with successful installation of apache, php, and mysql demonstrated.', 'duration': 567.822, 'highlights': ['Puppet Agent pulls configurations from Puppet Master every 30 minutes or on manual command execution, demonstrating periodic configuration updates.', 'Successfully deploying PHP and MySQL using Puppet, confirmed by displaying their version, showcasing the successful installation of the services.', 'Downloading and installing MySQL and PHP modules from PuppetForge, installing them into the specified directory, demonstrating the process of obtaining and installing modules.', 'Defining and declaring classes in the manifest, including Apache, PHP, and MySQL, for deployment using Puppet, showcasing the setup of classes for deployment.', 'Explanation of Puppet modules as self-contained bundles of code and data with a specific directory structure, organizing Puppet code into modules for managing multiple manifests, providing a proper structure for code management.']}, {'end': 23115.821, 'start': 22802.691, 'title': 'Importance of continuous monitoring', 'summary': 'Covers the importance of continuous monitoring, discussing the need for it in ci/cd pipelines, pre-production testing, and server health, emphasizing the impact on rapid software releases and the need for proactive issue detection.', 'duration': 313.13, 'highlights': ['CI/CD pipeline requires continuous monitoring to avoid manual intervention and ensure rapid and stable releases, impacting software performance and error introduction.', 'Pre-production server testing using APM solutions enables proactive issue detection before software release, ensuring minimal downtime and efficient bug fixing.', 'Continuous server monitoring is crucial to prevent downtime and performance issues, ensuring optimal application service and customer satisfaction.']}, {'end': 23566.5, 'start': 23116.201, 'title': 'Importance of continuous monitoring', 'summary': 'Emphasizes the importance of continuous monitoring, explaining its definition, phases, and tools, with a focus on nagios, a popular monitoring tool with features like automatic issue detection and support for redundant monitoring hosts.', 'duration': 450.299, 'highlights': ['Continuous monitoring tools resolve system errors before they impact business, such as low memory or unreachable servers.', 'NIST outlines multiple phases for implementing continuous monitoring, including defining a monitoring strategy, establishing measures and matrices, and analyzing data and reporting findings.', 'Continuous monitoring phases include continuous discovery, assessment, audit, patching, and reporting, each serving specific functions like maintaining inventory, scanning for vulnerabilities, and aggregating scanning results.', 'Nagios, a popular continuous monitoring tool, is highlighted for its scalability, security, automatic alerts, issue detection, custom plugin capability, and support for redundant monitoring hosts.']}], 'duration': 1827.11, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hQcFE0RD0cQ/pics/hQcFE0RD0cQ21739390.jpg', 'highlights': ['Nagios, a popular continuous monitoring tool, is highlighted for its scalability, security, automatic alerts, issue detection, custom plugin capability, and support for redundant monitoring hosts.', 'CI/CD pipeline requires continuous monitoring to avoid manual intervention and ensure rapid and stable releases, impacting software performance and error introduction.', 'Pre-production server testing using APM solutions enables proactive issue detection before software release, ensuring minimal downtime and efficient bug fixing.', 'Continuous server monitoring is crucial to prevent downtime and performance issues, ensuring optimal application service and customer satisfaction.', 'The secure connection between Puppet Master and Puppet Agent has been successfully established.', 'Puppet Agent pulls configurations from Puppet Master every 30 minutes or on manual command execution, demonstrating periodic configuration updates.', 'Successfully deploying PHP and MySQL using Puppet, confirmed by displaying their version, showcasing the successful installation of the services.', 'Downloading and installing MySQL and PHP modules from PuppetForge, installing them into the specified directory, demonstrating the process of obtaining and installing modules.', 'Defining and declaring classes in the manifest, including Apache, PHP, and MySQL, for deployment using Puppet, showcasing the setup of classes for deployment.', 'The deployment of MySQL and PHP using puppet is outlined, including the download of predefined modules from the Puppet Forge, defining classes, and declaring classes in the manifest before deploying onto the nodes.']}, {'end': 24432.82, 'segs': [{'end': 23692.727, 'src': 'embed', 'start': 23666.434, 'weight': 3, 'content': [{'end': 23670.896, 'text': "If I click on services, you can see that these are the services that I'm monitoring for my remote host.", 'start': 23666.434, 'duration': 4.462}, {'end': 23674.178, 'text': "I'm monitoring CPU load ping and SSH and for my local host.", 'start': 23670.956, 'duration': 3.222}, {'end': 23680.401, 'text': "I'm monitoring current load current users HTTP ping root partition SSH swap usage and total processes.", 'start': 23674.218, 'duration': 6.183}, {'end': 23682.482, 'text': 'You can add as many services as you want.', 'start': 23680.601, 'duration': 1.881}, {'end': 23686.324, 'text': "All you have to do is change the host dot CFG file, which I'm going to show you later.", 'start': 23682.542, 'duration': 3.782}, {'end': 23689.665, 'text': 'But for now, let us go back to our slides will continue from there.', 'start': 23686.584, 'duration': 3.081}, {'end': 23692.727, 'text': 'So let me just give you a small recap of what all things we have discussed.', 'start': 23690.046, 'duration': 2.681}], 'summary': 'Monitoring services for remote and local hosts, adding services by changing host.cfg file.', 'duration': 26.293, 'max_score': 23666.434, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hQcFE0RD0cQ/pics/hQcFE0RD0cQ23666434.jpg'}, {'end': 24005.009, 'src': 'embed', 'start': 23976.934, 'weight': 0, 'content': [{'end': 23983.999, 'text': 'worker or agent or remote machine we have was deployed at the application level and had the direct access to the host or the master,', 'start': 23976.934, 'duration': 7.065}, {'end': 23990.685, 'text': 'whatever you want to call it, and they have implemented the same architecture for production, quality assurance, staging and development environments.', 'start': 23983.999, 'duration': 6.686}, {'end': 23995.98, 'text': "Now, let's see what was the result now because of this there was a dramatic reduction in notifications.", 'start': 23991.255, 'duration': 4.725}, {'end': 23998.182, 'text': 'Thanks to the event handlers new configuration.', 'start': 23996.16, 'duration': 2.022}, {'end': 24005.009, 'text': 'Then there was an increase in uptime from 85% annually to 98% annually, which is significant, guys right?', 'start': 23998.523, 'duration': 6.486}], 'summary': 'Deployment of architecture led to reduced notifications and increased uptime from 85% to 98% annually.', 'duration': 28.075, 'max_score': 23976.934, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hQcFE0RD0cQ/pics/hQcFE0RD0cQ23976934.jpg'}, {'end': 24130.976, 'src': 'embed', 'start': 24105.058, 'weight': 2, 'content': [{'end': 24110.503, 'text': "What I can do is just clear the screen and I'll show you what all the directories are inside this.", 'start': 24105.058, 'duration': 5.445}, {'end': 24118.028, 'text': "so we can go inside this HC directory and inside this I'm going to go inside the objects directory right?", 'start': 24110.503, 'duration': 7.525}, {'end': 24124.754, 'text': "So why I'm doing this is basically, if I want to add any command, for example, I want to add the check underscore nrp command.", 'start': 24118.329, 'duration': 6.425}, {'end': 24130.976, 'text': "That's how I'm going to monitor my remote Linux host if you remember in the diagram, right? So that's what I'm going to do.", 'start': 24125.114, 'duration': 5.862}], 'summary': 'Navigating directories to add command for monitoring remote linux host.', 'duration': 25.918, 'max_score': 24105.058, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hQcFE0RD0cQ/pics/hQcFE0RD0cQ24105058.jpg'}, {'end': 24276.939, 'src': 'embed', 'start': 24245.959, 'weight': 4, 'content': [{'end': 24250.143, 'text': 'So just add a comma and start with the IP address of the machine that you want to monitor.', 'start': 24245.959, 'duration': 4.184}, {'end': 24252.264, 'text': 'So currently let me just open it once more.', 'start': 24250.163, 'duration': 2.101}, {'end': 24254.486, 'text': "So I'm going to use pseudo because I don't have the privileges.", 'start': 24252.324, 'duration': 2.162}, {'end': 24267.314, 'text': 'Now, in this allowed host directory, all I have to do is comma and the IP address of the host that I want to monitor.', 'start': 24255.827, 'duration': 11.487}, {'end': 24268.804, 'text': 'So it is 192.168.', 'start': 24267.554, 'duration': 1.25}, {'end': 24276.939, 'text': '1.21 Just go ahead save it come back clear the terminal now save and exit now this configures an RP to accept request from your nagiway server.', 'start': 24268.804, 'duration': 8.135}], 'summary': 'Configure rp to accept requests from nagiway server using ip 192.168.1.21.', 'duration': 30.98, 'max_score': 24245.959, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hQcFE0RD0cQ/pics/hQcFE0RD0cQ24245959.jpg'}, {'end': 24432.82, 'src': 'embed', 'start': 24431.696, 'weight': 1, 'content': [{'end': 24432.82, 'text': 'Thank you and happy learning.', 'start': 24431.696, 'duration': 1.124}], 'summary': 'Gratitude and encouragement for learning.', 'duration': 1.124, 'max_score': 24431.696, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hQcFE0RD0cQ/pics/hQcFE0RD0cQ24431696.jpg'}], 'start': 23566.84, 'title': 'Nagios and bitnetics', 'summary': "Introduces nagios and its nrpe plugin, and discusses bitnetics' it management and monitoring project for an e-commerce retailer, resulting in a dramatic reduction in notifications, an increase in uptime from 85% to 98% annually, and efficient configuration maintenance.", 'chapters': [{'end': 23844.804, 'start': 23566.84, 'title': 'Nagios continuous monitoring and nrpe', 'summary': 'Introduces nagios, focusing on its architecture and its use of the nrpe plugin for remote monitoring, and provides a demonstration of the nagios dashboard and nrpe setup on a centos virtual machine.', 'duration': 277.964, 'highlights': ['Nagios architecture and dashboard demonstration', 'NRPE plugin for remote monitoring', 'Case study from Bitnetics']}, {'end': 24432.82, 'start': 23844.824, 'title': 'Bitnetics case study: it management and monitoring', 'summary': "Discusses bitnetics' it management and monitoring project for an e-commerce retailer with a billion dollar annual revenue, facing challenges such as distance between staff and data center, firewall restrictions, and false positive notifications, but successfully implementing solutions resulting in a dramatic reduction in notifications, an increase in uptime from 85% to 98% annually, and efficient configuration maintenance.", 'duration': 587.996, 'highlights': ["Bitnetics faced challenges due to the distance of 500 miles between their staff in New York and the client's data center in New Jersey, impacting the unique and comprehensive monitoring needed for the dev test and prod environment of the same platform.", 'Firewall restrictions posed a challenge for monitoring due to hampering the monitoring of different application site functions, causing significant difficulties.', 'Implementing solutions including adding SSH firewall rules, converting notifications to Nagios alerts, configuring event handlers to restart services before notification, and using Nagios core and multiple servers at the NOC facility resulted in a dramatic reduction in notifications, an increase in uptime from 85% to 98% annually, and efficient configuration maintenance.']}], 'duration': 865.98, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hQcFE0RD0cQ/pics/hQcFE0RD0cQ23566840.jpg', 'highlights': ['Dramatic reduction in notifications, increase in uptime from 85% to 98% annually', 'Nagios architecture and dashboard demonstration', 'NRPE plugin for remote monitoring', 'Case study from Bitnetics', "Challenges due to 500 miles distance between staff and client's data center", 'Firewall restrictions impacting monitoring of application site functions']}], 'highlights': ['Kubernetes enabled vertical scaling to handle 50 times more traffic than expected for Pokemon Go, making it a success story.', 'Kubernetes was instrumental in the success of Pokemon Go, contributing to its recognition as one of the best games of 2017.', 'Continuous integration involves automatically building, testing, and deploying code with every commit, leading to quick bug identification and easy bug fixing, while ensuring that developers do not have to wait for long to get test results.', 'The Jenkins distributed architecture consists of a Jenkins master and multiple Jenkins slaves, used for scheduling build jobs, dispatching builds to slaves, and recording build results.', "NASA's migration to a cloud-based environment using Ansible Tower resulted in significant time reductions for end-to-end deployment."]}