Practical DevOps
eBook - ePub

Practical DevOps

Joakim Verona

Condividi libro
  1. 240 pagine
  2. English
  3. ePUB (disponibile sull'app)
  4. Disponibile su iOS e Android
eBook - ePub

Practical DevOps

Joakim Verona

Dettagli del libro
Anteprima del libro
Indice dei contenuti
Citazioni

Informazioni sul libro

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.

Domande frequenti

Come faccio ad annullare l'abbonamento?
È semplicissimo: basta accedere alla sezione Account nelle Impostazioni e cliccare su "Annulla abbonamento". Dopo la cancellazione, l'abbonamento rimarrà attivo per il periodo rimanente già pagato. Per maggiori informazioni, clicca qui
È possibile scaricare libri? Se sì, come?
Al momento è possibile scaricare tramite l'app tutti i nostri libri ePub mobile-friendly. Anche la maggior parte dei nostri PDF è scaricabile e stiamo lavorando per rendere disponibile quanto prima il download di tutti gli altri file. Per maggiori informazioni, clicca qui
Che differenza c'è tra i piani?
Entrambi i piani ti danno accesso illimitato alla libreria e a tutte le funzionalità di Perlego. Le uniche differenze sono il prezzo e il periodo di abbonamento: con il piano annuale risparmierai circa il 30% rispetto a 12 rate con quello mensile.
Cos'è Perlego?
Perlego è un servizio di abbonamento a testi accademici, che ti permette di accedere a un'intera libreria online a un prezzo inferiore rispetto a quello che pagheresti per acquistare un singolo libro al mese. Con oltre 1 milione di testi suddivisi in più di 1.000 categorie, troverai sicuramente ciò che fa per te! Per maggiori informazioni, clicca qui.
Perlego supporta la sintesi vocale?
Cerca l'icona Sintesi vocale nel prossimo libro che leggerai per verificare se è possibile riprodurre l'audio. Questo strumento permette di leggere il testo a voce alta, evidenziandolo man mano che la lettura procede. Puoi aumentare o diminuire la velocità della sintesi vocale, oppure sospendere la riproduzione. Per maggiori informazioni, clicca qui.
Practical DevOps è disponibile online in formato PDF/ePub?
Sì, puoi accedere a Practical DevOps di Joakim Verona in formato PDF e/o ePub, così come ad altri libri molto apprezzati nelle sezioni relative a Informatik e Computernetzwerke. Scopri oltre 1 milione di libri disponibili nel nostro catalogo.

Informazioni

Anno
2016
ISBN
9781785882876
Edizione
1
Argomento
Informatik

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 ...

Indice dei contenuti