こんにちは、カート決済部カート決済サービスブロックの林です。普段はZOZOTOWN内のカートや決済の機能開発、保守運用、リプレイスを担当しています。 弊社ではカートや決済機能のリプレイスを進めており、これまでにカート投入のキャパシティコントロールや在庫データのクラウドリフトを実現しています。 techblog.zozo.com techblog.zozo.com 本記事では新たにクレジットカード決済処理を非同期化したリプレイス事例を紹介します。 はじめに 背景・課題 非同期化のシステム構成 パターン1 - 完全非同期化パターン パターン2 - 非同期・同期切り替えパターン パターン3 - ポーリングパターン システム構成の決定 メッセージングサービスの選定 効果 今後の展望 まとめ さいごに はじめに 本章では、非同期化前のZOZOTOWNのクレジットカード決済を用いた注文処理の流れを説明
これは、多数派が支配すべきだという意味ではない。委員会によって設計されたアーキテクチャは、肥大化し、焦点が定まらない傾向がある。私たちの経験では、理想的なバランスとは、多様な経験と視点を持つ数人の仲間が、より良い情報に基づいた決定を下すために、主張に異議を唱えることである。 再利用の目標が誤った決定を左右するようなことがあってはならない。その代わり、再利用は理にかなった場合のみ行うこと。 コード、コンポーネント、設計、あるいはコンフィギュレーションの再利用は、最初は良いアイディアのように聞こえる。経営陣は、再利用によってコストが削減され、納期が短縮され、品質が向上すると信じて、このコンセプトを推進したがる。チームは、MVPをより早く提供するために既存のアプリケーションの大部分を再利用することを決定するかもしれないし、かなり成功した製品を提供するために作成された既存のアーキテクチャを再利用す
レッドハットでインテグレーションのためのミドルウェアのテクニカルサポートを担当している山下です。以前、SAGAやEventStormingについて記述すると宣言していたのですが、実際のところ私が書くよりもよっぽど良い日本語の書籍や記事がでていて、もう書く必要もないと思っていたのですが、今回機会をいただいたので約4年ぶりに”マイクロサービスとメッセージングのなぜ"の希望編を書くことになりました。今回の記事ではSAGAやEventStormingの詳細は書かないのですが、私がイベントやメッセージングが必要と考えるに至った危機感や希望を共有します。そうした意味ではむしろ原点ともいえる内容になっています。なお今回記事にはとりわけ個人的な経験や意見が多く含まれますので、事前に異論は認めることにします。 以前の記事はこちら: 「マイクロサービスとメッセージングのなぜ [概要編]」 「マイクロサービスと
先日のKaigi on Rails中の雑談として @ima1zumi さんから、RDBに対して秒間1000コミットぐらいで処理が詰まってる場合ってどうするのが良いのか、という質問を受けまして、雑談の中で色々答えてたんですが、せっかくだから記事にまとめておこうと思います。 ちょっとしたKaigi Effectって感じですね。 今回のKaigi on Railsのトークの中では、 数十億のレコードを持つ5年目サービスの設計と障害解決 by KNR - Kaigi on Rails 2023 の話なんかは割と関連がありますね。ユーザーの行動履歴というのは、ユーザー数 * N * タイムスパンで増えていくレコードなので、書き込みとデータ量が爆発しがちです。トランザクションで堅牢に処理しなければいけないケースもそこまで多くないので、RDBだと書き込みに対する処理が過剰なケースが多い。実際のところこの
昨日に引き続いて分散システムのデザインパターンについて書いていきたい。 だがそれ以前に故障モデルに関する前提を忘れてはならない。人によって様々な方針があるが、個人的には分散システムの世界において意識しなくてはならない故障モデルは4つだと考えている。僕は前回のブログに書いた Replication の本をベースに書いており、少し言葉遣いや定義が他とやや違う点は許して欲しい。また、通信の脱落・遅延とはレイヤーが異なる議論である。 故障モデルの分類 故障が起きないモデル これは故障が起きない世界を仮定するモデルである。これ自体はプロダクションにそのまま投入できるものではない。だがこの故障モデルを想定しても解けない問題は故障が発生する状況では絶対解けない事が断言できたり、合意プロトコルが正しいかを議論する土台となったり、様々な実用的なアルゴリズムや分散システムの土台となるアルゴリズムが生まれる土壌
2. @kimutansk 自己紹介 •Kimura, Sotaro(@kimutansk) – ドワンゴでデータエンジニアやってます •データ分析基盤の管理 •データ分析に必要な各種ETLパイプライン構築 •生データを集計したデータマートの設計構築 •データフォーマット、内容等の設計 etc... – 好きな技術分野 •ストリーム処理(主にJVM上) •分散システム •実装言語:Scala, Go – 好きなOSSプロダクト •Apache Kafka •Apache Beam •Apache NiFi etc... 3. @kimutansk アジェンダ •ストリーム処理とは何か? •ストリーム処理システム構成の変遷 – バッチと並列でデータ処理を実行 – 単体でデータ処理を実行 – データ処理パイプラインとして抽象化し、実行 •最近語られているストリーム処理の概念 – バッチ処理とス
Ruby on Railsの作者として知られるDavid Heinemeier Hansson(DHH)氏が自身のブログに5月4日付けで投稿した記事「Even Amazon can't make sense of serverless or microservices」(Amazonでさえサーバレスやマイクロサービスを理解できない)が話題になっています。 これはAmazon Prime Videoの技術部門が3月に自社ブログに投稿した記事「Scaling up the Prime Video audio/video monitoring service and reducing costs by 90%」(Prime Videoの音声映像監視サービスにおけるスケールアップと90%のコスト削減の実現)で紹介された、AWS Lambdaのサーバレスで作られたPrime Videoの監視サービス
あー、やっとアーキテクチャ(システムの構造、の意)が完全に変わるんだ。っていう感想。 私が交通系ICカード開発の仕事に関わってたのがもう20年近く前で(正確には15〜6年前)その頃から今日まで全くアーキテクチャの基本構造が変わってなかったんですよ。 www.watch.impress.co.jp www.itmedia.co.jp 20年変わらないってのも、なかなかすごいよね。ある意味、完成された構造だったわけですけども。 とはいえ通信速度が向上したら、ネットワークの信頼性が向上したら、いずれこの形になるのは想定されてました。 逆に言うと20年経ってようやく「新しい形式に移行できるぜ!」ってなったわけで、検証もこの間に重ねられてきてたって事だと思います。 思いつきで移行なんかしないですよ、鉄道会社の方々って。 だって障害発生したらニュースになるんだものw 私は過去に下記のようなブログとかも
Fumihiko Shiroyama @fushiroyama 父、博士課程 Software Development Engineer @Adobe / ex-@Microsoft, ex-@amazon All opinions are my own. note.com/fushiroyama/ Fumihiko Shiroyama @fushiroyama Twitterみたいな緩いつながり、TLひとつ実装するだけでも普通のウェブシステムみたいなクエリでは取れなくてちょっと考えれば非常に複雑なシステムであることは明白だし、システムアーキテクチャの試験の定番トピックだったりするので「誰でも作れる」とか「簡単」みたいなのはご指摘申し上げたくなる Fumihiko Shiroyama @fushiroyama 昔つぶやきましたが例えばこの記事を読むと分かりやすいです。 twitter.co
Yuta Okamoto @okapies Twitter のような巨大な分散システムが、どのくらいの人員がサボタージュしたら壊れるかなんて外からは分からないし、何だったら中の人間にだって分かってないかも。イーロン・マスクも含めてね。色々な可能性を考慮しつつ推移を見守るしかない。 twitter.com/100poisha/stat… ざんねん @100poisha Twitterのコア開発者が辞めたのでTwitter終了←まちがい Twitterのコア開発者が辞めたので代わりの開発者を雇わないと数年で終了←せいかい ソフトウェアは腐りますけど、だからといってメンテナンスしないと1日で腐り果てるほど脆くないんですよ。そのせいでメンテナンスせずに数年経って腐り文字数
2020年12月に出版された「モノリスからマイクロサービスへ」を読んだ.本書はタイトルの通り「マイクロサービス移行」に関連するトピックにフォーカスしている.マイクロサービスを学ぶならこの本!とよく紹介している「マイクロサービスアーキテクチャ」の著者 Sam Newman の続編となる.原著「Monolith To Microservices」は,2019年12月に出版されている. 僕自身は技術講師として「マイクロサービス」に関連した研修を担当していることもあり,本書は絶対に読もう!と楽しみにしていた(原著は読もう読もうと積読していた😇).今回は本書の翻訳を担当された島田さん (@snoozer05) とレビューを担当されたこまさん(@koma_koma_d) からご連絡をいただき,本書を献本していただいた.本当にありがとうございます! モノリスからマイクロサービスへ ―モノリスを進化させ
要約 このホワイトペーパーでは、AWS Well-Architected フレームワークについて説明します。本書は、お客様が AWS 環境の設計、提供、メンテナンスを行う際にベストプラクティスを適用できるようにするためのガイダンスを提供します。ここでは Well-Architected フレームワークの柱とされる 6 つの概念領域における一般的な設計の原則と、特定のベストプラクティスおよびガイダンスを紹介します。 はじめに 定義 アーキテクチャ 一般的な設計の原則 フレームワークの 6 本の柱 運用上の優秀性 セキュリティ 信頼性 パフォーマンス効率 コスト最適化 持続可能性 レビュープロセス まとめ 寄稿者 注記 お客様は、この文書に記載されている情報を独自に評価する責任を負うものとします。本書は、(a) 情報提供のみを目的とし、(b) AWS の現行製品と慣行について説明しており、これ
マイクロサービスにおける認証と認可の、一般論としての設計パターンを調べたところ、Web 上の複数の記事で似たようなパターンが登場していた。ここでは、まず認証と認可が実現したい一般的な要件と、そのマイクロサービスでの難しさを整理し、認証と認可に分けて調査したパターンをまとめた。 あくまで “一般論” なので、実際には個々のドメインにあわせてアレンジが必要 往々にしてこの “アレンジ” に価値が宿るものだが、まずはセオリーを知っておきたいというモチベーションで調査した Web 上の記事を読んでまとめただけなので、手を動かしての確認はしておらず、理解が甘い部分はご容赦ください 具体的な通信方式やサービス間通信のセキュリティといった具体論までは踏み込めていない。このへんはサービスメッシュやゼロトラストネットワークといったトピックが登場すると思われる これらは次回以降の Todo としています その
「アーキテクチャのルールはどれも同じである!(ドヤっ)」 数々の書籍やアジャイルソフトウェア開発宣言、SOLID原則の提唱などで業界では有名なアンクル・ボブ(Uncle Bob)ことロバート・C・マーチンさんによる、よりよいソフトウェア・アーキテクチャと設計の追求の本。原著が2017年、翻訳が2018/8、その後ITエンジニア界隈でもかなり話題になりました。 実は去年一度読み始めたのですが、AWS認定を突破する!と決意したので例のタマネギ(あるいはドーナツ)にたどり着く前に中断。無事に3冠突破して戻ってきたので、今年の夏に改めてじっくりと最初から読むことができました。 アーキテクチャのルールはどれも同じである!という帯の煽りは極端ですが、要はコンピュータやエンジニアリングの進化の中で発見されてきた、時代を超えて通用する不変のルールもある、これらをアーキテクチャの観点から見ていこうという本で
これらの設計パターンは、信頼性の高い、スケーラブルで安全なアプリケーションをクラウドに構築するために役立ちます。 パターンごとに、そのパターンで対処する問題、パターンの適用に関する考慮事項、Microsoft Azure に基づいた例を説明します。 ほとんどのパターンには、Azure でのパターンの実装方法を示すコード サンプルまたはスニペットが含まれています。 ただし、パターンのほとんどは、ホストが Azure か他のクラウド プラットフォームかにかかわらず、分散システムに関連しています。 クラウド ワークロードでは、分散コンピューティングに関する誤解が生じやすくなります。 クラウド設計に関する誤解の例を次に示します。 ネットワークは信頼できる 待機時間はゼロである 帯域幅は無限に存在する ネットワークはセキュリティで保護されている トポロジが変更されることはない 管理者は 1 人しかい
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く