SlideShare a Scribd company logo
1 of 59
Download to read offline
DevLOVE関西 「CI/CDの話」CI/CDって何が良いの?
継続的インテグレーション(CI)・継続的デリバリー(CD)のお話
CI/CI/CDCDってって
何が良いの?何が良いの?
Ver 1.0
〜言うてるオレもわからんわ〜
この発表は
みうらの解釈
です。
「それはまちがってる!」
などありましたら、
お伝え頂きたいですが、
30分後以降にお願いします。
DevLOVE関西 「CI/CDの話」CI/CDって何が良いの?
自己紹介
って言うてる
「みうら」
てだれですか?
DevLOVE関西 「CI/CDの話」CI/CDって何が良いの?
事故紹介?
• 通称:みうみう
• Twitter:@kazuhito_m
• Github:kazuhito-m
• 職業:自動家、プログラマ、
CI/CDとか考える人
– フリーランス
– 最近はサービス作ってる
• 好きなもの:自動化,「継続的なんとか」
– CI/CDとか大好物
三浦 一仁(みうら かずひと)
DevLOVE関西 「CI/CDの話」CI/CDって何が良いの?
CIって?CDって?
1.
CIって?
CDって?
DevLOVE関西 「CI/CDの話」CI/CDって何が良いの?
CIって?CDって?
1.
CIって?
CDって?
の前に…
人はなぜ
「プログラムを作る」
のでしょう?
DevLOVE関西 「CI/CDの話」CI/CDって何が良いの?
人はなぜ「プログラムを作る」?
それは…
何らかの
「問題解決」
のために
そのためには?
DevLOVE関西 「CI/CDの話」CI/CDって何が良いの?
何らかの「問題解決」のために…は?
プロダクトを
速く世に出し
たい
DevLOVE関西 「CI/CDの話」CI/CDって何が良いの?
もうちょい具体的に…
プロダクトを
いつでも出せる状態
にし、作り、
”秒で”リリース出来る
ようにしたい
DevLOVE関西 「CI/CDの話」CI/CDって何が良いの?
おおざっぱに言うと…
プロダクトを
いつでも出せる状態
にし、作り、
”秒で”リリース出来る
ようにしたい
CIの領域
CDの領域
DevLOVE関西 「CI/CDの話」CI/CDって何が良いの?
おおざっぱに言うと…
プロダクトを
いつでも出せる状態
にし、作り、
”秒で”リリース出来る
ようにしたい
CIの領域
CDの領域
というのを、
ぼやっと
頭に置いて
頂いて…
DevLOVE関西 「CI/CDの話」CI/CDって何が良いの?
では、「CIって?」
プロダクトを
いつでも出せる状態
にし、作り、
”秒で”リリース出来る
ようにしたい
CIの領域
とはなんなのか?
DevLOVE関西 「CI/CDの話」CI/CDって何が良いの?
「CIって?」みうらが思うに…
「いつでも出せる状態」
とは
常時「壊れていないか」
「動くか」が検査されており、
「安全」が保たれた状態
雑なイメージ
(脳内)
DevLOVE関西 「CI/CDの話」CI/CDって何が良いの?
「CIって?」イメージ
こういう「構造物」があるとして…
DevLOVE関西 「CI/CDの話」CI/CDって何が良いの?
「CIって?」イメージ
その1パーツ中の一部を「変えた」場合
DevLOVE関西 「CI/CDの話」CI/CDって何が良いの?
「CIって?」イメージ
「変化」があった途端に、
「全組み立て直し」をして
ちゃんと
ハマるかなー?
ちゃんと
ハマるかなー?
DevLOVE関西 「CI/CDの話」CI/CDって何が良いの?
「CIって?」イメージ
コレだけなら「再度組み上げられた」だけで
「壊れていないか」は解らないので
壊れてないか
(期待通りか)
確認
検査(テスト)
して
Test
Test
Test
Test
Test
Test
DevLOVE関西 「CI/CDの話」CI/CDって何が良いの?
「CIって?」人はコレを呼んでいる
「変化」都度「継続的」に
「組み立て(統合)」していく
⇓
継続的な統合
⇓
「継続的インテグレーション」
⇓
Contenius Integration
⇓
「CI」
さて…
DevLOVE関西 「CI/CDの話」CI/CDって何が良いの?
おおざっぱに言うと…その2
プロダクトを
いつでも出せる状態
にし、作り、
”秒で”リリース出来る
ようにしたい
CDの領域
とはなんなのか?
DevLOVE関西 「CI/CDの話」CI/CDって何が良いの?
「CDって?」みうらが思うに…
「”秒で”リリース出来る」
とは
「リリースしたい!の意思発生」
から「最短」で「安全・確実」に
「新しいモノ」が出せる
DevLOVE関西 「CI/CDの話」CI/CDって何が良いの?
「CDって?」みうらが思うに…
「”秒で”リリース出来る」
とは
「リリースしたい!の意思発生」
から「最短」で「安全・確実」に
「新しいモノ」が出せる
思いとしては…
DevLOVE関西 「CI/CDの話」CI/CDって何が良いの?
「CDって?」みうらが思うに…
「リリースしたい!の意思発生」
から「最短」で「安全・確実」に
「新しいモノ」が出せる
意思を鈍らせ
ない”簡易性”
自動化
”速度”が必要
”コンピュータの
仕事”にする
再現性のある
”手段”の確立
試行回数を稼ぐ
AsCode
(プログラム化)
変化のたびに、
つど”リリース手順”
を試行”
DevLOVE関西 「CI/CDの話」CI/CDって何が良いの?
「CDって?」みうらが思うに…
「リリースしたい!の意思発生」
から「最短」で「安全・確実」に
「新しいモノ」が出せる
意思を鈍らせ
ない”簡易性”
自動化
”速度”が必要
”コンピュータの
仕事”にする
再現性のある
”手段”の確立
試行回数を稼ぐ
AsCode
(プログラム化)
変化のたびに、
つど”リリース手順”
を試行”
と、言うことを
ふまえると…
「リリース(デプロイ)」を
「コンピュータの仕事」にして、
「変化」の都度「連打する」し、
人がリリースしようと思った
場合も「簡易に」出来る
…ようにしておけば、良い?
DevLOVE関西 「CI/CDの話」CI/CDって何が良いの?
「CDって?」イメージ的には
• 「CDって?」が
「コレを指す」事が多いのは…
①「変化」する都度、
「ビルドし特定環境にデプロイ」
②「1クリックデプロイ」など、
人にとって「簡易」な方法で
「最短で本番リリース」出来る
「(半)自動化」
DevLOVE関西 「CI/CDの話」CI/CDって何が良いの?
「CDって?」イメージ的には
• Webシステムで考えれば…
– 「プログラム」も「環境」も日々変わっていくし、
当然「リリース方法」もソレに追随して変化する
– 「リリース方法」を「プログラムに転嫁(AsCode)」し
、プログラムor環境に変化が在るたび、
自動で「テスト環境」などにデプロイし「実績」を作る
– 本番にリリースする際も、その「リリース方法」と
(ほぼ)同じにすることにより、安全・確実・最短で
リリースする 開発環境
デプロイサーバ
本番環境
デプロイサーバ
デプロイ手順
のプログラム
日々は変化があるたび、
「本番じゃない」環境に
デプロイ
リリース時は「同じプログラム」を使い
本番環境にデプロイ
(差異はパラメータ程度)
DevLOVE関西 「CI/CDの話」CI/CDって何が良いの?
「CDって?」イメージ的には
• Webシステムで考えれば…
– 「プログラム」も「環境」も日々変わっていくし、
当然「リリース方法」もソレに追随して変化する
– 「リリース方法」を「プログラムに転嫁(AsCode)」し
、プログラムor環境に変化が在るたび、
自動で「テスト環境」などにデプロイし「実績」を作る
– 本番にリリースする際も、その「リリース方法」と
(ほぼ)同じにすることにより、安全・確実・最短で
リリースする 開発環境
デプロイサーバ
本番環境
デプロイサーバ
デプロイ手順
のプログラム
日々は変化があるたび、
「本番じゃない」環境に
デプロイ
リリース時は「同じプログラム」を使い
本番環境にデプロイ
(差異はパラメータ程度)
「変化」都度「継続的」に
デプロイ(配備)/デリバリしていく
⇓
「継続的デプロイ/デリバリ」
⇓
Contenius Deploy/Delively
⇓
「CD」
DevLOVE関西 「CI/CDの話」CI/CDって何が良いの?
典型的なCI/CD例
2.
典型的なCI/CD例
(パイプライン)
DevLOVE関西 「CI/CDの話」CI/CDって何が良いの?
典型的なCI/CD例
• 典型的な「CI/CDの仕組み」の例を示す
• 舞台とするシステム = Webシステム
– 「ソースコード」から「デプロイ用バイナリ」をビルドする
– 「デプロイ用バイナリ」はサーバに配置するとアプリは動く
– ソースは「VCS」、デプロイ用バイナリは「インハウスリポ
ジトリ」に保存し管理
– デプロイする先は「開発」「ステージング」「本番」と3つ
の環境のデプロイサーバが在る
VCS(ソースバー
ジョン管理サーバ)
ソースコード
インハウスリポジトリ
(バイナリ管理サーバ)
デプロイ用バイナリ
開発環境
デプロイサーバ ステージング環境
デプロイサーバ
本番環境
デプロイサーバ
開発者
DevLOVE関西 「CI/CDの話」CI/CDって何が良いの?
単体自動
テスト
静的解析
E2E
(受入)
自動テスト
バイナリ
のビルド
&Ver付与
インハウス
リポジトリ
に登録
開発用
環境に
デプロイ
Ver.1.0.2
典型的なCI/CD例
Webシステムの例
単体自動
テスト
静的解析
E2E
(受入)
自動テスト
開発用
環境に
デプロイ
ステージ
ング環境
にデプロイ
本番
環境に
デプロイ
何らかのルール
による判断
開発者がソースを変更
変更
検知 インハウス
リポジトリ
に登録
権限を持った
人間の判断
バイナリ
のビルド
&Ver付与Ver.1.0.1
単体自動
テスト
単体自動
テスト
静的解析
E2E
(受入)
自動テスト
ステージ
ング環境
にデプロイ
ステージ
ング環境
にデプロイ
本番
環境に
デプロイ
単体自動
テスト
静的解析
E2E
(受入)
自動テスト
バイナリ
のビルド
&Ver付与
インハウス
リポジトリ
に登録
開発用
環境に
デプロイ
Ver.1.0.3
単体自動
テスト
静的解析
E2E
(受入)
自動テスト
バイナリ
のビルド
&Ver付与
インハウス
リポジトリ
に登録
開発用
環境に
デプロイ
Ver.1.0.4
DevLOVE関西 「CI/CDの話」CI/CDって何が良いの?
単体自動
テスト
静的解析
E2E
(受入)
自動テスト
バイナリ
のビルド
&Ver付与
インハウス
リポジトリ
に登録
開発用
環境に
デプロイ
Ver.1.0.2
典型的なCI/CD例 - CI/CDの領域
Webシステムの例
何らかのルール
による判断
開発者がソースを変更
変更
検知
権限を持った
人間の判断
Ver.1.0.1
単体自動
テスト
単体自動
テスト
静的解析
E2E
(受入)
自動テスト
ステージ
ング環境
にデプロイ
ステージ
ング環境
にデプロイ
本番
環境に
デプロイ
単体自動
テスト
静的解析
E2E
(受入)
自動テスト
バイナリ
のビルド
&Ver付与
インハウス
リポジトリ
に登録
開発用
環境に
デプロイ
Ver.1.0.3
単体自動
テスト
静的解析
E2E
(受入)
自動テスト
バイナリ
のビルド
&Ver付与
インハウス
リポジトリ
に登録
開発用
環境に
デプロイ
Ver.1.0.4
パイプライン
(もしくは”ワークフロー”)
単体自動
テスト
静的解析
E2E
(受入)
自動テスト
開発用
環境に
デプロイ
ステージ
ング環境
にデプロイ
本番
環境に
デプロイ
インハウス
リポジトリ
に登録
バイナリ
のビルド
&Ver付与
CI CD
DevLOVE関西 「CI/CDの話」CI/CDって何が良いの?
単体自動
テスト
静的解析
E2E
(受入)
自動テスト
開発用
環境に
デプロイ
ステージ
ング環境
にデプロイ
本番
環境に
デプロイ
インハウス
リポジトリ
に登録
バイナリ
のビルド
&Ver付与
単体自動
テスト
静的解析
E2E
(受入)
自動テスト
バイナリ
のビルド
&Ver付与
インハウス
リポジトリ
に登録
開発用
環境に
デプロイ
Ver.1.0.2
典型的なCI/CD例
Webシステムの例
何らかのルール
による判断
開発者がソースを変更
変更
検知
権限を持った
人間の判断
Ver.1.0.1
単体自動
テスト
単体自動
テスト
静的解析
E2E
(受入)
自動テスト
ステージ
ング環境
にデプロイ
ステージ
ング環境
にデプロイ
本番
環境に
デプロイ
単体自動
テスト
静的解析
E2E
(受入)
自動テスト
バイナリ
のビルド
&Ver付与
インハウス
リポジトリ
に登録
開発用
環境に
デプロイ
Ver.1.0.3
単体自動
テスト
静的解析
E2E
(受入)
自動テスト
バイナリ
のビルド
&Ver付与
インハウス
リポジトリ
に登録
開発用
環境に
デプロイ
Ver.1.0.4
ま「典型的」であれど
「模範的」「理想的」か解らないし、
「現実的」かも場合に寄りますが…
バイナリは無限に貯められることにななってるし、
本番リリースがイージー過ぎるかもしれないし…
DevLOVE関西 「CI/CDの話」CI/CDって何が良いの?
CI/CDプロダクトと特性
3.
CI/CDプロダクト
と特性
DevLOVE関西 「CI/CDの話」CI/CDって何が良いの?
CI/CDプロダクトと特性
• 「CI/CDのためのプロダクト」と銘打つととん
でもない量になる
– 定義は「CI/CD目的で」「サーバとして機能する」
「GUIでの可視化が出来る(操作出来るか問わず)」
• 一覧はこちら
• 代表的なものを散りばめたマップがこんな感じ
(次ページ)
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プロダクト
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
注-コレでも多少しぼっています。
ちょっと
特性・テーマ別に
しぼりながら
見ていきましょう
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
オンプレ型
サービス型
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
オンプレ型
サービス型
予想より意外と
オンプレ型
が多い気がした
注-プロダクトとサービス
両方ともやってるものも
別々にあつかっている
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、
環境等)
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デプロイ特化
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も
ありますよ
型)
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)
型
DevLOVE関西 「CI/CDの話」CI/CDって何が良いの?
CI/CDプロダクトと特性-雑感
• 他にも「絞り込むための切り口」はいろいろと
– 「クラウドの一部型」「VCSとの親和性」
「パイプライン構築可」「AsCode可」,etc...
– 詳しくは先述のこちら
• CI/CDプロダクトの多い特性
– オンプレ: 多くがお試し用コンテナイメージを公開
– サービス: OSS利用だと無料
• 多くの選択肢があるが…
– 「自身のプロジェクト」の「制約」「特性」「予
算」や、CIの「重要度」「必要スピード」などを材
料に選ぶのがよさそう
DevLOVE関西 「CI/CDの話」CI/CDって何が良いの?
トレンド
4.
トピック・ニュース
トレンド
(最近の風潮)
DevLOVE関西 「CI/CDの話」CI/CDって何が良いの?
トレンド-1, インフラCIの普及
インフラCIの
普及
DevLOVE関西 「CI/CDの話」CI/CDって何が良いの?
トレンド-1, インフラCIの普及
• 「インフラCI」冠した本が出た
–「IaC」「ダイナミックインフラ」の説明
–Gitlab-CiとAnsibleを使っ
て、Vagrant/Docker対象とした「環境」の
UT/IT/ST
–ITS/VCSの運用法、brnch,レビュー等の人系や
プロセス
–仮想機/コンテナ等「オンプレの話」が主
• 「本が出た」なら「一般に広まった」と言える?
–数年前は「限られた所は実践している」印象
–「IaC」「クラウド台頭」という「インフラのソ
フト化」が追い風になっているのかも
DevLOVE関西 「CI/CDの話」CI/CDって何が良いの?
トレンド-1, インフラCIの普及
• 参考:#インフラ勉強会で行なった勉強会資料
–以下は資料中で使った一枚絵
DevLOVE関西 「CI/CDの話」CI/CDって何が良いの?
トレンド-2, コンテナ/k8sファースト
コンテナ/k8sファースト
DevLOVE関西 「CI/CDの話」CI/CDって何が良いの?
トレンド-2, コンテナ/k8sファースト
• なんでもかんでもDocker/コンテナな風潮
–「オンプレCIプロダクト」では、必ずお試し
版イメージをdockerhubに用意している
–CIサービスのワーカは大体コンテナ
–「CIする対象」も「Dockerイメージ」多し
• オーケストレーション/実行環境はk8s一強
• その風潮の急先鋒として”Jenkins X”
–k8s上で動き、ワーカもk8s上で、ビルドする
ものもDockerイメージという特化Jenkins
DevLOVE関西 「CI/CDの話」CI/CDって何が良いの?
トレンド-3, Github Actions発表
Github Actions
発表
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コンテナで実行される
DevLOVE関西 「CI/CDの話」CI/CDって何が良いの?
いいたかったこと
言いたかったこと
(まとめ)
DevLOVE関西 「CI/CDの話」CI/CDって何が良いの?
月並みですが…なんとなく
典型的なCI/CD
(パイプライン)
CIって? CDって?
CI/CDプロダクト種
(具体実装例は
今回未紹介)
定理・公式
パターン
意味・原則
具体的な事象
・物体・解
導き出す ことが出来る
導き出す ことが出来る
(自らで) 考え出せる
(自らで) 考え出せる
CI/CDプロダクト種
を使って、自分達に
最適なやりかた
DevLOVE関西 「CI/CDの話」CI/CDって何が良いの?
雑なまとめ
• CI/CDは「プロダクトを速く世に出す」た
めの考え方
• 「CIって?」「CDって?」を理解して、
自身のコンテキスト(環境・チーム・プロダ
クト)に最適な「パイプライン」を設計しま
しょう
• その「道具」は無数にあるので「制約」
「特性」などを軸に選択しましょう
• 「具体的な方法」については、このあとの
西村 翔さん、 @posauneさんのセッショ
ンで!

