售 价:¥
温馨提示:数字商品不支持退换货,不提供源文件,不支持导出打印
为你推荐
Title Page
Copyright and Credits
Practical DevOps Second Edition
Packt Upsell
Why subscribe?
PacktPub.com
Contributors
About the author
About the reviewer
Packt is searching for authors like you
Preface
Who this book is for
What this book covers
To get the most out of this book
Download the example code files
Download the color images
Conventions used
Get in touch
Reviews
Introducing DevOps and Continuous Delivery
Introducing DevOps
How fast is fast?
The Agile wheel of wheels
Beware the cargo cult Agile fallacy
DevOps and ITIL
Summary
A View from Orbit
The DevOps process and CD – an overview
The developers
The Revision Control System
The build server
The artifact repository
Package managers
Test environments
Staging/production
Release management
Scrum, Kanban, and the delivery pipeline
Wrapping up – a complete example
Identifying bottlenecks
Summary
How DevOps Affects Architecture
Introducing software architecture
The monolithic scenario
The Twelve Factors
Factor 1 – code base
Factor 2 – dependencies
Factor 3 – config
Factor 4 – backing services
Factor 5 – build, release, run
Factor 6 – processes
Factor 7 – port binding
Factor 8 – concurrency
Factor 9 – disposability
Factor 10 – dev/prod parity
Factor 11 – logs
Factor 12 – admin processes
Architecture rules of thumb
The separation of concerns
The principle of cohesion
Coupling
Back to the monolithic scenario
A practical example
Three-tier systems
The presentation tier
The logic tier
The data tier
Handling database migrations
Rolling upgrades
Hello world in Liquibase
The changelog file
The pom.xml file
Manual installation
Microservices
Interlude – Conway's law
How to keep service interfaces forward compatible
Microservices and the data tier
DevOps, architecture, and resilience
Summary
Everything is Code
The need for source code control
The history of source code management
Roles and code
Which source code management system?
A word about source code management system migrations
Choosing a branching strategy
Branching problem areas
Artifact version naming
Choosing a client
Setting up a basic Git server
Shared authentication
Hosted Git servers
Large binary files
Trying out different Git server implementations
Docker intermission
Gerrit
Installing the git-review package
The value of history revisionism
The pull request model
GitLab
Summary
Building the Code
Why do we build code?
The many faces of build systems
The Jenkins build server
Managing build dependencies
The final artifact
Cheating with FPM
Continuous Integration
Continuous Delivery
Jenkins plugins
The host server
Build slaves
Software on the host
Triggers
Job chaining and build pipelines
A look at the Jenkins filesystem layout
Build servers and Infrastructure as Code
Building by dependency order
Build phases
Alternative build servers
Collating quality measures
About build status visualization
Taking build errors seriously
Robustness
Summary
Testing the Code
Manual testing
Pros and cons with test automation
Unit testing
xUnit in general and JUnit in particular
A JUnit example
Mocking
Test coverage
Automated integration testing
Docker in automated testing
Arquillian
Performance testing
Automated acceptance testing
Automated GUI testing
Integrating Selenium tests in Jenkins
JavaScript testing
Testing backend integration points
Test-driven development
REPL-driven development
A complete test automation scenario
Manually testing our web application
Running the automated test
Finding a bug
Test walkthrough
Handling tricky dependencies with Docker
Summary
Deploying the Code
Why are there so many deployment systems?
Configuring the base OS
Describing clusters
Delivering packages to a system
Virtualization stacks
Executing code on the client
A note about the exercises
The Puppet master and Puppet agents
Ansible
Deploying with Chef
Deploying with SaltStack
Salt versus Ansible versus Puppet execution models
Vagrant
Deploying with Docker
Comparison tables
Cloud solutions
AWS
Azure
Summary
Monitoring the Code
Nagios
Munin
Ganglia
Graphite
Log handling
Client-side logging libraries
The ELK stack
Summary
Issue Tracking
What are issue trackers used for?
Some examples of workflows and issues
What do we need from an issue tracker?
Problems with issue tracker proliferation
All the trackers
Bugzilla
Trac
Redmine
The GitLab issue tracker
Jira
Summary
The Internet of Things and DevOps
Introducing the IoT and DevOps
The future of the IoT according to the market
Machine-to-machine communication
IoT deployment affects software architecture
IoT deployment security
Okay, but what about DevOps and the IoT again?
A hands-on lab with an IoT device for DevOps
Summary
Other Books You May Enjoy
Leave a review - let other readers know what you think
买过这本书的人还买过
读了这本书的人还在读
同类图书排行榜