More Related Content
Similar to CI/CDって何が良いの?〜言うてるオレもわからんわ〜 #DevKan (20)
More from Kazuhito Miura (20)
CI/CDって何が良いの?〜言うてるオレもわからんわ〜 #DevKan
- 30. DevLOVE関西 「CI/CDの話」CI/CDって何が良いの?
「CDって?」イメージ的には
• Webシステムで考えれば…
– 「プログラム」も「環境」も日々変わっていくし、
当然「リリース方法」もソレに追随して変化する
– 「リリース方法」を「プログラムに転嫁(AsCode)」し
、プログラムor環境に変化が在るたび、
自動で「テスト環境」などにデプロイし「実績」を作る
– 本番にリリースする際も、その「リリース方法」と
(ほぼ)同じにすることにより、安全・確実・最短で
リリースする 開発環境
デプロイサーバ
本番環境
デプロイサーバ
デプロイ手順
のプログラム
日々は変化があるたび、
「本番じゃない」環境に
デプロイ
リリース時は「同じプログラム」を使い
本番環境にデプロイ
(差異はパラメータ程度)
- 31. DevLOVE関西 「CI/CDの話」CI/CDって何が良いの?
「CDって?」イメージ的には
• Webシステムで考えれば…
– 「プログラム」も「環境」も日々変わっていくし、
当然「リリース方法」もソレに追随して変化する
– 「リリース方法」を「プログラムに転嫁(AsCode)」し
、プログラムor環境に変化が在るたび、
自動で「テスト環境」などにデプロイし「実績」を作る
– 本番にリリースする際も、その「リリース方法」と
(ほぼ)同じにすることにより、安全・確実・最短で
リリースする 開発環境
デプロイサーバ
本番環境
デプロイサーバ
デプロイ手順
のプログラム
日々は変化があるたび、
「本番じゃない」環境に
デプロイ
リリース時は「同じプログラム」を使い
本番環境にデプロイ
(差異はパラメータ程度)
「変化」都度「継続的」に
デプロイ(配備)/デリバリしていく
⇓
「継続的デプロイ/デリバリ」
⇓
Contenius Deploy/Delively
⇓
「CD」
- 33. DevLOVE関西 「CI/CDの話」CI/CDって何が良いの?
典型的なCI/CD例
• 典型的な「CI/CDの仕組み」の例を示す
• 舞台とするシステム = Webシステム
– 「ソースコード」から「デプロイ用バイナリ」をビルドする
– 「デプロイ用バイナリ」はサーバに配置するとアプリは動く
– ソースは「VCS」、デプロイ用バイナリは「インハウスリポ
ジトリ」に保存し管理
– デプロイする先は「開発」「ステージング」「本番」と3つ
の環境のデプロイサーバが在る
VCS(ソースバー
ジョン管理サーバ)
ソースコード
インハウスリポジトリ
(バイナリ管理サーバ)
デプロイ用バイナリ
開発環境
デプロイサーバ ステージング環境
デプロイサーバ
本番環境
デプロイサーバ
開発者
- 39. DevLOVE関西 「CI/CDの話」CI/CDって何が良いの?
CI/CDプロダクトと特性
Jenkins
CloudBees Jenkins
JenkinsX
Azure DevOps
Servers(旧VSTS)
Azure DevOps
オンプレミス(旧TFS)
Visual Studio
App Center
TeamCity
drone(プロダクト)
Concource
Strider CD
Buildbot
Go Continuous
Delivery(GoCD)
CircleCI
TraviceCI
Warcker
AppVeyor
Scrutinizer
drone.io(サービス)
CodeShip
Shippeble
Solano CI
Screwdriver.cd
Semaphore
DEPLOYBOT
Buildkite
Github
Gitlab(プロダクト)
Gitlab(サービス)
BitBucket
Heroku
Bumboo
Bitrise
buddybuild
nevercode
AWS CodeStar
AWS CodePipeline
AWS CodeDeploy
Google Cloud Build
codefresh
Spinnaker
CI/CDプロダクト
- 40. DevLOVE関西 「CI/CDの話」CI/CDって何が良いの?
CI/CDプロダクトと特性
Jenkins
CloudBees Jenkins
JenkinsX
Azure DevOps
Servers(旧VSTS)
Azure DevOps
オンプレミス(旧TFS)
Visual Studio
App Center
TeamCity
drone(プロダクト)
Concource
Strider CD
Buildbot
Go Continuous
Delivery(GoCD)
CircleCI
TraviceCI
Warcker
AppVeyor
Scrutinizer
drone.io(サービス)
CodeShip
Shippeble
Solano CI
Screwdriver.cd
Semaphore
DEPLOYBOT
Buildkite
Github
Gitlab(プロダクト)
Gitlab(サービス)
BitBucket
Heroku
Bumboo
Bitrise
buddybuild
nevercode
AWS CodeStar
AWS CodePipeline
AWS CodeDeploy
Google Cloud Build
codefresh
Spinnaker
CI/CDプロダクト
なんじゃ
こりゃw
注-コレでも多少しぼっています。
- 42. DevLOVE関西 「CI/CDの話」CI/CDって何が良いの?
CI/CDプロダクトと特性
Jenkins
CloudBees Jenkins
JenkinsX
Azure DevOps
Servers(旧VSTS)
Azure DevOps
オンプレミス(旧TFS)
Visual Studio
App Center
TeamCity
drone(プロダクト)
Concource
Strider CD
Buildbot
Go Continuous
Delivery(GoCD)
CircleCI
TraviceCI
Warcker
AppVeyor
Scrutinizer
drone.io(サービス)
CodeShip
Shippeble
Solano CI
Screwdriver.cd
Semaphore
DEPLOYBOT
Buildkite
Github
Gitlab(プロダクト)
Gitlab(サービス)
BitBucket
Heroku
Bumboo
Bitrise
buddybuild
nevercode
AWS CodeStar
AWS CodePipeline
AWS CodeDeploy
Google Cloud Build
codefresh
Spinnaker
オンプレ型
サービス型
- 43. DevLOVE関西 「CI/CDの話」CI/CDって何が良いの?
CI/CDプロダクトと特性
Jenkins
CloudBees Jenkins
JenkinsX
Azure DevOps
Servers(旧VSTS)
Azure DevOps
オンプレミス(旧TFS)
Visual Studio
App Center
TeamCity
drone(プロダクト)
Concource
Strider CD
Buildbot
Go Continuous
Delivery(GoCD)
CircleCI
TraviceCI
Warcker
AppVeyor
Scrutinizer
drone.io(サービス)
CodeShip
Shippeble
Solano CI
Screwdriver.cd
Semaphore
DEPLOYBOT
Buildkite
Github
Gitlab(プロダクト)
Gitlab(サービス)
BitBucket
Heroku
Bumboo
Bitrise
buddybuild
nevercode
AWS CodeStar
AWS CodePipeline
AWS CodeDeploy
Google Cloud Build
codefresh
Spinnaker
オンプレ型
サービス型
予想より意外と
オンプレ型
が多い気がした
注-プロダクトとサービス
両方ともやってるものも
別々にあつかっている
- 44. DevLOVE関西 「CI/CDの話」CI/CDって何が良いの?
CI/CDプロダクトと特性
Jenkins
CloudBees Jenkins
JenkinsX
Azure DevOps
Servers(旧VSTS)
Azure DevOps
オンプレミス(旧TFS)
Visual Studio
App Center
TeamCity
drone(プロダクト)
Concource
Strider CD
Buildbot
Go Continuous
Delivery(GoCD)
CircleCI
TraviceCI
Warcker
AppVeyor
Scrutinizer
drone.io(サービス)
CodeShip
Shippeble
Solano CI
Screwdriver.cd
Semaphore
DEPLOYBOT
Buildkite
Github
Gitlab(プロダクト)
Gitlab(サービス)
BitBucket
Heroku
Bumboo
Bitrise
buddybuild
nevercode
AWS CodeStar
AWS CodePipeline
AWS CodeDeploy
Google Cloud Build
codefresh
Spinnaker
目的特化型
(言語、OS、
環境等)
- 45. DevLOVE関西 「CI/CDの話」CI/CDって何が良いの?
CI/CDプロダクトと特性
Jenkins
CloudBees Jenkins
JenkinsX
Azure DevOps
Servers(旧VSTS)
Azure DevOps
オンプレミス(旧TFS)
Visual Studio
App Center
TeamCity
drone(プロダクト)
Concource
Strider CD
Buildbot
Go Continuous
Delivery(GoCD)
CircleCI
TraviceCI
Warcker
AppVeyor
Scrutinizer
drone.io(サービス)
CodeShip
Shippeble
Solano CI
Screwdriver.cd
Semaphore
DEPLOYBOT
Buildkite
Github
Gitlab(プロダクト)
Gitlab(サービス)
BitBucket
Heroku
Bumboo
Bitrise
buddybuild
nevercode
AWS CodeStar
AWS CodePipeline
AWS CodeDeploy
Google Cloud Build
codefresh
Spinnaker
目的特化型
(言語、OS、
環境等)
iOS特化、
Windows特化、
PHP特化、
CD特化、
k8sデプロイ特化
- 46. DevLOVE関西 「CI/CDの話」CI/CDって何が良いの?
CI/CDプロダクトと特性
Jenkins
CloudBees Jenkins
JenkinsX
Azure DevOps
Servers(旧VSTS)
Azure DevOps
オンプレミス(旧TFS)
Visual Studio
App Center
TeamCity
drone(プロダクト)
Concource
Strider CD
Buildbot
Go Continuous
Delivery(GoCD)
CircleCI
TraviceCI
Warcker
AppVeyor
Scrutinizer
drone.io(サービス)
CodeShip
Shippeble
Solano CI
Screwdriver.cd
Semaphore
DEPLOYBOT
Buildkite
Github
Gitlab(プロダクト)
Gitlab(サービス)
BitBucket
Heroku
Bumboo
Bitrise
buddybuild
nevercode
AWS CodeStar
AWS CodePipeline
AWS CodeDeploy
Google Cloud Build
codefresh
Spinnaker
統合型
(サービスの一部
機能としてCIも
ありますよ
型)
- 47. DevLOVE関西 「CI/CDの話」CI/CDって何が良いの?
CI/CDプロダクトと特性
Jenkins
CloudBees Jenkins
JenkinsX
Azure DevOps
Servers(旧VSTS)
Azure DevOps
オンプレミス(旧TFS)
Visual Studio
App Center
TeamCity
drone(プロダクト)
Concource
Strider CD
Buildbot
Go Continuous
Delivery(GoCD)
CircleCI
TraviceCI
Warcker
AppVeyor
Scrutinizer
drone.io(サービス)
CodeShip
Shippeble
Solano CI
Screwdriver.cd
Semaphore
DEPLOYBOT
Buildkite
Github
Gitlab(プロダクト)
Gitlab(サービス)
BitBucket
Heroku
Bumboo
Bitrise
buddybuild
nevercode
AWS CodeStar
AWS CodePipeline
AWS CodeDeploy
Google Cloud Build
codefresh
Spinnaker
コンテナ
利用可
(あるいはOnly)
型
- 51. DevLOVE関西 「CI/CDの話」CI/CDって何が良いの?
トレンド-1, インフラCIの普及
• 「インフラCI」冠した本が出た
–「IaC」「ダイナミックインフラ」の説明
–Gitlab-CiとAnsibleを使っ
て、Vagrant/Docker対象とした「環境」の
UT/IT/ST
–ITS/VCSの運用法、brnch,レビュー等の人系や
プロセス
–仮想機/コンテナ等「オンプレの話」が主
• 「本が出た」なら「一般に広まった」と言える?
–数年前は「限られた所は実践している」印象
–「IaC」「クラウド台頭」という「インフラのソ
フト化」が追い風になっているのかも
- 56. DevLOVE関西 「CI/CDの話」CI/CDって何が良いの?
トレンド-3, Github Actions発表
• ついに本命VCSの「本体」にCI機能が!
– 現在、Beta版利用者を募集中
• 公開されてる情報からわかること
– Commit/Pushで動く”Action”を登録出来る
– Actionをつなげた”ワークフロー”を定義出来る
– 定義はAsCodeされ、GUI/Codeラウンドトリップ
可能
– CodeはHCL(HashiCorp Configration
Language)記述
– Action一つはDockerコンテナで実行される