More Related Content

What's hot

Twitterのsnowflakeについて
TwitterのsnowflakeについてTwitterのsnowflakeについて
Twitterのsnowflakeについて
moai kids
 
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考えるGoのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える
pospome
 

What's hot (20)

40歳過ぎてもエンジニアでいるためにやっていること
40歳過ぎてもエンジニアでいるためにやっていること40歳過ぎてもエンジニアでいるためにやっていること
40歳過ぎてもエンジニアでいるためにやっていること
 
Twitterのsnowflakeについて
TwitterのsnowflakeについてTwitterのsnowflakeについて
Twitterのsnowflakeについて
 
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考えるGoのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える
 
BuildKitによる高速でセキュアなイメージビルド
BuildKitによる高速でセキュアなイメージビルドBuildKitによる高速でセキュアなイメージビルド
BuildKitによる高速でセキュアなイメージビルド
 
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
 
エンジニアのためのOSSライセンス管理~OSS管理ツールの池の水全部抜く~
エンジニアのためのOSSライセンス管理~OSS管理ツールの池の水全部抜く~エンジニアのためのOSSライセンス管理~OSS管理ツールの池の水全部抜く~
エンジニアのためのOSSライセンス管理~OSS管理ツールの池の水全部抜く~
 
こわくない Git
こわくない Gitこわくない Git
こわくない Git
 
