DevOps for dummies

关键词

business-driven, people, practice, tools

原则

  • Develop and test against production-like systems
  • Deploy with repeatable, reliable processes
  • Monitor and validate operational quality
  • Amplify feedback loops

架构

Notes

  • DevOps isn’t the goal. It helps you reach your goals

  • Any kind of system that needs rapid delivery of innovation requires DevOps

  • In broad terms, DevOps is an approach based on lean and agile principles in which business owners and the development, operations, and quality assurance departments collaborate to deliver software in a continuous manner that enables the business to more quickly seize market opportunities and reduce the time to include customer feedback

  • A true DevOps approach includes lines of business, practitioners, executives, partners, suppliers, and so on

  • Continuous testing is facilitated by adopting capabilities like automated testing and service virtualization

  • software-defined environments enable you to capture infrastructure as a kind of programmable and repeatable pattern, thereby accelerating deployments

  • Collaboration and communication across stakeholders — that’s the culture of DevOps.

  • Giving all stakeholders visibility into a project’s goals and status is crucial for building a DevOps culture based on trust and collaboration.

  • Processes define what those people do. Your organization can have a great culture of collaboration, but if people are doing the wrong things or doing the right things in the wrong way, failure is still likely.

  • Adopting continuous delivery typically is the most critical part of adopting DevOps.

  • From a process perspective, you need to adopt processes in three areas to enable continuous testing:

    ✓ Test environment provisioning and configuration

    ✓ Test data management

    ✓ Test integration, function, performance, and security

  • If an organization is building or maintaining multiple applications, everything it does has to be repeatable, in a reliable manner, to ensure quality across all applications

  • Start by focusing on the critical parts of organization — not everything all at once — and then gradually broaden to include all stages

  • The build stage is where the code is compiled to create and unit test the binaries to be deployed. Multiple build tools may be used in this stage, based on cross-platform and cross-technology needs

  • Development organizations typically use build servers to facilitate the large number of builds required on an ongoing basis to enable continuous integration

  • For any organization that wants to enable continuous testing, managing test data is an essential function

  • end-to-end Develop/Test environments = cloud environments + deployment automation + service virtualization

  • Cloud without DevOps means not leveraging all the benefits of cloud

  • When adopting cloud, you first want to decide on the scope of responsibility that you plan to hand over to the cloud platform and what responsibility you want to take on yourself

  • two primary service models for cloud: Infrastructure as a Service (IaaS) and Platform as a Service (PaaS)

  • treats infrastructure as code best practices:

    • Treat pattern definitions, script packages, and services as code
    • version everything
    • Automate deployment of topology patterns to the cloud
    • Manage versions of patterns across multiple cloud environments
    • Automate the testing of patterns
    • Cleanup catalog resources to avoid sprawl
  • Ten DevOps myths:

    • DevOps Is Only for “Born on the Web” Shops
    • DevOps Is Operations Learning How to Code
    • DevOps Is Just for Development and Operations
    • DevOps Isn’t for ITIL Shops
    • DevOps Isn’t for Regulated Industries
    • DevOps Isn’t for Outsourced Development
    • No Cloud Means No DevOps
    • DevOps Isn’t for Large, Complex Systems
    • DevOps Is Only about Communication
    • DevOps Means Continuous Change Deployment