DevOps, Immutable Infrastructure, Microservices and Chaos Engineering

DevOps, Immutable Infrastructure, Microservices and Chaos Engineering

17eb0c1a9d70a94ce95401d046375e3c?s=128

Yoshiori SHOJI

March 22, 2019
Tweet

Transcript

  1. 4.
  2. 8.
  3. 12.

    Immutable Infrastructure •Chad Fowler •とりあえずサーバ弄って 「あとで chef に書いてお くよ!」← 忘れる

    •不変にしておく •Blue-Green Deployment IUUQDIBEGPXMFSDPNJNNVUBCMFEFQMPZNFOUTIUNM
  4. 13.

    Blue-Green Deployment •実は 2010 年の時点で Martin Fowler によって提唱されてい た。 •Immutable

    Infrastructure の記 事の 3 年前 •ただ主題はサーバの不変性ではな く、デプロイの高速化と安定化、 ロールバックのしやすさなどだっ た。 IUUQTNBSUJOGPXMFSDPNCMJLJ#MVF(SFFO%FQMPZNFOUIUNM
  5. 21.

    MicroservicePrerequisites •下記適性に合わないのであれば、マイクロサー ビススタイルを採用すべきではない ‣Rapid provisioning ‣Basic Monitoring
 少なくとも技術的な問題について(エラーの発 生回数、サービスの可用性など)は検出できる ようにするべきで、同時にビジネス上の問題

    (発注処理の失敗など)をモニタリングするこ とも重要だろう。 ‣Rapid application deployment •Monolithic なシステムでも必要なのでまずは これを整えるべき IUUQTNBSUJOGPXMFSDPNCMJLJ.JDSPTFSWJDF1SFSFRVJTJUFTIUNM
  6. 23.
  7. 25.
  8. 29.

    Container Orchestration •K8s や ECS •アプリケーションの実行を抽象化 (docker run) ‣アプリケーション毎にサーバを構築する のではなく、コンテナ実行環境の管理と

    運用をする ‣Microservice 化によって多数のコンテナ 化されたアプリケーションを管理しなく てはいけなくなった。
  9. 30.

    Microservice + Container •microservice 化によって個々のサービスの小型化 •Docker でアプリケーションのポータビリティの向上 •Cookpad では 70+

    のアプリケーションが協調して動く •各サービスは単純でもシステム全体としては複雑になる
  10. 33.

    ServiceMesh •Cookpad では data-plane と して Envoy を採用し、 control-plane は自作

    •サービスの通信の状況把握 •タイムアウト・リトライ・サー キットブレーカーをアプリケー ションからはがす
  11. 34.
  12. 38.

    Chaos Engineering •分散システムにおいてシステムが不安定 な状態に耐えることの出来る環境を構築 するための検証の規律です •サーバを落す事ではない ‣多分最初に出た Netflix の Chaos

    Monkey の印象が強すぎてそう思ってい る人が多い ‣このコンテナ時代にインスタンス一個落 しても何もあまり得る物はない IUUQTQSJODJQMFTPGDIBPTPSH
  13. 44.

    Microservices •実は最初の Microservices の記事に 書いてある •マイクロサービスを採用するチームは サービスがユーザ体験に与える影響に ついて絶えず検討します。 •NetflixのSimian Armyは、アプリ

    ケーションの耐久性と監視についてテ ストするために、勤務時間内にサービ スやデータセンタさえに対しても障害 を誘発させます。 IUUQTNBSUJOGPXMFSDPNBSUJDMFTNJDSPTFSWJDFTIUNM