Saturday, August 27, 2022

  

What is DevOps?

DevOps - consolidates both  Development + Operations to increase the efficiency, speed, and security of software development and delivery compared to traditional processes. A quick way of software development which results in a competitive advantage for businesses and their customers.



In DevOps model, two teams are merged into a single team where the engineers work across the entire application lifecycle, from development and test to deployment to operations, and develop a range of skills not limited to a single functionality.

Sometime,QA and security teams also tightly integrated with development and operations teams during the application lifecycle. When security is the focus of everyone on a DevOps team, so sometimes this is also known as DevSecOps.
Mostly, these teams use practices to automate processes which is manual and time taking process. DevOps team uses a technology stack and tooling which help them operate and evolve applications quickly and reliably. These tools also help engineers independently accomplish tasks like deploying code in various env's or provisioning infrastructure. They helps to increase team velocity by automating the processes.

DevOps Benefits

DevOps describes multiple business and technical advantages, many of which can result in happy customers.Benefits are:

  • Faster & better quality product delivery
  • Reducing complexity & faster issue resolution approach 
  • More stable operating environments
  • Better resource utilization
  • Automating process
  • Scalability and availability
  • Innovation
  • Better visibility into system outcomes

DevOps practices

This reflects the idea of continuous improvement & automation. Many practices focus on one or more development cycle phases. These practices include:

  • Continuous development: Planning and coding phases of the DevOps lifecycle. Version-control mechanisms might be involved.
  • Continuous testing: Continued code tests as application code is being written or updated. Automated & prescheduling of tests can speed the delivery of code to production.
  • Continuous integration (CI): Includes Configuration management (CM) tools together with other test and development tools to track how much of the code being developed is ready for production. It involves rapid feedback between testing and development to quickly identify and resolve code issues.
  • Continuous delivery:  Automates the delivery of code changes, after testing, to a preproduction or staging environment. 
  • Continuous deployment (CD):  Similar to continuous delivery, this includes the release of new or changed code into production. A company doing continuous deployment might release code or feature changes several times per day. The use of container technologies, such as Docker and Kubernetes, can enable continuous deployment by helping to maintain consistency of the code across different deployment platforms and environments.
  • Continuous monitoring:  Involves ongoing monitoring of both the code in operation and the underlying infrastructure that supports it. A feedback loop that reports on bugs or issues then makes its way back to development.
  • Infrastructure as code:  Automate the provisioning of infrastructure required for a software release. Developers add infrastructure “code” from within their existing development tools. For example, developers might create a storage volume on demand from Docker, Kubernetes, or OpenShift. This practice also allows operations teams to monitor environment configurations, track changes, and simplify the rollback of configurations.

DevOps methods

Below are few common DevOps methods that an organizations can use to speed and improve development and product releases

  • Scrum: Scrum defines how members of a team should work together to accelerate development and QA projects. This practices include key workflows and specific terminology (sprints, time boxes, daily scrum [meeting]), and designated roles (Scrum Master, product owner).


  • Kanban: This prescribes that the state of software project work in progress (WIP) be tracked on a Kanban board.


  • Agile. Earlier agile software development methods continue to heavily influence DevOps practices and tools. Many DevOps methods, including Scrum and Kanban, incorporate elements of agile programming. Some agile practices are associated with greater responsiveness to changing needs and requirements, documenting requirements as user stories, performing daily standups, and incorporating continuous customer feedback. Agile also prescribes shorter software development lifecycles instead of lengthy, traditional “waterfall” development methods.

No comments:

Post a Comment

dig v/s host v/s nslookup

 dig v/s host v/s nslookup Dig and nslookup are two tools that can be used to query DNS servers.  They both perform similar functions, but t...