
DevOps is a concept with different interpretations and definitions, but when you get down to it, it's all about developers and operations teams breaking down silos and working together to innovate faster. For many companies, the ability to innovate at a rapid pace — responding to market conditions and customer feedback — is a key factor for success. Adopting the DevOps philosophy requires a new mindset, new tools and new skills. This series of videos is designed to introduce how some of the DevOps tools can be put to practical use. In this series, we are going to start from scratch and introduce many tools one by one. An attempt is made to keep it as simple as possible while introducing to some of the important DevOps Concepts.
If you follow the video series, by the end of it you will have a functional DevOps pipeline and then we can build on top of it and introduce even more tools and sophistication in the upcoming series.
Get ready and enjoy the ride. Please provide comments and feedback as well as suggestions to improve.
What is Eclipse?
In the context of computing, Eclipse is an integrated development environment (IDE) for developing applications using the Java programming language and other programming languages such as C/C++, Python, PERL, Ruby etc.
The Eclipse platform which provides the foundation for the Eclipse IDE is composed of plug-ins and is designed to be extensible using additional plug-ins. Developed using Java, the Eclipse platform can be used to develop rich client applications, integrated development environments and other tools. Eclipse can be used as an IDE for any programming language for which a plug-in is available.
Objectives:
In this video, we will download Eclipse and configure it to use various plugins such as GIT, TestNG, and Selenium. We will build a very simple Maven-based web application and then commit it to the GIT repository.
Please feel free to comment, ask questions and/or suggest improvements. All feedback is welcome. Thank you and hope this will be useful to all of you.
What is CI and Jenkins
Continuous Integration is a development practice that requires developers to integrate code into a shared repository at regular intervals. This concept was meant to remove the problem of finding later occurrence of issues in the build lifecycle. Continuous integration requires the developers to have frequent builds. The common practice is that whenever a code commit occurs, a build should be triggered.
Jenkins is an open-source automation server with an unparalleled plugin ecosystem to support practically every tool as part of your delivery pipelines. Whether your goal is continuous integration, continuous delivery or something else entirely, Jenkins can help automate it.
Objectives
In this video, we will create an EC2 instance on AWS and install Jenkins on the instance. We will then download and set up some of the useful Jenkins plugins and orient ourselves with some of the Jenkins features that we will be using in our project.
By the end of this video you should be able to download and setup Jenkins on any machine.
Please feel free to comment, ask questions and/or suggest improvements. All feedback is welcome. Thank you and hope this will be useful to all of you.
What is Ansible?
Ansible is an open source IT configuration management (CM) and automation platform, provided by Red Hat. It uses human-readable YAML templates so that users can program repetitive tasks to occur automatically, without learning an advanced language.
Ansible replaces ad hoc scripting or manual CM with an automated and repeatable process. The tool pushes application code, programs and IT infrastructure setup instructions via modules to managed nodes, whether physical servers, virtual machines (VMs) or cloud instances. The tool also gives users the option to invert its setup to a pull architecture, where managed nodes request instructions from the tool, typically done to enable scaling.
Objective:
In this video, we will install Ansible on an AWS EC2 instance and connect it to host machine using SSH. We will also try to understand how SSH keys work. We will setup our host configuration file and exchange SSH keys and test our connection to make sure our machines are connected.
Please feel free to comment, ask questions and/or suggest improvements. All feedback is welcome. Thank you and hope this will be useful to all of you.
What is Docker?
Docker is a tool designed to make it easier to create, deploy, and run applications by using containers. Containers allow a developer to package up an application with all of the parts it needs, such as libraries and other dependencies, and ship it all out as one package. By doing so, thanks to the container, the developer can rest assured that the application will run on any other Linux machine regardless of any customized settings that machine might have that could differ from the machine used for writing and testing the code.
In a way, Docker is a bit like a virtual machine. But unlike a virtual machine, rather than creating a whole virtual operating system, Docker allows applications to use the same Linux kernel as the system that they're running on and only requires applications be shipped with things not already running on the host computer. This gives a significant performance boost and reduces the size of the application.
And importantly, Docker is open source. This means that anyone can contribute to Docker and extend it to meet their own needs if they need additional features that aren't available out of the box.
Objectives:
In this video, we will create a docker image for our application using Dockerfile and push it to Dockerhub. We will use tomcat as our base image and then add our web application to it.
Please feel free to comment, ask questions and/or suggest improvements. All feedback is welcome. Thank you and hope this will be useful to all of you.
In this video, we will make some improvements to the docker job we created in the last video.
Selenium is a free (open source) automated testing suite for web applications across different browsers and platforms. It is quite similar to HP Quick Test Pro (QTP now UFT) only that Selenium focuses on automating web-based applications. Testing done using Selenium tool is usually referred as Selenium Testing.
Selenium is not just a single tool but a suite of software's, each catering to different testing needs of an organization. It has four components.
Selenium Integrated Development Environment (IDE)
Selenium Remote Control (RC)
WebDriver
Selenium Grid
Selenium Grid:
Selenium Grid is a part of the Selenium Suite that specializes in running multiple tests across different browsers, operating systems, and machines in parallel. Selenium Grid uses a hub-node concept where you only run the test on a single machine called a hub, but the execution will be done by different machines called nodes.
Objectives:
In this video, we will build and deploy a grid for Chrome and Firefox based testing.
In this video, we will deploy our tested image to the AWS EC2 instance that is designated as our Prod Server
DevOps isn't just a buzzword; it's a revolutionary approach that redefines how development and operations teams collaborate, breaking down barriers and accelerating innovation. In today's fast-paced business landscape, the ability to innovate swiftly in response to market demands and customer feedback is paramount for success. Embracing the DevOps mindset demands a paradigm shift, along with mastering new tools and skills.
Our video series isn't just another tutorial—it's a roadmap to practical DevOps implementation. We start from square one, guiding you through the fundamental tools step by step. We strive for simplicity without sacrificing depth, ensuring even beginners grasp important DevOps concepts.
By the series' conclusion, you won't just have a theoretical understanding; you'll possess a fully functional DevOps pipeline ready for action. But we're not stopping there. Join us on this exhilarating journey as we continue to expand your repertoire, introducing more advanced tools and techniques in subsequent installments.
Buckle up and prepare to immerse yourself in the world of DevOps. Your feedback is invaluable as we strive for continuous improvement. Let's embark on this adventure together, empowering you to conquer new heights in DevOps mastery. I look forward to see you with me on this journey. All the best !!!