[PDF] [PDF] Microservices: From Theory to Practice - IBM Redbooks

Microservices from Theory to Practice: Creating Applications in IBM Bluemix Using the Imagine the power of being seen by users who download such as AngularJS, Backbone, or EmberJS, are not without merit, only that they would be an



Previous PDF Next PDF





[PDF] Angular: From Theory To Practice - Bank Duta Kepri

24 nov 2017 · Angular From Theory To Practice Asim Hussain Version 1 2 0 Browsers will automatically try to download the gz version of files if they are 



[PDF] Chapter 19 Angular Momentum

19 mai 2017 · were used Example 19 2 Angular Momentum and Circular Motion A particle of mass m moves in a circle of radius r at an angular speed ω about 



[PDF] Preview AngularJS Tutorial (PDF Version) - Tutorialspoint

AngularJS i About the Tutorial AngularJS is a very powerful JavaScript library It is used in Single Page Application (SPA) projects It extends HTML DOM with 



[PDF] Microservices: From Theory to Practice - IBM Redbooks

Microservices from Theory to Practice: Creating Applications in IBM Bluemix Using the Imagine the power of being seen by users who download such as AngularJS, Backbone, or EmberJS, are not without merit, only that they would be an



[PDF] GRE Physics Test Practice Book - ETS

Compare your practice test results with the performance of those who properties, electron theory of metals, of wave number k and angular frequency w is



[PDF] Ebook Download Social Theory The Multicultural, Global - Webydo

The book is unique as it provides both theory and numerical programs exercises and detailed solution-giving students the opportunity to apply to Angular 4 Comprehensive You'll learn core Angular 4 concepts - from how Angular works 



[PDF] FUNDERMENTAL SURVEYING -THEORY AND PRACTICE

Horizontal length (distance) 2 Difference in height (elevation) 3 Angular direction An angle is defined as the difference in direction between two convergent lines 

[PDF] angular 5 module best practices

[PDF] angular 5 practice exercises

[PDF] angular 5 projects

[PDF] angular 5 tutorial for beginners pdf

[PDF] angular 5 tutorial for beginners w3schools

[PDF] angular 5 tutorial pdf

[PDF] angular 5 tutorial w3schools

[PDF] angular 5: from theory to practice pdf

[PDF] angular 6 architecture best practices

[PDF] angular 6 best coding practices

[PDF] angular 6 best practices 2019

[PDF] angular 6 by example

[PDF] angular 6 by example 3rd edition pdf

[PDF] angular 6 component naming convention

[PDF] angular 6 design patterns

Redbooks

Front cover

Microservices from Theory to Practice

Creating Applications in IBM Bluemix

Using the Microservices Approach

Shahir Daya

Nguyen Van Duy

Kameswara Eati

Carlos M Ferreira

Dejan Glozic

Vasfi Gucer

Manav Gupta

Sunil Joshi

Valerie Lampkin

Marcelo MartinsShishir Narain

Ramratan Vennam

International Technical Support Organization

Microservices from Theory to Practice: Creating

Applications in IBM Bluemix Using the Microservices

Approach

August 2015

SG24-8275-00

© Copyright International Business Machines Corporation 2015. All rights reserved.

Note to U.S. Government Users Restricted Rights -- Use, duplication or disclosure restricted by GSA ADP Schedule

Contract with IBM Corp.

First Edition (August 2015)

This edition applies to IBM Bluemix Version 1.0.

Note: Before using this information and the product it supports, read the information in "Notices" on

page vii. © Copyright IBM Corp. 2015. All rights reserved.iii

Contents

Notices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .vii

Trademarks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . viii

IBM Redbooks promotions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ix

Preface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi

Authors. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi

Now you can become a published author, too. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .xv

Comments welcome. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .xv

Stay connected to IBM Redbooks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xvi

Part 1. Introducing the microservices architectural style. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

Chapter 1. Motivations for microservices. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

1.1 What are microservices. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

1.1.1 Small and focused . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

1.1.2 Loosely coupled . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

1.1.3 Language-neutral . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

