Continuous Deliver & DevOps
Reshma Mantri
Google Cloud Certified - Associate Cloud Engineer || Aviatrix Certified Cloud Engineer
Hello Everyone!!
As a part of our academic course which is CONTINUOUS DELIVERY & DEVOPS from KL University, we are here with an article on DevOps with a brief study on it. Hope you look at the entire article and share your feedback.
What is DevOps?
DevOps outlines a software development?process and an organizational culture shift that speeds the delivery of higher quality software?by automating and integrating the efforts of development and IT?operations teams – two groups that traditionally practiced separately from each other, or in silos.
The best DevOps processes and cultures extend beyond development and operations to incorporate inputs from all application stakeholders - including platform and infrastructure engineering, security, compliance, governance, risk management, line-of-business, end-users, and customers - into the software?development lifecycle.?
Benefits of DevOps
Collaboration
The software methodologies preceding DevOps did recognize the value that Dev, Ops, and QA teams can bring if they coexist.
Speed
One of the inherent benefits of DevOps is that it accelerates the pace at which your business generally functions.?
Innovation
For most people, DevOps might only mean doing stuff faster at reduced costs.
Customer Satisfaction??
Customer satisfaction is one of those things that can make or break your business.
Agility
The demands of modern-day customers are intense in terms of product complexity and time.
Quality and Reliability
The quality of your software is important for obvious reasons, and DevOps can help you maximize that quality.
Security
Another integral benefit that a good DevOps strategy will bring is strengthened security.
Competitive Advantage
The saying “every business is a software business” is becoming irrefutably true in this age, and the recent boom of software companies corroborates the statement.
Costs Reduction
Arguably, a solid DevOps strategy’s biggest benefit from a business perspective is maximizing profitability.
How DevOps works: The DevOps lifecycle
Plan:?Initially plan yourself regarding the type of application you need to develop.?Make the rough picture regarding the development?process
Code:?Code the application as per the client's requirement.?with the plan, you have made in the initial step.
Build:?Build the application by performing the integration of various codes you have done in the previous step.?
Test:?This is the heart of the application. Test the application that you have built so far. And rebuilt the application if necessary.
Releases:?If you succeed in the test phase, then it's time to release the application into Live.?
Deploy:?Deploy the code into a cloud?environment for further usage. It is performed in such a manner any changes?made should not affect the functioning of high traffic website.
Operate:?Operate on the code if any have.
Monitor:?Monitor the performance of the application as per the client's requirement.?Keep a note of the performance of the application.?Make modifications if any to satisfy the clients. And if does not reach up to the mark make changes in that particular area to satisfy the client.
DevOps culture
DevOps is a cultural shift. Full stop. It’s not a matter of simply adopting agile planning or automated testing or continuous delivery, although those practices are certainly important. DevOps culture is all about a shared understanding between developers and operations and sharing responsibility for the software they build. That means increasing transparency, communication, and collaboration across development, IT/operations, and "the business".
Roles and Responsibilities
Now that development and operations are collaborating closely, it's time to clarify who does what, plus identify any skill gaps. Run this play early in your DevOps journey, as well as any time your team's membership changes.?
Working Agreements
Whether you're a united DevOps team or a cross-team working group, you'll work better together if you explicitly define how?you'll work together. Run this play to set or refresh your social contract every 6-12 months.?
Pre-mortem
What's better than doing root cause analysis on an incident? Anticipating risks so you can solve for them while there's still time! Run this play in the early phases of a project and before big releases.
Retrospectives
This classic agile technique is critical for creating a culture of continuous improvement and learning. Retrospectives provide a safe space to discuss what's working, what's not, and what needs to change. Run them regularly.?
DevOps practices
DevOps practices reflect the idea of continuous improvement and automation. Many practices focus on one or more development cycle phases. These practices include:
Continuous integration and continuous delivery (CI/CD)
CI and CD stand for continuous integration and continuous delivery/continuous deployment. In very simple terms, CI is a modern software development practice in which incremental code changes are made frequently and reliably. Automated build-and-test steps triggered by CI ensure that code changes being merged into the repository are reliable. The code is then delivered quickly and seamlessly as a part of the CD process. In the software world, the CI/CD pipeline refers to the automation that enables incremental code changes from developers’ desktops to be delivered quickly and reliably to production.
Version Control
Version control, also known as source control, is the practice of tracking and managing changes to software code. Version control systems are software tools that help software teams manage changes to source code over time. As development environments have accelerated, version control systems help software teams work faster and smarter. They are especially useful for DevOps?teams since they help them to reduce development time and increase successful deployments.
DevOps tools: Building a DevOps toolchain
Teams have many DevOps tools to help them facilitate a DevOps culture in their organization. Most teams rely on several tools, building custom toolchains that fit their needs for each phase in the application lifecycle. While adopting a specific tool or technology is not the same as adopting DevOps, when the DevOps culture is present and the processes are defined, people can implement and streamline DevOps practices if they choose the proper tools.
Git?is a free and open-source distributed version control system designed to handle everything from small to very large projects with speed and efficiency.
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.
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.
Azure DevOps Server is a Microsoft product that provides version control, reporting, requirements management, project management, automated builds, testing, and release management capabilities.
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.
A cucumber is?a tool based on Behavior Driven Development (BDD) framework?which is used to write acceptance tests for web application.There are many other tools like JBehave which also support BDD framework. Initially Cucumber was implemented in Ruby and then extended to Java framework.
Docker is a set of the 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.
Chef in DevOps is an automation tool. It is a Configuration Management (CM) tool that lets you automate processes and tasks across numerous servers and other devices of an organization in simple steps. Such a framework is highly beneficial to a company.?
Kubernetes is an open-source container-orchestration system for automating computer application deployment, scaling, and management. It was originally designed by Google and is now maintained by the Cloud Native Computing Foundation.
What is DevSecOps?
DevSecOps?evolved from DevOps as development teams began to realize that the DevOps model didn’t adequately address security concerns. Instead of retrofitting security into the build, DevSecOps emerged as a way to integrate the management of security earlier on throughout the development process.?Through this method, application security begins at the outset of the build process, instead of at the end of the development pipeline. With this new approach, an engineer of DevSecOps strives to ensure that apps are secure against cyberattacks before being delivered to the user, and are continuously secure during app updates.
DevOps VS DevSecOps
The goal of DeOps is to Bridge communication gaps between teams by focusing on collaboration, continuous integration, and automation to reduce risk while delivering quality software faster whereas the goal of DevSecOps is to provide a safe and secure way to share security decisions while maintaining the highest level of security, speed, and control.
The Purpose of Devops, Heavily involved in the everyday aspect of the engineering process; the main purpose of DevOps is speed whereas The main purpose of DevSecOps is to provide premium security while also applying faster speed of the process, accessibility, and scalability.