 Okay, hello everyone. It will be a small talk with some visual pictures and then let's start I guess. Okay, so this talk will cover up general information about DevOps and then tools for DevOps. Jenkins, continuous integration with Jenkins, advantages of it and there will be a small example of one of our build chain. Okay, so what is DevOps? DevOps simply is like a development and operations and which is no longer exclusively separate roles within the IT department. Today DevOps engineers reshape the way IT teams operate improving collaboration between developers, sysadmins and testers. They also improve deployment rates, defect detection and feature delivery. Essentially it's rooted in the idea that building testing and releasing software can run more smoothly and automatically if the appropriate team of professionals is working together. But in this presentation I would like to focus more on continuous integration tool, Jenkins. We will look at key advantages of Jenkins as well as how to do continuous integration with this tool. So software development process can't work efficiently without right tools. Similarly in the case of DevOps you can always benefit from the right set of tools. These tools help in information sharing process automation, reduction in deployment time, in continuous deployment etc. The DevOps tools can be categorized in seven groups depending on its purpose in the particular stage in the lifecycle. It will be code, build, test and then package release and configure and release and infrastructure which means we can use docker swarm, Kubernetes, some sort of platforms and monitoring. So let's go with the main part. What is Jenkins? In today's DevOps world continuous delivery and the deployment are critical to delivering high quality software products. And we need them faster than ever before and Jenkins is an open source continuous integration server written in Java. It is by far the most widely used tool for managing continuous integration builds and delivery pipelines. It helps developers in building and testing software continuously. It increases the scale of automation and quickly gaining popularity in those circles. One of the key advantages of Jenkins is that it requires little maintenance and has built-in graphical user interface tool for easy updates. And then Jenkins also provides customized solution as there are over 400 plugins to support building and testing virtually any project. Basically Jenkins integrates development lifecycle processes of all kinds including build, document, test package stage that we discussed before. So with Jenkins you can configure alerts in several ways. For example, you can receive email notifications, pop-ups, et cetera and actually automate on it. By implementing the right configuration you can get almost immediate feedback. You will always know if the build is broke or not. You will get to know what the reason for a Jenkins job fail was and you can also get to know how you can revert it back. So it's basically alerting logs immediately. So let's imagine a scenario where the complete source code of the application was built and then deployed on the test server for testing, which is in this case LibreOffice. First let's imagine the scenario like a developer commits the code to the code repository and then meanwhile the Jenkins server checks the repository at regular intervals for changes. In some cases, which we are using currently, code repository can generate an event that can catch code by Jenkins so it triggers itself. Soon after a commit occurs, the Jenkins server detects the changes that have occurred in the source code repository. So it starts building. If the build fails, then the related team will be notified if it's in that way configured. If the build is successful, then Jenkins deploys the build in the test server and so on. What are the advantages of the particular cycle? Let's see. It's open source and it's user friendly, easy to install and does not require any additional installations or components. It's free of cost. Easily configurable. Jenkins can be easily modified and extended. It deploys code instantly, generates test reports and can be configured according to the requirements for CI system and CI delivery. And it's platform independent. Jenkins is available for all platforms and different operating systems, whether OSX, Windows or Linux. Which has a rich plug-in ecosystem, I mentioned before, it's over 400 plugins out there and they are maintaining it. The extensive pool of plugins makes Jenkins flexible and allows building deploying and automating across various platforms. Easy support because it's open source and widely used. There are lots of guidelines on the Internet. And it's easy to monitor because it has understandable graphical user interface. And the slide, I'll talk about, let's say, most of the integration work is automated, hence of fewer integration issues. This saves both time and money over the lifespan of the project. So this is a screenshot from our internal Jenkins. It seems like a bit different because it has a team feature in it. And I did put this simplest build chain to show you what can be done easily. So it's a real example of one of our build chains. Currently, this chain is capable of publishing ready-to-use distro packages. It started with whenever an emergency event occurs on a specific branch in the Document Foundation Scarlet. The published multiple-collaboration online minor version of Snapchat packages is currently accessible by our customers. In the Internet, you can find that Jenkins is very easy to collaborate with Docker platform. But in our Jenkins, we are using slaves with Linux containers named as LXCs. And Linux containers in conjunction with Jenkins is having a profound effect on development teams. And LXCs streamlines development and makes deployment vastly easier. So I don't know if you can see those, but let me show live if I can. I'm about to finish the presentation. Oh, it works. So I just wanted to show you guys. We have those slaves except Windows. It's actually the machine itself, but it's containerized. It allows us to build our packages on a different platform simultaneously. It's like in five minutes we have 10 distro packages after boot finished. Okay. Thank you for listening.