目grep入門 +解説
目grep入門 +解説目grep入門 +解説
目grep入門 +解説
 
Kubernetes Service Account As Multi-Cloud Identity / Cloud Native Security Co...
Kubernetes Service Account As Multi-Cloud Identity / Cloud Native Security Co...Kubernetes Service Account As Multi-Cloud Identity / Cloud Native Security Co...
Kubernetes Service Account As Multi-Cloud Identity / Cloud Native Security Co...
 
Javaのログ出力: 道具と考え方
Javaのログ出力: 道具と考え方Javaのログ出力: 道具と考え方
Javaのログ出力: 道具と考え方
 
SSIとDIDで何を解決したいのか?(β版)
SSIとDIDで何を解決したいのか?(β版)SSIとDIDで何を解決したいのか?(β版)
SSIとDIDで何を解決したいのか?(β版)
 
「顧客の声を聞かない」とはどういうことか
「顧客の声を聞かない」とはどういうことか「顧客の声を聞かない」とはどういうことか
「顧客の声を聞かない」とはどういうことか
 
新たなgitのブランチモデル「Git Feature Flow」!Git Flow,Git Hub Flow,Git Lab Flowを超えれるか?
新たなgitのブランチモデル「Git Feature Flow」!Git Flow,Git Hub Flow,Git Lab Flowを超えれるか?新たなgitのブランチモデル「Git Feature Flow」!Git Flow,Git Hub Flow,Git Lab Flowを超えれるか?
新たなgitのブランチモデル「Git Feature Flow」!Git Flow,Git Hub Flow,Git Lab Flowを超えれるか?
 
