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