システム開発初期時の NoOps について考える
NoOps Meetup Online #0
https://noops.connpass.com/event/198690/
Me
person:
name: "Toru Igarashi"
twitter: "@iganari_"
github: "@iganari"
position:
company: "SRE"
skills: [ Kubernetes, GCP, Terraform, Ansible ]
blood-donation:
count: 120
description: "I can donate blood a little"
2
#NoOpsJP
3
#NoOpsJP
Cloud Booster の風景(※イメージ)
4
#NoOpsJP
CA
CA
CA
お客様
※ 楽しくアットホームな雰囲気
Cloud Booster を通して気づいたこと
CI( Continuous Integration ) = 継続的インテグレーション
CD( Continuous Delivery ) = 継続的デリバリー
• CI/CD は設計に入ってはいるが後回しにされがち
• 理由としては他の実装の優先順位が高いため
• まずはアプリが動くところから...
• セキュリティをしっかりしてから...
• CI/CD を作るまではエンジニアが手動でデプロイ対応
• 既に属人化
• 構築後半になってやっと CI/CD の作成
• 当初の設計では入っていなかった仕様を加味した手動デプロイのコード化が必要
• 一見良さそうだけど...
5
#NoOpsJP
短い期間で集中的に開発するためには
• 様々なエンジニアが並列で集中的に開発
• インフラ
• サーバサイド
• フロントエンド
• デザイン
• 開発のデプロイのタイミングはそれぞれ
• デプロイ(のタイミング)がボトルネックになってはいけない
• デプロイの環境が構築出来るまで待ってるのは不便
• トイルの撲滅が必要
※ トイル = 「手作業」「繰り返されていてる」「自動化が可能」「戦術的・長期的な価値がない」「サービスの成長に比例して
増加する」といった特徴を持つ作業 from 『Site Reliability Engineering』の第 5 章
6
#NoOpsJP
昨今の CI/CD
• クラウドが CI/CD ツールを提供している
• [AWS] AWS CodePipeline
• [Azure] Azure Pipelines
• [GCP] Cloud Build
• その他諸々…
• 今回は省略
• クラウドが提供している CI/CD ツールの特徴
• コンテナを使用した高速なビルド
• サーバレス
• セキュリティ保護
• パイプラインをコードで管理(ex. YAML)
7
#NoOpsJP
昨今の CI/CD
• クラウドが CI/CD ツールを提供している
• [AWS] AWS CodePipeline
• [Azure] Azure Pipelines
• [GCP] Cloud Build
• その他諸々…
• 今回は省略
• クラウドが提供している CI/CD ツールの特徴
• コンテナを使用した高速なビルド
• サーバレス
• セキュリティ保護
• パイプラインをコードで管理(ex. YAML)
8
#NoOpsJP
攻めの NoOps と
相性抜群
攻めの NoOps
9
#NoOpsJP
de:code 2019 SP07 実践NoOps: https://www.slideshare.net/hiromasaoka/decode-2019-sp07-noops
10
#NoOpsJP
15分で分かる NoOps: https://www.slideshare.net/hiromasaoka/15-noops
11
#NoOpsJP
15分で分かる NoOps: https://www.slideshare.net/hiromasaoka/15-noops
まとめ
• システム開発初期時でもトイルは発生している
• NoOps 活動として、常にトイル撲滅していく気持ちを持つ
• CI/CD ツールの進化
• クラウドベンダーが提供している CI/CD ツールの質が高く
なっているので、必ずしも自前で構築する必要は無い
上記をシステム開発初期時から意識することで、全体の
効率化を図り、サービスのデリバリーまでの障害を減ら
すことが出来ると考える
12
Thank You !!
13

システム開発初期時の NoOps について考える