1.1.4 Bounded context. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

1.1.5 Comparing microservices and monolithic architectures . . . . . . . . . . . . . . . . . . . . . 6

1.2 Benefits from microservices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

1.2.1 Enterprise solutions context . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

1.2.2 Challenges with monolithic architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

1.2.3 Developer perspective . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

1.2.4 Tester perspective . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

1.2.5 Business owner perspective . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

1.2.6 Service management perspective. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

1.3 What to avoid with microservices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

1.3.1 Don't start with microservices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

1.3.2 Don't even think about microservices without DevOps. . . . . . . . . . . . . . . . . . . . . 11

1.3.3 Don't manage your own infrastructure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

1.3.4 Don't create too many microservices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

1.3.5 Don't forget to keep an eye on the potential latency issue . . . . . . . . . . . . . . . . . . 12

1.4 How is this different than service-oriented architecture?. . . . . . . . . . . . . . . . . . . . . . . . 12

1.5 Case studies and most common architectural patterns . . . . . . . . . . . . . . . . . . . . . . . . 14

1.5.1 An e-commerce discount site . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

1.5.2 Financial services company . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

1.5.3 Large brick-and-mortar retailer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

1.6 Example scenarios using microservices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

1.6.1 Cloud Trader. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

1.6.2 Online Store . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

1.6.3 Acme Air . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

Chapter 2. Elements of a microservices architecture . . . . . . . . . . . . . . . . . . . . . . . . . . 19

2.1 Characteristics of microservices architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

2.1.1 Business-oriented . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

2.1.2 Design for failure. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

2.1.3 Decentralized data management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

2.1.4 Discoverability. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

iv Microservices from Theory to Practice: Creating Applications in IBM Bluemix Using the Microservices Approach

2.1.5 Inter-service communication design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

2.1.6 Dealing with complexity. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

2.1.7 Evolutionary design. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

2.2 Designing microservices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

2.2.1 Use design thinking to scope and identify microservices . . . . . . . . . . . . . . . . . . . 29

2.2.2 Choosing the implementation stack . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

2.2.3 Sizing the microservices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

2.3 REST API and messaging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

2.3.1 REST . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

2.3.2 Messaging. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

2.3.3 REST and messaging together. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

2.4 The future of microservices. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

Chapter 3. Microservices and DevOps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

3.1 Why you should use DevOps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

3.1.1 Defining DevOps. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

3.1.2 DevOps is a prerequisite to successfully adopting microservices. . . . . . . . . . . . . 40

3.1.3 Organizing teams to support microservices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

3.1.4 Organize a DevOps team to support other microservices teams . . . . . . . . . . . . . 41

3.2 DevOps capabilities for microservices architecture. . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

3.2.1 Continuous business planning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

3.2.2 Continuous integration and collaborative development . . . . . . . . . . . . . . . . . . . . 44

3.2.3 Continuous testing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

3.2.4 Continuous release and deployment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

3.2.5 Continuous monitoring . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

3.2.6 Continuous customer feedback and optimization . . . . . . . . . . . . . . . . . . . . . . . . . 47

3.3 Microservices governance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

3.3.1 Centralized versus decentralized governance . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

3.3.2 Enterprise transformation for microservices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50

3.4 DevOps capabilities: Testing strategies for microservices . . . . . . . . . . . . . . . . . . . . . . 51

3.4.1 Considerable testing methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

3.4.2 Building a sufficient testing strategy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55

Chapter 4. Developing microservices in Bluemix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57

4.1 Bluemix introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58

4.1.1 Bluemix deployment models. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59

4.1.2 Bluemix Cloud Foundry concepts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63

4.1.3 How Bluemix works. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66

4.2 Developing microservices using Bluemix DevOps . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68

4.2.1 Bluemix DevOps introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69

4.2.2 Delivery pipeline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74

4.3 Deployment, testing, monitoring, and scaling services in Bluemix DevOps . . . . . . . . . 76

4.3.1 Deployment services in Bluemix. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76

