Table Of ContentMigrating to
Azure
Transforming Legacy Applications into
Scalable Cloud-First Solutions
—
Josh Garverick
Migrating to Azure
Transforming Legacy Applications
into Scalable Cloud-First Solutions
Josh Garverick
Migrating to Azure
Josh Garverick
AKRON, New York, USA
ISBN-13 (pbk): 978-1-4842-3584-3 ISBN-13 (electronic): 978-1-4842-3585-0
https://doi.org/10.1007/978-1-4842-3585-0
Library of Congress Control Number: 2018960822
Copyright © 2018 by Josh Garverick
Tis work is subject to copyright. All rights are reserved by the Publisher, whether the whole or part of the
material is concerned, specifcally the rights of translation, reprinting, reuse of illustrations, recitation,
broadcasting, reproduction on microflms or in any other physical way, and transmission or information
storage and retrieval, electronic adaptation, computer software, or by similar or dissimilar methodology now
known or hereafter developed.
Trademarked names, logos, and images may appear in this book. Rather than use a trademark symbol with
every occurrence of a trademarked name, logo, or image we use the names, logos, and images only in an
editorial fashion and to the beneft of the trademark owner, with no intention of infringement of the
trademark.
Te use in this publication of trade names, trademarks, service marks, and similar terms, even if they are not
identifed as such, is not to be taken as an expression of opinion as to whether or not they are subject to
proprietary rights.
While the advice and information in this book are believed to be true and accurate at the date of publication,
neither the authors nor the editors nor the publisher can accept any legal responsibility for any errors or
omissions that may be made. Te publisher makes no warranty, express or implied, with respect to the
material contained herein.
Managing Director, Apress Media LLC: Welmoed Spahr
Acquisitions Editor: Joan Murray
Development Editor: Laura Berendson
Coordinating Editor: Jill Balzano
Cover designed by eStudioCalamar
Cover image designed by Freepik (www.freepik.com)
Distributed to the book trade worldwide by Springer Science+Business Media New York, 233 Spring Street,
6th Floor, New York, NY 10013. Phone 1-800-SPRINGER, fax (201) 348-4505, e-mail
Tis work is dedicated to my wife Melissa, and my daughter Audrey,
for allowing me to chase my lofty goal of getting published.
Table of Contents
About the Author ��������������������������������������������������������������������������������������������������� xiii
About the Technical Reviewer ���������������������������������������������������������������������������������xv
Acknowledgments �������������������������������������������������������������������������������������������������xvii
Introduction ������������������������������������������������������������������������������������������������������������xix
Part I: Assessing the Legacy �������������������������������������������������������������������������� 1
Chapter 1: T he Baseline �������������������������������������������������������������������������������������������� 3
Conducting the Initial Discovery ��������������������������������������������������������������������������������������������������� 4
Getting Details on the Short (and Long)-Term Goals of the Business ������������������������������������������� 8
Learning the Business Context of Application Domains �������������������������������������������������������������� 11
Gathering Functional and Nonfunctional Requirements ������������������������������������������������������������� 14
Discovering Integration Points ���������������������������������������������������������������������������������������������������� 16
Creating and Examining Dependency Graphs ����������������������������������������������������������������������������� 19
Finding Existing Build and Release Pipelines ����������������������������������������������������������������������������� 21
Proactively Seeking Out Pain Points ������������������������������������������������������������������������������������������� 22
Summary������������������������������������������������������������������������������������������������������������������������������������� 23
Chapter 2: D omain Architectures ��������������������������������������������������������������������������� 25
Identifying Primary, Secondary, and Tertiary Components ���������������������������������������������������������� 25
Documenting Application Collaborations ������������������������������������������������������������������������������������ 27
Locating the Components ����������������������������������������������������������������������������������������������������������� 29
Constructing a Basic Infrastrucutre View ������������������������������������������������������������������������������������ 31
Enhancing the Infrastructure View ���������������������������������������������������������������������������������������������� 32
Physical Devices �������������������������������������������������������������������������������������������������������������������� 33
Networking ���������������������������������������������������������������������������������������������������������������������������� 34
v
Table of ConTenTs
Seeking Interactions with Applications, Technology and Data ���������������������������������������������������� 35
Determining Information Consistency ����������������������������������������������������������������������������������������� 36
Go with the Data Flow ����������������������������������������������������������������������������������������������������������������� 38
Immediate Consistency ��������������������������������������������������������������������������������������������������������� 38
Eventual Consistency������������������������������������������������������������������������������������������������������������� 40
Fleshing out the Build Process (Further) ������������������������������������������������������������������������������������� 41
Lighting up the Runway �������������������������������������������������������������������������������������������������������������� 41
Summary������������������������������������������������������������������������������������������������������������������������������������� 43
Chapter 3: S ecurity and Compliance ���������������������������������������������������������������������� 45
Leading in with Expectations ������������������������������������������������������������������������������������������������������ 45
Security Controls ������������������������������������������������������������������������������������������������������������������������� 46
PCI DSS ���������������������������������������������������������������������������������������������������������������������������������� 46
GDPR �������������������������������������������������������������������������������������������������������������������������������������� 51
Identifying Domain Risk Areas ���������������������������������������������������������������������������������������������������� 53
Data Security ������������������������������������������������������������������������������������������������������������������������� 53
Application Security��������������������������������������������������������������������������������������������������������������� 55
Infrastructure Security ����������������������������������������������������������������������������������������������������������� 57
Deployment Security ������������������������������������������������������������������������������������������������������������� 59
Software Security ������������������������������������������������������������������������������������������������������������������ 60
Mitigating the Risks �������������������������������������������������������������������������������������������������������������������� 61
Risk Register ������������������������������������������������������������������������������������������������������������������������� 61
Risk Mitigation Plan ��������������������������������������������������������������������������������������������������������������� 63
Preparing for Regulatory and Compliance Audits ������������������������������������������������������������������ 63
Summary������������������������������������������������������������������������������������������������������������������������������������� 64
Chapter 4: O perating Models ���������������������������������������������������������������������������������� 65
Documenting the Existing Support Model ����������������������������������������������������������������������������������� 67
Sketching out the Process ����������������������������������������������������������������������������������������������������� 68
Documenting the Suppliers ��������������������������������������������������������������������������������������������������� 69
Lighting up the Locations ������������������������������������������������������������������������������������������������������ 69
vi
Table of ConTenTs
Organizing the Organizational Structure ������������������������������������������������������������������������������� 70
Inventorying the Information Systems ���������������������������������������������������������������������������������� 70
Managing Metrics and the System of Management �������������������������������������������������������������� 71
Zeroing in on Baseline Details ���������������������������������������������������������������������������������������������������� 73
Tracing the Escalation Paths ������������������������������������������������������������������������������������������������� 75
Collating the Baseline and Target Models ����������������������������������������������������������������������������������� 77
Baseline Operating Model—Andromeda ������������������������������������������������������������������������������� 77
Baseline Operating Model—Gamecorp ��������������������������������������������������������������������������������� 77
Beginning the Target Operating Model ���������������������������������������������������������������������������������� 78
Summary������������������������������������������������������������������������������������������������������������������������������������� 82
Part II: Planning for the Future ��������������������������������������������������������������������������� 83
Chapter 5: T he Wireframe ��������������������������������������������������������������������������������������� 85
Common Migration Scenarios ����������������������������������������������������������������������������������������������������� 85
Case 1: Lift and Shift ������������������������������������������������������������������������������������������������������������� 85
Case 2: Greenfeld ����������������������������������������������������������������������������������������������������������������� 86
Case 3: Hybrid ����������������������������������������������������������������������������������������������������������������������� 86
Case 4: Lift, Shift, and Enhance ��������������������������������������������������������������������������������������������� 87
The “Baseline” Target State �������������������������������������������������������������������������������������������������������� 87
Business Architecture ������������������������������������������������������������������������������������������������������������ 88
Physical Architecture ������������������������������������������������������������������������������������������������������������� 88
Application Architecture �������������������������������������������������������������������������������������������������������� 89
Data Architecture ������������������������������������������������������������������������������������������������������������������� 90
Technology Architecture �������������������������������������������������������������������������������������������������������� 90
Security Architecture ������������������������������������������������������������������������������������������������������������� 93
Deployment Architecture ������������������������������������������������������������������������������������������������������� 94
Reviewing the Roadmap ������������������������������������������������������������������������������������������������������������� 94
Work Breakdown Structure ��������������������������������������������������������������������������������������������������� 94
Point of Sale Upgrades ���������������������������������������������������������������������������������������������������������� 95
Identity Providers ������������������������������������������������������������������������������������������������������������������� 96
vii
Table of ConTenTs
Selecting the Right Services ������������������������������������������������������������������������������������������������������� 96
Conducting Assessments of Options ������������������������������������������������������������������������������������������� 97
Reviewing Assessments with Stakeholders ����������������������������������������������������������������������������� 100
Going Through Peer Review ������������������������������������������������������������������������������������������������������ 101
Summary����������������������������������������������������������������������������������������������������������������������������������� 102
Chapter 6: C apacity Planning ������������������������������������������������������������������������������� 105
Network Architecture ���������������������������������������������������������������������������������������������������������������� 105
Laying the Groundwork ������������������������������������������������������������������������������������������������������� 106
Network Peering ������������������������������������������������������������������������������������������������������������������ 107
ExpressRoute, the Backplane, and the Edge ����������������������������������������������������������������������� 107
Peering Routes and Custom Routes ������������������������������������������������������������������������������������ 109
Ingress Points and Load Balancing ������������������������������������������������������������������������������������� 109
Exploring Storage Options ��������������������������������������������������������������������������������������������������� 111
Application Architecture ������������������������������������������������������������������������������������������������������������ 114
Event-Driven Architecture ��������������������������������������������������������������������������������������������������� 114
Container Registries and Container Services ���������������������������������������������������������������������� 115
Data Architecture ���������������������������������������������������������������������������������������������������������������������� 117
Backup and Recovery ��������������������������������������������������������������������������������������������������������������� 118
Summary����������������������������������������������������������������������������������������������������������������������������������� 119
Chapter 7: P erformance Considerations ��������������������������������������������������������������� 121
The Impact of Geography ���������������������������������������������������������������������������������������������������������� 122
Anticipating Traffc Patterns ������������������������������������������������������������������������������������������������������ 123
Performance Under Load ���������������������������������������������������������������������������������������������������������� 124
Performance Under Stress �������������������������������������������������������������������������������������������������������� 133
Performance During Chaos ������������������������������������������������������������������������������������������������������� 134
Considering Component Use Cases ������������������������������������������������������������������������������������������ 136
Application Gateway ������������������������������������������������������������������������������������������������������������ 136
Azure Container Registry ����������������������������������������������������������������������������������������������������� 138
Azure Container Services ���������������������������������������������������������������������������������������������������� 138
viii
Table of ConTenTs
Dealing with Data ���������������������������������������������������������������������������������������������������������������������� 139
Message Payloads ��������������������������������������������������������������������������������������������������������������� 140
Inbound and Outbound API Payloads ����������������������������������������������������������������������������������� 140
Indexing, Storage, and Regionalization �������������������������������������������������������������������������������� 141
Summary����������������������������������������������������������������������������������������������������������������������������������� 142
Chapter 8: T he Target ������������������������������������������������������������������������������������������� 145
Solution Architecture����������������������������������������������������������������������������������������������������������������� 145
Infrastructure Architecture �������������������������������������������������������������������������������������������������������� 147
Network Confguration and Topology ����������������������������������������������������������������������������������� 147
Network Security Groups ����������������������������������������������������������������������������������������������������� 149
Traffc Management������������������������������������������������������������������������������������������������������������� 150
Setting up and Converting DNS Zones��������������������������������������������������������������������������������� 150
Business Continuity and Disaster Recovery ������������������������������������������������������������������������ 151
Application Architecture ������������������������������������������������������������������������������������������������������������ 152
Adoption of Azure Kubernetes Service �������������������������������������������������������������������������������� 152
Migration of the Gamecorp Portal ��������������������������������������������������������������������������������������� 154
Messaging and Integration Points ��������������������������������������������������������������������������������������� 155
Data Architecture ���������������������������������������������������������������������������������������������������������������������� 157
Changes to Data Flows �������������������������������������������������������������������������������������������������������� 157
Event Structuring ����������������������������������������������������������������������������������������������������������������� 158
Problems with Persistence �������������������������������������������������������������������������������������������������� 160
Security Architecture ���������������������������������������������������������������������������������������������������������������� 161
Bringing RBAC Back ������������������������������������������������������������������������������������������������������������ 161
HSTS, TLS, and HTTPS ��������������������������������������������������������������������������������������������������������� 163
Web Application Firewall ����������������������������������������������������������������������������������������������������� 164
Next-Generation Firewall ����������������������������������������������������������������������������������������������������� 164
Deployment Architecture ����������������������������������������������������������������������������������������������������������� 165
Summary����������������������������������������������������������������������������������������������������������������������������������� 166
ix
Table of ConTenTs
Part III: Bringing it to the Cloud ������������������������������������������������������������������������ 169
Chapter 9: T ransition Architectures ���������������������������������������������������������������������� 171
Focusing on Security and Access ��������������������������������������������������������������������������������������������� 171
Role-Based Access Control ������������������������������������������������������������������������������������������������� 172
Microsoft Security Center ���������������������������������������������������������������������������������������������������� 173
Azure Policy Management ��������������������������������������������������������������������������������������������������� 174
Building Operational Effciencies ���������������������������������������������������������������������������������������������� 178
Cost Controls ����������������������������������������������������������������������������������������������������������������������� 178
Azure Automation Accounts ������������������������������������������������������������������������������������������������� 180
Microsoft Operations Management Suite ���������������������������������������������������������������������������� 187
Investing in the Developer Experience �������������������������������������������������������������������������������������� 187
Preparing to Shift Left ��������������������������������������������������������������������������������������������������������� 188
DevOps Pipelines ����������������������������������������������������������������������������������������������������������������� 191
DevTest Labs ����������������������������������������������������������������������������������������������������������������������� 192
Summary����������������������������������������������������������������������������������������������������������������������������������� 197
Chapter 10: D evelopment Concepts ���������������������������������������������������������������������� 199
Start with the Big Picture ���������������������������������������������������������������������������������������������������������� 199
Building on Continuous Integration ������������������������������������������������������������������������������������������� 201
Source and Dependency Scanning ������������������������������������������������������������������������������������������� 204
It’s Not Delivery, It’s Deployment����������������������������������������������������������������������������������������������� 205
Artifact Management ���������������������������������������������������������������������������������������������������������������� 205
Working with Continuous Testing ���������������������������������������������������������������������������������������������� 210
Test Classifcation ���������������������������������������������������������������������������������������������������������������� 211
Resource Validation ������������������������������������������������������������������������������������������������������������� 213
Testing the Developer Experience ��������������������������������������������������������������������������������������������� 213
Automating the Developer Experience �������������������������������������������������������������������������������������� 215
Summary����������������������������������������������������������������������������������������������������������������������������������� 220
x