DevOps stands for development and operations collaboration. DevOps is the practice of operations and development engineers that work together in the entire project life cycle, from design and development process to production releases and support.
- Planning: Here Feature, Story and also Backlogs creations & documentation of the same will take place. Splunk is the world’s first Data-to-Everything Platform.
- Code : Feature development and implementation will take place. In addition Git is a free and open source distributed version control system which is also handling everything from small to very large projects with speed and efficiency.
- Build: Where, gathering the code and objects together and integrating it with the system configuration will take place. Apache Ant is a Java library and command-line tool whose mission is to drive processes described in build files as targets and extension points dependent upon each other.
- Test: Deploying and testing the package, using the automated framework or manual testing process. JUnit is a unit testing framework for the Java programming language. JUnit has been important in the development of test-driven development, and is one of a family of unit testing.
- Release : Later on the testing packages will be releasing to the servers and other endpoints. Jenkins is a free and open source automation server. Jenkins helps to automate the non-human part of the software development process, with continuous integration and facilitating technical aspects of continuous delivery.
- Deploy: Deploying the package on a public server to run in production .Code must be deploying in a way that doesn’t affect already functioning features and can be available for a large number of users.
- Operate: Docker is used to build, ship, and run distributed applications .Docker is a set of platform as a service products that use OS-level virtualisation delivering software in packages called containers.
- Monitor: Deploying stages are monitoring continuously and reports will be sent to the respective stages as the reference for changes. ELK, is a free and open-source computer-software application that monitors systems, networks and infrastructure.
Some of the major tools are here
- Chef: It is a useful DevOps tool for achieving speed, scale, and also consistency. With this tool, DevOps team can avoid making changes across ten thousand servers. Instead, they must make changes at one location that is automatically reflected in other servers.
- Jenkins:It a DevOps tool for monitoring execution of repeated tasks. It helps to integrate project changes more easily by quickly finding issues.
- Splunk: This is a tool solves the issues like aggregating, storing, and analyzing all logs in one place.
- ELK: It is also important to make sure people are notified when infrastructure and related services go down. It is one such tool for this purpose which helps DevOps teams to find and correct problems.
- Docker:It is a DevOps technology suite. It allows DevOps teams to build, ship, and run distributed applications. This tool allows users to assemble apps from components and work collaboratively.
- Saltstack: It shows real-time logs, errors queries, and more directly into the workstation. It is an ideal solution for intelligent orchestration for the software-defined data center.
- Ansible: It is a simple way to automate IT for automating entire application lifecycle. It makes it easier for DevOps teams to scale automation and speed up productivity.
- Puppet: It allows managing entire infrastructure as code without expanding the size of the team.
- Git: It is a free and open-source tool and supports most of the version control features of check-in, commits, branches, merging, labels, push and pull to/from GitHub, etc.
- New relic: It gains end to end visibility across customer experience and dynamic infrastructure. It allows DevOps team reduce the time for monitoring applications.
How do all these tools work together?
This flow may vary from organisation to organisation as per the requirement.
i. Developers develop the code and Version Control System tools such as Git etc finally manage this source code.
ii. Furthermore Developers send this code to the Git repository and commit any changes made to the code to this repository.
iii. In addition Jenkins pulls this code from the repository using the Git plugin and build it using tools like Ant or Maven.
iv. Configuration management tools like puppet deploys & provisions testing environment and then Jenkins releases this code on the test environment on which testing is done using tools like selenium.
v. Once the code is tested, Jenkins send it for deployment on the production server (even production server is provisioned & maintained by tools like puppet).
vi. In addition ELK is continuously monitoring it after its deployment
vii. Finally Docker containers provides testing environment to test the build features.
In short, DevOps is a combination of two words namely Development and Operations. Furthermore it is a practice that allows a single team to manage the entire application development life cycle. In future blogs, Further we will discuss more about Devops and its functionality.