継承やめろマジやめろ。 なぜイケないのか 解説する
継承やめろマジやめろ。 なぜイケないのか 解説する継承やめろマジやめろ。 なぜイケないのか 解説する
継承やめろマジやめろ。 なぜイケないのか 解説する
 
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
 
分散トレーシング技術について(Open tracingやjaeger)
分散トレーシング技術について(Open tracingやjaeger)分散トレーシング技術について(Open tracingやjaeger)
分散トレーシング技術について(Open tracingやjaeger)
 
心理的安全性を 0から80ぐらいに上げた話
心理的安全性を 0から80ぐらいに上げた話心理的安全性を 0から80ぐらいに上げた話
心理的安全性を 0から80ぐらいに上げた話
 
入門!Jenkins
入門!Jenkins入門!Jenkins
入門!Jenkins
 
世界一わかりやすいClean Architecture
世界一わかりやすいClean Architecture世界一わかりやすいClean Architecture
世界一わかりやすいClean Architecture
 
マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!
 

Similar to CI/CDって何が良いの?〜言うてるオレもわからんわ〜 #DevKan

Visual studioonlineとwebサイトで始めるci/cdの第一歩
Visual studioonlineとwebサイトで始めるci/cdの第一歩Visual studioonlineとwebサイトで始めるci/cdの第一歩
Visual studioonlineとwebサイトで始めるci/cdの第一歩
Kazunori Hamamoto
 
