You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert
技術部の taiki45 です。 以前「サービス分割時の複雑性に対処する: テスト戦略の話」という記事で、サービス間のインテグレーションテストにおける問題について紹介しました。現在のクックパッドではこの問題の解決のために Pact というツールを導入して運用しています。この記事では、その運用の知見を紹介できればと思います。 Pact Pact は Consumer-Driven Contract testing (CDC testing) を実現するためのツールです。"Consumer"、"Provider" という見慣れない単語が出てきますが、この記事ではだいたい「Consumer = Web API クライアント」、「Provider = Web API サーバー」と対応ができます。この記事では具体的な Pact の利用例を通じて CDC testing がどういうものなのかについても
github.com HystrixはNetflixが開発しているオープンソースのJavaライブラリで、主として分散システムにおけるサービス間のやり取りをラップして以下のような機能を提供します。 スレッドプールの分離 フォールバック、サーキットブレーカー タイムアウト キャッシュ モニタリング 例えば外部サービスに障害があり呼び出しがエラーになる場合や、処理に時間がかかった場合にフォールバック値を返すことで呼び出し元の処理を継続できたり、外部サービスの呼び出しでエラーが多発する場合は一時的に呼び出しをショートカットして呼び出し先の回復を待ったりといった制御を行うことができます。 マイクロサービスではあるサービスの障害や遅延が他のサービスに波及する危険性がありますが。このような仕組みをサービス間の通信に導入することでサービス全体のレジリエンスの向上が期待できます。 今回はHystrixの基本
1. Consumer Driven Contractsで REST API/マイクロサービスをテスト Toshiaki Maki (@making) Sr. Solutions Architect @Pivotal 2016-06-08 M3 Tech Meetup 2. Who am I ? •Toshiaki Maki (@making) •https://blog.ik.am •Sr. Solutions Architect •Spring Framework enthusiast Spring Framework 徹底⼊⾨ (Coming Soon?) パーフェクト Java EE (Coming Soon?)
こんにちは。技術部 開発基盤グループの大石です。 本日は開発基盤グループが社内の各サービスに提供している共通基盤サービスの1つである共通決済基盤を例にサービス間の整合性を維持するための取り組みを紹介したいと思います。(共通決済基盤については以前紹介した クックパッドの課金を支える技術 を参照ください) 決済における整合性を考える サービス間連携は決済に限らず発生するものですが、共通決済基盤の場合、組織外にあるサービスと通信する必要があり、コントロールができない外的要因に影響を受けやすい点と、決済という確実性が求められる処理を含んでいるということの間で整合性について考える必要があります。 まずは、共通決済基盤上で行われるサービス間通信の種類とそれぞれで通信を行っている際にエラーが起きた場合にどのようにハンドリングすれば整合性を維持できるかを考えてみます。 サービス間通信の種類と流れ 共通決済
「分散処理と 関数型プログラミング」 by @okapies 2016/03/21 第2回 分散システム勉強会 / 第三十回 P2P SIP 勉強会
昨日は「Microservices Casual Talks」に参加してきた.前日まで補欠35番目で厳しいかなーと思ったけど,奇跡的な繰り上がりで参加できた.本当に参加したくて祈り続けてたからその効果かも?w 「マイクロサービスアーキテクチャ」は Amazon で予約していたから既に届いてるんだけど,まだ読めてなくパラパラと開いた程度で,事前に読んでいればもっと理解できたなと後悔した. 開催側のポリシーに準じた範囲で,自分の意見も合わせて簡単にメモを残しておこうと思う.特に参考資料が多く出ていて,読めていないものもあるため,合わせてリンクしておこうと思う. connpass.com 『マイクロサービスアーキテクチャ』とAzure Service Fabric @satonaoki 開口一番「アズールじゃなくてアジュールです」には吹いた!最近 Docker Meetup もそうだけど,頻繁に
こんにちは。技術部の吉川です。 最近ではMicroservicesという言葉もかなり浸透し、そのテクニックも体系化されつつあります。 一方でMicroservicesについての話は概論や抽象的な話が多く、具体像が見えないという方もいらっしゃるのではないでしょうか。 当ブログでは1年半ほど前にMicroservicesへのとりくみについてご紹介しました。 当時社内ライブラリだったGarageはその後オープンソースとして公開され、また社内のシステムも当時と比べ飛躍的な進化を遂げています。 そういったクックパッドにおける最近のMicroservices事例を先日Microservices Casual Talksで紹介しました。 Microservicesの抽象的な話は一切割愛し、具体的な事例に終始した内容となっています。 Microservicesの基本となる考え方はわかったものの、実践方法で
Microserviceのテストの話を調べていると、以下のような記事を見つけました。 Simplifying Micro-Service testing with Pacts このPactoと呼ばれるツールがConsumer Driven Contractsと呼ばれるデザインパターンを使っていると書いていたので、同デザインパターンを少し調べてみました。 関連: MartinFowler氏のブログ記事 Pactoに関するGitHub デザインパターンとしての説明 http://www.servicedesignpatterns.com/WebServiceEvolution/ConsumerDrivenContracts http://java.dzone.com/articles/application-pattern-consumer アプリの実装寄りの話はこの記事が参考になりそう 消費
RightScaleのシニアシステムアーキテクトであるRaphael Simon氏が,GoベースのHTTPマイクロサービスフレームワーク“goa”を開発した。DSL(Domain-Specific Language)によるサービスAPIの定義と,対応するサーバとクライアントの“ボイラプレート”コード,およびドキュメントの自動生成が可能だ。 goaを紹介するGopher Academyのブログ記事には,RightScaleのエンジニアリングチームが実施中の,モノシリックRuby on RailsアプリケーションからGo(言語)ベースのマイクロサービスアプリケーションセットへの移行作業について述べられている。このマイグレーションで大きな課題となっているのが,設計の行き届いたサービスAPIの作成だ。そのためにマイクロサービスAPIの設計とレビュー,実装をサポートするツール群が開発された。この作業
class: center, middle # Apache Kafka<br/>を使った<br/>マイクロサービス基盤 [2016/01/31 Scala Matsuri](https://scalamatsuri.org/) ![CC-BY-NC-SA](https://licensebuttons.net/l/by-nc-sa/3.0/88x31.png) --- class: center, middle 発表後に追記 [当日の発表動画はこちら](https://www.youtube.com/watch?v=64HNeksRx5I) --- class: middle <img src="image/xuwei.gif" alt="icon" width="100" height="100" /> - twitter [@xuwei_k](https://twitter.com/
技術部の taiki45 です。 現在のクックパッドでは、cookpad.com 内のデータを利用するようなプロダクトでも、cookpad.com を提供しているアプリケーション(本体アプリケーション)とは別に新規のアプリケーションとして設計・実装しています。また、すでに本体アプリケーションの一部として実装されているプロダクトについても、トレードオフを考慮しながら場合によっては、本体アプリケーションから独立した別のアプリケーションとして設計・実装することが増えてきています。これらの本体アプリケーションや、新規にあるいは本体アプリケーションから独立させて設計・実装したアプリケーションのことを「サービス」と呼んでいます。また、この本体アプリケーションから独立させることを「サービス分割」と呼んでいます。 制御できないほどの巨大な複雑なまとまりを制御するために、その巨大なまとまりと単純なまとまりに
“Microservices”, the latest architecture buzzword being thrown around to describe perhaps one of the most interesting architecture styles of this decade. What are microservices? To use Martin Fowler’s definition: In short, the microservice architectural style is an approach to developing a single application as a suite of small services, each running in its own process and communicating with light
Testing Strategies In A Microservice Architectureを読んだを読んでいる途中に出てきた、Circuit Breakerと呼ばれる機構を調べてみました。Martin Fowler氏がこの記事で言及しているものでした。 このCircuit Breaker patternは、Release It! 本番用ソフトウェア製品の設計とデプロイのためにで描かれているような、本番環境化において発生する、複数システムが関係するからこそ発生する障害を抑えることも目的としたデザインパターンのようです。「複数システムが関係するからこそ発生する障害」とは、一部システムの負荷が高まりタイムアウトするといったことを含みます。 内容自体は、 障害検出のための共有のオブジェクト(Circuit Breacker)を用意して、監視・検出できるようにする ということらしいです。Ne
1. Japan Java User Group マイクロサービスアーキテクチャの設計 2015/8/28 鈴木雄介 日本Javaユーザーグループ 会長 R1-2 #jsug_sis Spring in Summer ~ 夏なのにSpring 2. Japan Java User Group 自己紹介 鈴木雄介 – グロースエクスパートナーズ(株) » 執行役員/アーキテクチャ事業本部長 » http://www.gxp.co.jp/ – 日本Javaユーザーグループ » 会長 » http://www.java-users.jp/ – SNS » http://arclamp.hatenablog.com/ » @yusuke_arclamp 1
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く