研修中に「マイクロサービス」の解説をしていると,たまに「モノリス分割」に関する質問が出てディスカッションをすることがある.当然ながら万能な分割アプローチはないけど,例えば DDD (Domain-driven design) などのアプローチを選択するなど,選択肢はいろいろある.そして最近「モノリス分割」に役立つアプローチを紹介した martinfowler.com の記事「How to break a Monolith into Microservices」を読んだ. 具体的には以下の「計8種類」のアプローチが紹介されている.原著を翻訳するのではなく,あくまで個人的なメモとしてまとめる.なお,日本語も個人的に載せているため,参考程度にしてもらればと! Warm Up with a Simple and Fairly Decoupled Capability(シンプルかつ分離された機能で準
(編注:2020/08/11、いただいたフィードバックをもとに記事を修正いたしました。) マイクロサービスのアーキテクチャスタイル がモノリシックアーキテクチャよりも優れたアプローチであるというのは、多くの開発チームが実感していることです。その一方で、生産性を低下させる重荷のようなものだと感じているチームも存在します。プラスの面もあればマイナスの面もあるという点においては、マイクロサービスも他のアーキテクチャスタイルと変わりません。具体的なコンテキストに適用する前に、これらをよく理解して、賢明な選択をする必要があります。 マイクロサービスがもたらす利点 強固なモジュールの境界 :マイクロサービスではモジュラー構造が強化されています。この点は、チームの規模が大きくなるほどその恩恵は増してくるでしょう。 個別にデプロイ :サービスがシンプルなほどデプロイは容易です。また、マイクロサービスではそ
最近、身の回りで「マイクロサービスを導入したいがどうすればいいか」、あるいは「導入を検討している」「導入したので実施できる人がほしい」という話を聞く機会が増えました。 私はこれに対し「マイクロサービスはやりすぎなので止めたほうがいい」と回答することが多いです。それについて説明したいと思います。 この記事は「私はこういうスタンスである」というのを回答しやすくするために書いているため、継続的に追記・ブラッシュアップしていく予定です。 マイクロサービスの導入を見送るべき見せかけのメリット どういう理由でマイクロサービスを検討しているかと深堀りすると、次のような理由が返ってきます。 デプロイ時の障害や停止時間を減らしたいサーバ負荷を分散させたいソースコードがスパゲティになっているので解きほぐしたい予測できない将来の改修に備えたい今風の技術を取り入れることで人材採用のセールスポイントにしたい これら
「マイクロサービス」という新しいアーキテクチャスタイルが話題になっています。ごく簡単に言えば、1つのシステムを複数の小さなサービスを組み合わせて実現することです。マーチン・ファウラー氏とJames Lewis氏が今年の5月に公開した記事「Microservices」で注目が集まりはじめました。 参考:"Microservices"を読んだ | SOTA 参考:クックパッドとマイクロサービス - クックパッド開発者ブログ 参考:マイクロサービスとSOA - InfoQ このマイクロサービスを実現する上で、組織が備えていなければならない能力について、マーチン・ファウラー氏が先月、「MicroservicePrerequisites(マイクロサービスの前提条件)」という記事を公開しています。同氏のWebサイトの記事は翻訳が許可されているので、ここで翻訳を紹介したいと思います。 マイクロサービスの
ドメイン駆動設計(Domain Driven Design -DDD-)はご存知でしょうか。ご存知ない方は以下のサイトなどを参考にドメイン駆動設計について調べてみてはいかがでしょうか。 ドメイン駆動設計はドメインの知識に焦点をあてた設計手法です。〜略〜 ドメインは「領域」の意味をもった言葉です。ソフトウェア開発におけるドメインは、「プログラムを適用する対象となる領域」を指します。重要なのはドメインが何かではなく、ドメインに含まれるものが何かです。
microservices.ioのサイトに載っている分割パターンは4つ。ただし「自己完結型サービス」と「チームごとのサービス」は、直交していないので大きくは「ビジネスケイパビリティでの分割」と「サブドメインでの分割」の2つ。
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く