Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Drupal開発環境構築 インフラCI/CD編
Search
Takahiro Komatsu
August 27, 2019
Programming
0
490
Drupal開発環境構築 インフラCI/CD編
2019年8月27日 Drupal Meetup 豊田 #7 「Drupal開発環境構築 アプリCI/CD編」での発表スライド
Takahiro Komatsu
August 27, 2019
Tweet
Share
More Decks by Takahiro Komatsu
See All by Takahiro Komatsu
Drupal CMSと世界中をつなぐDrupalコミュニティの魅力
takahiro_komatsu1982
0
24
Meetup豊田リリースパーティ&活動報告
takahiro_komatsu1982
0
75
Introduction of Drupal CMS features and trends | Drupal CMSの機能紹介および動向共有
takahiro_komatsu1982
0
130
Let’s write and expand your Drupal books from your local community!
takahiro_komatsu1982
0
94
DrupalSouth Wellington 2023 Participation Report | DrupalSouth Wellington 2023 参加体験記
takahiro_komatsu1982
0
250
Drupal Meetup Toyota 23
takahiro_komatsu1982
0
130
First Steps to CI/CD for Module Development / モジュール開発向けCI/CDはじめの一歩
takahiro_komatsu1982
0
250
Drupal 9 Web開発ことはじめ〜なにそれ?おいしいの?
takahiro_komatsu1982
0
670
Drupal環境構築 CentOS8編
takahiro_komatsu1982
0
490
Other Decks in Programming
See All in Programming
Media Capture and Streams: W3C仕様と現場での知見
nowaki28
0
130
TypeScript 5.9 で使えるようになった import defer でパフォーマンス最適化を実現する
bicstone
1
980
Microservices Platforms: When Team Topologies Meets Microservices Patterns
cer
PRO
1
900
「文字列→日付」の落とし穴 〜Ruby Date.parseの意外な挙動〜
sg4k0
0
360
手軽に積ん読を増やすには?/読みたい本と付き合うには?
o0h
PRO
1
140
『実践MLOps』から学ぶ DevOps for ML
nsakki55
2
540
AIコードレビューがチームの"文脈"を 読めるようになるまで
marutaku
0
300
GeistFabrik and AI-augmented software development
adewale
PRO
0
240
分散DBって何者なんだ... Spannerから学ぶRDBとの違い
iwashi623
0
170
Micro Frontendsで築いた 共通基盤と運用の試行錯誤 / Building a Shared Platform with Micro Frontends: Operational Learnings
kyntk
1
1.9k
Building AI Agents with TypeScript #TSKaigiHokuriku
izumin5210
6
1.2k
tparseでgo testの出力を見やすくする
utgwkk
1
120
Featured
See All Featured
A Tale of Four Properties
chriscoyier
162
23k
BBQ
matthewcrist
89
9.9k
Mobile First: as difficult as doing things right
swwweet
225
10k
Learning to Love Humans: Emotional Interface Design
aarron
274
41k
The Art of Programming - Codeland 2020
erikaheidi
56
14k
Bash Introduction
62gerente
615
210k
The Invisible Side of Design
smashingmag
302
51k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
1.8k
Practical Orchestrator
shlominoach
190
11k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
285
14k
Six Lessons from altMBA
skipperchong
29
4.1k
The Cost Of JavaScript in 2023
addyosmani
55
9.3k
Transcript
Drupal開発環境構築 インフラCI/CD編 2019.8.27 Drupal Meetup 豊⽥ #7 @豊⽥中央研究所 ことラボ 代表
⼩松⾼廣
撮影・シェアOKです スライドは後ほど https://kotolab.jp にて掲載します
⾃⼰紹介 - ⼩松⾼廣(こまつたかひろ) - ことラボ 代表 - フリーランスエンジニア (ハードウェア/ソフトウェア) -
修⼠:公⽴はこだて未来⼤学⼤学院 システム情報科学研究科 複雑系情報科学領域
前回話したこと
アプリCI/CD
CI/CDのステージ ビルド 結合テスト コーディング デプロイ パッケージ ユニットテスト リリース CI CD
CI 継続的インテグレーション - Continuous Integration - 丁寧に時間をかけて作ったもの同⼠を組み合わせ て1つにして本当に⼤丈夫かどうか?を確かめる (テストをする)のはすごく⼤変 -
たくさんの⼩さなパーツ(Webサイトの場合は外 観パーツ・機能パーツ)を常に新しく作ってどんど ん組み込んでいけるよう統合作業を⾃動化したい
CD 継続的デリバリー/デプロイ - Continuous Delivery - Continuous Deploy - ユーザへ常に新しいものをどうやっ
て届けるか?を⾃動化
CI/CDを実現するために - 情報管理 履歴情報を辿れるgit - ⾃動化 宣⾔的・冪等性を確保するCI/CDツール - 可搬性 コンテナ化するDocker
GitHub Actions - CI/CDツール - 現在はbeta期間中 - 2019/11/13 ⼀般公開予定 -
公開リポジトリなら無料
Dockerによるコンテナ化 開発⽤PC サーバ ハードウェア macOS Apache Drupal MySQL ハードウェア CentOS
Apache Drupal MySQL 開発コード+ミドルウェア を パッケージング(コンテナ化)して持ち運ぶ
Pets vs Cattle - 番号で管理 - 他の家畜と等価 - 病気になったら 他の家畜と⼊れ替える
- 名前をつける - ⼿塩にかけて育てる - 病気になったら 必死に看病する
アプリやインフラがペット化 するとCI/CDはすごく⼤変
アプリCI/CD インフラCI/CD
同じサーバ環境を 何個も作るのはしんどい…
インフラ(サーバ環境)も CI/CDで構築・管理したい
サーバを宣⾔的コードで ⾃動構成するツールはある
構成管理ツール OSインストール後から使えるように なるまでの設定を⾃動的に⾏うソフト - Ansible - Chef - Puppet
クラウド環境 - Google Cloud Platform - Amazon Web Services -
Microsoft Azure - IBM Cloud
サーバ能⼒の差異 オンプレミス クラウド ハードウェア Ubuntu Apache Drupal MySQL ハードウェア RHEL
Apache Drupal MySQL OS環境より上位の差異はDockerが吸収 OS以下の差異は⾃分で考慮してコンテナ配置
どこにどのコンテナを うまく配置するか…
インフラ構築で考えること - オンプレミスvsクラウドではない - クラウドベンダーのロックインを可 能な限り回避したい - 本質的にはDockerコンテナが動か せる環境があればよい
Kubernetes
Kubernetes(k8s) - 「くーばねてぇす」と呼んでる - 各サーバ上のコンテナをまとめて管理 - 異なるサーバでコンテナ間通信を実現 - ユーザにサービスのエンドポイントを提供 -
サーバ群のリソースをコンテナ⽤に仮想化する ためのコンテナオーケストレーション・ツール
エンドポイントの提供 node サーバ Apache Apache node サーバ Apache master サーバ
node サーバ DB コンテナの配分 node サーバ Apache コンテナ間通信
Kubernetesによる仮想化 - Pod(コンテナをまとめたもの)を最 ⼩単位として管理 - k8sが各Podへリソースを配分 - サーバ群を抽象化するOSのような役 割
サーバ群を仮想化する 意味では広義のOS
仮想化 リソースを何らかの制約に囚われない で効率よく利⽤するためにいったん抽 象化してから配分するためのしくみ - OS: プロセスに対してハードを抽象化 - k8s: Podに対してサーバ群を抽象化
Kubernetesマネージドサービス - Google Kubernetes Engine - Amazon Elastic Kubernetes Service
- Azure Kubernetes Service - IBM Cloud Kubernetes Services
Kubernetesで マルチクラウドな構成も可能
AWSでも⽌まるときは⽌まる - 2019/8/23 12:36 - 空調管理システムが⼀部故障 - オーバーヒートしてハード ウェア障害に発展 -
EC2/EBSサービスに影響 - 上記のAWSサービスを利⽤し て構築していたゲームアプリ や決済サービスに影響 IUUQTBXTBNB[PODPNKQNFTTBHF
Single-AZで 障害起きるとつらい
Multi-AZも当然ながら選択肢 でもクラウドベンダーのロックインは やっぱり避けたい
k3s - k8sの各コンポートを統合してより軽量化 したディストリビューション - KVS: etcd → sqlite3 -
ランタイム: docker → containerd - 安価なVPSや複数のRaspberry Pi上で 遊んでみるとおもしろいかも
Kubernetesで クラウドベンダーに依存しない 安定で⾃由なDrupal構築環境!
ご清聴ありがとう ございました
https://kotolab.jp ことラボ