設計と実装で 抑えておきたい サービスクラスと例外
設計と実装で 抑えておきたい サービスクラスと例外設計と実装で 抑えておきたい サービスクラスと例外
設計と実装で 抑えておきたい サービスクラスと例外
Takuya Sato
 
Aizu.LT16 社会人1年目の失敗とContinuous Integration
Aizu.LT16 社会人1年目の失敗とContinuous IntegrationAizu.LT16 社会人1年目の失敗とContinuous Integration
Aizu.LT16 社会人1年目の失敗とContinuous Integration
Tomoaki Tamura
 

Similar to CI/CDって何が良いの?〜言うてるオレもわからんわ〜 #DevKan (20)

分かったうえではじめるCI/CD
分かったうえではじめるCI/CD分かったうえではじめるCI/CD
分かったうえではじめるCI/CD
 
Circle ciで結果をslackに通知してみる
Circle ciで結果をslackに通知してみるCircle ciで結果をslackに通知してみる
Circle ciで結果をslackに通知してみる
 
Lt7 circle ci hugo
Lt7 circle ci hugoLt7 circle ci hugo
Lt7 circle ci hugo
 
Visual studioonlineとwebサイトで始めるci/cdの第一歩
Visual studioonlineとwebサイトで始めるci/cdの第一歩Visual studioonlineとwebサイトで始めるci/cdの第一歩
Visual studioonlineとwebサイトで始めるci/cdの第一歩
 
