DevOps

DevOps

Introdution:-

DevOps is the acronym given to the combination of Development and Operations. It refers to a collaborative approach to making the Application Development team and the IT Operations team of an organization seamlessly work with better communication.

The first was also called “agile infrastructure” or “agile operations”; it sprang from applying Agile and Lean approaches to operations work. The second is a much expanded understanding of the value of collaboration between development and operations staff throughout all stages of the development lifecycle when creating and operating a services.

No alt text provided for this image

Continuous Delivery – essential building block of DevOps

Continuous Delivery is an emerging software development methodology that automates and improves software delivery. By building the capability to rapidly, reliably, and repeatedly push out enhancements and bug fixes to customers at low risk and with minimal manual overhead, software development organizations can respond to business needs faster and improve satisfaction for business stakeholders and end users alike.

Continuous Delivery Process

1. Code – Implement User Stories

2. Build – Usually in this phase code is compiled, static code analysis is run and units test are executed.

3. Test – Run Acceptance Tests a.k.a end to end scenario tests to validate the software being built

4. Deploy – Deploy the system into environment

No alt text provided for this image

HOW DOES DEVOPS WORKS:-

A DevOps team includes developers and IT operations working collaboratively throughout the product lifecycle, in order to increase the speed and quality of software deployment.DevOps teams use tools to automate and accelerate processes, which helps to increase reliability. A DevOps toolchain helps teams important DevOps fundamentals including continuous integration, continuous delivery, automation, and collaboration of the teams.Under a DevOps model, development and operations teams are no longer and Sometimes, these two teams merge into a single team where the engineers work across the entire application lifecycle.

Benefits of DevOps

  • Speed. DevOps practices let you move at the velocity you need to innovate faster, adapt to changing markets better, and become more efficient at driving business results.
  • Rapid delivery. When you increase the pace of releases, you can improve your product faster and build competitive advantage.
  • Reliability. DevOps practices like continuous integration and continuous testing.can ensure the quality of application updates and infrastructure changes so you can reliably deliver at a more rapid pace while maintaining an optimum experience for end users.
  • Improved collaboration. Under a DevOps model, developers and operations teams collaborate closely, share responsibilities, and combine their workflows. This reduces inefficiencies and saves time.
  • Security. You can adopt a DevOps model without sacrificing security by using automated, integrated security testing tools

The DevOps lifecycle:-

It is the process practiced by the development team and operational engineers together from beginning to the final stage of the product. Understanding DevOps is not complete without understanding the DevOps lifecycle phases. The continuous DevOps lifecycle includes seven phases as given below.

The continuous nature of DevOps, practitioners use the infinity loop to show how the phases of the DevOps lifecycle relate to each other. Despite appearing to flow sequentially, the loop symbolizes the need for constant collaboration and iterative improvement throughout the entire lifecycle.

No alt text provided for this image

DevOps Toolchains:

•      Building Applications

•      Packing the Application

•      Code Development and Unit Testing

•      Integration and Performance Testing

•      Monitoring Performance

•      Configuration Management

•      Releasing into Production

No alt text provided for this image

Tools :-

1) GIT:

Git is software for tracking changes in any set of files, usually used for coordinating work among programmers collaboratively developing source code during software development. Its goals include speed, data integrity, and support for distributed, non-linear workflows.

No alt text provided for this image

2.BIT BUCKET:-

Bitbucket Cloud is a Git based code hosting and collaboration tool, built for teams. Bitbucket's best-in-class Jira and Trello integrations are designed to bring the entire software team together to execute on a project.

No alt text provided for this image

3) JENKINS:-

Jenkins is an open source automation server. It helps automate the parts of software development related to building, testing, and deploying, facilitating continuous integration and continuous delivery. It is a server-based system that runs in servlet containers such as Apache Tomcat.

No alt text provided for this image

4) JUNIT 5:-

JUnit 5 is the next generation of JUnit. The goal is to create an up-to-date foundation for developer-side testing on the JVM. This includes focusing on Java 8 and above, as well as enabling many different styles of testing. JUnit 5 is the result of JUnit Lambda and its crowdfunding campaign on Indiegogo.

•The server requirement is eliminated to test web applications

•Supports test assertions and immediate test reporting

•Hierarchy of the program code can be tested as a single unit or multiple units

No alt text provided for this image

5) DOCKER:-

Docker is an open source containerization platform. It enables developers to package applications into containers—standardized executable components combining application source code with the operating system (OS) libraries and dependencies required to run that code in any environment.

Docker is a set of platform as a service products that use OS-level virtualization to deliver software in packages called containers. Containers are isolated from one another and bundle their own software, libraries and configuration files; they can communicate with each other through well-defined channels

•Helps to implement micro services

•Source codes with dependencies are bundled up together inside container

•Containers runs in isolation

No alt text provided for this image

6) PUPPET:-

The puppet is a system management tool that helps in automating and centralizing the configuration management process. It also used for software deployment. It is available in open source and commercial versions.

It helps in servers’ configuration management, servers’ deployments, and orchestrations of various applications across a whole lot of infrastructure in the organization.

Imagine you have 100 servers, it is not possible to maintain, manage and configure the servers manually, Puppet performs the following,

  • Puppet allows us to do separate configurations for every host
  • It continuously monitors the server for the configurations and if the configurations are altered it automatically changes to a pre-defined configuration on the hosts.
  • It has control over a whole lot of infrastructure so that the centralized configurations get effected in each of the infrastructures
  • It is also used as an automatic deployment tool for all the applications on the servers. 
  • It implements Infrastructure as a Code, the policies and configurations are written as a code.

No alt text provided for this image

7) NAGIOS:-

Nagios is used for continuous monitoring of systems, applications, service and business process in a DevOps culture.

Nagios is an open source software for continuous monitoring of systems, networks, and infrastructures. It runs plugins stored on a server which is connected with a host or another server on your network or the Internet. In case of any failure, Nagios alerts about the issues so that the technical team can perform recovery process immediately.

A user can choose to work in the command-line interface (CLI) or select a web-based graphical user interface (GUI) in some versions of Nagios and from third parties. Nagios' dashboard provides an overview of the critical parameters monitored on assets.

No alt text provided for this image

Advantages of DevOps:

  • Ensure faster deployment.
  • Stabilize work environment.
  • Significant improvement in product quality.
  • Automation in repetitive tasks leaves more room for innovation.
  • Promotes agility in your business.
  • Continuous delivery of software.
  • Fast and reliable problem-solving techniques.

CONCLUSION:-

DevOps the culture, the process frameworks and workflows, the emphasis on automation and feedback can all be used to improve your security program.DevOps is helping businesses in a tremendous way. It's bridging the gap between developers' need for change and operations' resist to change and thus creates a smooth path for Continuous Development and Continuous Integration.

By using Continuous Delivery as a control structure for securing software delivery and enforcing compliance policies; securing the runtime through Infrastructure as Code; making security part of the feedback loops and improvement cycles in DevOps; building on DevOps culture and values; and extending this to embrace security.

WRITTEN BY

B.S.V.TEJASWINI

Your business needs a website, no matter if it's an online shop or a brick-and-mortar establishment. Explore our top, expertly tested hosting provider picks to discover the service that best fits your company's goals in the world of the internet. 👉 websitehostingfor.com

Like
Reply

To view or add a comment, sign in

More articles by Tejaswini .

Others also viewed

Explore content categories