Muutke küpsiste eelistusi

DevOps for the Desperate: A Hands-On Survival Guide [Pehme köide]

  • Formaat: Paperback / softback, 176 pages, kõrgus x laius: 235x178 mm
  • Ilmumisaeg: 12-Jul-2022
  • Kirjastus: No Starch Press,US
  • ISBN-10: 1718502486
  • ISBN-13: 9781718502482
Teised raamatud teemal:
  • Formaat: Paperback / softback, 176 pages, kõrgus x laius: 235x178 mm
  • Ilmumisaeg: 12-Jul-2022
  • Kirjastus: No Starch Press,US
  • ISBN-10: 1718502486
  • ISBN-13: 9781718502482
Teised raamatud teemal:
"This book introduces fundamental concepts software developers need to know to flourish in a modern DevOps environment, including infrastructure as code, configuration management, security, containerization and orchestration, monitoring and alerting, andtroubleshooting. Readers follow along with hands-on examples to learn how to tackle common DevOps tasks"--

DevOps for the Desperate is a hands-on, no-nonsense guide for those who land in a DevOps environment and need to get up and running quickly.

This book introduces fundamental concepts software developers need to know to flourish in a modern DevOps environment including infrastructure as code, configuration management, security, containerization and orchestration, monitoring and alerting, and troubleshooting. Readers will follow along with hands-on examples to learn how to tackle common DevOps tasks.
 
The book begins with an exploration of DevOps concepts using Vagrant and Ansible to build systems with repeatable and predictable states, including configuring a host with user-based security. Next up is a crash course on containerization, orchestration, and delivery using Docker, Kubernetes, and a CI/CDpipeline. The book concludes with a primer in monitoring and alerting with tips for troubleshootingcommon host and application issues.
 
You'll learn how to:
   Use Ansible to manage users and groups, and enforce complex passwords
   Create a security policy for administrative permissions, and automate a host-based firewall
   Get started with Docker to containerize applications, use Kubernetes for orchestration, and deploycode using a CI/CD pipeline
   Build a monitoring stack, investigate common metric patterns, and trigger alerts
   Troubleshoot and analyze common issues and errors found on hosts

Arvustused

"DevOps for the Desperate is a short, approachable guided tour of a few core tools in the software operations toolkit. Structured as a set of hands-on tutorials in topics like system administration basics, configuration tools like Ansible and Vagrant, and orchestration tools like Kubernetes, this book covers a lot of ground quickly. The focus is very much on the practical, rather than the philosophy of DevOps. Don't expect to use this as your sole reference on DevOps topics, but this is worthwhile as a gentle starting point for the absolute beginner to software operations." Laura Nolan, Slack

"A very useful book. . . . it would give any competent developer a good grasp of how to use the tools commonly found in DevOps. Recommended." Kay Ewbank, I-Programmer

"Zero-to-hero in one guide." td, Amazon Reviewer

