Web企業を中心に流行している開発手法・マイクロサービスの基礎を学べる資料まとめ

最終更新日:2021年4月19日

マイクロサービスは、海外ではAmazonやNetFlix、日本ではクックパッドやLINEといった大規模なサービスで採用されていて、Web企業を中心に世界的な広がりを見せています。
しかしながら「マイクロサービスという言葉は聞いたことあるけれど、具体的な説明はできない……」というエンジニアは案外多いのではないでしょうか。
そこで今回は、マイクロサービスに関する基礎知識や過去の事例を紹介した記事・スライドをまとめました。
エンジニアの方はぜひ目を通してください。

今もらっている年収は高い?低い?

支援実績10年の登録者データを基にした エンジニア・クリエイター専門 年収診断 無料診断START

マイクロサービスとは?

マイクロサービスはソフトウェアアーキテクチャのスタイルのひとつで、簡単に言えば複数のサービスを連携させてひとつのアプリケーションを構築する開発手法のことです。

モノリシック(一枚岩)なアーキテクチャを複数に分割して、システムの複雑さを解消することが目的です。
それによって、各サービスを独立させることが可能となり「ソフトウェアの変更がしやすくなる」「開発のスピードが高まる」「柔軟な構築・運用ができる」といったメリットが享受できるとされています。

マイクロサービス(Microservice)という言葉は、アメリカのソフトウェア開発会社・ThoughtWorks社のJames Lewis(ジェームス・ルイス)氏が2012年3月に発表した「Micro services - Java, the Unix Way」が初出とされています。
それから約2年後、2014年5月にJames Lewis氏がMartin Fowler(マーチン・ファウラー)氏との共同執筆で発表した「Microservices」により広く普及しました。

マイクロサービスはAmazon、eBay、Spotify、NetFlixといった大規模サービスで採用されています。
クックパッド、LINE、Gunosyといった企業にも導入されており、日本でも広がりつつあります。

参照:http://www.nttdata.com/jp/ja/insights/trend_keyword/2015072301.html

マイクロサービスの基礎を学べる資料・記事

James Lewis/Martin Fowlerの"Microservices"日本語訳 / 自由課題

http://kimitok.hateblo.jp/entry/2014/11/09/211820    

「Microservices」を日本語訳した記事です。
オリジナル記事は共同執筆者であるMartin Fowler氏のブログに掲載されています。
マイクロサービスを深く理解するためにも、その基本となる「Microservices」は必ず読んでおきましょう。

参照:Microservices 
http://martinfowler.com/articles/microservices.html

Micro services - Java, the Unix Way

Webサイト「Micro services - Java, the Unix Way」の画像

http://2012.33degree.org/talk/show/67

「Microservices」より前に発表された、James Lewis氏による資料です。
PDF資料を無償でダウンロードできます。
こちらは日本語訳されていないので、英語版のみとなっています。
もし英語でも問題ないという方であれば、一読の価値はあると思います。

Microservicesを読んだ / SOTA

Webサイト「SOTA」。Microservicesを読んだの画像

http://deeeet.com/writing/2014/09/10/microservices/

「Microservices」の概要、特徴をまとめた記事です。
よくまとまっているので、オリジナルの「Microservices」の後に読むと頭の中でポイントが整理できます。

クックパッドとマイクロサービス / クックパッド開発者ブログ

ブログ「クックパッド開発者ブログ」。クックパッドとマイクロサービスの画像

http://techlife.cookpad.com/entry/2014/09/08/093000

レシピサイト「クックパッド」がマイクロサービスを選択した理由、どのようにマイクロサービス化を行ったのかを詳しく解説しています。
「クックパッド」では新規アプリケーションを作成する際、独立チームが独立したサービスとして開発を行い、最終的に各サービスと連携させるという開発手法を取り入れているそうです。
これはまさにマイクロサービスの概念であり、本記事を読むと「クックパッド」という巨大サイトがマイクロサービスを取り入れた理由がよくわかります。

「マイクロサービス」のメリットをざっくり言うと「変化に対応しやすい」こと──ただしファウラー氏は“使い過ぎ”を警告 / さくらのナレッジ

Webサイト「さくらのナレッジ」。「マイクロサービス」のメリットをざっくり言うと「変化に対応しやすい」こと──ただしファウラー氏は“使い過ぎ”を警告の画像

http://knowledge.sakura.ad.jp/tech/3377/

マイクロサービスの簡単な解説、SOAとマイクロサービスの違いを解説している記事です。

記事の最後に、マイクロサービスを広めたMartin Fowler氏の解説記事「MicroservicePremium」を紹介しています。
Fowler氏は、マイクロサービスはシステムが複雑化してから導入すべきであって、小さなサービスで最初から導入すべきではないという考えを示し、安易なマイクロサービスの適用を警告しています。

本記事では全文を紹介しているわけではないので、興味がある方はオリジナル記事を読んでみてください。