Ciecleci
CiecleciCiecleci
Ciecleci
 
ux_team_of_one
ux_team_of_oneux_team_of_one
ux_team_of_one
 
設計と実装で 抑えておきたい サービスクラスと例外
設計と実装で 抑えておきたい サービスクラスと例外設計と実装で 抑えておきたい サービスクラスと例外
設計と実装で 抑えておきたい サービスクラスと例外
 
MicroServiceArchitecture
MicroServiceArchitectureMicroServiceArchitecture
MicroServiceArchitecture
 
How to start_business_by_leanstartup@agile_japan2012東京サテライト
How to start_business_by_leanstartup@agile_japan2012東京サテライトHow to start_business_by_leanstartup@agile_japan2012東京サテライト
How to start_business_by_leanstartup@agile_japan2012東京サテライト
 
遠くの"計画"よりも今日の"CD"(継続的デプロイ) #jenkinsstudy
遠くの"計画"よりも今日の"CD"(継続的デプロイ) #jenkinsstudy遠くの"計画"よりも今日の"CD"(継続的デプロイ) #jenkinsstudy
遠くの"計画"よりも今日の"CD"(継続的デプロイ) #jenkinsstudy
 
VIOPS07: CDNの困ったネタ
VIOPS07: CDNの困ったネタVIOPS07: CDNの困ったネタ
VIOPS07: CDNの困ったネタ
 
ソースが書けなくてもAndroidアプリをクリック(GUI)開発したい
ソースが書けなくてもAndroidアプリをクリック(GUI)開発したいソースが書けなくてもAndroidアプリをクリック(GUI)開発したい
ソースが書けなくてもAndroidアプリをクリック(GUI)開発したい
 
技術選択とアーキテクトの役割 (要約版)
技術選択とアーキテクトの役割 (要約版)技術選択とアーキテクトの役割 (要約版)
技術選択とアーキテクトの役割 (要約版)
 
DevOps Conference #1
DevOps Conference #1DevOps Conference #1
DevOps Conference #1
 
JJUG CCC 2014 fall 「私がTDD出来ないのはどう考えてもお前らが悪い!」~エンタープライズJava開発でのTDD適用の勘所~
JJUG CCC 2014 fall  「私がTDD出来ないのはどう考えてもお前らが悪い!」~エンタープライズJava開発でのTDD適用の勘所~JJUG CCC 2014 fall  「私がTDD出来ないのはどう考えてもお前らが悪い!」~エンタープライズJava開発でのTDD適用の勘所~
JJUG CCC 2014 fall 「私がTDD出来ないのはどう考えてもお前らが悪い!」~エンタープライズJava開発でのTDD適用の勘所~
 
2015/10/14 JJUGナイトセミナー「テスト駆動開発ここが聞きたい」
2015/10/14 JJUGナイトセミナー「テスト駆動開発ここが聞きたい」2015/10/14 JJUGナイトセミナー「テスト駆動開発ここが聞きたい」
2015/10/14 JJUGナイトセミナー「テスト駆動開発ここが聞きたい」
 