4.3.2 Testing services in Bluemix DevOps. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78

4.3.3 Monitoring and analytics services in Bluemix . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79

4.3.4 Scaling in Bluemix. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79

4.4 Communication, session persistence, and logging in Bluemix . . . . . . . . . . . . . . . . . . . 81

4.4.1 Communication. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81

4.4.2 Session persistence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83

4.4.3 Logging in Bluemix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85

4.5 Considerations and opportunities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86

4.5.1 Microservice trends to consider . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86

4.5.2 Controlling access and visibility of endpoints . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87

Contents v4.5.3 Avoiding failures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88

4.5.4 Versioning. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89

Chapter 5. Microservices case studies in IBM. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91

5.1 Microservices implementation in IBM DevOps Services. . . . . . . . . . . . . . . . . . . . . . . . 92

5.1.1 North Star Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93

5.1.2 Delivery pipeline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95

5.1.3 REST and MQTT mirroring. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95

5.1.4 Deployment considerations. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96

5.2 Microservices case study in Bluemix console. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96

5.2.1 Assessing the task . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97

5.2.2 Peeling off Landing and Solutions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98

5.2.3 Composition of the common areas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99

5.2.4 "Lather, rinse, repeat" . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100

5.2.5 Deployment considerations. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102

5.3 Microservices case study in IBM Watson services . . . . . . . . . . . . . . . . . . . . . . . . . . . 103

5.3.1 IBM Watson Developer Cloud. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104

5.3.2 IaaS++ platform (Cloud Services Fabric) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105

5.3.3 Main components of IaaS++. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106

5.3.4 IBM Watson Developer Cloud services. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107

Part 2. Example scenarios using the microservices approach . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113

Chapter 6. Scenario 1: Transforming a monolithic application to use microservices

(CloudTrader) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115

6.1 Introduction to the sample. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116

6.2 Refactoring the application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117

6.3 The CloudTraderAccountMSA microservice. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118

6.4 The CloudTraderQuoteMSA microservice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118

6.4.1 DevOps Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119

Chapter 7. Scenario 2: Microservices built on Bluemix . . . . . . . . . . . . . . . . . . . . . . . 123

7.1 Introduction to the sample. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124

7.2 Breaking it down . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124

7.2.1 Online Store Catalog service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125

7.2.2 Orders. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126

7.2.3 Shipping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127

7.2.4 UI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128

7.3 Additional Bluemix services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129

7.3.1 DevOps Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129

7.3.2 Monitoring . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129

7.3.3 Scaling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130

Chapter 8. Scenario 3: Modifying the Acme Air application and adding fault tolerance

capabilities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131

8.1 The original Acme Air monolithic application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132

8.1.1 Deploying the Acme Air application in monolithic mode . . . . . . . . . . . . . . . . . . . 133

8.2 Redesigning application to use microservices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139

8.2.1 Deploying the Acme Air application in microservices mode . . . . . . . . . . . . . . . . 140

8.3 Adding Hystrix to monitor services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142

8.3.1 Deploying the Hystrix Dashboard to Bluemix . . . . . . . . . . . . . . . . . . . . . . . . . . . 143

vi Microservices from Theory to Practice: Creating Applications in IBM Bluemix Using the Microservices Approach

Related publications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147

IBM Redbooks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147

Other publications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147

Online resources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147

Help from IBM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148

© Copyright IBM Corp. 2015. All rights reserved.vii

Notices

This information was developed for products and services offered in the U.S.A.

IBM may not offer the products, services, or features described in this document in other countries. Consult

your local IBM representative for information about the products and services currently available in your area. Any reference to an IBM product, program, or service is not intended to state or imply that only that IBM

product, program, or service may be used. Any functionally equivalent product, program, or service that does

not infringe any IBM intellectual property right may be used instead. However, it is the user's responsibility to evaluate and verify the operation of any non-IBM product, program, or service.

IBM may have patents or pending patent applications covering subject matter described in this document. The

furnishing of this document does not grant you any license to these patents. You can send license inquiries, in

