DevOps: A Software Architect's Perspective, 1st edition
Published by Addison-Wesley Professional (May 18, 2015) © 2015
- Len Bass
- Ingo Weber
- Liming Zhu
eTextbook
- Available for purchase from all major ebook resellers, including InformIT.com.
- To request a review copy, click on the "Request a Review Copy" button.
- A print text (hardcover or paperback)Â
- Free shipping
- Also available for purchase as an ebook from all major ebook resellers, including InformIT.com
This book provides a conceptual discussion of DevOps practices and their implications on system design. It covers team practices related to DevOps, build and test, deployment, and post deployment. This is the only book that deals with the system implications of DevOps. It includes case studies, references, practical examples and checklists for architects.
- Teaches students to:
- Deploy DevOps more efficiently, avoid problems, and drive far more value
- Design systems to be compatible with DevOps practices
- Understand the tradeoffs implicit in using each key DevOps practice
- Integrate DevOps with agile methods
The full text downloaded to your computer
With eBooks you can:
- search for key concepts, words and phrases
- make highlights and notes as you study
- share your notes with friends
eBooks are downloaded to your computer and accessible either offline through the Bookshelf (available as a free download), available online and also via the iPad and Android apps.
Upon purchase, you'll gain instant access to this eBook.
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 Strategies for Managing a Deployment 102
6.3 Logical Consistency 105
6.4 Packaging 111
6.5 Deploying to Multiple Environments 114
6.6 Partial Deployment 117
6.7 Rollback 118
6.8 Tools 121
6.9 Summary 121
6.10 For Further Reading 122
Â
Part III: Crosscutting Concerns 125
Â
Chapter 7: Monitoring 127
7.1 Introduction 127
7.2 What to Monitor 129
7.3 How to Monitor 134
7.4 When to Change the Monitoring Configuration 139
7.5 Interpreting Monitoring Data 139
7.6 Challenges 143
7.7 Tools 147
7.8 Diagnosing an Anomaly from Monitoring Data–the Case of Platformer.com 148
7.9 Summary 152
7.10 For Further Reading 153
Â
Chapter 8: Security and Security Audits 155
8.1 What Is Security? 156
8.2 Threats 157
8.3 Resources to Be Protected 159
8.4 Security Roles and Activities 162
8.5 Identity Management 165
8.6 Access Control 169
8.7 Detection, Auditing, and Denial of Service 172
8.8 Development 173
8.9 Auditors 174
8.10 Application Design Considerations 175
8.11 Deployment Pipeline Design Considerations 176
8.12 Summary 177
8.13 For Further Reading 178
Â
Chapter 9: Other Ilities 181
9.1 Introduction 181
9.2 Repeatability 183
9.3 Performance 186
9.4 Reliability 188
9.5 Recoverability 190
9.6 Interoperability 191
9.7 Testability 192
9.8 Modifiability 194
9.9 Summary 195
9.10 For Further Reading 196
Â
Chapter 10: Business Considerations 197
10.1 Introduction 197
10.2 Business Case 197
10.3 Measurements and Compliance to DevOps Practices 206
10.4 Points of Interaction Between Dev and Ops 209
10.5 Summary 211
10.6 For Further Reading 211
Â
Part IV: Case Studies 213
Â
Chapter 11: Supporting Multiple Datacenters 215
11.1 Introduction 215
11.2 Current State 216
11.3 Business Logic and Web Tiers 216
11.4 Database Tier 220
11.5 Other Infrastructure Tools 223
11.6 Datacenter Switch 225
11.7 Testing 232
11.8 Summary 233
11.9 For Further Reading 234
Â
Chapter 12: Implementing a Continuous Deployment Pipeline for Enterprises 237
12.1 Introduction 237
12.2 Organizational Context 238
12.3 The Continuous Deployment Pipeline 240
12.4 Baking Security into the Foundations of the CD Pipeline 257
12.5 Advanced Concepts 259
12.6 Summary 261
12.7 For Further Reading 262
Â
Chapter 13: Migrating to Microservices 263
13.1 Introduction to Atlassian 263
13.2 Building a Platform for Deploying Microservices 265
13.3 BlobStore: A Microservice Example 268
13.4 Development Process 273
13.5 Evolving BlobStore 279
13.6 Summary 284
13.7 For Further Reading 284
Â
Part V: Moving into the Future 285
Â
Chapter 14: Operations as a Process 287
14.1 Introduction 287
14.2 Motivation and Overview 288
14.3 Offline Activities 289
14.4 Online Activities 294
14.5 Error Diagnosis 296
14.6 Monitoring 296
14.7 Summary 298
14.8 For Further Reading 298
Â
Chapter 15: The Future of DevOps 299
15.1 Introduction 299
15.2 Organizational Issues 300
15.3 Process Issues 302
15.4 Technology Issues 305
15.5 What About Error Reporting and Repair? 309
15.6 Final Words 310
15.7 For Further Reading 310
Â
References 311
About the Authors 315
Index 317
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 manÂagement systems, user interface software, software architecture, product line sysÂtems, 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 posiÂtions 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 jourÂnals 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 architecÂture and dependable systems.
Need help? Get in touch