Advertisement
Advertisement

More Related Content

Slideshows for you(20)

Similar to Yahoo! JAPANのコンテンツプラットフォームを支えるSpring Cloud Streamによるマイクロサービスアーキテクチャ #jsug #sf_52(20)

Advertisement

More from Yahoo!デベロッパーネットワーク(20)

Recently uploaded(20)

Advertisement

Yahoo! JAPANのコンテンツプラットフォームを支えるSpring Cloud Streamによるマイクロサービスアーキテクチャ #jsug #sf_52

  1. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved. 2017年11月24日 ヤフー株式会社 鴨志田 智弥 Yahoo! JAPANのコンテンツプラットフォームを支える Spring Cloud Streamによるマイクロサービスアーキテクチャ
  2. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved. 自己紹介 • 鴨志田 智弥 • ヤフー株式会社 メディアグループ メディアカンパニー プラットフォーム開発本部 • 経歴 • 2009年 新卒入社 • 2009年〜 Yahoo!ニュース • 2016年9月〜 コンテンツプラットフォーム
  3. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved. アジェンダ • Yahoo! JAPANとコンテンツ • コンテンツプラットフォームでのSpringの採用事例 • 既存システムの課題と新システムの設計 • システム概要と詳細 • 良かったこと、悪かったこと
  4. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved. Yahoo! JAPANとコンテンツ
  5. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved. Yahoo! JAPANとコンテンツ 天気 試合情報 路線の 遅延情報 ニュース
  6. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved. 提供コンテンツ Yahoo! JAPAN 個人 提供社
  7. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved. 提供コンテンツ • ニュース記事、コラム • 天気、地震情報 • 株価 • 試合情報、試合のスコア • 動画
  8. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved. コンテンツプラットフォームでの Springの採用事例の紹介
  9. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved. アジェンダ • Yahoo! JAPANとコンテンツ • コンテンツプラットフォームでのSpringの採用事例 • 既存システムの課題と新システムの設計 • システム概要と詳細 • 良かったこと、悪かったこと
  10. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved. コンテンツプラットフォーム • 提供コンテンツの入稿・配信のプラットフォーム • 1stリリースは記事コンテンツがターゲット • 開発に至った背景 • 旧記事入稿プラットフォームがレガシーなためリニューアル • 2009年から稼働 • PHP、Perl、C
  11. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved. 旧システムの辛い所 • 巨大なモノリシックなアプリケーション • 大きすぎてリファクタリングできない • さらにテストコードが無い&書きづらい • その結果レガシーなコードのまま • 環境や依存のバージョンアップの時はひたすらエラーを潰す
  12. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved. 旧システムの辛い所2 • 実機&VMで動いている • マスタ/スタンバイ構成で冗長性有り • 簡単にスケールアウトできないので常にリソースは確保している 常に確保
  13. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved. 旧システムの辛い所3 • アーキテクチャが古いのでPaaSなどへの移行は難しい • IPアドレスに依存していたり • 処理自体はテキスト処理などで非常にシンプル
  14. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved. 新システムの設計 • マイクロサービスアーキテクチャ • システムを細分化して柔軟に対応できるようにしたい • 同期的に処理しなくて良い部分は非同期で処理したい
  15. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved. 新システムの設計2 • Java • プラットフォームなのでなるべく不具合無くリリースしたい • 静的型付け、コンパイラで検知 PHP Java インタープリタ型言語 動的型付け コンパイラ型言語 静的型付け
  16. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved. 新システムの設計3 • PaaS • 運用コストを下げたい • リソースを有効活用したい • 重大ニュースなどで負荷が大きく上昇するため素早くスケールアウトした い PaaS
  17. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved. 新システムの設計4 • Spring Boot • Javaでマイクロサービスするなら鉄板 • フルスタックで機能も豊富 • 社内PaaS環境のPivotal Cloud Foundryとの相性も良い
  18. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved. アジェンダ • Yahoo! JAPANとコンテンツ • コンテンツプラットフォームでのSpringの採用事例 • 既存システムの課題と新システムの設計 • システム概要と詳細 • 良かったこと、悪かったこと
  19. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved. システム構成 レガシーアダプタ旧PF 入稿API 入稿データ (MySQL) 解析処理入稿サービス ストレージ Hadoop 処理済みデータ (Cassandra) バッチ処理用 データ保存 データ保存 参照サービス
  20. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved. システム構成 入稿API 入稿データ (MySQL) 入稿サービス データ受付 確認 データ保存 非同期
  21. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved. システム構成 入稿データ (MySQL) 解析処理 解析
  22. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved. システム構成 処理済みデータ (Cassandra) データ保存 参照サービス データ保存 更新通知
  23. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved. システム構成 ストレージ Hadoop バッチ処理用 データ保存 ストレージに保存
  24. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved. システム構成 レガシーアダプタ旧PF 入稿API フォーマット変換
  25. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved. システム構成補足 • 現在約20サービスほど • オンプレ環境に構築したPivotal Cloud Foundry上で稼働 • Spring Bootと一部Node.js • 非同期部分はPulsarとSpring Cloud Stream • MySQL、Cassandra、内製のS3互換ストレージ
  26. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved. Pivotal Cloud Foundry • Pivotal社製のCloud Foundry • PaaS • コマンド1つでアプリケーションが立ち上がる $ cf push -p build/libs/hoge-1.0.0.jar https://hoge.XXXX.yahoo.co.jp/ 数分後
  27. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved. Pivotal Cloud Foundry Spring Boot Actuator連携
  28. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved. Apache Pulsar • Pub-Subメッセージングシステム • Yahoo! Inc.製で今はApache Incubator • 特徴 • 高パフォーマンス、高スケーラビリティ • マルチテナント • 複数DC間でのレプリケーション
  29. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved. Spring Cloud Stream • Springでメッセージングシステムを使うフレームワーク • 公式ではRabbitMQとKafkaをサポート • Pulsarは公式ではサポートされていないので内製対応 Producer Consumer Message Broker
  30. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved. Source / Processor / Sink Source Sink binder Processor
  31. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved. Source / Processor / Sink レガシーアダプタ旧PF 入稿API 入稿データ (MySQL) 解析処理入稿サービス ストレージ Hadoop 処理済みデータ (Cassandra) バッチ処理用 データ保存 データ保存 参照サービス Source Processor Sink
  32. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved. 依存の追加 ext { springCloudVersion = 'Dalston.SR4' } dependencies { compile('org.springframework.cloud:spring-cloud-starter-stream-rabbit') compile('org.springframework.boot:spring-boot-starter-web') compile('org.springframework.boot:spring-boot-starter-actuator') testCompile('org.springframework.boot:spring-boot-starter-test') } dependencyManagement { imports { mavenBom "org.springframework.cloud:spring-cloud-dependencies:${springCloudVersion}" } } 使うbrokerのものを指定 その他はお好みで
  33. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved. 依存の追加 RabbitMQの場合 org.springframework.cloud:spring-cloud-starter-stream-rabbit Kafkaの場合 org.springframework.cloud:spring-cloud-starter-stream-kafka Pulsarの場合(自作) com.example:spring-cloud-starter-stream-pulsar
  34. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved. Sourceの実装 @SpringBootApplication @RestController public class SourceDemoApplication { @PostMapping public void send(@RequestBody Map<String, String> message) { // ここに送信する処理を書く } public static void main(String[] args) { 〜略〜 } }
  35. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved. Sourceの実装 @SpringBootApplication @RestController @EnableBinding(Source.class) public class SourceDemoApplication { @PostMapping public void send(@RequestBody Map<String, String> message) { // ここに送信する処理を書く } public static void main(String[] args) { 〜略〜 } } アノテーションを追加
  36. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved. Sourceの実装 @SpringBootApplication @RestController @EnableBinding(Source.class) public class SourceDemoApplication { @Autowired private Source source; @PostMapping public void send(@RequestBody Map<String, String> message) { // ここに送信する処理を書く } public static void main(String[] args) { 〜略〜 } } インジェクション
  37. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved. Sourceの実装 @SpringBootApplication @RestController @EnableBinding(Source.class) public class SourceDemoApplication { @Autowired private Source source; @PostMapping public void send(@RequestBody Map<String, String> message) { source.output().send(MessageBuilder.withPayload(message).build()); } public static void main(String[] args) { 〜略〜 } } 送信処理
  38. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved. Sourceの設定 spring.rabbitmq.addresses=localhost:5672 spring.rabbitmq.username=guest spring.rabbitmq.password=guest spring.cloud.stream.bindings.output.destination=foo_topic spring.cloud.stream.bindings.output.contentType=application/json broker固有の設定 binderの設定
  39. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved. broker固有の設定 spring.rabbitmq.addresses=localhost:5672 spring.rabbitmq.username=guest spring.rabbitmq.password=guest spring.cloud.stream.kafka.binder.brokers=localhost spring.cloud.stream.kafka.binder.defaultBrokerPort=9092 spring.cloud.stream.kafka.binder.zkNodes=localhost spring.cloud.stream.kafka.binder.defaultZkPort=2181 spring.cloud.stream.pulsar.binder.clusterUrl=pulsar://localhost:6650 RabbitMQの例 Kafkaの例 Pulsarの例(イメージ)
  40. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved. Source側のbinderの設定 送信先トピック spring.cloud.stream.bindings.output.destination=foo_topic メッセージのシリアライズ方法 spring.cloud.stream.bindings.output.contentType=application/json JSONがオススメ
  41. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved. Sinkの実装 @SpringBootApplication public class SinkDemoApplication { public void receive(Map<String, String> data) { // ここに受信したメッセージの処理を書く } public static void main(String[] args) { 〜略〜 } }
  42. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved. Sinkの実装 @SpringBootApplication @EnableBinding(Sink.class) public class SinkDemoApplication { public void receive(Map<String, String> data) { // ここに受信したメッセージの処理を書く } public static void main(String[] args) { 〜略〜 } } アノテーションを追加
  43. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved. Sinkの実装 @SpringBootApplication @EnableBinding(Sink.class) public class SinkDemoApplication { @StreamListener(Sink.INPUT) public void receive(Map<String, String> data) { // ここに受信したメッセージの処理を書く } public static void main(String[] args) { 〜略〜 } } アノテーションを追加
  44. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved. Sinkの実装 @SpringBootApplication @EnableBinding(Sink.class) public class SinkDemoApplication { @StreamListener(Sink.INPUT) public void receive(Map<String, String> data) { System.out.println("Received : " + data.toString()); } public static void main(String[] args) { 〜略〜 } } 処理を書く
  45. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved. Sinkの設定 spring.rabbitmq.addresses=localhost:5672 spring.rabbitmq.username=guest spring.rabbitmq.password=guest spring.cloud.stream.bindings.input.destination=foo_topic spring.cloud.stream.bindings.input.group=bar_group broker固有の設定 binderの設定
  46. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved. Sink側のbinderの設定 受信トピック spring.cloud.stream.bindings.input.destination=foo_topic ConsumerGroup名 spring.cloud.stream.bindings.input.group=bar_group
  47. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved. ConsumerGroup 設定しない場合はそれぞれに同じメッセージが届く AAA BBB CCC AAA BBB CCC AAA BBB CCC AAA BBB CCC
  48. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved. ConsumerGroup 設定した場合はグループ内のどれか1つにだけメッセージが届く AAA BBB CCC AAA BBB CCC
  49. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved. メリット • 抽象化されているのでロジックに集中できる • 違うbrokerに乗り換える場合は設定の差し替え程度で済む • Springの他の機能との連携
  50. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved. Spring Boot Actuator連携 接続先のbrokerのヘルスチェック { "status": "UP", 〜中略〜 "rabbit": { "status": "UP", "version": "3.6.12" }, "binders": { "status": "UP", "rabbit": { "status": "UP", "binderHealthIndicator": { "status": "UP", "version": "3.6.12" } } } }
  51. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved. Spring Cloud Streamのテスト • テストツールが提供されている • spring-cloud-stream-test-support Sourceテストコード Sinkテストコード assert assert モックモック
  52. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved. 実装後に出てきた課題 • 処理の流れがわかりにくい • 想定よりスループットが出ない • エラー時の処理
  53. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved. 処理の流れがわかりにくい • マイクロサービスの処理の流れはわかりにくい • どこでエラーが起きたのか? • どこがボトルネックになっているのか? エラー! ?
  54. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved. Spring Cloud Sleuth リクエストにトレース用のユニークなIDを付与する ID発行 abc abc abc X-B3-TraceId: abc
  55. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved. Spring Cloud Sleuth • 自動で追跡用のIDが発行・付与 • 自動でログにも出力 • トラブル時はTraceIDで検索すればOK
  56. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved. Zipkin TraceIDを可視化するツール
  57. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved. Zipkin レガシーアダプタ旧PF 入稿API 入稿データ (MySQL) 解析処理入稿サービス ストレージ Hadoop 処理済みデータ (Cassandra) バッチ処理用 データ保存 データ保存 参照サービス Zipkin
  58. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved. Zipkin
  59. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved. Zipkin レガシーアダプタ旧PF 入稿API 入稿データ (MySQL) 解析処理入稿サービス ストレージ Hadoop 処理済みデータ (Cassandra) バッチ処理用 データ保存 データ保存 参照サービス ①
  60. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved. Zipkin ①
  61. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved. Zipkin レガシーアダプタ旧PF 入稿API 入稿データ (MySQL) 解析処理入稿サービス ストレージ Hadoop 処理済みデータ (Cassandra) バッチ処理用 データ保存 データ保存 参照サービス ① ②
  62. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved. Zipkin ① ②
  63. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved. Zipkin レガシーアダプタ旧PF 入稿API 入稿データ (MySQL) 解析処理入稿サービス ストレージ Hadoop 処理済みデータ (Cassandra) バッチ処理用 データ保存 データ保存 参照サービス ① ② ③
  64. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved. Zipkin ① ② ③ 続きがある 同期処理終了
  65. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved. Zipkin レガシーアダプタ旧PF 入稿API 入稿データ (MySQL) 解析処理入稿サービス ストレージ Hadoop 処理済みデータ (Cassandra) バッチ処理用 データ保存 データ保存 参照サービス ① ② ③ ④
  66. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved. Zipkin ① ② ③ ④
  67. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved. Zipkin レガシーアダプタ旧PF 入稿API 入稿データ (MySQL) 解析処理入稿サービス ストレージ Hadoop 処理済みデータ (Cassandra) バッチ処理用 データ保存 データ保存 参照サービス ① ② ③ ④ ⑤ ⑥
  68. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved. Zipkin ① ② ③ ④ ⑤ ⑥
  69. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved. 想定よりスループットが出ない • 負荷テストしてみたら非同期部分が遅い • Sinkの同時処理数が1だった・・・ spring.cloud.stream.bindings.input.consumer.concurrency=10 デフォルトは1 適度に増やす 必ず設定する
  70. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved. エラー時の処理 • 処理の途中でエラーになったメッセージが行方不明に • Pulsarは再送までの時間を設定しないと再送してくれな かった・・・ • brokerの仕様は把握しておくことが大事
  71. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved. BCP(事業継続計画) • 非常災害時でもサービスを継続する必要がある • 西日本と東日本のDCに分散構築 東日本クラスタ西日本クラスタ GSLB
  72. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved. BCP(事業継続計画) 仮に片方のDCが停止しても問題ないように設計 MySQL 西日本 東日本
  73. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved. BCP(事業継続計画) 仮に片方のDCが停止しても問題ないように設計 GSLB
  74. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved. BCP(事業継続計画) 仮に片方のDCが停止しても問題ないように設計 MySQL GSLB
  75. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved. BCP(事業継続計画) 仮に片方のDCが停止しても問題ないように設計
  76. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved. BCP(事業継続計画) 仮に片方のDCが停止しても問題ないように設計
  77. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved. BCP(事業継続計画) 仮に片方のDCが停止しても問題ないように設計 MySQL
  78. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved. BCP(事業継続計画) 仮に片方のDCが停止しても問題ないように設計 MySQL
  79. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved. 利用サービス例 • Yahoo! JAPANアプリ • ニュースフィード部分などで利用 • Vespaでコンテンツのレコメンデーション コンテンツ 更新処理 Index アプリBE 更新通知 更新検知& データ取得 インデックス 更新
  80. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved. アジェンダ • Yahoo! JAPANとコンテンツ • コンテンツプラットフォームでのSpringの採用事例 • 既存システムの課題と新システムの設計 • システム概要と詳細 • 良かったこと、悪かったこと
  81. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved. Java/Springで良かったこと • フルスタックで機能も豊富なのでロジックに集中できる • マイクロサービスに必要なものが揃っている • テストコードが書きやすい • Mockito • MockRestServiceServer • REST Assured
  82. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved. 非同期部分は機能拡張が簡単 購読を増やすだけなので既存システムへの影響は少ない 既存アプリケーション 追加アプリケーション この線を増やせばOK ・・・ ・・・ ・・・
  83. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved. 非同期部分は機能拡張が簡単 レガシーアダプタ旧PF 入稿API 入稿データ (MySQL) 解析処理入稿サービス ストレージ Hadoop 処理済みデータ (Cassandra) バッチ処理用 データ保存 データ保存 参照サービス 実は後から追加
  84. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved. 1つの機能がシンプル • 機能が小分けになっているので実装がシンプルに • APIやメッセージを挟んでいるので疎結合 • 修正やレビューは見る範囲が狭い方が良い 数万行🔥 数百〜数千行☀️
  85. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved. 1つの機能がシンプル • 複数人での並行開発も容易 • コンフリクトも起こりにくい コンフリクト地獄 ☀️
  86. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved. 新たな課題 • メモリの使用量が他の言語に比べ多め • マイクロサービスの管理が大変 • 便利なソリューションも提供されているが・・・ • 依存ライブラリのバージョンを上げるのも一苦労 • 開発メンバーが少ないのも要因の1つ
  87. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved. 今後の展望 • Kotlinの検討 • マイクロサービス系のツールのさらなる導入 • 検証が追いつかず導入を見送ったものがいくつかある • 新しく増えたものも随時検討 • Spring Cloud Skipperなど
  88. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved. まとめ
  89. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved. まとめ • 既存システムの課題がSpringとマイクロサービスで大きく 改善できた • マイクロサービスをやるならSpring Cloud Streamが便利
  90. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved. Javaエンジニア 積極採用中!! ヤフー 採用
Advertisement