_____________________________________________________________
Microservices is an architectural style that breaks large
software projects into smaller, independent, and loosely
coupled modules. Individual modules are responsible for
highly defined and discrete tasks and communicate with other
modules through simple, universally accessible application
interfaces (APIs). Each microservice is built around a
specific set of business capabilities and is independently
deployable. Thus the microservices are single-purpose
applications that can be assembled to create the highly
scalable, dynamic software systems needed in today's world
of complex, rapidly-changing Web and cloud-based business
systems. Is your company ready for this brave new
business world?
This reference guide consolidates author’s experience of
many projects and programs with customers, and insights from
many hours of intense discussions with experts from client
companies and consultancies. The book takes a holistic view
of the Microservices Architecture, while also giving
specific guidelines on how to establish and roll out
future-state Microservices Architecture based on the
methodology and approach documented in this reference guide.
Software professionals interested in learning about
Microservices and how to develop or redesign a monolithic
application using Microservices can benefit from this book.
On the other hand, if you are not a software professional,
but a leader in your company, you may really want to
consider forwarding this email to your
software/technology/business analyst colleagues.
About the Authors.
Dr. Gopala Krishna Behara is a Distinguished Member
of Technical Staff (DMTS) at Wipro Technologies, and
currently playing the role of Lead Enterprise Architect of
Architecture Group of Wipro. He is certified in Open Group
TOGAF, IBM Cloud Solutions. He serves as an Advisory
Architect and Mentor on Enterprise Architecture, Application
Portfolio Rationalization, Cloud Native Technologies,
Architecture Assurance initiatives and continues to work as
a Subject Matter Expert and Author. He has worked on
multiple IT transformation engagements in the USA, UK,
Europe, Asia Pacific and Middle East Regions that presented
a phased roadmap to transformation that maximized the
business value, while minimizing costs and risks.
Published White Papers, articles and blogs in International
Journals in SOA, BPM, Next Generation Technologies &
e-Governance space and also done significant contribution
for the Cloud Native Architecture definition across the
organisation. Published couple of books titled "Enterprise
Architecture Practitioner Hand Book" and "Next Generation
Enterprise Reference Architecture for Connected Government".
Recipient of EA Hall of Fame - Individual Leadership in EA
Practice, Promotion and Professionalisation Award, 13th
Annual Enterprise Architecture Conference, Washington, DC,
USA – 2015.
Tirumala Khandrika is Senior Architect in the
Enterprise Architecture practice of Wipro. Has 17 years of
experience in software engineering which includes software
architecture, design and development for internet/intranet,
client server applications and business application systems
for clients in USA, Europe and Asia.
Extensive experience in architecting, designing and
developing enterprise and web based applications in BFS,
manufacturing, aerospace, healthcare domains using Java/JEE,
Spring and SOA platforms. Experience in customer
relationship and successfully handled engagements in gaining
the confidence of the customer.
About WIPRO
Both authors hold leadership
positions at WIPRO, a leading global information technology,
consulting and business process services company. WIPRO
harnesses the power of cognitive computing,
hyper-automation, robotics, cloud, analytics and emerging
technologies to help its clients adapt to the digital world
and make them successful. The company is recognized globally
for its comprehensive portfolio of services, strong
commitment to sustainability and good corporate citizenship.
It has over 160,000 employees serving clients across six
continents.
________________________________
Table of Contents
Preface 1
Acknowledgements 2
1. Introduction 3
1.1. Overview 3
What is Microservice 4
1.2. Monolithic Vs Microservices Applications 5
1.3. Elements of Microservices 6
1.4. Features of Microservices 8
1.5. Basic Rules on the Usage of Microservices 8
1.6. When to do Microservices 10
1.7. When not to do Microservices 10
1.8. Benefits of Microservices 10
1.9. Summary 11
2. Service based Architectures 12
2.1 SOA Vs Microservices 12
2.2 Service Independence 15
2.3 Messaging in Microservices 16
2.4 Service Contracts 16
2.5 Service Availability 17
2.6 Security 18
2.7 Service Transactions 18
2.8 Service Taxonomy 19
2.9 Service Ownership and Coordination 19
2.10 Service Granularity 20
2.11 Service Orchestration and Choreography 21
2.12 Summary 23
3. Microservices Reference Architecture 24
3.1 Purpose of Microservices Reference Architecture 24
3.2 Common Pitfalls of Microservices Adoption 25
3.3 Drivers for Microservices Reference Architecture 25
3.4 Microservices Architecture Principles 26
3.5 Enterprise Capabilities Leveraged 28
3.6 Microservices Reference Architecture 30
3.7 Microservices based LMS Architecture 34
3.8 Benefits of Microservices Reference Architecture 36
3.9 Best Practices of Microservices Reference Architecture
36
3.10 Summary 37
4. Microservices Patterns 38
4.1 Deployment 38
4.2 Platform 40
4.3 Monitoring 41
4.4 Data 44
4.5 Communication 46
4.7 Registry & Discovery 48
4.8 UI 51
4.9 Security 52
4.10 Resiliency 52
4.11 Testing 53
4.12 Release 54
4.13 Summary 54
5. Designing Microservices System 55
5.1 Sizing of Microservices 56
5.2 Design Methodologies 56
5.3 Microservices Design Principles 63
5.4 Factors Applied to Microservices 66
5.5 Design Realization 73
5.6 Summary 75
6. Development of Microservices 76
6.1 Microservice Adoption Challenges 76
6.2 DEVELOPMENT 76
6.3 DEPLOYMENT 78
6.4 OPERATIONS 79
6.5 Ownership 83
6.6 Developing Microservices 83
6.7 Summary 100
7. Microservices and DevOps 101
7.1 Introduction to DevOps 101
7.2 How DevOps Works 101
7.3 DevOps Capabilities for Microservices 102
7.4 Principles of DevOps 104
7.5 Benefits of Microservices Leveraging DevOps 104
7.6 DevOps Framework Adoption 105
7.7 Summary 109
8. Microservices Governance 110
8.1 Introduction 110
8.2 Importance of Microservices Governance 111
8.3 Decentralized Governance 112
8.4 People 113
8.5 Technology 114
8.6 Process 115
8.7 Enterprise Transformation for Microservices 116
8.8 Summary 116
9. Microservices Maturity Model 117
9.1 Introduction 117
9.2 Maturity Assessment 118
9.3 Microservices Maturity Assessment Framework 119
9.4 Maturity Model Parameters 120
9.5 Microservices Maturity Levels 122
9.6 Maturity Assessment Methodology 123
9.7 Maturity Score Card 135
9.8 Summary 136
10. Best Practices and Conclusion 137
About the Authors 141
Review Team 142
Disclaimer 142
______________________________________________________________