Msa読書会#3前半

1,962 views

Published on

第3回 マイクロサービスアーキテクチャ読書会 #MSA読書会 - アーキ部 | Doorkeeper https://architect-club.doorkeeper.jp/events/48267 前半部分の資料。

Published in: Software
0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,962
On SlideShare
0
From Embeds
0
Number of Embeds
1,188
Actions
Shares
0
Downloads
16
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide

Msa読書会#3前半

  1. 1. MSA #3 @tenten0213 #MSA
  2. 2. • @tenten0213 • SIer ( ) • Qiita: http://qiita.com/tenten0213 • Blog: http://tenten0213.hatenablog.com/ • Java • React / Redux • (1)
  3. 3. 4
  4. 4. 4.16 • • • REST RPC REST /
  5. 5. 4.1
  6. 6. • REST • SOAP • RPC • Protocol Buffers • Thrift
  7. 7. 4.1.1 • • I/F objectMapper.configure(DeserializationConfig.Feature.FAIL_ON_UNKNOWN_PROPERTIES, false); ObjectMapper Form ( 4.13.2
  8. 8. 4.1.2 API • API • • •
  9. 9. API
  10. 10. 4.1.3 • • →
  11. 11. mailSenderClient.send(mailContext);
  12. 12. 4.1.4 • → API
  13. 13. API API API
  14. 14. switch(customer.getNotifyOption()) { case Mail: … case SMS: … case Hoge: … }
  15. 15. 4.2 CRUD
  16. 16. 4.3 DB
  17. 17. API DB
  18. 18. KVS … DB
  19. 19. DB
  20. 20. 4.4 • • • • •
  21. 21. / • •
  22. 22. • • • → pub/sub
  23. 23. 4.5
  24. 24. 2
  25. 25. /
  26. 26. CRUD
  27. 27. publish subscribe
  28. 28. publish subscribe
  29. 29. Zabbix http://www.zabbix.com/jp/
  30. 30. Zipkin http://zipkin.io/
  31. 31. コレオグラフィ? オーケストレーション?
  32. 32. : http://qiita.com/kawasima/items/17475a993e03f249a077
  33. 33. / RPC REST
  34. 34. 4.6 RPC • • ( ) • • : TCP • : UDP
  35. 35. RPC • SOAP • Thrift • Facebook • Apache Software Foundation • Protocol Buffers • Google • RPC
  36. 36. 4.6.1 • → Java RMI( JVM ) • Thrift, Protocol Buffers •
  37. 37. 4.6.2 • • API
  38. 38. • • • 4.6.2
  39. 39. • • • • • • 1 • • http://www.rgoarchitects.com/Files/fallacies.pdf https://ja.wikipedia.org/wiki/
  40. 40. 4.6.3 • Java RMI / • • •
  41. 41. 4.6.4 RPC • Protocol Buffers Thrift •
  42. 42. RPC • Finagle • Twitter RPC ( ) for JVM • Netty • • gRPC • 2015 Google RPC • HTTP/2
  43. 43. 4.7 REST • Representational State Transfer • • (JSON,XML,TEXT…) • HTTP ( )
  44. 44. Serial, WiFi, Ethernet REST https://arest.io/
  45. 45. REST • / • ( ) • • https://ja.wikipedia.org/wiki/REST
  46. 46. 4.7.1 REST HTTP • HTTP REST • GET : • POST : • PUT : • DELETE :
  47. 47. HTTP • HTTP • • LB • •
  48. 48. はておあす? 4.7.2 HATEOAS
  49. 49. HATEOAS • Hypermedia as the Engine of Application State • • • Level3
  50. 50. Amazon
  51. 51. HATEOAS • Hypermedia as the Engine of Application State • • • Level3
  52. 52. http://martinfowler.com/articles/richardsonMaturityModel.html
  53. 53. Level 0: The Swamp of POX • XML-RPC / XML(POX) / SOAP • URI HTTP 1:1 http://martinfowler.com/articles/richardsonMaturityModel.html
  54. 54. Level 0: The Swamp of POX
  55. 55. Level 0: The Swamp of POX
  56. 56. Level 1: Resources • • URI • HTTP http://martinfowler.com/articles/richardsonMaturityModel.html
  57. 57. Level 1: Resources
  58. 58. Level 2: HTTP Verbs • URI • HTTP • HTTP Status Code • http://martinfowler.com/articles/richardsonMaturityModel.html
  59. 59. Level 2: HTTP Verbs
  60. 60. Level 2: HTTP Verbs
  61. 61. Level 3: Hypermedia Controls • RESTful • HATEOAS • http://martinfowler.com/articles/richardsonMaturityModel.html
  62. 62. Level 3: Hypermedia Controls
  63. 63. Level 3: Hypermedia Controls
  64. 64. HATEOAS • Richardson Maturity Model http://martinfowler.com/articles/ richardsonMaturityModel.html • HATEOAS ? - uehaj's blog http:// uehaj.hatenablog.com/entry/hateoas • REST: From GET to HATEOAS http://www.slideshare.net/ josdirksen/rest-from-get-to-hateoas • HATEOAS 101 - Opinionated Introduction to a REST API Style http://www.slideshare.net/apigee/hateoas-101-opinionated- introduction-to-a-rest-api-style
  65. 65. 4.7.3 JSON XML • JSON • JSON link → HAL(Hypertext Application Language) • XML link • XML HAL
  66. 66. Hypertext Application Language • • plain XML JSON • HTML • Web API
  67. 67. HAL http://stateless.co/hal_specification.html
  68. 68. https://spring.io/guides/gs/rest-hateoas/
  69. 69. • SIREN • • API (HAL ) • JSON API • JSON • JSON-LD • Linked Data RDF
  70. 70. 4.7.4 • CRUD • → 4.1.4
  71. 71. Zipkin • • LINE « LINE Engineers' Blog http://developers.linecorp.com/blog/ja/?p=3392
  72. 72. 4.7.5 HTTP REST • • → HAL • PUT / DELETE • • Thrift Protocol Buffers • HTTP • UDP / WebSocket HAL : https://github.com/mikekelly/hal_specification/wiki/Libraries
  73. 73. 4.8
  74. 74. 4.8.1 • MQ Pub/Sub( / ) 👍 / 👎 / /
  75. 75. 4.8.1 • Atom HTTP • • 👍 / 👎 /
  76. 76. Payara Micro clustered CDI Event Bus • CDI Event API http://blog.payara.fish/microservice-choreography-with-the-payara-micro-clustered-cdi-event-bus Payara Micro Clustered CDI Event Bus Hazelcast Topic - CLOVER http://d.hatena.ne.jp/Kazuhira/20160709/1468073888
  77. 77. 4.8.2 • • • • ( ID) • http://bliki-ja.github.io/CatastrophicFailover/
  78. 78. 4.9 • • •
  79. 79. /
  80. 80. 4.10 Rx Reactive Extentions • • / • http://reactivex.io/
  81. 81. Reactive Streams • ReactiveX • Vert.x • Reactor • Akka Streams
  82. 82. 4.16 • • REST RPC REST / •

×