The First Complete Guide to DevOps for Software Architects
DevOps promises to accelerate the release of new software features and improve monitoring of systems in production, but its crucial implications for software architects and architecture are often ignored.
In DevOps: A Software Architect's Perspective, three leading architects address these issues head-on. The authors review decisions software architects must make in order to achieve DevOps' goals and clarify how other DevOps participants are likely to impact the architect's work. They also provide the organizational, technical, and operational context needed to deploy DevOps more efficiently, and review DevOps' impact on each development phase. The authors address cross-cutting concerns that link multiple functions, offering practical insights into compliance, performance, reliability, repeatability, and security.
This guide demonstrates the authors' ideas in action with three real-world case studies: datacenter replication for business continuity, management of a continuous deployment pipeline, and migration to a microservice architecture.
Comprehensive coverage includes
Why DevOps can require major changes in both system architecture and IT roles
How virtualization and the cloud can enable DevOps practices
Integrating operations and its service lifecycle into DevOps
Designing new systems to work well with DevOps practices
Integrating DevOps with agile methods and TDD
Handling failure detection, upgrade planning, and other key issues
Managing consistency issues arising from DevOps' independent deployment models
Integrating security controls, roles, and audits into DevOps
Preparing a business plan for DevOps adoption, rollout, and measurement
Autorentext
Len Bass is a senior principal researcher at National ICT Australia Ltd. (NICTA). He joined NICTA in 2011 after 25 years at the Software Engineering Institute (SEI) at Carnegie Mellon University. He is the coauthor of two award-winning books in software architecture-Software Architecture in Practice, Third Edition (Addison-Wesley 2013) and Documenting Software Architectures: Views and Beyond, Second Edition (Addison-Wesley 2011)-as well as several other books and numerous papers in computer science and software engineering on a wide range of topics. Len has more than 50 years' experience in software development and research, which has resulted in papers on operating systems, database management systems, user interface software, software architecture, product line systems, and computer operations. He has worked or consulted in multiple domains, including scientific analysis, embedded systems, and information and financial systems.
Ingo Weber is a senior researcher in the Software Systems Research Group at NICTA in Sydney, Australia, as well as an adjunct senior lecturer at CSE at the University of New South Wales (UNSW). Prior to NICTA, Ingo held positions at UNSW and at SAP Research Karlsruhe, Germany. His research interests include cloud computing, DevOps, business process management, and artificial intelligence (AI). He has published over 60 peer-reviewed papers, and served as a reviewer or program committee member for many prestigious scientific journals and conferences. Ingo holds a Ph.D. and a Diploma from the University of Karlsruhe, and an MSc from the University of Massachusetts at Amherst.
Liming Zhu is a research group leader and principal researcher at NICTA. He holds conjoint positions at the University of New South Wales (UNSW) and the University of Sydney. Liming has published over 80 peer-reviewed papers. He formerly worked in several technology lead positions in the software industry before obtaining a Ph.D. in software engineering from UNSW. He is a committee member of the Standards Australia IT-015 (system and software engineering), contributing to ISO/SC7. Liming's research interests include software architecture and dependable systems.
Klappentext
The First Complete Guide to DevOps for Software Architects
DevOps promises to accelerate the release of new software features and improve monitoring of systems in production, but its crucial implications for software architects and architecture are often ignored.
In DevOps: A Software Architect's Perspective, three leading architects address these issues head-on. The authors review decisions software architects must make in order to achieve DevOps' goals and clarify how other DevOps participants are likely to impact the architect's work. They also provide the organizational, technical, and operational context needed to deploy DevOps more efficiently, and review DevOps' impact on each development phase. The authors address cross-cutting concerns that link multiple functions, offering practical insights into compliance, performance, reliability, repeatability, and security.
This guide demonstrates the authors' ideas in action with three real-world case studies: datacenter replication for business continuity, management of a continuous deployment pipeline, and migration to a microservice architecture.
Comprehensive coverage includes
. Why DevOps can require major changes in both system architecture and IT roles
. How virtualization and the cloud can enable DevOps practices
. Integrating operations and its service lifecycle into DevOps
. Designing new systems to work well with DevOps practices
. Integrating DevOps with agile methods and TDD
. Handling failure detection, upgrade planning, and other key issues
. Managing consistency issues arising from DevOps' independent deployment models
. Integrating security controls, roles, and audits into DevOps
. Preparing a business plan for DevOps adoption, rollout, and measurement
Inhalt
Preface xi
Previewing the Book xiii
Acknowledgments xv
Legend xvii
Part I: Background 1
Chapter 1: What Is DevOps? 3
1.1 Introduction 3
1.2 Why DevOps? 7
1.3 DevOps Perspective 11
1.4 DevOps and Agile 12
1.5 Team Structure 13
1.6 Coordination 17
1.7 Barriers 20
1.8 Summary 23
1.9 For Further Reading 24
Chapter 2: The Cloud as a Platform 27
2.1 Introduction 27
2.2 Features of the Cloud 29
2.3 DevOps Consequences of the Unique Cloud Features 41
2.4 Summary 44
2.5 For Further Reading 45
Chapter 3: Operations 47
3.1 Introduction 47
3.2 Operations Services 47
3.3 Service Operation Functions 57
3.4 Continual Service Improvement 58
3.5 Operations and DevOps 59
3.6 Summary 61
3.7 For Further Reading 61
Part II: The Deployment Pipeline 63
Chapter 4: Overall Architecture 65
4.1 Do DevOps Practices Require Architectural Change? 65
4.2 Overall Architecture Structure 66
4.3 Quality Discussion of Microservice Architecture 72
4.4 Amazon's Rules for Teams 75
4.5 Microservice Adoption for Existing Systems 76
4.6 Summary 77
4.7 For Further Reading 78
Chapter 5: Building and Testing 79
5.1 Introduction 79
5.2 Moving a System Through the Deployment Pipeline 81
5.3 Crosscutting Aspects 84
5.4 Development and Pre-commit Testing 86
5.5 Build and Integration Testing 91
5.6 UAT/Staging/Performance Testing 95
5.7 Production 96
5.8 Incidents 98
5.9 Summary 98
5.10 For Further Reading 99
Chapter 6: Deployment 101
6.1 Introduction 101
6.2…