DevOps in Practice
by Danilo Sato
Delivering production software can often be a painful task. Long test
periods and the integration between operations and development can ruin
or delay a promising delivery. That’s what DevOps can fix. DevOps is a
cultural change that aims to smoothly integrate development and
operations procedures, breaking the barriers between them and focusing
on automation, collaboration, and sharing of knowledge and tools. This
book shows you how to implement DevOps and Continuous Delivery practices
to raise your system’s deployment frequency, increasing your production
application’s stability and robustness.
This book was translated and published by Code Crushing books. We are
proud to be distributing it.
This work was written and produced entirely by the author. We are proud to be distributing it.
eBook Formats:
Get all eBook formats here for $24.00 (USD)
Add to Cart
DevOps shows the IT world that developers and operations have a lot to
learn about each other—and that can be highly positive for projects.
Automate the deployment of a non-trivial Java application, involving a
Tomcat instance, MySQL setup, Solr, Spring, Hibernate and GWT and see
how this automation naturally leads to more frequent deployments.
Monitor the system deployed to production, using tools such as Nagios,
to get alerts when something goes wrong. And when your infrastructure
grows bigger and bigger, introduce Puppet so you can better manage it.
By that point, you’ll have a robust process that will be improved by
setting up a continuous delivery process with Jenkins, and you’ll
migrate your applications to the cloud, using the AWS infrastructure and
services. Throughout the book, you’ll explore various other tools from
the DevOps world, such as Vagrant, VirtualBox, FPM, Rake, Maven, Git,
and more.
What You Need
A computer running Windows, Mac or Linux; a web browser; and Java 7 or
greater installed.
Resources
Releases:
2016/03/28
P1.0
First electronic release.
- 1 -
Introduction
- 1.1 - Traditional approach
- 1.2 - An alternative approach: DevOps and Continuous Delivery
- 1.3 - About the book
- 2 - Everything starts in production
- 2.1 - Our example application: an online store
- 2.2 - Installing the production environment
- 2.3 - Configuring the production servers
- 2.4 - Application build and deploy
- 3 - Monitoring
- 3.1 - Installing the monitoring server
- 3.2 - Monitoring other hosts
- 3.3 - Exploring Nagios service checks
- 3.4 - Adding more specific checks
- 3.5 - Receiving alerts
- 3.6 - A problem hits production, now what?
- 4 - Infrastructure as code
- 4.1 - Provision, configure or deploy?
- 4.2 - Configuration management tools
- 4.3 - Introduction to Puppet: resources, providers, manifests
and dependencies
- 4.4 - Provisioning the database server
- 4.5 - Provisioning the web server
- 4.6 - Deploying the application
- 5 - Puppet beyond the basics
excerpt
- 5.1 - Classes and defined types
- 5.2 - Using modules for packaging and distribution
- 5.3 - Refactoring the web server Puppet code
- 5.4 - Separation of concerns: infrastructure vs. application
- 5.5 - Puppet forge: reusing community modules
- 5.6 - Conclusion
- 6 - Continuous integration
- 6.1 - Agile engineering practices
- 6.2 - Starting with the basics: version control
- 6.3 - Automating the build process
- 6.4 - Automated testing: reducing risk and increasing confidence
- 6.5 - What is continuous integration?
- 6.6 - Provisioning a continuous integration server
- 6.7 - Configuring the online store build
- 6.8 - Infrastructure as code for the continuous integration
server
- 7 - Deployment pipeline
excerpt
- 7.1 - Infrastructure affinity: using native packages
- 7.2 - Continuous integration for the infrastructure code
- 7.3 - Deployment pipeline
- 7.4 - Next steps
- 8 - Advanced topics
- 8.1 - Deploying in the cloud
- 8.2 - DevOps beyond tools
- 8.3 - Advanced monitoring systems
- 8.4 - Complex deployment pipelines
- 8.5 - Managing database changes
- 8.6 - Deployment orchestration
- 8.7 - Managing environment configuration
- 8.8 - Architecture evolution
- 8.9 - Security
- 8.10 - Conclusion
Author
Danilo Sato, @dtsato, has worked in the software industry for more
than 12 years. He’s a graduate of Universidade de Sao Paulo and works as
a lead consultant at ThoughtWorks, helping their clients to adopt DevOps
and Continuous Delivery practices to reduce time between an idea’s
conception and implementation.