Book description
Understand the benefits of DevOps and continuous delivery and see how they support the agile software development process
About This Book- Learn how DevOps can accelerate your entire software development life cycle
- Improve your organization's performance to ensure the smooth production of software and services
- Get hands-on experience in using efficient DevOps tools to better effect
If you're a developer or system administrator looking to take on larger responsibilities and understand how the infrastructure that builds today's enterprises works, this is the book for you. This book will also help you greatly if you're an operations worker who would like to better support developers. You do not need any previous knowledge of DevOps to understand the concepts in this book.
What You Will Learn- Understand how all deployment systems fit together to form a larger system
- Set up and familiarize yourself with all the tools you need to be efficient with DevOps
- Design an application suitable for continuous deployment systems with DevOps in mind
- Store and manage your code effectively using Git, Gerrit, Gitlab, and more
- Configure a job to build a sample CRUD application
- Test your code using automated regression testing with Jenkins Selenium
- Deploy your code using tools such as Puppet, Ansible, Palletops, Chef, and Vagrant
DevOps is a practical field that focuses on delivering business value as efficiently as possible. DevOps encompasses all code workflows from testing environments to production environments. It stresses cooperation between different roles, and how they can work together more closely, as the roots of the word imply—Development and Operations.
Practical DevOps begins with a quick refresher on DevOps and continuous delivery and quickly moves on to show you how DevOps affects software architectures. You'll create a sample enterprise Java application that you''ll continue to work with through the remaining chapters. Following this, you will explore various code storage and build server options. You will then learn how to test your code with a few tools and deploy your test successfully. In addition to this, you will also see how to monitor code for any anomalies and make sure that it runs as expected. Finally, you will discover how to handle logs and keep track of the issues that affect different processes.
By the end of the book, you will be familiar with all the tools needed to deploy, integrate, and deliver efficiently with DevOps.
Style and approachThis book is primarily a technical guide to DevOps with practical examples suitable for people who like to learn by implementing concrete working code.
Table of contents
- Title Page
- Copyright and Credits
- Packt Upsell
- Contributors
- Preface
- Introducing DevOps and Continuous Delivery
- A View from Orbit
-
How DevOps Affects Architecture
- Introducing software architecture
- The monolithic scenario
- The Twelve Factors
- Architecture rules of thumb
- Back to the monolithic scenario
- A practical example
- Handling database migrations
- Manual installation
- Microservices
- Interlude – Conway's law
- How to keep service interfaces forward compatible
- Microservices and the data tier
- DevOps, architecture, and resilience
- Summary
-
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
- Shared authentication
- Hosted Git servers
- Large binary files
- Trying out different Git server implementations
- Docker intermission
- Gerrit
- The pull request model
- GitLab
- Summary
-
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
-
Testing the Code
- Manual testing
- Pros and cons with test automation
- Unit testing
- xUnit 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
-
Deploying the Code
- Why are there so many deployment systems?
- Virtualization stacks
- Executing code on the client
- The Puppet master and Puppet agents
- Ansible
- Deploying with Chef
- Deploying with SaltStack
- Salt versus Ansible versus Puppet execution models
- Vagrant
- Deploying with Docker
- Comparison tables
- Cloud solutions
- AWS
- Azure
- Summary
- Monitoring the Code
- Issue Tracking
- The Internet of Things and DevOps
- Other Books You May Enjoy
Product information
- Title: Practical DevOps - Second Edition
- Author(s):
- Release date: May 2018
- Publisher(s): Packt Publishing
- ISBN: 9781788392570
You might also like
book
Practical DevOps
Harness the power of DevOps to boost your skill set and make your IT organization perform …
book
Learning DevOps - Second Edition
Implement modern DevOps techniques to increase business productivity, agility, reliability, security, and scalability Key Features Learn …
book
Modern DevOps Practices
Enhance DevOps workflows by integrating the functionalities of Docker, Kubernetes, Spinnaker, Ansible, Terraform, Flux CD, CaaS, …
book
Learning DevOps
Simplify your DevOps roles with DevOps tools and techniques Key Features Learn to utilize business resources …