Acknowledgments xiv
Introduction xv
What Is the Current State of DevOps? xvi
Who Should Read This Book? xvii
How This Book Is Organized xvii
Part I Infrastructure as Code, Configuration Management, Security, and Administration xvii
Part II Containerization and Deploying Modern Applications xviii
Part III Observability and Troubleshooting xviii
What You'll Need xviii
Downloading and Installing VirtualBox xx
Companion Repository xxi
Editor xxi
PART I INFRASTRUCTURE AS CODE, CONFIGURATION MANAGEMENT, SECURITY, AND ADMINISTRATION
1(58)
1 Setting Up A Virtual Machine
3(10)
Why Use Code to Build Infrastructure?
3(1)
Getting Started with Vagrant
4(1)
Installation
4(1)
Anatomy of a Vagrantfile
5(1)
Basic Vagrant Commands
6(1)
Getting Started with Ansible
6(1)
Installation
7(1)
Key Ansible Concepts
7(1)
Ansible Playbook
8(1)
Basic Ansible Commands
9(1)
Creating an Ubuntu VM
9(2)
Summary
11(2)
2 Using Ansible To Manage Passwords, Users, And Groups
13(12)
Enforcing Complex Passwords
14(1)
Installing libpam-pwquality
14(1)
Configuring pam_pwquality to Enforce a Stricter Password Policy
15(1)
Linux User Types
16(1)
Getting Started with the Ansible User Module
16(1)
Generating a Complex Password
17(1)
Linux Groups
18(1)
Getting Started with the Ansible Group Module
18(1)
Assigning a User to the Group
19(1)
Creating Protected Resources
19(1)
Updating the VM
20(1)
Testing User and Group Permissions
21(2)
Summary
23(2)
3 Using Ansible To Configure SSH
25(12)
Understanding and Activating Public Key Authentication
26(1)
Generating a Public Key Pair
26(1)
Using Ansible to Get Your Public Key on the VM
27(1)
Adding Two-Factor Authentication
28(1)
Installing Google Authenticator
29(1)
Configuring Google Authenticator
29(1)
Configuring PAM for Google Authenticator
30(1)
Configuring the SSH Server
31(1)
Restarting the SSH Server with a Handler
32(1)
Provisioning the VM
33(1)
Testing SSH Access
34(1)
Summary
35(2)
4 Controlling User Commands With Sudo
37(12)
What Is sudo?
38(1)
Planning a sudoers Security Policy
38(1)
Installing the Greeting Web Application
39(2)
Anatomy of a sudoers File
41(1)
Creating the sudoers File
42(1)
The sudoers Template
43(1)
Provisioning the VM
44(1)
Testing Permissions
45(1)
Accessing the Web Application
45(1)
Editing greeting.py to Test the sudoers Policy
46(1)
Stopping and Starting with systemctl
46(1)
Audit Logs
47(1)
Summary
48(1)
5 Automating And Testing A Host-Based Firewall
49(10)
Planning the Firewall Rules
50(1)
Automating UFW Rules
50(3)
Provisioning the VM
53(1)
Testing the Firewall
54(1)
Scanning Ports with Nmap
55(1)
Firewall Logging
56(1)
Rate Limiting
57(1)
Summary
58(1)
PART II CONTAINERIZATION AND DEPLOYING MODERN APPLICATIONS
59(48)
6 Containerizing An Application with Docker
61(16)
Docker from 30,000 Feet
62(1)
Getting Started with Docker
62(1)
Dockerfile Instructions
63(1)
Container Images and Layers
64(1)
Containers
64(1)
Namespaces and Cgroups
64(1)
Installing and Testing Docker
65(1)
Installing the Docker Engine with Minikube
65(1)
Installing the Docker Client and Setting Up Docker Environment Variables
66(1)
Testing the Docker Client Connectivity
66(1)
Containerizing a Sample Application
66(1)
Dissecting the Example telnet-server Dockerfile
67(1)
Building the Container Image
68(1)
Verifying the Docker Image
69(1)
Running the Container
70(1)
Other Docker Client Commands
71(1)
exec
71(1)
rm
72(1)
inspect
72(1)
history
73(1)
stats
74(1)
Testing the Container
74(1)
Connecting to the Telnet-Server
74(1)
Getting Logs from the Container
75(1)
Summary
76(1)
7 Orchestrating with Kubernetes
77(18)
Kubernetes from 30,000 Feet
78(1)
Kubernetes Workload Resources
79(1)
Pods
79(1)
ReplicaSet
79(1)
Deployments
79(1)
StatefulSets
80(1)
Services
80(1)
Volumes
80(1)
Secrets
81(1)
ConfigMaps
81(1)
Namespaces
81(1)
Deploying the Sample telnet-server Application
82(1)
Interacting with Kubernetes
82(1)
Reviewing the Manifests
82(5)
Creating a Deployment and Services
87(1)
Viewing the Deployment and Services
88(1)
Testing the Deployment and Services
89(1)
Accessing the Telnet Server
89(2)
Troubleshooting Tips
91(1)
Killing a Pod
92(1)
Scaling
92(1)
Logs
93(1)
Summary
94(1)
8 Deploying Code
95(12)
CI/CD in Modern Application Stacks
96(1)
Setting Up Your Pipeline
97(1)
Reviewing the skaffold.yaml File
98(1)
Reviewing the Container Tests
99(1)
Simulating a Development Pipeline
100(2)
Making a Code Change
102(1)
Testing the Code Change
103(1)
Testing a Rollback
104(1)
Other CI/CD Tooling
105(1)
Summary
106(1)
PART III OBSERVABILITY AND TROUBLESHOOTING
107(46)
9 Observability
109(16)
Monitoring Overview
110(1)
Monitoring the Sample Application
111(1)
Installing the Monitoring Stack
112(1)
Verifying the Installation
113(2)
Metrics
115(1)
Golden Signals
115(1)
Adjusting the Monitoring Pattern
115(1)
The telnet-server Dashboard
116(2)
PromQL: A Primer
118(1)
Alerts
119(1)
Reviewing Golden Signal Alerts in Prometheus
119(2)
Routing and Notifications
121(2)
Summary
123(2)
10 Troubleshooting Hosts
125(28)
Troubleshooting and Debugging: A Primer
126(1)
Scenario: High Load Average
127(1)
uptime
127(1)
top
128(1)
Next Steps
129(1)
Scenario: High Memory Usage
129(1)
free
129(1)
vmstat
130(1)
ps
131(1)
Next Steps
131(1)
Scenario: High iowait
131(1)
iostat
132(1)
iotop
133(1)
Next Steps
133(1)
Scenario: Hostname Resolution Failure
133(1)
resolv.conf
134(1)
resolvectl
135(1)
dig
136(1)
Next Steps
137(1)
Scenario: Out of Disk Space
138(1)
df
138(1)
find
138(1)
Isof
139(1)
Next Steps
139(1)
Scenario: Connection Refused
140(1)
curl
140(1)
ss
140(1)
tcpdump
141(1)
Next Steps
142(1)
Searching Logs
142(1)
Common Logs
143(1)
Common journalctl Commands
144(2)
Parsing Logs
146(2)
Probing Processes
148(1)
strace
148(5)
Summary
Index 153
Bradley Smith is a Director of Infrastructure and resides in Denver, Colorado. He has been an engineer for more than 20 years at many startups and businesses of varying sizes. He's built and trained numerous DevOps, SRE, and software engineering teams. A Boston native, Bradley graduated from the University of Massachusetts Lowell.