The document outlines the evolution and benefits of the DevOps model, emphasizing the need for collaboration between Development and Operations to meet business demands for rapid software releases. It details the DevOps lifecycle stages, including planning, coding, testing, and monitoring, and highlights key principles such as automation and continuous improvement. Additionally, it discusses the advantages of DevOps, including faster time to market, improved product quality, and enhanced operational efficiency.
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0 ratings0% found this document useful (0 votes)
2 views
Unit 7 DevOps Final
The document outlines the evolution and benefits of the DevOps model, emphasizing the need for collaboration between Development and Operations to meet business demands for rapid software releases. It details the DevOps lifecycle stages, including planning, coding, testing, and monitoring, and highlights key principles such as automation and continuous improvement. Additionally, it discusses the advantages of DevOps, including faster time to market, improved product quality, and enhanced operational efficiency.
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 42
DevOps
SOFTWARE RELEASE PROCESS
Prior to DevOps Prior to DevOps, change-release frequency was low, Development and Operations worked separately to serve business demands, having completely opposite mindsets. Need of DevOps DevOps unifies mindset of Development and Operations. Today business wants to release on demand. With DevOps, both functions continuously collaborate to align business demands within the software delivery lifecycle. The DevOps model is significantly different from the traditional IT model. DevOps integrates the application lifecycle into an end-to-end, iterative process Agile Process Dev and Ops teams' collaboration creates: • Automated, self-service, and reliable infrastructures and tools • Complete CI/CD, providing an end-to-end solution • Feedback Loops, enabling continuous learning and quick recovery • Infrastructure as Code, bringing modern software development methodologies into infrastructure • Development awareness of how code affects infrastructure • Monitoring and troubleshooting of production systems Benefits of DevOps • Practicing DevOps benefits organizations in many ways, but people in different organizational roles may tend to focus on different benefits of DevOps. • For example, the CEO of a company may look at the increased revenues and reduced costs that DevOps brings, • while an IT manager may be more interested in faster release cycles, Improved software performance and MTTR. • Development team might be interested in quick development and a reduction in defects. • Operational team would be interested in scalability, easy of maintenance. • Ensure faster deployment (Fast delivery -> quick updates -> Happy customer -> firm stand) • Stabilize work environment (frequent release -> less tension -> stable workplace -> increase productivity) • Significant improvement in product quality (Dev & Op collaboration -> Frequent feedback -> improved product quality) • Automation in repetitive leads to innovation (quick error detection -> frequent problem solving -> automated testing -> innovation • Promotes agility in your business (Frequent update -> agility -> stability in market -> scalability) • Continuous delivery of software (departmental integration -> faster software delivery) • Fast and reliable problem-solving techniques • Transparency leads to high productivity (Elimination of silos -> promoted collaboration -> easy communication -> productivity) • Minimal cost of production (Proper collaboration -> management & production cost reduction) • Faster Time to Market • Reduced Change Failure • Faster and More Frequent Releases • Satisfied Customers • Higher Work Satisfaction • Increased Revenue • More Time on New Work • Better Quality Products • Robust Infrastructure • Higher Work Satisfaction DevOps Lifecycle • Plan: In this stage, teams identify the business requirement and collect end-user feedback. They create a project roadmap to maximize the business value and deliver the desired product during this stage. • Code: The code development takes place at this stage. The development teams use some tools and plugins like Git to streamline the development process, which helps them avoid security flaws and lousy coding practices. • Build: In this stage, once developers finish their task, they commit the code to the shared code repository using build tools like Maven and Gradle. DevOps Lifecycle • Test: Once the build is ready, it is deployed to the test environment first to perform several types of testing like user acceptance test, security test, integration testing, performance testing, etc., using tools like JUnit, Selenium, etc., to ensure software quality. • Release: The build is ready to deploy on the production environment at this phase. Once the build passes all tests, the operations team schedules the releases or deploys multiple releases to production, depending on the organizational needs. • Deploy: In this stage, Infrastructure-as-Code helps build the production environment and then releases the build with the help of different tools. DevOps Lifecycle • Operate: The release is live now to use by customers. The operations team at this stage takes care of server configuring and provisioning using tools like Chef. • Monitor: In this stage, the DevOps pipeline is monitored based on data collected from customer behavior, application performance, etc. Monitoring the entire environment helps teams find the bottlenecks impacting the development and operations teams’ productivity. 7Cs of DevOps lifecycle 1. Continuous Development • developers work on small, manageable code changes or user stories. As soon as a developer completes a piece of code, it is immediately integrated into the main code repository. • Here’s where automation plays a crucial role • GitLab, GIT, TFS, SVN, Mercurial, Jira, BitBucket, Confluence, and Subversion are a few tools used for version control. 2. Continuous Integration • involves the frequent and automated integration of code changes into a shared repository. • updated code or add-on functionalities and features are developed and integrated into existing code. • bugs detection and identification through Unit testing and then the source code is modified accordingly. • makes integration a continuous approach where code is tested at every commit. • as soon as a developer commits their code changes to the shared repository, an automated CI system takes over. It immediately triggers a series of actions, including code compilation, automated testing, and build packaging. • Jenkin, Bamboo, GitLab CI, Buddy, TeamCity, Travis, and CircleCI are a few DevOps tools used to make the project workflow smooth and more productive. 3. Continuous Testing • Each code change triggers a battery of automated tests, including unit tests, integration tests, regression tests, and even user acceptance tests. • test fails alerts the developer, providing immediate feedback to identify and rectify issues early. • It ensures that software remains reliable, performs well, and meets user expectations at all times. • And meet quality standards, faster delivery cycles, and fewer defects reaching production. 4. Continuous Deployment
• code change will be followed by automated tests, and then it’s
automatically deployed to the production environment without any manual intervention. • Automated tests, continuous monitoring, and rollback mechanisms are critical components of continuous deployment. • organizations achieve faster time-to-market, reduced manual errors, and increased responsiveness to user feedback. 5. Continuous Feedback
• refers to the practice of collecting, analyzing, and acting upon
feedback at every stage of the DevOps journey. • Development teams receive immediate feedback on code changes, ensuring quality and alignment with user needs. • Operations teams proactively address performance issues, minimizing downtime. • Organization can deliver more reliable software, respond swiftly to issues, and continuously evolve to meet changing user expectations. 6. Continuous Monitoring
• refers to the practice of continuously observing, measuring, and
analyzing the performance and behavior of software applications, servers, and infrastructure components. • organizations gain a comprehensive understanding of their IT environment, enabling them to deliver reliable and efficient services to their users 7. Continuous Operations
• encompass the practice of maintaining, monitoring, and optimizing the
production environment throughout the DevOps lifecycle. • It ensures that applications are available, performant, and secure. • Continuous operations within a DevOps environment are seamlessly automated and deeply ingrained in the DevOps lifecycle. • One key aspect is the utilization of Infrastructure as Code (IaC), enabling operations teams to programmatically define and manage the entire infrastructure stack, thereby ensuring consistency and mitigating manual errors in infrastructure management. • also include practices like disaster recovery planning, data backups, and security monitoring to ensure the system’s resilience and data integrity. DevOps Principles • Collaboration • Automation • Continuous Improvement • Customer-centric action/ decision making • Failure as a Learning Opportunity • Version control • Incremental releases • Pipeline • feedback loops • Creating the software with the end in mind • End to End Responsibilities • Cross-functional autonomous teamsFailure as a Learning Opportunity 3 core DevOps principles 1. Automation The automation in every phase of the DevOps cycle is a must and the first step in achieving the DevOps culture. 2. Tools Since the DevOps culture is about automation and integrating all the phases the selection of tools that suits your requirement in the organization is a must. 3. Culture DevOps foster transparent communication, enhance collaboration, enhance trust, show accountability and responsibilities in their work is the key to good DevOps culture implementation. Tools for DevOps DevOps practices DevOps practices apply continuous automation cycles throughout software development and operations processes Jira • Jira is planning, tracking & management tool for project management issue tracking platform that lets you assign tasks to team members and track your progress. • Thousands of software development teams use Jira to plan and track their work through the stages of the development lifecycle. • Exalate is a Decentralized integration app. It's installed and managed by each side of the connection separately, giving you autonomous control over both outgoing and incoming requests. Agile terminologies in Jira Agile Scrum Roles Scrum Sprint activities What is Jira? Why Jira? User Story Map for Online Home Delivery Restaurant