Upgrade to Pro — share decks privately, control downloads, hide ads and more …

DevOps, Immutable Infrastructure, Microservices and Chaos Engineering

DevOps, Immutable Infrastructure, Microservices and Chaos Engineering

Yoshiori SHOJI

March 22, 2019
Tweet

More Decks by Yoshiori SHOJI

Other Decks in Technology

Transcript

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

    •不変にしておく •Blue-Green Deployment IUUQDIBEGPXMFSDPNJNNVUBCMFEFQMPZNFOUTIUNM
  2. Blue-Green Deployment •実は 2010 年の時点で Martin Fowler によって提唱されてい た。 •Immutable

    Infrastructure の記 事の 3 年前 •ただ主題はサーバの不変性ではな く、デプロイの高速化と安定化、 ロールバックのしやすさなどだっ た。 IUUQTNBSUJOGPXMFSDPNCMJLJ#MVF(SFFO%FQMPZNFOUIUNM
  3. MicroservicePrerequisites •下記適性に合わないのであれば、マイクロサー ビススタイルを採用すべきではない ‣Rapid provisioning ‣Basic Monitoring
 少なくとも技術的な問題について(エラーの発 生回数、サービスの可用性など)は検出できる ようにするべきで、同時にビジネス上の問題

    (発注処理の失敗など)をモニタリングするこ とも重要だろう。 ‣Rapid application deployment •Monolithic なシステムでも必要なのでまずは これを整えるべき IUUQTNBSUJOGPXMFSDPNCMJLJ.JDSPTFSWJDF1SFSFRVJTJUFTIUNM
  4. Container Orchestration •K8s や ECS •アプリケーションの実行を抽象化 (docker run) ‣アプリケーション毎にサーバを構築する のではなく、コンテナ実行環境の管理と

    運用をする ‣Microservice 化によって多数のコンテナ 化されたアプリケーションを管理しなく てはいけなくなった。
  5. Microservice + Container •microservice 化によって個々のサービスの小型化 •Docker でアプリケーションのポータビリティの向上 •Cookpad では 70+

    のアプリケーションが協調して動く •各サービスは単純でもシステム全体としては複雑になる
  6. ServiceMesh •Cookpad では data-plane と して Envoy を採用し、 control-plane は自作

    •サービスの通信の状況把握 •タイムアウト・リトライ・サー キットブレーカーをアプリケー ションからはがす
  7. Chaos Engineering •分散システムにおいてシステムが不安定 な状態に耐えることの出来る環境を構築 するための検証の規律です •サーバを落す事ではない ‣多分最初に出た Netflix の Chaos

    Monkey の印象が強すぎてそう思ってい る人が多い ‣このコンテナ時代にインスタンス一個落 しても何もあまり得る物はない IUUQTQSJODJQMFTPGDIBPTPSH
  8. Microservices •実は最初の Microservices の記事に 書いてある •マイクロサービスを採用するチームは サービスがユーザ体験に与える影響に ついて絶えず検討します。 •NetflixのSimian Armyは、アプリ

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