DevOps
Frameworks, Techniques, and Tools
Información
- Editorial: SAP PRESS
- Autores: Sujeevan Vijayakumaran
- Año: 2025
- Edición: 1
- Páginas: 418
- Idiomas: Inglés
Descripción
Optimize your software development lifecycle with DevOps! In this project-driven, practical guide, DevOps expert Sujeevan Vijayakumaran will teach you all you need to know about this methodology. Walk through each phase of an IT project—from planning and coding to deployment and monitoring—to see how DevOps tools and techniques help streamline modern application development. Witness the trials of an example company to understand how a DevOps work culture creates calm out of chaos—and use the lessons learned to implement DevOps in your own organization.
- Understand DevOps principles and techniques
- Apply DevOps to the complete application lifecycle, from project planning and the build process to deployment and monitoring
- See DevOps in action as an example company uses the philosophy to solve common problems in IT projects
Aspectos Destacados
- CALMS framework
- Project management
- Code collaboration
- Continuous integration and continuous delivery (CI/CD)
- Quality assurance
- Testing
- Operations
- Monitoring
- Security
- GitHub
- GitLab
- Jenkins
Aprenderás sobre
- DevOps Basics:
What is DevOps—and what is it not? Get to know this IT philosophy in detail. Understand the complete DevOps lifecycle, break through common misconceptions, and learn how this philosophy can realistically benefit your work.
- Project Lifecycle:
DevOps affects every phase of an IT project, and every team involved. Follow an example company to see how a longstanding business with siloed teams realizes the benefits of DevOps. Walk through project planning, coding, building, integration, quality testing, deployment, operations, and more.
- Tools and Techniques:
Learn about DevOps tools and platforms for each phase of an IT project. See how GitHub, GitLab, Atlassian, Jenkins, and other technologies can enhance your processes with automation, continuous integration, continuous delivery, and more. Understand the role of AI and machine learning in DevOps.
Tabla de Contenidos
- 1 Introduction
- 1.1 Culture
- 1.2 Technology
- 1.3 My Path to DevOps and to This Book
- 1.4 Target Audience
- 1.5 The Structure of the Book
- 1.6 Feedback
- 1.7 Thank You!
- 2 What Is DevOps?
- 2.1 DevOps: The Big Picture
- 2.1.1 CALMS
- 2.1.2 The Three Ways
- 2.1.3 Conclusion on the Three Ways and the CALMS Model
- 2.2 Misunderstandings about DevOps
- 2.2.1 Too Strong a Focus on Automation
- 2.2.2 With DevOps, but without Tests!
- 2.2.3 Incorrect Understanding of Team Structuring
- 2.2.4 Not Tearing Down All the Walls
- 2.2.5 Tools over Processes over People
- 2.2.6 One to One Copies of Working Methods from Other Companies
- 2.3 The DevOps Software Development Lifecycle
- 2.4 Summary
- 3 The Example Company
- 3.1 nicely-dressed.com
- 3.2 The Development Model
- 3.3 The Business Team: Requirements Analysis
- 3.4 The Architecture Team: Design of the Application
- 3.5 The Development Teams
- 3.5.1 The Development Process
- 3.5.2 Integrations with Obstacles
- 3.6 The Quality Assurance Team
- 3.7 The Operations Team: The Ops in DevOps
- 3.7.1 Manual Build of the Project
- 3.7.2 Deployment with Obstacles
- 3.7.3 Alarm from the Monitoring System
- 3.8 The Infrastructure Team
- 3.9 The Security Team
- 3.10 Summary
- 4 Project Management and Planning
- 4.1 The First Step: The Agile Mindset
- 4.2 Project Management for Everyone?
- 4.2.1 Jira Can Do (Almost) Everything
- 4.2.2 People over Processes
- 4.2.3 Good Project Management outside of Jira
- 4.2.4 More than Just a Project Management Tool
- 4.2.5 Project Management at nicely-dressed.com
- 4.3 Summary
- 5 Collaboration when Coding
- 5.1 Typical Problems with Managing the Source Code
- 5.1.1 Organization of the Code
- 5.1.2 Isolation for Supposed Security Reasons
- 5.1.3 Long Development Times Hindering Quick Security Fixes
- 5.1.4 Development Workflow without a Proper Structure
- 5.1.5 Big Bang Integrations
- 5.1.6 Code Reviews Could Help
- 5.1.7 Technical Debt
- 5.1.8 High Learning Curve due to Lack of Documentation
- 5.2 Improve the Organization of the Code
- 5.3 There Is No Way around Git
- 5.3.1 Git Solutions at a Glance
- 5.3.2 Development Workflows with Git
- 5.3.3 Source Code Management at nicely-dressed.com
- 5.4 Code Reviews and Pair Programming
- 5.4.1 Code Reviews
- 5.4.2 Simplify Code Reviews
- 5.4.3 Pair Programming
- 5.5 Inner Sourcing: Sharing Code within the Company
- 5.5.1 Open Source
- 5.5.2 The Path to Inner Sourcing
- 5.5.3 Advantages of Inner Sourcing
- 5.5.4 Monorepositories
- 5.6 Summary
- 6 Continuous Integration and the Build Process
- 6.1 Typical Problems in the Build Process
- 6.1.1 Onboarding with Stumbling Blocks
- 6.1.2 Build Difficulties Due to Infrequent Integrations
- 6.1.3 Only a Few Tests
- 6.1.4 A Build Server behind Closed Doors
- 6.2 Modern Build Management
- 6.3 Continuous Integration
- 6.4 The Continuous Integration Server and the Pipelines
- 6.4.1 The Basic Structure of a Pipeline
- 6.4.2 Scaling and Reproducibility
- 6.4.3 Declarative Pipelines versus Scripted Pipelines
- 6.5 Efficient Pipeline Authoring
- 6.5.1 Avoid Central Pipelines
- 6.5.2 Provide Pipeline Building Blocks
- 6.5.3 Create Visibility
- 6.6 Overview of Continuous Integration Servers
- 6.6.1 Jenkins
- 6.6.2 GitLab CI/CD
- 6.6.3 GitHub Actions
- 6.6.4 Other Continuous Integration Servers and Tools
- 6.6.5 Continuous Integration at nicely-dressed.com
- 6.7 Summary
- 7 Quality Assurance
- 7.1 Typical Problems with Testing
- 7.1.1 Teams in Their Silos
- 7.1.2 Different Understandings of Requirements
- 7.1.3 The Number of Bugs as a Metric
- 7.1.4 Is It Fixed Yet?
- 7.2 Testing as Part of the DevOps Process
- 7.2.1 Tests in the Build Pipeline
- 7.2.2 Different Tests for Different Tasks
- 7.2.3 Automate Tests
- 7.2.4 Test-Driven Development
- 7.3 Summary
- 8 Continuous Delivery and Deployment
- 8.1 Typical Release Management Problems
- 8.1.1 Separate Handling of Changes and Documentation
- 8.1.2 Lengthy Release Process
- 8.1.3 Automations That Are Not Worthwhile
- 8.1.4 Hostilities between the Teams
- 8.1.5 Deployment on Production Systems with Obstacles
- 8.1.6 Conclusion
- 8.2 Implementing Continuous Delivery and Deployment
- 8.2.1 Bringing Development and Operations Together
- 8.2.2 QA, Staging, and Production Environments
- 8.2.3 Deployment on Fridays
- 8.3 Build Management for Deployments
- 8.3.1 The Question of Version Numbers
- 8.3.2 Packaging
- 8.3.3 Containerization
- 8.3.4 Container Registry and Package Registry
- 8.4 Rollbacks, Canaries, and Feature Flags
- 8.4.1 Rollbacks
- 8.4.2 Step-by-Step Activation Using Blue-Green and Canary Deployments
- 8.4.3 Feature Flags
- 8.5 Deployment Targets
- 8.5.1 Orchestrating Deployments with Kubernetes
- 8.5.2 Orchestrating Deployments at nicely-dressed.com
- 8.6 Summary
- 9 Operating the Service
- 9.1 Typical Problems with Operating Services
- 9.1.1 Lengthy Infrastructure Planning
- 9.1.2 Hardware Exchange with Obstacles
- 9.1.3 Unfavorable Server Utilization
- 9.1.4 Common Outages during the Night
- 9.2 Breaking Up the Highly Coupled Infrastructure Architecture
- 9.2.1 Cattle, not Pets
- 9.2.2 Abstracting the Infrastructure
- 9.2.3 Containers for Faster Deployments
- 9.3 Cloud Computing
- 9.3.1 What Is the Cloud?
- 9.3.2 Cloud Models
- 9.3.3 Service Models
- 9.3.4 Cloud Native
- 9.3.5 The Cloud at nicely-dressed.com
- 9.4 Stronger Collaboration between Development and Operations
- 9.4.1 Everyone Should Be Ready
- 9.4.2 Blameless Post-Mortems
- 9.4.3 Communication Solutions and ChatOps
- 9.5 Configuration Management: Everything as Code
- 9.5.1 Infrastructure as Code with Terraform
- 9.5.2 Ansible versus Puppet
- 9.6 Chaos Engineering
- 9.6.1 Making Systems Fail
- 9.6.2 Chaos Engineering without Chaos, but with a Plan
- 9.7 Reliability Engineering
- 9.7.1 Site Reliability Engineering
- 9.7.2 Database Reliability Engineering
- 9.8 Summary
- 10 From Monitoring to Observability
- 10.1 No Visibility at nicely-dressed.com
- 10.1.1 Service Outages Happen Every Day
- 10.1.2 Performance, Performance!
- 10.1.3 Logs
- 10.2 With Insight Comes Foresight
- 10.2.1 Observability Engineering
- 10.2.2 Insights into Processes with Tracing
- 10.2.3 A/B Tests
- 10.2.4 Business Monitoring
- 10.3 Tools for Monitoring, Observability, and Tracing
- 10.3.1 Monitor Systems with Icinga and Nagios
- 10.3.2 Monitoring with Metrics and Time Series Databases
- 10.3.3 Data Visualization with Grafana
- 10.3.4 Error Tracking
- 10.3.5 Distributed Tracing
- 10.3.6 Logging
- 10.3.7 Service Meshes
- 10.3.8 Observability Platforms
- 10.3.9 Monitoring and Observability at nicely-dressed.com
- 10.4 Availability
- 10.4.1 Service Level Agreements
- 10.4.2 Service Level Objectives
- 10.4.3 Service Level Indicators
- 10.4.4 Error Budgets
- 10.5 Summary
- 11 Security and Compliance
- 11.1 Security Disrupts the Agile Waterfall
- 11.2 DevOps with a Separate Security Team
- 11.2.1 To Deploy or Not to Deploy?
- 11.2.2 The Search for Undocumented Dependencies
- 11.2.3 Frustration and Blocking
- 11.3 DevSecOps: Building Security into DevOps
- 11.3.1 The DevSecOps Team Structure
- 11.3.2 Shift Left: Find Errors Earlier
- 11.3.3 Inner Sourcing Ensures Formal Security
- 11.3.4 Security as an Integral Part of the Development Process
- 11.3.5 Dealing with Mistakes
- 11.4 Tools for Higher Security
- 11.4.1 Dashboards and Reporting
- 11.4.2 Pull and Merge Requests
- 11.4.3 Security Scanners in Detail
- 11.5 Supply Chain Security
- 11.5.1 Attacks on the Supply Chain
- 11.5.2 Software Bill of Materials
- 11.5.3 Security of the Build and Deployment Server
- 11.5.4 Secure User Accounts
- 11.5.5 No Code Is Good Code
- 11.5.6 Security at nicely-dressed.com
- 11.6 Compliance
- 11.6.1 Define Compliance Guidelines
- 11.6.2 Manual Compliance
- 11.6.3 Fully Automated Compliance
- 11.6.4 Compliance at nicely-dressed.com
- 11.7 Summary
- 12 Successfully Implementing the DevOps Transformation
- 12.1 Introducing a DevOps Culture
- 12.1.1 Bottom-Up or Top-Down?
- 12.1.2 First Steps in the DevOps Transformation
- 12.2 Making DevOps Success Measurable with DORA Metrics
- 12.2.1 DORA Metric 1: Deployment Frequency
- 12.2.2 DORA Metric 2: Lead Time
- 12.2.3 DORA Metric 3: Change Failure Rate
- 12.2.4 DORA Metric 4: Time to Restore Service
- 12.2.5 DORA Metric 5: Operational Performance and Reliability
- 12.2.6 Findings from the State of DevOps Report
- 12.3 Value Stream Mapping
- 12.3.1 The Value Stream of a Pizzeria
- 12.3.2 The Value Stream at nicely-dressed.com
- 12.3.3 Implementation of Value Stream Mapping
- 12.4 Summary
- 13 DevOps Platforms
- 13.1 Toolchain Complexity
- 13.1.1 Step 0: Toolchains Grow Historically
- 13.1.2 Step 1: Multiple Toolchains to Increase Maintainability
- 13.1.3 Step 2: Standardized Tools, but Still with a Lot of Duct Tape
- 13.1.4 Step 3: DevOps Platforms
- 13.2 DevOps Platforms at a Glance
- 13.2.1 GitLab
- 13.2.2 GitHub
- 13.2.3 Azure DevOps
- 13.2.4 Atlassian
- 13.2.5 Other Platforms
- 13.3 Summary
- 14 Beyond Culture and Tools
- 14.1 The Role of AI in DevOps
- 14.1.1 Making Work Easier with AI-Supported Code Generation?
- 14.1.2 More Code Leads to Higher Review Requirements!
- 14.1.3 AI-Supporting Features
- 14.1.4 Data Protection and Privacy
- 14.1.5 It’s the Overall Concept That Counts!
- 14.2 DataOps, MLOps, and AIOps
- 14.2.1 DataOps
- 14.2.2 MLOps
- 14.2.3 AIOps
- 14.3 DevOps as a Job
- 14.3.1 The Question of DevOps Engineers
- 14.3.2 Soft Skills
- 14.3.3 The Technical DevOps Learning Path
- 14.4 Summary
Descargo de responsabilidad
SAP, otros productos SAP y servicios mencionados aquí así como sus respectivos logos son marca registrada de SAP SE (o una compañía afiliada de SAP) en Alemania y otros países. Nuestra compañía no está afiliada con SAP SE ni con ninguna de sus compañías afiliadas incluyendo pero no limitada a: Sybase, Business Objects, Hybris, Ariba y SuccessFactors. Todos los otros nombres, marcas, logos, etc. son marcas o servicios registrados de sus respectivos propietarios.