DevOps
Develop faster with DevOps DevOps embraces a culture of unifying the creation and distribution of technology in a way that allows for faster release cycles and more resource-efficient product updating. DevOps For Dummies provides a guidebook for those on the development or operations side in need of...
Otros Autores: | |
---|---|
Formato: | Libro electrónico |
Idioma: | Inglés |
Publicado: |
Hoboken, N.J.:
John Wiley & Sons
c2019.
Hoboken, New Jersey : 2019. |
Edición: | 1st edition |
Colección: | For dummies
|
Materias: | |
Ver en Biblioteca Universitat Ramon Llull: | https://discovery.url.edu/permalink/34CSUC_URL/1im36ta/alma991009631047206719 |
Tabla de Contenidos:
- Intro
- Title Page
- Copyright Page
- Table of Contents
- Foreword
- Introduction
- About This Book
- Foolish Assumptions
- Icons Used in This Book
- Beyond the Book
- Where to Go from Here
- Part 1 Demystifying DevOps
- Chapter 1 Introducing DevOps
- What Is DevOps?
- DevOps evolved from Agile
- DevOps focuses on people
- Company culture is the foundation of DevOps
- You learn by observing your process and collecting data
- Persuasion is key to DevOps adoption
- Small, incremental changes are priceless
- Benefitting from DevOps
- Keeping CALMS
- Solving the problem of conflicting interests
- Chapter 2 Designing Your Organization
- Assessing Your Culture's Health
- Integrating DevOps
- Establishing DevOps Values
- Encourage teamwork
- Reduce silos
- Practice systems thinking
- Embrace failure
- Communicate, communicate, communicate
- Accept feedback
- Automate processes (when appropriate)
- Modeling Company Culture
- Avoiding the worst of tech culture
- Crafting your vision
- Incentivizing Your Values
- Evaluations
- Rewards
- Chapter 3 Identifying Waste
- Digging into the Seven Types of Waste
- Unnecessary process
- Waiting
- Motion
- Costs of defects
- Overproduction
- Transportation
- Inventory
- Understanding waste in DevOps
- Rooting Out Waste
- Discovering bottlenecks
- Focusing on impact
- Chapter 4 Persuading Colleagues to Try DevOps
- Fearing Change
- Persuading Those around You to Shift to DevOps
- Earning executive support
- Creating a groundswell in the engineering group
- Managing the middle managers
- Persuading the stubborn
- Understanding the Adoption Curve
- Pushing for change
- Responding to pushback
- Navigating the chasm
- Asking "Why?"
- Chapter 5 Measuring Your Organization
- Measuring Your Progress
- Quantifying DevOps
- Collecting the data.
- Developing internal case studies
- Part 2 Establishing a Pipeline
- Chapter 6 Embracing the New Development Life Cycle
- Inviting Everyone to the Table
- Changing Processes: From a Line to a Circuit
- Shifting Ops "Left": Thinking about Infrastructure
- Shifting deployments left, too
- Mimicking production through staging
- Chapter 7 Planning Ahead
- Moving beyond the Agile Model
- Forecasting Challenges
- Identifying project challenges and constraints
- Gathering Requirements
- Designing an MVP
- Discovering the problem for your MVP to solve
- Identifying your customer
- Scrutinizing the competition
- Prioritizing features
- Designing the user experience
- Testing your hypothesis
- To beta or not to beta?
- Determining Your Customer by Designing a Persona
- What is a persona?
- Designing a persona
- Chapter 8 Designing Features from a DevOps Perspective
- Constructing Your Design
- Designing for DevOps
- Designing software for change
- Improving software constantly
- Documenting your software
- Architecting Code for the Six Capabilities of DevOps
- Maintainability
- Scalability
- Security
- Usability
- Reliability
- Flexibility
- Documenting Design Decisions
- Avoiding Architecture Pitfalls
- Chapter 9 Developing Code
- Communicating about Code
- Engineering for Error
- Writing Maintainable Code
- Testing code
- Debugging code
- Logging code
- Writing immutable code
- Creating readable code
- Programming Patterns
- Object-oriented programming
- Functional programming
- Choosing a Language
- Avoiding Anti-Patterns
- DevOpsing Development
- Writing clean code
- Understanding the business
- Listening to others
- Focusing on the right things
- Getting comfortable with being uncomfortable
- Establishing Good Practices
- Organizing your source code
- Writing tests
- Documenting features.
- Having peers review your code
- Chapter 10 Automating Tests Prior to Release
- Testing Isn't Optional
- Automating Your Testing
- Testing in Different Environments
- Local environment
- Development environment
- Testing environment
- Staging environment
- Production environment
- Going beyond the Unit Test
- Unit tests: It's alive!
- Integration tests: Do all the pieces work together?
- Regression tests: After changes, does the code behave the same?
- Visual tests: Does everything look the same?
- Performance testing
- Continuous Testing
- Chapter 11 Deploying a Product
- Releasing Code
- Integrating and Delivering Continuously
- Benefitting from CI/CD
- Implementing CI/CD
- Managing Deployments
- Automating the right way
- Versioning
- Mitigating Failure
- Rolling back
- Fixing forward
- Democratizing Deployments
- Choosing a Deployment Style
- Blue-green: Not just for lakes
- Schrodinger's canary: The deploy's not dead (or is it?)
- Rolling the dice
- Toggling with feature flags
- Monitoring Your Systems
- Understanding telemetry
- Recording behavior
- SLAs, SLIs, and SLOs
- Part 3 Connecting the Circuit
- Chapter 12 Implementing Rapid Iteration
- Prioritizing the Important
- Important and urgent
- Important, not urgent
- Urgent, not important
- Neither important nor urgent
- Increasing Velocity
- Improving Performance
- Eliminating perfection
- Designing small teams
- Tracking your work
- Reducing friction
- Humanizing alerting
- Chapter 13 Creating Feedback Loops around the Customer
- Creating a Customer Feedback Process
- Creating a Feedback Loop
- Receive
- Analyze
- Communicate
- Change
- Collecting Feedback
- Satisfaction surveys
- Case studies
- Dogfooding
- Asking for Continual Feedback
- Net promoter score (NPS)
- Finding a rhythm.
- Chapter 14 DevOps Isn't a Team (Except When It Is)
- Forming DevOps Teams
- Aligning functional teams
- Dedicating a DevOps team
- Creating cross-functional product teams
- Interviewing Quickly (But Not Too Quickly)
- Deciding on a Job Title
- Recruiting Never Ends
- Finding the right folks
- Passing along great candidates
- Evaluating Technical Ability
- Whiteboarding revisited
- Offering take-home tests
- Reviewing code
- Firing Fast
- The jerk
- The martyr
- The underperformer
- Chapter 15 Empowering Engineers
- Scaling Engineering Teams with DevOps
- Three stages of a company
- Motivating Engineers
- Researching motivation
- DevOpsing motivation
- Avoiding reliance on extrinsic rewards
- Autonomy
- Mastery
- Purpose
- Making work fun
- Allowing people to choose their teams
- Measuring Motivation
- Part 4 Practicing Kaizen, the Art of Continuous Improvement
- Chapter 16 Embracing Failure Successfully
- Failing Fast in Tech
- Failing safely
- Containing failure
- Accepting human error (and keeping it blameless)
- Failing Well
- Maintaining a growth mindset
- Creating the freedom to fail
- Chapter 17 Preparing for Incidents
- Combating "Human Error" with Automation
- Focusing on systems: Automating realistically
- Using automation tools to avoid code integration problems
- Handling deployments and infrastructure
- Limiting overengineering
- Humanizing On-Call Rotation
- When on-call duties become inhumane
- Humane on-call expectations
- Managing Incidents
- Making consistency a goal
- Adopting standardized processes
- Establishing a realistic budget
- Making it easy to respond to incidents
- Responding to an unplanned disruption
- Empirically Measuring Progress
- Mean time to repair (MTTR)
- Mean time between failures (MTBF)
- Cost per incident (CPI).
- Chapter 18 Conducting Post-Incident Reviews
- Going beyond Root Cause Analysis
- Stepping through an Incident
- Succeeding at Post-Incident Reviews
- Scheduling it immediately
- Including everyone
- Keeping it blameless
- Reviewing the timeline
- Asking tough questions
- Acknowledging hindsight bias
- Taking notes
- Making a plan
- Part 5 Tooling Your DevOps Practice
- Chapter 19 Adopting New Tools
- Integrating with Open Source Software
- Opening community innovation
- Licensing open source
- Deciding on open source
- Transitioning to New Languages
- Compiling and interpreting languages
- Parallelizing and multithreading
- Programming functionally
- Managing memory
- Choosing languages wisely
- Chapter 20 Managing Distributed Systems
- Working with Monoliths and Microservices
- Choosing a monolithic architecture first
- Evolving to microservices
- Designing Great APIs
- What's in an API
- Focusing on consistent design
- Containers: Much More than Virtual Machines
- Understanding containers and images
- Deploying microservices to containers
- Comparing orchestrators: Harmonize the hive
- Configuring containers
- Monitoring containers: Keeping them alive until you kill them
- Securing containers: These boxes need a lock
- Chapter 21 Migrating to the Cloud
- Automating DevOps in the Cloud
- Taking your DevOps culture to the cloud
- Learning through adoption
- Benefitting from cloud services
- Cumulus, Cirrus, and Steel: Types of Clouds
- Public cloud
- Private cloud
- Hybrid cloud
- Cloud as a Service
- Infrastructure as a Service
- Platform as a Service
- Software as a Service
- Choosing the Best Cloud Service Provider
- Amazon Web Services (AWS)
- Microsoft Azure
- Google Cloud Platform (GCP)
- Finding Tools and Services in the Cloud
- Part 6 The Part of Tens.
- Chapter 22 Top Ten (Plus) Reasons That DevOps Matters.