Practical DevOps

Harness the power of DevOps to boost your skill set and make your IT organization perform better

Practical DevOps

Joakim Verona

2 customer reviews
Harness the power of DevOps to boost your skill set and make your IT organization perform better
Mapt Subscription
FREE
$29.99/m after trial
eBook
$10.00
RRP $35.99
Save 72%
Print + eBook
$44.99
RRP $44.99
What do I get with a Mapt Pro subscription?
  • Unlimited access to all Packt’s 5,000+ eBooks and Videos
  • Early Access content, Progress Tracking, and Assessments
  • 1 Free eBook or Video to download and keep every month after trial
What do I get with an eBook?
  • Download this book in EPUB, PDF, MOBI formats
  • DRM FREE - read and interact with your content when you want, where you want, and how you want
  • Access this title in the Mapt reader
What do I get with Print & eBook?
  • Get a paperback copy of the book delivered to you
  • Download this book in EPUB, PDF, MOBI formats
  • DRM FREE - read and interact with your content when you want, where you want, and how you want
  • Access this title in the Mapt reader
What do I get with a Video?
  • Download this Video course in MP4 format
  • DRM FREE - read and interact with your content when you want, where you want, and how you want
  • Access this title in the Mapt reader
$0.00
$10.00
$44.99
$29.99p/m after trial
RRP $35.99
RRP $44.99
Subscription
eBook
Print + eBook
Start 30 Day Trial

Preview in Mapt

Book Details

ISBN 139781785882876
Paperback240 pages

Book Description

DevOps is a practical field that focuses on delivering business value as efficiently as possible. DevOps encompasses all the flows from code through testing environments to production environments. It stresses the cooperation between different roles, and how they can work together more closely, as the roots of the word imply—Development and Operations.

After a quick refresher to DevOps and continuous delivery, we quickly move on to looking at how DevOps affects architecture. You'll create a sample enterprise Java application that you’ll continue to work with through the remaining chapters. Following this, we explore various code storage and build server options. You will then learn how to perform code testing with a few tools and deploy your test successfully. Next, you will learn how to monitor code for any anomalies and make sure it’s running properly. Finally, you will discover how to handle logs and keep track of the issues that affect processes

Table of Contents

Chapter 1: Introduction to 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
Chapter 2: A View from Orbit
The DevOps process and Continuous Delivery – an overview
Release management
Scrum, Kanban, and the delivery pipeline
Wrapping up – a complete example
Identifying bottlenecks
Summary
Chapter 3: How DevOps Affects Architecture
Introducing software architecture
The monolithic scenario
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
Chapter 4: 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
The pull request model
GitLab
Summary
Chapter 5: 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
Build phases
Alternative build servers
Collating quality measures
About build status visualization
Taking build errors seriously
Robustness
Summary
Chapter 6: Testing the Code
Manual testing
Pros and cons with test automation
Unit testing
JUnit in general and JUnit in particular
Mocking
Test Coverage
Automated integration testing
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
Summary
Chapter 7: Deploying the Code
Why are there so many deployment systems?
Virtualization stacks
Executing code on the client
The Puppet master and Puppet agents
Ansible
PalletOps
Deploying with Chef
Deploying with SaltStack
Salt versus Ansible versus Puppet versus PalletOps execution models
Vagrant
Deploying with Docker
Comparison tables
Cloud solutions
AWS
Azure
Summary
Chapter 8: Monitoring the Code
Nagios
Munin
Ganglia
Graphite
Log handling
Summary
Chapter 9: 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
Summary
Chapter 10: 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

What You Will Learn

  • Appreciate the merits of DevOps and continuous delivery and see how DevOps supports the agile process
  • Understand how all the systems fit together to form a larger whole
  • Set up and familiarize yourself with all the tools you need to be efficient with DevOps
  • Design an application that is suitable for continuous deployment systems with Devops in mind
  • Store and manage your code effectively using different options such as Git, Gerrit, and Gitlab
  • Configure a job to build a sample CRUD application
  • Test the code using automated regression testing with Jenkins Selenium
  • Deploy your code using tools such as Puppet, Ansible, Palletops, Chef, and Vagrant
  • Monitor the health of your code with Nagios, Munin, and Graphite
  • Explore the workings of Trac—a tool used for issue tracking

Authors

Table of Contents

Chapter 1: Introduction to 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
Chapter 2: A View from Orbit
The DevOps process and Continuous Delivery – an overview
Release management
Scrum, Kanban, and the delivery pipeline
Wrapping up – a complete example
Identifying bottlenecks
Summary
Chapter 3: How DevOps Affects Architecture
Introducing software architecture
The monolithic scenario
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
Chapter 4: 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
The pull request model
GitLab
Summary
Chapter 5: 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
Build phases
Alternative build servers
Collating quality measures
About build status visualization
Taking build errors seriously
Robustness
Summary
Chapter 6: Testing the Code
Manual testing
Pros and cons with test automation
Unit testing
JUnit in general and JUnit in particular
Mocking
Test Coverage
Automated integration testing
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
Summary
Chapter 7: Deploying the Code
Why are there so many deployment systems?
Virtualization stacks
Executing code on the client
The Puppet master and Puppet agents
Ansible
PalletOps
Deploying with Chef
Deploying with SaltStack
Salt versus Ansible versus Puppet versus PalletOps execution models
Vagrant
Deploying with Docker
Comparison tables
Cloud solutions
AWS
Azure
Summary
Chapter 8: Monitoring the Code
Nagios
Munin
Ganglia
Graphite
Log handling
Summary
Chapter 9: 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
Summary
Chapter 10: 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

Book Details

ISBN 139781785882876
Paperback240 pages
Read More
From 2 reviews

Read More Reviews

Recommended for You

DevOps Automation Cookbook Book Cover
DevOps Automation Cookbook
$ 35.99
$ 10.00
Learning Docker Book Cover
Learning Docker
$ 39.99
$ 8.00
Mastering Docker Book Cover
Mastering Docker
$ 39.99
$ 10.00
Mastering Web Application Development with AngularJS Book Cover
Mastering Web Application Development with AngularJS
$ 26.99
$ 5.40
Ansible Configuration Management - Second Edition Book Cover
Ansible Configuration Management - Second Edition
$ 27.99
$ 10.00
Docker Cookbook Book Cover
Docker Cookbook
$ 35.99
$ 10.00