writing, to: IBM Director of Licensing, IBM Corporation, North Castle Drive, Armonk, NY 10504-1785 U.S.A. The following paragraph does not apply to the United Kingdom or any other country where such

provisions are inconsistent with local law: INTERNATIONAL BUSINESS MACHINES CORPORATION PROVIDES THIS PUBLICATION "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR

IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF NON-INFRINGEMENT,

MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Some states do not allow disclaimer of express or implied warranties in certain transactions, therefore, this statement may not apply to you.

This information could include technical inaccuracies or typographical errors. Changes are periodically made

to the information herein; these changes will be incorporated in new editions of the publication. IBM may make

improvements and/or changes in the product(s) and/or the program(s) described in this publication at any time

without notice.

Any references in this information to non-IBM websites are provided for convenience only and do not in any

manner serve as an endorsement of those websites. The materials at those websites are not part of the materials for this IBM product and use of those websites is at your own risk.

IBM may use or distribute any of the information you supply in any way it believes appropriate without incurring

any obligation to you.

Any performance data contained herein was determined in a controlled environment. Therefore, the results

obtained in other operating environments may vary significantly. Some measurements may have been made

on development-level systems and there is no guarantee that these measurements will be the same on

generally available systems. Furthermore, some measurements may have been estimated through extrapolation. Actual results may vary. Users of this document should verify the applicable data for their

specific environment.

Information concerning non-IBM products was obtained from the suppliers of those products, their published announcements or other publicly available sources. IBM has not tested those products and cannot confirm the

accuracy of performance, compatibility or any other claims related to non-IBM products. Questions on the

capabilities of non-IBM products should be addressed to the suppliers of those products.

This information contains examples of data and reports used in daily business operations. To illustrate them

as completely as possible, the examples include the names of individuals, companies, brands, and products. All of these names are fictitious and any similarity to the names and addresses used by an actual business

enterprise is entirely coincidental.

COPYRIGHT LICENSE:

This information contains sample application programs in source language, which illustrate programming techniques on various operating platforms. You may copy, modify, and distribute these sample programs in

any form without payment to IBM, for the purposes of developing, using, marketing or distributing application

programs conforming to the application programming interface for the operating platform for which the sample programs are written. These examples have not been thoroughly tested under all conditions. IBM, therefore,

cannot guarantee or imply reliability, serviceability, or function of these programs.

viiiMicroservices from Theory to Practice: Creating Applications in IBM Bluemix Using the Microservices Approach

Trademarks

IBM, the IBM logo, and ibm.com are trademarks or registered trademarks of International Business Machines

Corporation in the United States, other countries, or both. These and other IBM trademarked terms are

marked on their first occurrence in this information with the appropriate symbol (® or ™), indicating US registered or common law trademarks owned by IBM at the time this information was published. Such

trademarks may also be registered or common law trademarks in other countries. A current list of IBM trademarks is available on the Web at http://www.ibm.com/legal/copytrade.shtml

The following terms are trademarks of the International Business Machines Corporation in the United States,

other countries, or both:

Bluemix™

CICS®

Cloudant®

Concert™

DataPower®

DB2®

DOORS®

Global Business Services®Global Technology Services®

IBM®

IBM MobileFirst™

IBM UrbanCode™

IBM Watson™

Jazz™

Netcool®

Rational®Rational Team Concert™

Redbooks®

Redbooks (logo) ®

System z®

Tealeaf®

Tivoli®

WebSphere®

Worklight®

The following terms are trademarks of other companies:

CloudLayer, SoftLayer, and SoftLayer device are trademarks or registered trademarks of SoftLayer, Inc., an

IBM Company.

ITIL is a registered trademark, and a registered community trademark of The Minister for the Cabinet Office,

and is registered in the U.S. Patent and Trademark Office.

IT Infrastructure Library is a registered trademark of the Central Computer and Telecommunications Agency

which is now part of the Office of Government Commerce.

Java, and all Java-based trademarks and logos are trademarks or registered trademarks of Oracle and/or its

quotesdbs_dbs20.pdfusesText_26