Fundamentals of DevOps and Software Delivery - Helion

ISBN: 9781098174552
stron: 552, Format: ebook
Data wydania: 2025-05-20
Księgarnia: Helion
Cena książki: 203,15 zł (poprzednio: 236,22 zł)
Oszczędzasz: 14% (-33,07 zł)
This book is a guide to DevOps and software delivery: that is, a guide to the numerous tools and techniques that are required to take that application code and run it and maintain it in production, where it can generate value for your users and your company on an ongoing basis. This includes going through all the modern practices for deploying applications and microservices to the cloud, managing your infrastructure as code, automating your software delivery lifecycle in a CI/CD pipeline, configuring networking, setting up data stores, and hooking up monitoring.
Osoby które kupowały "Fundamentals of DevOps and Software Delivery", wybierały także:
- Biologika Sukcesji Pokoleniowej. Sezon 3. Konflikty na terytorium 117,27 zł, (12,90 zł -89%)
- Windows Media Center. Domowe centrum rozrywki 66,67 zł, (8,00 zł -88%)
- Podręcznik startupu. Budowa wielkiej firmy krok po kroku 92,14 zł, (12,90 zł -86%)
- Ruby on Rails. Ćwiczenia 18,75 zł, (3,00 zł -84%)
- Prawa ludzkiej natury 75,88 zł, (12,90 zł -83%)
Spis treści
Fundamentals of DevOps and Software Delivery eBook -- spis treści
- Preface
- Why I Wrote This Book
- The Impact of World-Class Software Delivery
- Where DevOps Came From
- Watch Out for Snakes
- Who Should Read This Book
- What Youll Find in This Book
- What You Wont Find in This Book
- Open Source Code Examples
- Opinionated Code Examples
- You Have to Get Your Hands Dirty
- Using Code Examples
- Conventions Used in This Book
- OReilly Online Learning
- How to Contact Us
- Acknowledgments
- 1. How to Deploy Your App
- Example: Deploy the Sample App Locally
- Deploying an App on a Server
- On-Prem and Cloud Hosting
- Example: Deploy an App via PaaS (Render)
- Step 1: Sign up for a Render account
- Step 2: Deploy a new web service
- Step 3: Test your app
- Example: Deploy an App via IaaS (AWS)
- Step 1: Choose an AWS region
- Step 2: Deploy an EC2 instance
- Step 3: Configure the EC2 instance
- Step 4: Configure the network settings
- Step 5: Configure advanced details
- Step 6: Launch the EC2 instance
- Comparing Deployment Options
- On Prem Versus the Cloud
- When to go with the cloud
- When to go with on prem
- When to go with hybrid
- IaaS Versus PaaS
- When to go with PaaS
- When to go with IaaS
- On Prem Versus the Cloud
- The Evolution of DevOps
- Adopting DevOps Practices
- Conclusion
- 2. How to Manage Your Infrastructure as Code
- The Benefits of IaC
- Ad Hoc Scripts
- Example: Deploy an EC2 Instance by Using a Bash Script
- How Ad Hoc Scripts Stack Up
- Configuration Management Tools
- Example: Deploy an EC2 Instance by Using Ansible
- Example: Configure a Server by Using Ansible
- How Configuration Management Tools Stack Up
- Server Templating Tools
- Example: Create a VM Image by Using Packer
- How Server Templating Tools Stack Up
- Provisioning Tools
- Example: Deploy an EC2 Instance by Using OpenTofu
- Example: Update and Destroy Infrastructure by Using OpenTofu
- Example: Deploy an EC2 Instance by Using an OpenTofu Module
- Example: Deploy an EC2 Instance by Using an OpenTofu Registry Module
- How Provisioning Tools Stack Up
- Using Multiple IaC Tools Together
- Provisioning Plus Configuration Management
- Provisioning Plus Server Templating
- Provisioning Plus Server Templating Plus Orchestration
- Adopting IaC
- Conclusion
- 3. How to Manage Your Apps by Using Orchestration Tools
- An Introduction to Orchestration
- Server Orchestration
- Example: Deploy an App Securely and Reliably by Using Ansible
- Example: Deploy a Load Balancer by Using Ansible and nginx
- Example: Roll Out Updates with Ansible
- VM Orchestration
- Example: Build a VM Image by Using Packer
- Example: Deploy a VM Image in an Auto Scaling Group by Using OpenTofu
- Example: Deploy an Application Load Balancer by Using OpenTofu
- Example: Roll Out Updates with OpenTofu and Auto Scaling Groups
- Container Orchestration
- Example: A Crash Course on Docker
- Example: Create a Docker Image for a Node.js App
- Example: Deploy a Dockerized App with Kubernetes
- Example: Deploy a Load Balancer with Kubernetes
- Example: Roll Out Updates with Kubernetes
- Example: Deploy a Kubernetes Cluster in AWS by Using EKS
- Example: Push a Docker Image to ECR
- Example: Deploy a Dockerized App into an EKS Cluster
- Serverless Orchestration
- Example: Deploy a Serverless Function with AWS Lambda
- Example: Create a Lambda Function URL
- Example: Roll Out Updates with AWS Lambda
- Comparing Orchestration Options
- Conclusion
- 4. How to Version, Build, and Test Your Code
- Version Control
- Example: Turn Your Code into a Git Repo
- Example: Store Your Code in GitHub
- Version-Control Recommendations
- Always use version control
- Write good commit messages
- Commit early and often
- Use a code-review process
- Protect your code
- Build System
- Example: Configure Your Build by Using npm
- Dependency Management
- Example: Add Dependencies in npm
- Automated Testing
- Example: Add Automated Tests for the Node.js App
- Example: Add Automated Tests for the OpenTofu Code
- Testing Recommendations
- The test pyramid
- What to test
- Test-driven development
- Conclusion
- Version Control
- 5. How to Set Up Continuous Integration and Continuous Delivery
- Continuous Integration
- Dealing with Merge Conflicts
- Preventing Breakages with Self-Testing Builds
- Making Large Changes
- Branch by abstraction
- Feature toggles
- Example: Run Automated Tests for Apps in GitHub Actions
- Machine User Credentials and Automatically Provisioned Credentials
- Machine user credentials
- Automatically provisioned credentials
- Example: Configure OIDC with AWS and GitHub Actions
- Example: Run Automated Tests for Infrastructure in GitHub Actions
- Continuous Delivery
- Deployment Strategies
- Core deployment strategies
- Comparison of core deployment strategies
- Add-on deployment strategies
- Comparison of add-on deployment strategies
- Deployment Pipelines
- Example: Configure an automated GitOps pipeline in GitHub Actions
- Example: Use a backend for OpenTofu state
- Example: Add IAM roles for infrastructure deployments in GitHub Actions
- Example: Define a pipeline for infrastructure deployments
- Deployment Pipeline Recommendations
- Automate all the steps that can be automated
- Deploy only from a deployment server
- Protect the deployment server
- Deployment Strategies
- Conclusion
- Continuous Integration
- 6. How to Work with Multiple Teams and Environments
- Breaking Up Your Deployments
- Why Deploy Across Multiple Environments
- Isolating tests
- Isolating products and teams
- Reducing latency
- Complying with local laws and regulations
- Increasing resiliency
- How to Set Up Multiple Environments
- Challenges with Multiple Environments
- Increased operational overhead
- Increased data storage complexity
- Increased application configuration complexity
- Example: Set Up Multiple AWS Accounts
- Create child accounts
- Access your child accounts
- Deploy into your child accounts
- Use different configurations for different environments
- Close your child accounts
- Why Deploy Across Multiple Environments
- Breaking Up Your Codebase
- Why Break Up Your Codebase
- Managing complexity
- Isolating products and teams
- Handling different scaling requirements
- Using different programming languages
- How to Break Up Your Codebase
- Breaking a codebase into multiple libraries
- Breaking a codebase into multiple services
- Challenges with Breaking Up Your Codebase
- Challenges with managing multiple codebases
- Challenges with integration
- Challenges with managing multiple services
- Example: Deploy Microservices in Kubernetes
- Creating a backend sample app
- Creating a frontend sample app
- Why Break Up Your Codebase
- Conclusion
- Breaking Up Your Deployments
- 7. How to Set Up Networking
- Public Networking
- Public IP Addresses
- Domain Name System
- Example: Register and Configure a Domain Name in Amazon Route 53
- Register a domain name
- Deploy EC2 instances
- Configure DNS records
- Private Networking
- Physical Private Networks
- Only authorized devices may connect to the private network
- The private network uses private IP address ranges
- The private network defines connectivity rules
- Most devices in a private network access the public internet through a gateway
- Virtual Private Networks
- Virtual networks in the cloud
- Virtual networks in orchestration tools
- Example: Create a VPC in AWS
- Physical Private Networks
- Accessing Private Networks
- Castle-and-Moat Model
- Zero Trust Architecture
- SSH
- How to use SSH
- Example: SSH bastion host in AWS
- RDP
- VPN
- Service Communication in Private Networks
- Service Discovery
- Service discovery tools
- Service discovery tool comparison
- Service Communication Protocol
- Common protocols
- Key factors to consider
- Service Mesh
- Example: Istio Service Mesh with Kubernetes Microservices
- Service Discovery
- Conclusion
- Public Networking
- 8. How to Secure Communication and Storage
- Cryptography Primer
- Encryption
- Symmetric-key encryption
- Asymmetric-key encryption
- Hybrid encryption
- Example: Encryption and decryption with OpenSSL
- Hashing
- Verification of the integrity of messages and files
- Message authentication codes
- Authenticated encryption
- Digital signatures
- Example: File integrity, HMAC, and signatures with OpenSSL
- Encryption
- Secure Storage
- Secrets Management
- Personal secrets
- Infrastructure secrets
- Customer secrets and password storage
- Encryption at Rest
- Full-disk encryption
- Data store encryption
- Application-level encryption
- Secrets Management
- Secure Communication
- Transport Layer Security
- Example: HTTPS with Lets Encrypt and AWS Secrets Manager
- Get a TLS certificate from Lets Encrypt
- Store the TLS certificate in AWS Secrets Manager
- Deploy EC2 instances that use the TLS certificate
- End-to-End Encryption
- What encryption key do you use for E2E encryption?
- What data needs to be E2E encrypted, and what doesnt?
- How do you establish trust with E2E-encrypted software?
- Conclusion
- Cryptography Primer
- 9. How to Store Data
- Local Storage: Hard Drives
- Primary Data Store: Relational Databases
- Reading and Writing Data
- ACID Transactions
- Schemas and Constraints
- Example: PostgreSQL, Lambda, and Schema Migrations
- Create an OpenTofu module
- Create schema migrations
- Create the Lambda function
- Caching: Key-Value Stores and CDNs
- Key-Value Stores
- CDNs
- File Storage: File Servers and Object Stores
- File Servers
- Object Stores
- Example: Serving Files with S3 and CloudFront
- Create an S3 bucket configured for website hosting
- Upload static content to the S3 bucket
- Deploy CloudFront as a CDN in front of the S3 bucket
- Semistructured Data and Search: Document Stores
- Reading and Writing Data
- ACID Transactions
- Schemas and Constraints
- Analytics: Columnar Databases
- Columnar Database Basics
- Analytics Use Cases
- Asynchronous Processing: Queues and Streams
- Message Queues
- Event Streams
- Scalability and Availability
- Relational Databases
- Replication
- Partitioning
- NoSQL and NewSQL Databases
- Distributed Systems
- Relational Databases
- Backup and Recovery
- Backup Strategies
- Scheduled disk backups
- Scheduled data store backups
- Continuous data store backups
- Data store replication
- Backup Recommendations
- Example: Backups and Read Replicas with PostgreSQL
- Backup Strategies
- Conclusion
- 10. How to Monitor Your Systems
- Logs
- Log Levels
- Log Formatting
- Structured Logging
- Log Files and Rotation
- Log Aggregation
- Metrics
- Types of Metrics
- Availability metrics
- Business metrics
- Application metrics
- Server metrics
- Team metrics
- Using Metrics
- Collect metrics (instrumentation)
- Store metrics
- Visualize and analyze metrics
- Example: Metrics in CloudWatch
- Types of Metrics
- Events
- Observability
- Tracing
- Testing in Production
- Alerts
- Triggers
- Notifications
- On Call
- Incident Response
- Example: Alerts in CloudWatch
- Conclusion
- Logs
- 11. The Future of DevOps and Software Delivery
- Infrastructureless
- Generative AI
- Secure by Default
- Platform Engineering
- The Future of Infrastructure Code
- Conclusion
- Index