DevOps - Building software in a Reliable, Repeated and Consistent way

DevOps - Building software in a Reliable, Repeated and Consistent way

Understanding DevOps:

DevOps is the combination of cultural philosophies, practices, and tools that increases an organization's ability to deliver applications and services at high velocity.

The DevOps lifecycle:

No alt text provided for this image

DevOps can be divided into two phases:

  • Dev - Development
  • Ops - Operations

In the Development phase, there is Planning, Writing the code, Building the software and Testing the software.

  • Plan - DevOps teams should adopt agile practices to improve speed and quality. Agile is an iterative approach to project management and software development that helps teams break work into smaller pieces to deliver incremental value.
  • Code - The developers design and develop code in an efficient way.
  • Build - A build is a piece of software or?Product?which consists of a set of features and a few bug fixes, Build is internal for testers to test and log defects. A build can go from build-1 to build-n
  • Test - Testing is a continuous and automated process that enables continuous and faster delivery of software. Testing spans every stage of the software development lifecycle (SDLC). ... Shared testing responsibilities allow everyone to understand the impacts behind each change.

In the Operations phase, there is Releasing the software, Deploying the software, Operating the production and Monitoring the recent releases of the software.

  • Release - Release management is the process of overseeing the planning, scheduling, and controlling of software builds throughout each stage of development and across various environments. Release management typically included the testing and deployment of software releases as well.
  • Deploy - CI/CD allows teams to release quality products frequently and predictably, from source code repository to production with automated workflows. Teams can merge code changes frequently, deploy feature flags, and incorporate end-to-end testing.
  • Operate - Manage the end-to-end delivery of IT services to customers. This includes the practices involved in design, implementation, configuration, deployment, and maintenance of all IT infrastructure that supports an organization’s services.
  • Monitor - Quickly identify and resolve issues that impact product uptime, speed, and functionality. Automatically notify your team of changes, high-risk actions, or failures, so you can keep services on.

DevOps tools:

No alt text provided for this image

There are many tools in DevOps world which can be used in several phases.

While I was learning DevOps, I have got to know about some of the tools and softwares used in the process.

  • 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.
  • Bitbucket: Bitbucket is a Git-based source code repository hosting service owned by Atlassian. Bitbucket offers both commercial plans and free accounts with an unlimited number of private repositories.
  • Maven: Maven is a powerful?project management tool?that is based on POM (project object model). It is used for project build, dependency, and documentation. It simplifies the build process like ANT. In short terms we can tell maven is a tool that can be used for building and managing any Java-based project.
  • 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.
  • Docker: 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.
  • Azure DevOps: Azure DevOps Server is a Microsoft product that provides version control, reporting, requirements management, project management, automated builds, testing and release management capabilities. It covers the entire application lifecycle, and enables DevOps capabilities.
  • Chef, Puppet, Ansible, SaltStack: These are system management tools that help in automating and centralizing the configuration management process.
  • Nagios: Nagios is?an open source monitoring system for computer systems. It was designed to run on the Linux operating system and can monitor devices running Linux, Windows and Unix operating systems (OSes). Nagios software runs periodic checks on critical parameters of application, network and server resources.

要查看或添加评论,请登录

RAVI SAI TEJA BANDREDDY的更多文章

  • SPRING BOOT PROJECT - AGROBUCKET

    SPRING BOOT PROJECT - AGROBUCKET

    Team members : Ravi Sai Teja Bandreddy - 190030135 Rohith Chowdary Godavarthi - 190030507 Abhinav Veeragandham -…

社区洞察

其他会员也浏览了