Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

マイクロサービスの概念はわかるけど、どう実践すればいいの? という人向けの「プロダクションレディマイクロサービス」を読んでみた

More than 3 years have passed since last update.

はじめに

https://qiita.com/advent-calendar/2017/syoroumaru の16日目です。

こんにちは。初老って40代でいいんですよね? きがついたらもうアラフィフになってますが、まだ初老でいこうとおもいます。

オライリーから三ヶ月ほどまえに出たプロダクションレディマイクロサービス。あまり話題になってないようでしたが、読んでみたところよかったので紹介します。
結論から書いておくと 「読んどけ」 です。

動機

会社にあるはずのオライリー マイクロサービスアーキテクチャが借り出されているようで他になんかないかなぁとさがしたら見つけました。ちなみにマイクロサービスアーキテクチャは344ページにたいしてプロダクションレディのほうは216ページということで量が少なく、頑張れば一日でよめそうな分量というのもよかったです。

2.内容について

マイクロサービスのシステムを運用に必要な要素をあげて、それぞれの原則を説明するという本でした。
- 安定性と信頼性
- スケーラビリティとパフォーマンス
- 耐障害性と大惨事対応
- 監視
- ドキュメント

感想

付録のAとBが肝です。わずか10ページすこしですが以下、目次から引用します。

付録A 本番対応のチェックリスト
    A.1 本番対応サービスは安定性、信頼性を備えている
    A.2 本番対応サービスはスケーラブルでパフォーマンスが高い
    A.3 本番対応サービスは耐障害性があり大惨事対応力がある
    A.4 本番対応サービスは適切に監視されている
    A.5 本番対応サービスはドキュメントが整備され、組織的に理解されている

付録B マイクロサービスの評価基準
    B.1 安定性と信頼性
        B.1.1 開発サイクル
        B.1.2 デプロイパイプライン
        B.1.3 依存関係
        B.1.4 ルーティングと検出
        B.1.5 非推奨と廃止
    B.2 スケーラビリティとパフォーマンス
        B.2.1 成長の判断基準
        B.2.2 リソースの効率的な利用
        B.2.3 リソースの把握
        B.2.4 キャパシティプランニング
        B.2.5 依存関係のスケーリング
        B.2.6 トラフィック管理
        B.2.7 タスクの処理
        B.2.8 スケーラブルなデータストレージ
    B.3 耐障害性と大惨事対応
        B.3.1 単一障害点の除去
        B.3.2 大惨事と障害のシナリオ
        B.3.3 回復性テスト
        B.3.4 障害の検出と修正
    B.4 監視
        B.4.1 主要メトリック
        B.4.2 ロギング
        B.4.3 ダッシュボード
        B.4.4 アラート
        B.4.5 オンコールローテーション
    B.5 ドキュメントと組織的な理解
        B.5.1 マイクロサービスのドキュメント
        B.5.2 マイクロサービスについての組織的な理解

で、AとBの内容を説明しているのが本文になります。
本文もそれほどながくないので、是非よんでもらいたいですが、知っていることも知らないこともありました。気になった概念としては

  • SLAがさがったら、デプロイを実施しないという判断
  • 防御的キャッシュ
  • サーキットブレーカー
  • 質的な成長の判断基準

でしょうか。序文にもかいてありますが、詳細について書くと章が本になってしまうので、あくまで原則とその説明になっています。それが、本書の簡潔で読みやすい理由になってます。
詳細については、別の本なりブログなりで読めるので、実際システム運用している人で、マイクロサービスの運用の概観をしりたいという人にとてもお勧めです。

余談

著者の人が女性でした。優秀な人に性差はないんですね。UberのSREということですが、シンプルな原則と読み易い文の裏に血を流して学んだ経験を感じられるのもよい本でした。

もうひとつ、ドストエフスキーの引用をしている部分があるのですが、芥川龍之介の蜘蛛の糸とおなじ構造の話でした。
蜘蛛じゃなくて葱でした。どっちがオリジナルかはよくわかりませんが、よいものは学んで自分のものにすべきという学びだとおもいました。

ではでは。

tt2004d
AWSの構築の仕事をしています。
cloudpack
Amazon Web Services (AWS) の導入設計、環境構築、運用・保守をサポートするマネジドホスティングサービス
https://cloudpack.jp/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away