Vert.X Microservices on Red Hat Openshift Container Platform 3

Vert.X Microservices on Red Hat Openshift Container Platform 3

Reference Architectures 2018 Vert.x Microservices on Red Hat OpenShift Container Platform 3 Last Updated: 2018-04-08 Reference Architectures 2018 Vert.x Microservices on Red Hat OpenShift Container Platform 3 Babak Mozaffari [email protected] Legal Notice Copyright © 2018 Red Hat, Inc. The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/ . In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version. Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law. Red Hat, Red Hat Enterprise Linux, the Shadowman logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries. Linux ® is the registered trademark of Linus Torvalds in the United States and other countries. Java ® is a registered trademark of Oracle and/or its affiliates. XFS ® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries. MySQL ® is a registered trademark of MySQL AB in the United States, the European Union and other countries. Node.js ® is an official trademark of Joyent. Red Hat Software Collections is not formally related to or endorsed by the official Joyent Node.js open source or commercial project. The OpenStack ® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community. All other trademarks are the property of their respective owners. Abstract This reference architecture demonstrates the design, development, and deployment of Vert.x Microservices on Red Hat® OpenShift Container Platform 3. Table of Contents Table of Contents .C .O . M. .M . E. N. .T .S . .A .N . D. .F . E. E. D. .B . A. C. .K . .5 . .C .H . A. P. .T .E .R . .1 .. .E .X . E. C. .U .T . I.V .E . S. .U .M . M. .A . R. .Y . .6 . .C .H . A. P. .T .E .R . .2 .. .S .O . F. T. .W . A. .R .E . .S .T .A . C. K. .7 . 2.1. FRAMEWORK 7 2.2. CLIENT LIBRARY 7 2.2.1. Overview 7 2.2.2. Ribbon 7 2.2.3. gRPC 7 2.2.4. Vert.x Web Client 7 2.3. SERVICE REGISTRY 7 2.3.1. Overview 8 2.3.2. Eureka 8 2.3.3. Consul 8 2.3.4. ZooKeeper 8 2.3.5. OpenShift 8 2.4. LOAD BALANCER 8 2.4.1. Overview 8 2.4.2. Ribbon 9 2.4.3. gRPC 9 2.4.4. OpenShift Service 9 2.5. CIRCUIT BREAKER 9 2.5.1. Overview 9 2.5.2. Hystrix 9 2.5.3. Vert.x Circuit Breaker 9 2.6. EXTERNALIZED CONFIGURATION 9 2.6.1. Overview 9 2.6.2. Spring Cloud Config 10 2.6.3. OpenShift ConfigMaps 10 2.7. DISTRIBUTED TRACING 10 2.7.1. Overview 10 2.7.2. Jaeger 10 2.8. PROXY/ROUTING 10 2.8.1. Overview 10 2.8.2. Zuul 10 2.8.3. Istio 10 2.8.4. Custom Proxy 11 .C .H . A. P. .T .E .R . .3 .. .R . E. F. E. .R .E . N. C. .E . A. .R .C . H. .I T. E. C. .T .U . R. E. E. N. .V .I R. .O . N. M. .E . N. T. .1 .2 . .C .H . A. P. .T .E .R . .4 .. .C . R. E. .A .T .I N. .G . .T .H . E. .E .N . V. I.R . O. .N . M. .E .N . T. .1 .7 . 4.1. OVERVIEW 17 4.2. PROJECT DOWNLOAD 17 4.3. SHARED STORAGE 17 4.4. OPENSHIFT CONFIGURATION 18 4.5. JAEGER DEPLOYMENT 18 4.6. SERVICE DEPLOYMENT 21 4.7. FLIGHT SEARCH 22 4.8. EXTERNAL CONFIGURATION 23 4.9. A/B TESTING 25 1 Reference Architectures 2018 Vert.x Microservices on Red Hat OpenShift Container Platform 3 .C .H . A. P. .T .E .R . .5 .. .D . E. S. I.G . N. A. N. .D . .D .E . V. E. L. .O .P . M. .E .N . T. .2 .8 . 5.1. OVERVIEW 28 5.2. MAVEN PROJECT MODEL 28 5.2.1. Supported Software Components 28 5.2.1.1. Red Hat Supported Software 28 5.2.1.2. Community Open-Source Software 29 5.2.2. OpenShift Health Probes 29 5.3. RESOURCE LIMITS 30 5.4. VERT.X REST SERVICE 31 5.4.1. Overview 31 5.4.2. Vert.x REST Service 31 5.4.3. Startup Initialization 32 5.5. VERT.X WEB CLIENT AND LOAD BALANCING 32 5.5.1. Overview 32 5.5.2. Vert.x Web Client 33 5.6. VERT.X WEB APPLICATION 34 5.6.1. Overview 34 5.6.2. Context Disambiguation 34 5.6.3. Bower Package Manager 34 5.6.4. PatternFly 34 5.6.5. JavaScript 35 5.6.5.1. jQuery UI 35 5.6.5.2. jQuery Bootstrap Table 35 5.7. VERT.X CIRCUIT BREAKER 35 5.7.1. Overview 35 5.7.2. Circuit Breaker 35 5.8. OPENSHIFT CONFIGMAP 37 5.8.1. Overview 37 5.8.2. Property File Mount 37 5.9. VERT.X CONCURRENCY 37 5.9.1. Verticles 38 5.9.2. Worker Verticles 38 5.9.3. Combining Patterns 39 5.9.4. Reactive Patterns 40 5.9.5. Orchestrating Reactive Calls 41 5.10. JAEGER 43 5.10.1. Overview 43 5.10.2. Cassandra Database 43 5.10.2.1. Persistence 43 5.10.2.2. Persistent Volume Claims 43 5.10.2.3. Persistent Volume 44 5.10.3. Jaeger Image 44 5.10.4. Jaeger Tracing Client 44 5.10.4.1. Tracing Outgoing Calls 46 5.10.4.2. Baggage Data 47 5.11. EDGE SERVICE 47 5.11.1. Overview 47 5.11.2. Usage 47 5.11.3. Implementation Details 48 5.11.4. A/B Testing 51 .C .H . A. P. .T .E .R . .6 .. .C . O. N. .C . L. U. S. .I O. .N . .5 .3 . 2 Table of Contents .A .P . P. E. N. .D . I.X . A. .A .U . T. H. .O .R . S. H. .I P. .H . I.S .T . O. R. .Y . .5 .4 . .A .P . P. E. N. .D . I.X . B. .C .O . N. .T .R .I B. .U . T. O. .R .S . .5 .5 . .A .P . P. E. N. .D . I.X . C. .R .E . V. I.S .I O. .N . .H .I S. .T .O . R. Y. .5 .6 . 3 Reference Architectures 2018 Vert.x Microservices on Red Hat OpenShift Container Platform 3 4 COMMENTS AND FEEDBACK COMMENTS AND FEEDBACK In the spirit of open source, we invite anyone to provide feedback and comments on any reference architecture. Although we review our papers internally, sometimes issues or typographical errors are encountered. Feedback allows us to not only improve the quality of the papers we produce, but allows the reader to provide their thoughts on potential improvements and topic expansion to the papers. Feedback on the papers can be provided by emailing [email protected]. Please.

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    60 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us