Contenu connexe


Plus de Alexander Meijers(20)


An introduction to DevOps

  1. DevOps An introduction to DevOps Alexander Meijers| Lead Architect Wednesday, September 30th 2015
  2. “A software development method that emphasizes communication, collaboration, integration, automation, and measurement of cooperation between software developers and other IT professionals” Source is Wikipedia
  3. DevOps – Working together Improve technologic and process integration between development and operations • Have a common goal • Working together • Optimization of team performance Development Technology Operations Quality Assurance DevOps
  4. DevOps – Deployment lifecycles Improve deployment frequency and have faster development and deployment lifecycles • Leads to faster time to market • Leads to lower failure rate of new released • Leads to shortened lead time between fixes • Leads to faster mean time to recovery (MTTR)
  5. DevOps - Automation • DevOps approach aims to maximize • predictability • efficiency • Security • maintainability of operational processes • By investing in automation and critical tool selection • Standardize development environments • Use release management • More flexibility in managing and driving automation • No or less manually work at the command line
  6. DevOps – application-centric networking • Success is determined by the end user’s experience with an application • Measuring metrics • Application responsiveness • Application uptime • … • Requires different level of instrumentation within the supporting infrastructure
  7. DevOps? – Look at the A-Team • Working together • Strive for the same goal • Stick together no matter what • Share intel • Analyze their results • They learn from it • They always win and nobody dies!
  8. Lifecycle of DevOps People Process Products
  9. Plan 1 Monitor + Learn ReleaseDevelop + Test 2 Development Production 4 3 DevOps process Thanks to Donovan Brown for the amazing graphics!
  10. It starts with an idea – and a plan how to turn this idea into reality … Manage work Develop + Test 1 Plan Project starts PlanTrack progress Thanks to Donovan Brown for the amazing graphics!
  11. Write Code Unit Testing 2 Build Version Control Build Verification Release Once the iteration starts, developers turn great ideas into features … Develop + Test Thanks to Donovan Brown for the amazing graphics!
  12. Cloud Load Testing Integration testing environment Automated functional testing environment 3 Pre-production environment Staging environment Monitor + Learn When all tests pass, the build is deployed to testing environments for each stage in the release process Release Thanks to Donovan Brown for the amazing graphics!
  13. Learn and understand how users use your app, how it reacts and quickly fix issues and bugs Monitor + Learn 4 Monitor Feedback Plan the next iteration Thanks to Donovan Brown for the amazing graphics!
  14. DevOps practices • Infrastructure as Code • Continuous integration • Automated testing • Application Performance Monitoring / Management • Continuous Deployment / Delivery • Release Management • Configuration Management Doing one of these practices doesn’t mean you are doing DevOps! Source:
  15. DevOps solutions @ Microsoft
  16. DevOps journey – Where to start? Asses where you are • Gather information about MTTR, MTTD, rates of deployment • Microsoft’s DevOps Self assessment* Challenge people • Address people on collaboration between dev and ops • Thinks out of the box instead of in organization structure and processes like ITIL Determine your tools • Choose the practices you need • Define the tools that are suited to your case *Microsoft’s DevOps Self Assessment: MTTR=Mean Time To Resolve MTTD=Mean Time To Detect
  17. Questions?

Notes de l'éditeur

  1. Infrastructure as Code (IaC) – is the practice in which the techniques, processes, and tool sets used in software development are leveraged to manage the deployment and configuration of systems, applications, and middleware. A significant number of testing and deployment defects occur when developers’ environments defining the application and underlying infrastructure differ from testing and production environments. Standardizing these environment definitions, putting them under version control, and deploying and configuring the infrastructure and application automatically from the code in version control, yields immediate benefits in consistency, time savings, error rates, and auditability. Continuous Integration (CI) – is the practice of merging all working copies of developers code with a shared mainline, producing a new build upon code check-in. Ideally CI also involves libraries of Integration or unit tests, also automatically triggered based on new code being checked into source control. Once automated Integration tests are successfully completed a known good build of the software is produced. Automated Testing – is the practice where various tests such as load, integration, and unit tests happen automatically either after you check in code (i.e. attached to CI) or some other means to fire off one or more tests automatically against a specific build or app. Manual tests can generally add value to your software, but this could be considered “waste” in a value stream since it slows down the process of delivering value to the customers and can become a significant bottleneck when your velocity of code changes increase. An automated test adds value in the value stream by efficiently ensuring the quality of code is increased, finding defects prior to going into the customers hands. Application Performance Monitoring/Management (APM) – is the practice of having visibility into key metrics about your application as well as alerts and logging about the health of your applications. These metrics, alerts and logging enable you to react in a timely manner to changing or business impacting conditions. In the ideal, these items are accessible via a variety of user-friendly interfaces that are easy to navigate and provide drill-downs to help facilitate taking action as well as root-cause analysis down to the line of code. While the user interfaces tend to be more targeted to Operations and business owners, having the right data requires collaboration with Development to appropriately instrument applications to deliver this data. Continuous Deployment/Delivery (CD) – is the practice that usually comes after CI and can be implemented to push a new known good build to an environment either automatically or via automation capabilities that an authorized user can schedule. Release Management – is the practice which provides the ability to automate deployment of new applications as well as changes to applications across managed environments. Release Management facilitates packaging these changes into known, documented releases that are deployed via workflow through pipelines of ordered release stages (Release Pipelines). The pipelines enable approvals, traceability and rollback if required. Lastly, roles, responsibilities and access levels for various artifacts and actions can also be managed through Release Management. Configuration Management – is the practice for establishing and maintaining consistency of a product’s performance, functional and physical attributes with its requirements, design and operational information throughout its life.
  2. MTTR=Mean Time To Resolve is a basic measure of the maintainability of repairable items. It represents the average time required to repair a failed component or device MTTD= Mean time to detect