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

クラウド・コンテナ・CI/CDわからん会

y-ohgi
October 15, 2024
15

 クラウド・コンテナ・CI/CDわからん会

TIS株式会社様の社内勉強会にゲストで登壇させていただくスライドです。

y-ohgi

October 15, 2024
Tweet

Transcript

  1. • y-ohgi ◦ @_y_ohgi ◦ JAWS-UG 東京支部運営 • 今まで ◦

    合同会社DMM CTO室SRE部 ◦ フリーランス(SREを中心) ◦ どこかの会社のCCoE • Like ◦ コンテナ, TypeScript, Next.js じこしょうかい
  2. オンプレ(On-Premises)について • 自社でサーバーの構築に必要な リソースを保持 ◦ ハードウェア, ソフトウェア, ネットワーク, 土地, etc…

    • 専門家が必要 ◦ 構築だけでなく運用や障害などに対応できる人材 • 初期コストが高い ◦ 最初に必要なリソースを調達する金額面 ◦ 設計・見積もりから調達・構築を行う時間面 • 自社で全てを管理するため、 高いカスタマイズ性 クラウドわからん
  3. クラウドについて • 必要なときに必要なだけのリソースを確保 することが可能 ◦ 不要なリソースはすぐに返却できる • 従量課金 ◦ 時間単位やリクエスト単位

    での課金 • 代表的なクラウドベンダー ◦ AWS, Google Cloud, Azure • CNCF(Cloud Native Computing Foundation) ◦ クラウドネイティブな技術推進の団体 ◦ Kubernetesを代表にfluentd・Istio・containerdが傘下に クラウドわからん
  4. コンテナとは • 代表的なツールとして「 Docker」 ◦ プロセスをアイソレーション するための技術 ◦ Virtual MachineはOSの仮想化の技術

    • コンテナイメージを作成することで 高い可搬性 を得られる ◦ コンテナイメージからコンテナを作成 する ◦ 同一のコンテナイメージであれば開発者のマシンと本番で同じコンテナを動かせる ▪ コンテナイメージはimmutableなため、他の開発者や本番のイメージを再現可能 • コンテナを動かすためのクラウドサービス ◦ ECS, EKS, GKE, Cloud Run, etc... コンテナわからん
  5. CI(Continuous Integration) • 継続的インテグレーション • 開発物の品質担保 が目的 ◦ デプロイ前のバグの早期発見 ◦

    コーディング規約の統一 • 自動でビルド・テストを実行 ◦ Pull RequestをトリガーにCIを実行するなど • CIをする前に大切なことも ◦ 「開発者間で品質について事前の合意」 ◦ 「Lintやtestを行えている」 ◦ 「レビューの仕組みがある」 CI/CDわからん
  6. CD(Continuous Deployment/Delivery) • 継続的デプロイ • 開発からリリースの一貫性 ◦ 再現性の高いデプロイを行うことで、オペミスの軽減 ◦ 誰がデプロイしても同じ手順になる

    • 自動デプロイ ◦ developブランチにmergeされたタイミングでステージング環境に自動デプロイ される ◦ tag付けされたタイミングに本番環境に自動デプロイ される • CDをする際に大切なことも ◦ 「CIが通っていること」 ◦ 「監視を行いロールバックが可能なこと」 ◦ 「DBへのmigrationをどう扱うか」 CI/CDわからん
  7. • リリースを(極力)自動化 しよう! • CI/CDを取り入れることで開発生産性の向上 ◦ リリースの手動部分を無くす ◦ 誰でもリリースができる仕組みに。 •

    「For Keys」への取り組みでさらなる生産性の向上 ◦ 1. デプロイの頻度 ◦ 2. 変更のリードタイム ◦ 3. 変更障害率 ◦ 4. サービス復元時間 CI/CDわからん CI CD サービス開発の本質に使える時間を増やそう!