ポストJenkins時代のCI戦略
ポストJenkins時代のCI戦略ポストJenkins時代のCI戦略
ポストJenkins時代のCI戦略
 
ポストJenkins時代のCI戦略
ポストJenkins時代のCI戦略ポストJenkins時代のCI戦略
ポストJenkins時代のCI戦略
 
Aizu.LT16 社会人1年目の失敗とContinuous Integration
Aizu.LT16 社会人1年目の失敗とContinuous IntegrationAizu.LT16 社会人1年目の失敗とContinuous Integration
Aizu.LT16 社会人1年目の失敗とContinuous Integration
 
企業向けUXデザイン導入のポイント
企業向けUXデザイン導入のポイント企業向けUXデザイン導入のポイント
企業向けUXデザイン導入のポイント
 

More from Kazuhito Miura

More from Kazuhito Miura (20)

オンプレ脳の人ができるだけ勉強せずに「 k8s上でシステムを稼働まで持ってく(いきたい)」話
オンプレ脳の人ができるだけ勉強せずに「 k8s上でシステムを稼働まで持ってく(いきたい)」話オンプレ脳の人ができるだけ勉強せずに「 k8s上でシステムを稼働まで持ってく(いきたい)」話
オンプレ脳の人ができるだけ勉強せずに「 k8s上でシステムを稼働まで持ってく(いきたい)」話
 
「情報」を「書く」ということ(仮) #RedmineJapan
 「情報」を「書く」ということ(仮)  #RedmineJapan 「情報」を「書く」ということ(仮)  #RedmineJapan
「情報」を「書く」ということ(仮) #RedmineJapan
 
こんなRedmineは(個人的に)イヤだ! #RedmineOsaka
こんなRedmineは(個人的に)イヤだ! #RedmineOsakaこんなRedmineは(個人的に)イヤだ! #RedmineOsaka
こんなRedmineは(個人的に)イヤだ! #RedmineOsaka
 
僕らのしくじりざんまい 小ネタ集 #geek_hub
僕らのしくじりざんまい 小ネタ集 #geek_hub僕らのしくじりざんまい 小ネタ集 #geek_hub
僕らのしくじりざんまい 小ネタ集 #geek_hub
 
「アジャイルやりたい!」って言うてるニワカ(おっさん)が足掻いた結果 #scrumosaka
「アジャイルやりたい!」って言うてるニワカ(おっさん)が足掻いた結果 #scrumosaka「アジャイルやりたい!」って言うてるニワカ(おっさん)が足掻いた結果 #scrumosaka
「アジャイルやりたい!」って言うてるニワカ(おっさん)が足掻いた結果 #scrumosaka
 
2015年に「画面テストの動画録画」を作って「流行れ!」 と願ったが、流行らんかった上ロストした話 #seleniumjp
2015年に「画面テストの動画録画」を作って「流行れ!」 と願ったが、流行らんかった上ロストした話 #seleniumjp2015年に「画面テストの動画録画」を作って「流行れ!」 と願ったが、流行らんかった上ロストした話 #seleniumjp
2015年に「画面テストの動画録画」を作って「流行れ!」 と願ったが、流行らんかった上ロストした話 #seleniumjp
 
Terraform雑感 〜やってみた初学者として〜
Terraform雑感 〜やってみた初学者として〜Terraform雑感 〜やってみた初学者として〜
Terraform雑感 〜やってみた初学者として〜
 
IoTって何が良いの? 〜言うてるオレもわからんわ〜 #kinoko_iot
IoTって何が良いの? 〜言うてるオレもわからんわ〜 #kinoko_iotIoTって何が良いの? 〜言うてるオレもわからんわ〜 #kinoko_iot
IoTって何が良いの? 〜言うてるオレもわからんわ〜 #kinoko_iot
 
「認定Jenkinsエンジニア(Certified Jenkins Engineer:CJE)試験」について調べてみた #jenkinsstudy
「認定Jenkinsエンジニア(Certified Jenkins Engineer:CJE)試験」について調べてみた #jenkinsstudy「認定Jenkinsエンジニア(Certified Jenkins Engineer:CJE)試験」について調べてみた #jenkinsstudy
「認定Jenkinsエンジニア(Certified Jenkins Engineer:CJE)試験」について調べてみた #jenkinsstudy
 
RemotePairProという互助会を作ったはなし #gbdaitokai
RemotePairProという互助会を作ったはなし #gbdaitokaiRemotePairProという互助会を作ったはなし #gbdaitokai
RemotePairProという互助会を作ったはなし #gbdaitokai
 
