Insights into DevOps and Agile 2.0 Practices in Software Development
This presentation discusses the integration of DevOps and Agile 2.0 methodologies in software development, focusing on topics such as plagiarism concerns, challenges faced by developers, important tools and technology investments, collaborative environments, and the concept of Dev.v.Ops. It explores the importance of reducing the time between code changes and production while ensuring quality, as well as the background of Agile practices and the benefits of virtualization in modern software development.
Uploaded on Sep 24, 2024 | 0 Views
Download Presentation
Please find below an Image/Link to download the presentation.
The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author. Download presentation by click this link. If you encounter any issues during the download, it is possible that the publisher has removed the file from their server.
E N D
Presentation Transcript
DevOps Agile 2.0 much of this presentation is plagiarized from insights.sei.cmu.edu
about.gitlab.com/developer-survey/2018/ 2018 Global Developer Report Greatest Challenges 1. selecting the right technology 2. unclear direction 3. replacing ingrained practices Top 5 Most Important Tools 1. version control system 2. IDE 3. chat / collaboration 4. bug / issue tracker 5. continuous integration and delivery Top 2018 Technology Investments 1. Continuous integration, deployment, and delivery 2. Automation and Containers 3. DevOps
While nearly all agree its important to work in a collaborative environment and a strong majority (81%) say it s easy to collaborate with their team and others within their organization, visibility and transparency continues to lag with nearly half of developers (42%) reporting unclear direction as their top challenge to getting work done. Overall, remote teams report higher levels of satisfaction than those working in-office, including higher levels of visibility, better insight into the deployment process, and a strong DevOps culture. Managers tend to have more of an optimistic perspective on the status of their team s overall satisfaction, productivity, and the benefits of open source tools.
Dev v. Ops Example - Inventory System All the machines in the warehouse need to be the same, at least virtually. The different types of machines (desktops, laptops, notebooks, etc) in the offices need to share data and software. The development team needs to write code of machines with those configurations. The operations team must be sure all the machines will run the code, the users are trained, etc.
Definitions A software development concept that literally and figuratively blends development and operations staff and tools in response to the increasing need for interoperability. -- CMU SEI DevOps is a set of practices intended to reduce the time between committing a change to a system and the change being placed into normal production, while ensuring high quality. -- Bass, et.al.
Background Agile continuous customer feedback frequent deployment highly automated testing Virtualization no more buying specific servers cost effective and faster to get running avoids the "it works on my machine" problem now your machine is virtually the same as the customer's virtual machine settings go in the configuration system with the source code Infrastructure should support final product and its development term coined in 2008 by Shafer and Debois
DevOps Goals Improved deployment frequency Faster time to market Lower failure rate of new releases Shortened lead time between fixes Faster mean time to recovery o in the event of a new release crashing or otherwise disabling the current system https://en.wikipedia.org/wiki/DevOps
Quality DevOps puts Developers and Operations Engineers on the same team. Developers programming the product features "How can I implement that in the existing code base?" Operations hosting and deployment "How could that affect the load on our servers?" https://insights.sei.cmu.edu/sei_blog/2014/11/devops-enhances-software-quality.html
Tool Suits Code : code development and review, source code management tools, code merging Build : continuous integration tools, build status Test : continuous testing tools that provide feedback on business risks Package : artifact repository, application pre-deployment staging Release : change management, release approvals, release automation Configure : infrastructure configuration and management, Infrastructure as Code tools Monitor : applications performance monitoring, end user experience https://en.wikipedia.org/wiki/DevOps
Tools - Vagrant developer's tool that serves up a virtualized and provisioned environment to developers cuts out the grunt work needed to stand up a virtual machine configuration is stored in a script script is stored in the configuration system along with the source code simple command-line interface https://insights.sei.cmu.edu/devops/2014/12/devops-technologies-vagrant.html
Tools - Docker Container Problem: processes running on a single machine can conflict with each other shared resources: CPU time, memory, data files Developers can now package up all the runtimes and libraries necessary to develop, test, and execute an application in an efficient, standardized way and be assured that it will deploy successfully in any environment that supports Docker. https://insights.sei.cmu.edu/devops/2015/01/devops-and-docker.html
Tools - Prometheus Black Box Monitoring is the application alive (ping) is the disk full White Box Monitoring number of HTTP requests number of errors logged Prometheus open source white box monitoring solution that uses a time-series database to provide scraping, querying, graphing and alerting based on time-series data https://insights.sei.cmu.edu/devops/2016/08/whitebox-monitoring-with-prometheus.html
Culture problems caused by transitioning to DevOps DevOps alone cannot fix poor teamwork, social disputes, and managers who cannot evolve management practices to best suit the needs of their employees. Tools yield productivity data such as number of deliverables completed, number of tasks completed, average time on task With the increased reporting requirements accompanying the new DevOps process, the team workload will rise and the privacy will drop. https://insights.sei.cmu.edu/devops/2017/06/six-remedies-to-employee-resistance-to-devops.html
Culture best practices when transitioning to DevOps Start an honest conversation about efficiency risk. When the team becomes more efficient, any time savings the team accrues must be given back to the team to improve morale (e.g., time off). Customize rewards that enhance team member motivation and morale. Reduce team member hierarchies as much as possible and equally distribute power and importance across members. Leaders should build a learning culture by success stories and collectively solving mistakes. https://insights.sei.cmu.edu/devops/2017/06/six-remedies-to-employee-resistance-to-devops.html
Netflix Simian Army "Imagine getting a flat tire. Even if you have a spare tire in your trunk, do you know if it is inflated? Do you have the tools to change it? And, most importantly, do you remember how to do it right? One way to make sure you can deal with a flat tire on the freeway, in the rain, in the middle of the night is to poke a hole in your tire once a week in your driveway on a Sunday afternoon and go through the drill of replacing it. This is expensive and time-consuming in the real world, but can be (almost) free and automated in the cloud." techblog.netflix.com/2011/07/netflix-simian-army.html
Netflix Simian Army Chaos Monkey is a tool that randomly disables our production instances to make sure we can survive this common type of failure without any customer impact. The name comes from the idea of unleashing a wild monkey with a weapon in your data center to randomly shoot down instances and chew through cables - all the while we continue serving our customers without interruption. techblog.netflix.com/2011/07/netflix-simian-army.html
Latency Monkey induces artificial delays in our RESTful client- server communication layer to simulate service degradation and measures if upstream services respond appropriately. Conformity Monkey finds instances that don t adhere to best- practices and shuts them down. Doctor Monkey taps into health checks that run on each instance as well as monitors other external signs of health (e.g. CPU load) to detect unhealthy instances. Janitor Monkey ensures that our cloud environment is running free of clutter and waste. It searches for unused resources and disposes of them. Security Monkey is an extension of Conformity Monkey. It finds security violations or vulnerabilities, such as improperly configured AWS security groups, and terminates the offending instances. Chaos Gorilla is similar to Chaos Monkey, but simulates an outage of an entire Amazon availability zone. techblog.netflix.com/2011/07/netflix-simian-army.html