参照:MicroservicePremium
http://martinfowler.com/bliki/MicroservicePremium.html

マイクロサービスアーキテクチャ

書籍「マイクロサービスアーキテクチャ」の画像

http://www.amazon.co.jp/gp/product/4873117607/

O'Reilly(オライリー)から出版された「Building Microservices」の日本語版です。
マイクロサービスの定義と概念、長所と短所、設計思想、アーキテクトの役割などを詳しく解説しています。

ドメイン駆動設計でマイクロサービス開発

Webサイト「Info Q」。ドメイン駆動設計でマイクロサービス開発の画像

https://www.infoq.com/jp/news/2016/03/ddd-microservices

マイクロサービスを設計する上で必要となるドメイン駆動設計について触れた記事です。
他の記事と併せてチェックしてみてください。

マイクロサービスのアンチパターン

Webサイト「Info Q」。マイクロサービスのアンチパターンの画像

https://www.infoq.com/jp/news/2016/04/microservices-anti-patterns

モノリシックなシステムをマイクロサービスへ移行するにあたり、不向きなシステムもあるとされています。
本記事ではそういったアンチパターンについて紹介していますので、一度は目を通しておくとよいでしょう。

マイクロサービスの基礎を学べるスライド

マイクロサービス運用の所感 #m3dev

マイクロサービス運用の所感 #m3dev from Kazuhiro Sera
 

マイクロサービスの定義と実際に運用した所感をまとめたスライドです。
「Microservices」に掲載されている9つの定義をひとつひとつ端的に解説しています。

マイクロサービスアーキテクチャの設計 - JUG2015

マイクロサービスアーキテクチャの設計 - JUG2015 from Yusuke SUZUKI
 

MSA(Microservice Architecture)の概要、デザイン、実例を紹介しているスライドです。
最後にJavaのフレームワーク「Spring」についても触れています。

マイクロサービスアーキテクチャ - アーキテクチャ設計の歴史を背景に

マイクロサービスアーキテクチャ - アーキテクチャ設計の歴史を背景に from Yusuke SUZUKI
 

上記スライドと同じ方が作成しています。
こちらのスライドでは「アーキテクチャの変遷 」「サービス管理のトレンド」「MSA」「プラットフォームの視点」について紹介しています。

Spring Bootハンズオン ~Spring Bootで作る マイクロサービスアーキテクチャ! 

Spring Bootハンズオン ~Spring Bootで作る マイクロサービスアーキテクチャ! #jjug_ccc #ccc_r53 from Toshiaki Maki
 

Javaフレームワーク「Spring」で簡単にアプリケーションが作れる「Spring Boot」とマイクロサービスアーキテクチャをテーマにしたスライドです。
「Spring Boot」とマイクロサービスアーキテクチャを学んだ上で、以下の3つの演習を行います。

・Spring BootURL短縮サービスを作る
・Spring Cloud Configで動的コンフィギュレーション
・Spring Cloud Netflixでマイクロサービスアーキテクチャ構築

まとめ

マイクロサービス関連の日本語資料や記事はまだ少ないですが、普及に伴ってこれから増えていくことでしょう。
今回は日本語記事を中心に紹介しましたので、マイクロサービスを学びたい方はぜひ読んでみてください。
まだマイクロサービスをよく知らないという方は多いと思うので、今のうちに学んで差をつけておきましょう。

ITエンジニア・Webクリエイターの転職ならレバテックキャリア

レバテックキャリアはIT・Web業界のエンジニア・クリエイターを専門とする転職エージェントです。最新の技術情報や業界動向に精通したキャリアアドバイザーが、年収・技術志向・今後のキャリアパス・ワークライフバランスなど、一人ひとりの希望に寄り添いながら転職活動をサポートします。一般公開されていない大手企業や優良企業の非公開求人も多数保有していますので、まずは一度カウンセリングにお越しください。

転職支援サービスに申し込む

また、「初めての転職で、何から始めていいかわからない」「まだ転職するかどうか迷っている」など、転職活動に何らかの不安を抱えている方には、無料の個別相談会も実施しています。キャリアアドバイザーが一対一で、これからのあなたのキャリアを一緒に考えます。お気軽にご相談ください。

「個別相談会」に申し込む

この記事の監修

レバテックキャリア編集部

レバテックキャリアは、IT/Web業界のエンジニア・クリエイター向けに特化した転職エージェントです。当メディアでは、エンジニア・クリエイターの転職に役立つノウハウから、日々のスキルアップや業務に活かせる情報まで、幅広いコンテンツを発信しています。

プロのアドバイザーがあなたのお悩みや疑問にお答えします

- 転職個別相談会開催中 -

相談内容を選択してください

※転職活動や求人への応募を強制することはありません

関連する記事

人気の求人特集

内定率が高い

今もらっている年収は高い?低い?

簡単60秒 エンジニア・クリエイター専門 年収診断 無料診断START ×