JenkinsとDockerって何が良いの? 〜言うてるオレもわからんわ〜 #jenkinsstudy
JenkinsとDockerって何が良いの? 〜言うてるオレもわからんわ〜 #jenkinsstudyJenkinsとDockerって何が良いの? 〜言うてるオレもわからんわ〜 #jenkinsstudy
JenkinsとDockerって何が良いの? 〜言うてるオレもわからんわ〜 #jenkinsstudy
 
10年前「Microsoftの社員だと思って働け!」と教育されて嫌気がさして出てった人から見た「外の世界」の話 #JCCMVP
10年前「Microsoftの社員だと思って働け!」と教育されて嫌気がさして出てった人から見た「外の世界」の話 #JCCMVP10年前「Microsoftの社員だと思って働け!」と教育されて嫌気がさして出てった人から見た「外の世界」の話 #JCCMVP
10年前「Microsoftの社員だと思って働け!」と教育されて嫌気がさして出てった人から見た「外の世界」の話 #JCCMVP
 
サラリーマンでギョーミーなプログラマ(つまりオレ)でも片手間で作れるXFD
サラリーマンでギョーミーなプログラマ(つまりオレ)でも片手間で作れるXFDサラリーマンでギョーミーなプログラマ(つまりオレ)でも片手間で作れるXFD
サラリーマンでギョーミーなプログラマ(つまりオレ)でも片手間で作れるXFD
 
「むしゃくしゃしたのでOpenDocumentで帳票テンプレート」 - 第13回関西LibreOffice勉強会 #LibOKansai
「むしゃくしゃしたのでOpenDocumentで帳票テンプレート」 - 第13回関西LibreOffice勉強会 #LibOKansai「むしゃくしゃしたのでOpenDocumentで帳票テンプレート」 - 第13回関西LibreOffice勉強会 #LibOKansai
「むしゃくしゃしたのでOpenDocumentで帳票テンプレート」 - 第13回関西LibreOffice勉強会 #LibOKansai
 
「実録!となりのJenkins2.0」 - 第7回大阪 / 第9回(東京)Jenkins勉強会 #jenkinsstudy
「実録!となりのJenkins2.0」 - 第7回大阪 / 第9回(東京)Jenkins勉強会 #jenkinsstudy「実録!となりのJenkins2.0」 - 第7回大阪 / 第9回(東京)Jenkins勉強会 #jenkinsstudy
「実録!となりのJenkins2.0」 - 第7回大阪 / 第9回(東京)Jenkins勉強会 #jenkinsstudy
 
「自動家は見た! 〜自動化の現場の真実〜」-システムテスト自動化カンファレンス2015「.reviewrc(おいしが)」発表枠 #stac2015
「自動家は見た! 〜自動化の現場の真実〜」-システムテスト自動化カンファレンス2015「.reviewrc(おいしが)」発表枠 #stac2015 「自動家は見た! 〜自動化の現場の真実〜」-システムテスト自動化カンファレンス2015「.reviewrc(おいしが)」発表枠 #stac2015
「自動家は見た! 〜自動化の現場の真実〜」-システムテスト自動化カンファレンス2015「.reviewrc(おいしが)」発表枠 #stac2015
 
自動家(オートメーター)大地に立つ!! 〜オールドタイプの一年戦争〜
自動家(オートメーター)大地に立つ!! 〜オールドタイプの一年戦争〜自動家(オートメーター)大地に立つ!! 〜オールドタイプの一年戦争〜
自動家(オートメーター)大地に立つ!! 〜オールドタイプの一年戦争〜
 
「自動家(オートメータ)をつくる」-システムテスト自動化カンファレンス2014 「.reviewrc」枠発表-
「自動家(オートメータ)をつくる」-システムテスト自動化カンファレンス2014 「.reviewrc」枠発表-「自動家(オートメータ)をつくる」-システムテスト自動化カンファレンス2014 「.reviewrc」枠発表-
「自動家(オートメータ)をつくる」-システムテスト自動化カンファレンス2014 「.reviewrc」枠発表-
 
GUI何処行ったんDocker
GUI何処行ったんDockerGUI何処行ったんDocker
GUI何処行ったんDocker
 
しゃべれて回れる「小人の執事さん」ったら地獄耳でもあるみたいですよ?(前編)
しゃべれて回れる「小人の執事さん」ったら地獄耳でもあるみたいですよ?(前編)しゃべれて回れる「小人の執事さん」ったら地獄耳でもあるみたいですよ?(前編)
しゃべれて回れる「小人の執事さん」ったら地獄耳でもあるみたいですよ?(前編)
 

Recently uploaded

Recently uploaded (11)

新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 

CI/CDって何が良いの?〜言うてるオレもわからんわ〜 #DevKan