Book description
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.
Table of contents
-
Practical DevOps
- Table of Contents
- Practical DevOps
- Credits
- About the Author
- About the Reviewers
- www.PacktPub.com
- Preface
- 1. Introduction to DevOps and Continuous Delivery
- 2. A View from Orbit
-
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
- 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
- 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
- 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
-
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
- 8. Monitoring the Code
- 9. Issue Tracking
- 10. The Internet of Things and DevOps
- Index
Product information
- Title: Practical DevOps
- Author(s):
- Release date: February 2016
- Publisher(s): Packt Publishing
- ISBN: 9781785882876
You might also like
book
Practical DevOps - Second Edition
Understand the benefits of DevOps and continuous delivery and see how they support the agile software …
book
Learning DevOps
Simplify your DevOps roles with DevOps tools and techniques Key Features Learn to utilize business resources …
book
Effective DevOps
Some companies think that adopting devops means bringing in specialists or a host of new tools. …
book
Kubernetes in Action
Kubernetes in Action is a comprehensive guide to effectively developing and running applications in a Kubernetes …