Practical DevOps
eBook - ePub

Practical DevOps

Joakim Verona

Share book
  1. 240 pages
  2. English
  3. ePUB (mobile friendly)
  4. Available on iOS & Android
eBook - ePub

Practical DevOps

Joakim Verona

Book details
Book preview
Table of contents
Citations

About This Book

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

About This Book

  • Get to know the background of DevOps so you understand the collaboration between different aspects of an IT organization and a software developer
  • Improve your organization's performance to ensure smooth production of software and services
  • Deploy top-quality software and ensure software maintenance and release management with this practical guide

Who This Book Is For

This book is aimed at developers and system administrators who wish to take on larger responsibilities and understand how the infrastructure that builds today's enterprises works. This book is also great for operations personnel who would like to better support developers. You do not need to have any previous knowledge of DevOps.

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

In Detail

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

Style and approach

This book is primarily a technical guide to DevOps with practical examples suitable for people who like to learn by implementing concrete working code. It starts out with background information and gradually delves deeper into technical subjects.

Frequently asked questions

How do I cancel my subscription?
Simply head over to the account section in settings and click on “Cancel Subscription” - it’s as simple as that. After you cancel, your membership will stay active for the remainder of the time you’ve paid for. Learn more here.
Can/how do I download books?
At the moment all of our mobile-responsive ePub books are available to download via the app. Most of our PDFs are also available to download and we're working on making the final remaining ones downloadable now. Learn more here.
What is the difference between the pricing plans?
Both plans give you full access to the library and all of Perlego’s features. The only differences are the price and subscription period: With the annual plan you’ll save around 30% compared to 12 months on the monthly plan.
What is Perlego?
We are an online textbook subscription service, where you can get access to an entire online library for less than the price of a single book per month. With over 1 million books across 1000+ topics, we’ve got you covered! Learn more here.
Do you support text-to-speech?
Look out for the read-aloud symbol on your next book to see if you can listen to it. The read-aloud tool reads text aloud for you, highlighting the text as it is being read. You can pause it, speed it up and slow it down. Learn more here.
Is Practical DevOps an online PDF/ePUB?
Yes, you can access Practical DevOps by Joakim Verona in PDF and/or ePUB format, as well as other popular books in Informatique & Réseaux informatiques. We have over one million books available in our catalogue for you to explore.

Information

Year
2016
ISBN
9781785882876

Practical DevOps


Table of Contents

Practical DevOps
Credits
About the Author
About the Reviewers
www.PacktPub.com
Support files, eBooks, discount offers, and more
Why subscribe?
Free access for Packt account holders
Preface
What this book covers
What you need for this book
Who this book is for
Conventions
Reader feedback
Customer support
Downloading the example code
Errata
Piracy
Questions
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
2. A View from Orbit
The DevOps process and Continuous Delivery – 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
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
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
Installing the git-review package
The value of history revisionism
The pull request model
GitLab
Summary
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
Building by dependency order
Build phases
Alternative build servers
Collating quality measures
About build status visualization
Taking build errors seriously
Robustness
Summary
6. Testing the Code
Manual testing
Pros and cons with test automation
Unit testing
JUnit 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
7. 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
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
8. Monitoring the Code
Nagios
Munin
Ganglia
Graphite
Log handling
Client-side logging libraries
The ELK stack
Summary
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
Bugzilla
Trac
Redmine
The GitLab issue tracker
Jira
Summary
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
Index

Practical DevOps

Copyright © 2016 Packt Publishing
All rights reserved. No part of this book may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, without the prior written permission of the publisher, except in the case of brief quotations embedded in critical articles or reviews.
Every effort has been made in the preparation of this book to ensure the accuracy of the information presented. However, the information contained in this book is sold without warranty, either express or implied. Neither the author, nor Packt Publishing, and its dealers and distributors will be held liable for any damages caused or alleged to be caused directly or indirectly by this book.
Packt Publishing has endeavored to provide trademark information about all of the companies and products mentioned in this book by the appropriate use of capitals. However, Packt Publishing cannot guarantee the accuracy of this information.
First published: February 2016
Production reference: 1100216
Published by Packt Publishing Ltd.
Livery Place
35 Livery Street
Birmingham B3 2PB, UK.
ISBN 978-1-78588-287-6
www.packtpub.com

Credits

Author
Joakim Verona
Reviewers
Per Hedman
Max Manders
Commissioning Editor
Veena Pagare
Acquisition Editor
Sonali Vernekar
Content Development Editor
Samantha Gonsalves
Technical Editor
Hussain Kanchwala
Copy Editor
Madhusudan Uchil
Project Coordinator
Sanchita Mandal
Proofreader
Safis Editing
Indexer
Hemangini Bari
Graphics
Kirk D'Penha
Production Coordinator
Shantanu N. Zagade
Cover Work
Shantanu N. Zagade

About the Author

Joakim Verona is a consultant with a specialty in Continuous Delivery and DevOps. He has worked with all aspects of systems development since 1994. He has actively contributed as the lead implementer of complex multilayered systems such as web systems, multimedia systems, and mixed software/hardware systems. His wide-ranging technical interests led him to the emerging field of DevOps in 2004, where he has stayed ever since.
Joakim completed his masters in computer science at Linköping Institute of Technology. He has also worked as a consultant in a wide range of assignments in various industries, such as banking and finance, telecom, industrial engineering, press and publishing, and game development. He is also interested in the Agile field and is a certified Scrum master, Scrum product owner, and Java professional.

About the Reviewers

Per Hedman is a ...

Table of contents