
This book will help everyone who is going to move to a continuous supply of software. Project managers will become familiar with the main processes, benefits and technical requirements. Developers, administrators, and architects will gain the necessary skills to organize their work, as well as learn how continuous delivery is embedded in software architecture and IT organization structure.
Eberhard Wolf will introduce you to popular advanced technologies that facilitate the work of developers: Docker, Chef, Vagrant, Jenkins, Graphite, ELK stack, JBehave and Gatling. You will go through all the stages of assembly, continuous integration, load testing, deployment and monitoring.
Who is this book for?
This book is addressed to managers, architects, developers and administrators who wish to implement a continuous deployment methodology as a method and / or a tool for integrating development and operation (DevOps) into their organization.
• In the theoretical part of the book, managers will become familiar with the process underlying continuous deployment, as well as the requirements and benefits for their enterprises. In addition, they will learn to evaluate the technical implications of implementing continuous deployment.
')
• Developers and administrators will be provided with a comprehensive introduction to the technical aspects, so that they will be able to acquire the skills necessary to design and implement a continuous deployment pipeline.
• Architects, in addition to technical aspects, will also learn about the impact of continuous deployment on software architecture (Chapter 11).
The book introduces different technologies for the implementation of continuous deployment. An example is a project in Java. For some areas - for example, implementation of acceptance tests - technologies for other programming languages ​​will be presented. The book mentions similar alternatives, but focuses on the Java language. Technologies for automated distribution of infrastructure do not depend on the programming language used. The book is especially useful to readers who actively use Java; readers will have to deal with the adaptation of the presented technologies for other languages.
Summary of Chapters
The book is divided into three parts. The first part introduces the basics necessary to understand the methodology of continuous deployment.
• Chapter 1, “Continuous Deployment: What and How?”, Introduces the terminology of continuous deployment, and also explains how and what problems it solves. Briefly introduces the continuous deployment pipeline.
Continuous deployment requires automation of infrastructure deployment — installing software on servers. Chapter 2, “Preparing the Infrastructure,” introduces some approaches to this task. Chem can be used to automate software installation. You can use Vagrant to deploy a test environment on development computers. Docker is not only a very effective virtualization solution, it can also serve as a tool for automating software installation. At the end of the first part provides a brief overview of the use of PaaS cloud solutions (Platform as a Service - platform as a service) for organizing continuous deployment.
The second part includes chapters that describe in detail the various components of the continuous deployment pipeline. After getting acquainted with the main ideas, examples of specific technologies that are used to implement the discussed pipeline components will be presented.
• Chapter 3, “Assembly Automation and Continuous Integration,” written by Bastian Spanneberg, describes what happens during the transfer of a new software version. A brief introduction to build tools, such as Gradle or Maven, and unit testing, is given, and Continuous Integration technology using Jenkins is discussed. The following is a review of the SonarQube, a static code analysis and quality control tool, and repositories, such as Nexus or Artifactory.
• Chapter 4, Acceptance Tests, introduces the use of JBehave and Selenium to automate acceptance testing.
• Chapter 5, "Bandwidth Testing," focuses exclusively on bandwidth. The role of an example in it is played by the Gatling technology.
• Chapter 6, “Research Testing,” examines the specifics of manual testing in order to test new features and identify common problems in applications.
The chapters listed above describe the initial stages of the continuous deployment pipeline. They have a major impact on software development. The following chapters introduce the techniques and techniques in areas of continuous deployment that are closer to the work environment.
Chapter 7, “Deployment - Commissioning,” describes approaches that help minimize the risks that may arise during the deployment of an application in a work environment.
• In the course of work, the application collects various data characterizing the features of its functioning. Chapter 8, Operation, introduces technologies that simplify the collection and analysis of such data: the ELK stack (Elasticsearch-Logstash-Kibana) for analyzing log files and Graphite for monitoring.
For the technologies described in these chapters, examples are provided that the reader will be able to try out on their own computer and experiment with them to gain practical experience. Thanks to the automated infrastructure, launching these examples is not difficult.
Finally, the question arises: how to implement a continuous deployment methodology and what effect will it have? These issues are discussed in the third part of the book.
• Chapter 9, “Implementing a Continuous Enterprise Deployment Methodology,” shows how you can implement a continuous deployment methodology in your organization.
• Chapter 10, “Continuous Deployment and DevOps,” describes the integration of Development (Dev) and Operations (Ops) into one organizational module (DevOps).
Continuous deployment also has an impact on application architecture. Related issues are discussed in Chapter 11, “Continuous Deployment, DevOps, and Software Architecture.”
The book ends with chapter 12, “Conclusion: Main Benefits.”
about the author
Eberhard Wolff , an employee of innoQ in Germany, has more than 15 years of experience in developing software architectures and consulting on issues that lie at the interface of business and technology. He repeatedly spoke at international conferences, was a member of program committees at several conferences, and wrote more than 100 articles and books. His professional interests include the development of modern architectures — often involving cloud technologies, continuous deployment, integration of development and operation (DevOps), microservices, and NoSQL.
»More information about the book can be found on
the publisher's website.»
Table of Contents»
ExcerptFor Habrozhiteley a 20% discount on the coupon -
Continuous delivery