SlideShare ist ein Scribd-Unternehmen logo
1 von 43
Downloaden Sie, um offline zu lesen
Jenkins Pipeline + Blue Ocean
フルスクラッチからの継続的デリバリ
2© 2017 CloudBees, Inc. All Rights Reserved.
川口耕介とは
• Jenkinsプロジェクトの父
• CloudBeesのCTO
3© 2017 CloudBees, Inc. All Rights Reserved.
継続的デリバリとは
Development Production
Commit Build Test Stage Deploy
Feedback Loop
$
The Business
4© 2017 CloudBees, Inc. All Rights Reserved.
Software changes
continuously deployed
to live production
Continuous
Deployment
Software changes continuously
delivered to stakeholders in any
environment
Continuous
Delivery
Software changes continuously
delivered to stakeholders in any
environment
Continuous
DeliveryContinuous Integration
Automated commit, build and testing of code
in the development environment
DevOps  Cultural approaches & technical practices
User FeedbackRapid Changes
Discipline
AGILE
An incremental
approach to
identifying,
prioritizing, and
coordinating feature
development
Development Production / Prod-like Live Production
Env.Stage
Release Deploy Monitor
Upstream (left) Downstream (right)
Define Plan Code Compile Build Unit Test Analyze Integrate Int. Test Package Place Load Test Acct. Test
Change Mgt. Production Bugs
なぜ継続的デリバリ?
5© 2017 CloudBees, Inc. All Rights Reserved.
Jenkins Pipeline
• Pipeline as Code
• 継続的デリバリのプロセスの定義を記述する
• リポジトリにJenkinsfileとしてコミットする
• jenkins.io/doc/book/pipeline
6© 2017 CloudBees, Inc. All Rights Reserved.
https://flic.kr/p/opw1JR
Blue Ocean
7© 2017 CloudBees, Inc. All Rights Reserved.
8© 2017 CloudBees, Inc. All Rights Reserved.
9© 2017 CloudBees, Inc. All Rights Reserved.
10© 2017 CloudBees, Inc. All Rights Reserved.
11© 2017 CloudBees, Inc. All Rights Reserved.
kohsuke/jhipster-sample-app
ツール
• Maven
• Node / Gulp
• Gatling
• Docker
本日の材料
パイプラインを設計
13© 2017 CloudBees, Inc. All Rights Reserved.
開発者個別
• ビルド
• 単体テスト
• 静的解析
チーム全体
• ビルド
• 単体テスト
• 静的解析
QA環境
• デプロイ
• 性能テスト
本番環境
• デプロイ
パイプラインを設計
14© 2017 CloudBees, Inc. All Rights Reserved.
ブランチ戦略を設計
master
qa
production
15© 2017 CloudBees, Inc. All Rights Reserved.
docker run -p 8080:8080 –u root ¥
-v /var/run/docker.sock:/var/run/docker.sock ¥
-v $PWD/jenkins_home:/var/jenkins_home
jenkinsci/blueocean
Jenkins + Blue Oceanを起動
16© 2017 CloudBees, Inc. All Rights Reserved.
17© 2017 CloudBees, Inc. All Rights Reserved.
ビルド
19© 2017 CloudBees, Inc. All Rights Reserved.
• Jenkins Pipelineはビルドシステムではない!
• 既存のビルドシステムを他とくっつける糊のようなもの
• ゴール
• 再現性のあるポータブルなビルド
• バイナリを作って後のために保存
• 今回はMavenを使います
ビルド
20© 2017 CloudBees, Inc. All Rights Reserved.
pipeline {
agent any
stages {
stage('Build') {
steps {
sh 'mvn'
}
}
}
}
ビルド
21© 2017 CloudBees, Inc. All Rights Reserved.
stage('Build') {
agent {
docker {
image 'maven:3-alpine'
}
}
/* .. */
}
ビルド
22© 2017 CloudBees, Inc. All Rights Reserved.
stage('Build') {
agent ...
steps {
sh 'mvn clean install'
archiveArtifacts 'target/*.war'
junit 'target/surefire-reports/*.xml'
}
}
ビルド
23© 2017 CloudBees, Inc. All Rights Reserved.
stage('Build') {
/* .. */
steps {
withMaven {
sh 'mvn clean package'
}
}
}
プラグインを使って頻出パターンを簡略化
24© 2017 CloudBees, Inc. All Rights Reserved.
stage('Build') {
/* .. */
steps {
withMaven(mavenSettingsConfig:'my-maven-settings') {
sh 'mvn clean package'
}
}
}
CIビルド環境に適応
単体テスト
26© 2017 CloudBees, Inc. All Rights Reserved.
stage('Frontend Test') {
agent { docker 'node:alpine' }
steps {
sh 'yarn install'
sh 'yarn global add gulp-cli'
sh 'gulp test'
}
}
フロントエンドの単体テスト
27© 2017 CloudBees, Inc. All Rights Reserved.
stage('Frontend Test') {
agent { docker 'node:alpine' }
steps {
sh 'yarn install'
sh 'yarn global add gulp-cli'
sh 'gulp test'
junit 'target/test-results/karma/*.xml'
}
}
結果の捕捉
静的解析
29© 2017 CloudBees, Inc. All Rights Reserved.
いろいろなオプションがある
• FindBugs
• PMD
• Checkstyle
• …
SonarQube?
• jenkins.io/blog/2017/04/18/continuousdelivery-devops-sonarqube/
静的解析
30© 2017 CloudBees, Inc. All Rights Reserved.
pipeline {
agent any
stages {
stage('Analyze') {
agent ...
steps {
withMaven {
sh 'mvn pmd:pmd'
pmd pattern:'target/pmd.xml'
}
}
}
}
}
PMDの例
QA環境
32© 2017 CloudBees, Inc. All Rights Reserved.
開発者個別
• ビルド
• 単体テスト
• 静的解析
チーム全体
• ビルド
• 単体テスト
• 静的解析
QA環境
• デプロイ
• 性能テスト
本番環境
• デプロイ
パイプラインの設計
33© 2017 CloudBees, Inc. All Rights Reserved.
• Jenkins Pipelineはデプロイメント・システムではない!
• 既存のデプロイメント・システムを他とくっつける糊のようなもの
• 所変われば…
• AWS/Azure
• Chef/Puppet
• アップストアへ登録
• 社内サーバにアップロード
デプロイ
34© 2017 CloudBees, Inc. All Rights Reserved.
pipeline {
agent any
stages {
stage('Deploy to QA') {
steps {
sh './deploy.sh'
}
}
}
}
デプロイ
35© 2017 CloudBees, Inc. All Rights Reserved.
pipeline {
agent any
stages {
stage('Deploy to QA') {
when { branch 'qa' }
steps {
sh './deploy.sh'
}
}
}
}
qaブランチのみで実行
本番環境
37© 2017 CloudBees, Inc. All Rights Reserved.
開発者個別
• ビルド
• 単体テスト
• 静的解析
チーム全体
• ビルド
• 単体テスト
• 静的解析
QA環境
• デプロイ
• 性能テスト
本番環境
• デプロイ
パイプラインの設計
38© 2017 CloudBees, Inc. All Rights Reserved.
stage(‘Deploy to Production') {
steps {
input message: 'Deploy to production?',
ok: 'Fire zee missiles!'
sh './deploy.sh prod'
}
}
確認
39© 2017 CloudBees, Inc. All Rights Reserved.
確認
これで完成?
41© 2017 CloudBees, Inc. All Rights Reserved.
• 継続的デリバリの実現には開発者へのフィードバックが欠かせない
• パイプラインを使って
• メールを送る
• HipChat/Slack通知
• JIRAチケットの更新
• jenkins.io/node/tags/notifications/
フィードバックループを作る
Q & A
43© 2017 CloudBees, Inc. All Rights Reserved.
jenkins.io/doc/book/pipeline
jenkins.io/projects/blueocean
Docker コンテナ
• jenkinsci/jenkins:lts-alpine
• jenkinsci/blueocean
jenkinsci-users@googlegroups.com
資料

Weitere ähnliche Inhalte

Was ist angesagt?

FINAL FANTASY XVにおけるPhoton利用事例 - Photon運営事務局 GTMF 2018 OSAKA / TOKYO
FINAL FANTASY XVにおけるPhoton利用事例 - Photon運営事務局 GTMF 2018 OSAKA / TOKYOFINAL FANTASY XVにおけるPhoton利用事例 - Photon運営事務局 GTMF 2018 OSAKA / TOKYO
FINAL FANTASY XVにおけるPhoton利用事例 - Photon運営事務局 GTMF 2018 OSAKA / TOKYOGame Tools & Middleware Forum
 
Unity ネイティブプラグインの作成について
Unity ネイティブプラグインの作成についてUnity ネイティブプラグインの作成について
Unity ネイティブプラグインの作成についてTatsuhiko Yamamura
 
「黒騎士と白の魔王」gRPCによるHTTP/2 - API, Streamingの実践
「黒騎士と白の魔王」gRPCによるHTTP/2 - API, Streamingの実践「黒騎士と白の魔王」gRPCによるHTTP/2 - API, Streamingの実践
「黒騎士と白の魔王」gRPCによるHTTP/2 - API, Streamingの実践Yoshifumi Kawai
 
C#の強み、或いは何故PHPから乗り換えるのか
C#の強み、或いは何故PHPから乗り換えるのかC#の強み、或いは何故PHPから乗り換えるのか
C#の強み、或いは何故PHPから乗り換えるのかYoshifumi Kawai
 
OpenAI の音声認識 AI「Whisper」をテストしてみた
OpenAI の音声認識 AI「Whisper」をテストしてみたOpenAI の音声認識 AI「Whisper」をテストしてみた
OpenAI の音声認識 AI「Whisper」をテストしてみたHide Koba
 
CODT2020 ビジネスプラットフォームを支えるCI/CDパイプライン ~エンタープライズのDevOpsを加速させる運用改善Tips~
CODT2020 ビジネスプラットフォームを支えるCI/CDパイプライン ~エンタープライズのDevOpsを加速させる運用改善Tips~CODT2020 ビジネスプラットフォームを支えるCI/CDパイプライン ~エンタープライズのDevOpsを加速させる運用改善Tips~
CODT2020 ビジネスプラットフォームを支えるCI/CDパイプライン ~エンタープライズのDevOpsを加速させる運用改善Tips~Yuki Ando
 
Jenkinsを使った初めての継続的インテグレーション
Jenkinsを使った初めての継続的インテグレーションJenkinsを使った初めての継続的インテグレーション
Jenkinsを使った初めての継続的インテグレーションdcubeio
 
ぱぱっと理解するSpring Cloudの基本
ぱぱっと理解するSpring Cloudの基本ぱぱっと理解するSpring Cloudの基本
ぱぱっと理解するSpring Cloudの基本kazuki kumagai
 
Cognitive Complexity でコードの複雑さを定量的に計測しよう
Cognitive Complexity でコードの複雑さを定量的に計測しようCognitive Complexity でコードの複雑さを定量的に計測しよう
Cognitive Complexity でコードの複雑さを定量的に計測しようShuto Suzuki
 
インフラ構築とテストについて(ITインフラ業務自動化現状確認会)
インフラ構築とテストについて(ITインフラ業務自動化現状確認会)インフラ構築とテストについて(ITインフラ業務自動化現状確認会)
インフラ構築とテストについて(ITインフラ業務自動化現状確認会)Yosuke Hiraishi
 
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Kohei Tokunaga
 
ホットペッパービューティーにおけるモバイルアプリ向けAPIのBFF/Backend分割
ホットペッパービューティーにおけるモバイルアプリ向けAPIのBFF/Backend分割ホットペッパービューティーにおけるモバイルアプリ向けAPIのBFF/Backend分割
ホットペッパービューティーにおけるモバイルアプリ向けAPIのBFF/Backend分割Recruit Lifestyle Co., Ltd.
 
DockerコンテナでGitを使う
DockerコンテナでGitを使うDockerコンテナでGitを使う
DockerコンテナでGitを使うKazuhiro Suga
 
大規模ゲーム開発における build 高速化と安定化
大規模ゲーム開発における build 高速化と安定化大規模ゲーム開発における build 高速化と安定化
大規模ゲーム開発における build 高速化と安定化DeNA
 
建築革命、更に進化!デジタルツイン基盤の真打ち登場【概要編 Unity Reflect ver 2.1 】
建築革命、更に進化!デジタルツイン基盤の真打ち登場【概要編 Unity Reflect ver 2.1 】建築革命、更に進化!デジタルツイン基盤の真打ち登場【概要編 Unity Reflect ver 2.1 】
建築革命、更に進化!デジタルツイン基盤の真打ち登場【概要編 Unity Reflect ver 2.1 】Unity Technologies Japan K.K.
 
コンテナ未経験新人が学ぶコンテナ技術入門
コンテナ未経験新人が学ぶコンテナ技術入門コンテナ未経験新人が学ぶコンテナ技術入門
コンテナ未経験新人が学ぶコンテナ技術入門Kohei Tokunaga
 
「DevOps with GitLab」でDevOps環境をセットアップしてみた!
「DevOps with GitLab」でDevOps環境をセットアップしてみた!「DevOps with GitLab」でDevOps環境をセットアップしてみた!
「DevOps with GitLab」でDevOps環境をセットアップしてみた!VirtualTech Japan Inc./Begi.net Inc.
 
ドメイン駆動設計入門
ドメイン駆動設計入門ドメイン駆動設計入門
ドメイン駆動設計入門Takuya Kitamura
 

Was ist angesagt? (20)

今さら聞けない人のためのGitLabの始め方 Ubuntu編
今さら聞けない人のためのGitLabの始め方 Ubuntu編今さら聞けない人のためのGitLabの始め方 Ubuntu編
今さら聞けない人のためのGitLabの始め方 Ubuntu編
 
FINAL FANTASY XVにおけるPhoton利用事例 - Photon運営事務局 GTMF 2018 OSAKA / TOKYO
FINAL FANTASY XVにおけるPhoton利用事例 - Photon運営事務局 GTMF 2018 OSAKA / TOKYOFINAL FANTASY XVにおけるPhoton利用事例 - Photon運営事務局 GTMF 2018 OSAKA / TOKYO
FINAL FANTASY XVにおけるPhoton利用事例 - Photon運営事務局 GTMF 2018 OSAKA / TOKYO
 
Unity ネイティブプラグインの作成について
Unity ネイティブプラグインの作成についてUnity ネイティブプラグインの作成について
Unity ネイティブプラグインの作成について
 
「黒騎士と白の魔王」gRPCによるHTTP/2 - API, Streamingの実践
「黒騎士と白の魔王」gRPCによるHTTP/2 - API, Streamingの実践「黒騎士と白の魔王」gRPCによるHTTP/2 - API, Streamingの実践
「黒騎士と白の魔王」gRPCによるHTTP/2 - API, Streamingの実践
 
C#の強み、或いは何故PHPから乗り換えるのか
C#の強み、或いは何故PHPから乗り換えるのかC#の強み、或いは何故PHPから乗り換えるのか
C#の強み、或いは何故PHPから乗り換えるのか
 
OpenAI の音声認識 AI「Whisper」をテストしてみた
OpenAI の音声認識 AI「Whisper」をテストしてみたOpenAI の音声認識 AI「Whisper」をテストしてみた
OpenAI の音声認識 AI「Whisper」をテストしてみた
 
CODT2020 ビジネスプラットフォームを支えるCI/CDパイプライン ~エンタープライズのDevOpsを加速させる運用改善Tips~
CODT2020 ビジネスプラットフォームを支えるCI/CDパイプライン ~エンタープライズのDevOpsを加速させる運用改善Tips~CODT2020 ビジネスプラットフォームを支えるCI/CDパイプライン ~エンタープライズのDevOpsを加速させる運用改善Tips~
CODT2020 ビジネスプラットフォームを支えるCI/CDパイプライン ~エンタープライズのDevOpsを加速させる運用改善Tips~
 
Jenkinsを使った初めての継続的インテグレーション
Jenkinsを使った初めての継続的インテグレーションJenkinsを使った初めての継続的インテグレーション
Jenkinsを使った初めての継続的インテグレーション
 
Mavenの真実とウソ
Mavenの真実とウソMavenの真実とウソ
Mavenの真実とウソ
 
ぱぱっと理解するSpring Cloudの基本
ぱぱっと理解するSpring Cloudの基本ぱぱっと理解するSpring Cloudの基本
ぱぱっと理解するSpring Cloudの基本
 
Cognitive Complexity でコードの複雑さを定量的に計測しよう
Cognitive Complexity でコードの複雑さを定量的に計測しようCognitive Complexity でコードの複雑さを定量的に計測しよう
Cognitive Complexity でコードの複雑さを定量的に計測しよう
 
インフラ構築とテストについて(ITインフラ業務自動化現状確認会)
インフラ構築とテストについて(ITインフラ業務自動化現状確認会)インフラ構築とテストについて(ITインフラ業務自動化現状確認会)
インフラ構築とテストについて(ITインフラ業務自動化現状確認会)
 
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
 
ホットペッパービューティーにおけるモバイルアプリ向けAPIのBFF/Backend分割
ホットペッパービューティーにおけるモバイルアプリ向けAPIのBFF/Backend分割ホットペッパービューティーにおけるモバイルアプリ向けAPIのBFF/Backend分割
ホットペッパービューティーにおけるモバイルアプリ向けAPIのBFF/Backend分割
 
DockerコンテナでGitを使う
DockerコンテナでGitを使うDockerコンテナでGitを使う
DockerコンテナでGitを使う
 
大規模ゲーム開発における build 高速化と安定化
大規模ゲーム開発における build 高速化と安定化大規模ゲーム開発における build 高速化と安定化
大規模ゲーム開発における build 高速化と安定化
 
建築革命、更に進化!デジタルツイン基盤の真打ち登場【概要編 Unity Reflect ver 2.1 】
建築革命、更に進化!デジタルツイン基盤の真打ち登場【概要編 Unity Reflect ver 2.1 】建築革命、更に進化!デジタルツイン基盤の真打ち登場【概要編 Unity Reflect ver 2.1 】
建築革命、更に進化!デジタルツイン基盤の真打ち登場【概要編 Unity Reflect ver 2.1 】
 
コンテナ未経験新人が学ぶコンテナ技術入門
コンテナ未経験新人が学ぶコンテナ技術入門コンテナ未経験新人が学ぶコンテナ技術入門
コンテナ未経験新人が学ぶコンテナ技術入門
 
「DevOps with GitLab」でDevOps環境をセットアップしてみた!
「DevOps with GitLab」でDevOps環境をセットアップしてみた!「DevOps with GitLab」でDevOps環境をセットアップしてみた!
「DevOps with GitLab」でDevOps環境をセットアップしてみた!
 
ドメイン駆動設計入門
ドメイン駆動設計入門ドメイン駆動設計入門
ドメイン駆動設計入門
 

Andere mochten auch

開発現場で使えるかもしれないGroovy
開発現場で使えるかもしれないGroovy開発現場で使えるかもしれないGroovy
開発現場で使えるかもしれないGroovyzgmf_mbfp03
 
jenkinsのすゝめ - 継続的インテグレーションと継続的デリバリー
jenkinsのすゝめ - 継続的インテグレーションと継続的デリバリーjenkinsのすゝめ - 継続的インテグレーションと継続的デリバリー
jenkinsのすゝめ - 継続的インテグレーションと継続的デリバリーJunya Suzuki
 
NetOpsCoding#5 introduction
NetOpsCoding#5 introductionNetOpsCoding#5 introduction
NetOpsCoding#5 introductionTaiji Tsuchiya
 
Telemetry事始め
Telemetry事始めTelemetry事始め
Telemetry事始めnpsg
 
Ansible x napalm x nso 解説・比較パネルディスカッション nso
Ansible x napalm x nso 解説・比較パネルディスカッション nsoAnsible x napalm x nso 解説・比較パネルディスカッション nso
Ansible x napalm x nso 解説・比較パネルディスカッション nsoAkira Iwamoto
 
ネットワークの自動化・監視の取り組みについて #netopscoding #npstudy
ネットワークの自動化・監視の取り組みについて #netopscoding #npstudyネットワークの自動化・監視の取り組みについて #netopscoding #npstudy
ネットワークの自動化・監視の取り組みについて #netopscoding #npstudyYahoo!デベロッパーネットワーク
 
ネットワーク自動化ツール紹介(Ansible・NAPALM編)
ネットワーク自動化ツール紹介(Ansible・NAPALM編)ネットワーク自動化ツール紹介(Ansible・NAPALM編)
ネットワーク自動化ツール紹介(Ansible・NAPALM編)akira6592
 
パケットキャプチャでインフラ主導のデバッグ環境を作る
パケットキャプチャでインフラ主導のデバッグ環境を作るパケットキャプチャでインフラ主導のデバッグ環境を作る
パケットキャプチャでインフラ主導のデバッグ環境を作るcloretsblack
 
遠くの"計画"よりも今日の"CD"(継続的デプロイ) #jenkinsstudy
遠くの"計画"よりも今日の"CD"(継続的デプロイ) #jenkinsstudy遠くの"計画"よりも今日の"CD"(継続的デプロイ) #jenkinsstudy
遠くの"計画"よりも今日の"CD"(継続的デプロイ) #jenkinsstudyKazuhito Miura
 

Andere mochten auch (10)

開発現場で使えるかもしれないGroovy
開発現場で使えるかもしれないGroovy開発現場で使えるかもしれないGroovy
開発現場で使えるかもしれないGroovy
 
jenkinsのすゝめ - 継続的インテグレーションと継続的デリバリー
jenkinsのすゝめ - 継続的インテグレーションと継続的デリバリーjenkinsのすゝめ - 継続的インテグレーションと継続的デリバリー
jenkinsのすゝめ - 継続的インテグレーションと継続的デリバリー
 
Jenkins と groovy
Jenkins と groovyJenkins と groovy
Jenkins と groovy
 
NetOpsCoding#5 introduction
NetOpsCoding#5 introductionNetOpsCoding#5 introduction
NetOpsCoding#5 introduction
 
Telemetry事始め
Telemetry事始めTelemetry事始め
Telemetry事始め
 
Ansible x napalm x nso 解説・比較パネルディスカッション nso
Ansible x napalm x nso 解説・比較パネルディスカッション nsoAnsible x napalm x nso 解説・比較パネルディスカッション nso
Ansible x napalm x nso 解説・比較パネルディスカッション nso
 
ネットワークの自動化・監視の取り組みについて #netopscoding #npstudy
ネットワークの自動化・監視の取り組みについて #netopscoding #npstudyネットワークの自動化・監視の取り組みについて #netopscoding #npstudy
ネットワークの自動化・監視の取り組みについて #netopscoding #npstudy
 
ネットワーク自動化ツール紹介(Ansible・NAPALM編)
ネットワーク自動化ツール紹介(Ansible・NAPALM編)ネットワーク自動化ツール紹介(Ansible・NAPALM編)
ネットワーク自動化ツール紹介(Ansible・NAPALM編)
 
パケットキャプチャでインフラ主導のデバッグ環境を作る
パケットキャプチャでインフラ主導のデバッグ環境を作るパケットキャプチャでインフラ主導のデバッグ環境を作る
パケットキャプチャでインフラ主導のデバッグ環境を作る
 
遠くの"計画"よりも今日の"CD"(継続的デプロイ) #jenkinsstudy
遠くの"計画"よりも今日の"CD"(継続的デプロイ) #jenkinsstudy遠くの"計画"よりも今日の"CD"(継続的デプロイ) #jenkinsstudy
遠くの"計画"よりも今日の"CD"(継続的デプロイ) #jenkinsstudy
 

Ähnlich wie [DO02] Jenkins PipelineとBlue Oceanによる、フルスクラッチからの継続的デリバリ

2021/03/19 パブリッククラウドを活かす運用プロセス自動化
2021/03/19 パブリッククラウドを活かす運用プロセス自動化2021/03/19 パブリッククラウドを活かす運用プロセス自動化
2021/03/19 パブリッククラウドを活かす運用プロセス自動化Issei Hiraoka
 
SI現場のテスト自動化への挑戦〜フルコンテナ構成のCI/CD環境〜
SI現場のテスト自動化への挑戦〜フルコンテナ構成のCI/CD環境〜SI現場のテスト自動化への挑戦〜フルコンテナ構成のCI/CD環境〜
SI現場のテスト自動化への挑戦〜フルコンテナ構成のCI/CD環境〜Daiki Kawanuma
 
.NET アプリを改善して実践する継続的インテグレーション
.NET アプリを改善して実践する継続的インテグレーション.NET アプリを改善して実践する継続的インテグレーション
.NET アプリを改善して実践する継続的インテグレーションYuta Matsumura
 
Empower Every App, Every Developer ~ 統合開発プラットフォーム Visual Studio の進化 ~
Empower Every App, Every Developer ~ 統合開発プラットフォーム Visual Studio の進化 ~Empower Every App, Every Developer ~ 統合開発プラットフォーム Visual Studio の進化 ~
Empower Every App, Every Developer ~ 統合開発プラットフォーム Visual Studio の進化 ~Akira Inoue
 
GitHub Actions で CI/CD
GitHub Actions で CI/CDGitHub Actions で CI/CD
GitHub Actions で CI/CDIssei Hiraoka
 
20140605_じどうかの窓口_CloudBees_Jenkins
20140605_じどうかの窓口_CloudBees_Jenkins20140605_じどうかの窓口_CloudBees_Jenkins
20140605_じどうかの窓口_CloudBees_JenkinsSHIFT Inc.
 
fastlane x iOSアプリのCI
fastlane x iOSアプリのCIfastlane x iOSアプリのCI
fastlane x iOSアプリのCIToshiyuki Hirata
 
どっちの VS ショー / 伝統の Visual Studio 2019、人気の Visual Studio Code
どっちの VS ショー / 伝統の Visual Studio 2019、人気の Visual Studio Codeどっちの VS ショー / 伝統の Visual Studio 2019、人気の Visual Studio Code
どっちの VS ショー / 伝統の Visual Studio 2019、人気の Visual Studio CodeTakashi Okawa
 
DOO-003_Jenkins 作者が語る、Docker コンテナによる継続的デリバリのオススメと新機能のご紹介
DOO-003_Jenkins 作者が語る、Docker コンテナによる継続的デリバリのオススメと新機能のご紹介DOO-003_Jenkins 作者が語る、Docker コンテナによる継続的デリバリのオススメと新機能のご紹介
DOO-003_Jenkins 作者が語る、Docker コンテナによる継続的デリバリのオススメと新機能のご紹介decode2016
 
Azure DevOps 関西 2019 - Overview
Azure DevOps 関西 2019 - OverviewAzure DevOps 関西 2019 - Overview
Azure DevOps 関西 2019 - OverviewKeiji Kamebuchi
 
20190201 Cloud Native Kansai AKS Azure
20190201 Cloud Native Kansai AKS Azure20190201 Cloud Native Kansai AKS Azure
20190201 Cloud Native Kansai AKS AzureIssei Hiraoka
 
Cloud Days Tokyo 2015 "オンプレミス環境のクラウド化と運用を楽にする OpenStack ソリューション ~ハイブリッド・クラウドを...
Cloud Days Tokyo 2015 "オンプレミス環境のクラウド化と運用を楽にする OpenStack ソリューション ~ハイブリッド・クラウドを...Cloud Days Tokyo 2015 "オンプレミス環境のクラウド化と運用を楽にする OpenStack ソリューション ~ハイブリッド・クラウドを...
Cloud Days Tokyo 2015 "オンプレミス環境のクラウド化と運用を楽にする OpenStack ソリューション ~ハイブリッド・クラウドを...Shinichiro Arai
 
[DO09] 獲れたて OSS x DevOps!自動化三昧を満喫セヨ
[DO09] 獲れたて OSS x DevOps!自動化三昧を満喫セヨ[DO09] 獲れたて OSS x DevOps!自動化三昧を満喫セヨ
[DO09] 獲れたて OSS x DevOps!自動化三昧を満喫セヨde:code 2017
 
【NGINXセミナー】 NGINXのWAFとは?その使い方と設定方法 解説セミナー
【NGINXセミナー】 NGINXのWAFとは?その使い方と設定方法 解説セミナー【NGINXセミナー】 NGINXのWAFとは?その使い方と設定方法 解説セミナー
【NGINXセミナー】 NGINXのWAFとは?その使い方と設定方法 解説セミナーNGINX, Inc.
 
Visual StudioやAzureからAzure DevOpsを使う
Visual StudioやAzureからAzure DevOpsを使うVisual StudioやAzureからAzure DevOpsを使う
Visual StudioやAzureからAzure DevOpsを使うTakeshi Fukuhara
 
~ Build と言えば やっぱり Developer! ~ Microsoft 開発ツール最新アップデート
~ Build と言えば やっぱり Developer! ~ Microsoft 開発ツール最新アップデート~ Build と言えば やっぱり Developer! ~ Microsoft 開発ツール最新アップデート
~ Build と言えば やっぱり Developer! ~ Microsoft 開発ツール最新アップデートAkira Inoue
 
【BS14】Blazor WebAssemblyとJavaScriptのインターオペラビリティ
【BS14】Blazor WebAssemblyとJavaScriptのインターオペラビリティ 【BS14】Blazor WebAssemblyとJavaScriptのインターオペラビリティ
【BS14】Blazor WebAssemblyとJavaScriptのインターオペラビリティ 日本マイクロソフト株式会社
 

Ähnlich wie [DO02] Jenkins PipelineとBlue Oceanによる、フルスクラッチからの継続的デリバリ (20)

2021/03/19 パブリッククラウドを活かす運用プロセス自動化
2021/03/19 パブリッククラウドを活かす運用プロセス自動化2021/03/19 パブリッククラウドを活かす運用プロセス自動化
2021/03/19 パブリッククラウドを活かす運用プロセス自動化
 
SI現場のテスト自動化への挑戦〜フルコンテナ構成のCI/CD環境〜
SI現場のテスト自動化への挑戦〜フルコンテナ構成のCI/CD環境〜SI現場のテスト自動化への挑戦〜フルコンテナ構成のCI/CD環境〜
SI現場のテスト自動化への挑戦〜フルコンテナ構成のCI/CD環境〜
 
.NET アプリを改善して実践する継続的インテグレーション
.NET アプリを改善して実践する継続的インテグレーション.NET アプリを改善して実践する継続的インテグレーション
.NET アプリを改善して実践する継続的インテグレーション
 
Empower Every App, Every Developer ~ 統合開発プラットフォーム Visual Studio の進化 ~
Empower Every App, Every Developer ~ 統合開発プラットフォーム Visual Studio の進化 ~Empower Every App, Every Developer ~ 統合開発プラットフォーム Visual Studio の進化 ~
Empower Every App, Every Developer ~ 統合開発プラットフォーム Visual Studio の進化 ~
 
ACI Kubernetes Integration
ACI Kubernetes IntegrationACI Kubernetes Integration
ACI Kubernetes Integration
 
GitHub Actions で CI/CD
GitHub Actions で CI/CDGitHub Actions で CI/CD
GitHub Actions で CI/CD
 
20140605_じどうかの窓口_CloudBees_Jenkins
20140605_じどうかの窓口_CloudBees_Jenkins20140605_じどうかの窓口_CloudBees_Jenkins
20140605_じどうかの窓口_CloudBees_Jenkins
 
fastlane x iOSアプリのCI
fastlane x iOSアプリのCIfastlane x iOSアプリのCI
fastlane x iOSアプリのCI
 
どっちの VS ショー / 伝統の Visual Studio 2019、人気の Visual Studio Code
どっちの VS ショー / 伝統の Visual Studio 2019、人気の Visual Studio Codeどっちの VS ショー / 伝統の Visual Studio 2019、人気の Visual Studio Code
どっちの VS ショー / 伝統の Visual Studio 2019、人気の Visual Studio Code
 
DOO-003_Jenkins 作者が語る、Docker コンテナによる継続的デリバリのオススメと新機能のご紹介
DOO-003_Jenkins 作者が語る、Docker コンテナによる継続的デリバリのオススメと新機能のご紹介DOO-003_Jenkins 作者が語る、Docker コンテナによる継続的デリバリのオススメと新機能のご紹介
DOO-003_Jenkins 作者が語る、Docker コンテナによる継続的デリバリのオススメと新機能のご紹介
 
Azure DevOps 関西 2019 - Overview
Azure DevOps 関西 2019 - OverviewAzure DevOps 関西 2019 - Overview
Azure DevOps 関西 2019 - Overview
 
20190201 Cloud Native Kansai AKS Azure
20190201 Cloud Native Kansai AKS Azure20190201 Cloud Native Kansai AKS Azure
20190201 Cloud Native Kansai AKS Azure
 
Cloud Days Tokyo 2015 "オンプレミス環境のクラウド化と運用を楽にする OpenStack ソリューション ~ハイブリッド・クラウドを...
Cloud Days Tokyo 2015 "オンプレミス環境のクラウド化と運用を楽にする OpenStack ソリューション ~ハイブリッド・クラウドを...Cloud Days Tokyo 2015 "オンプレミス環境のクラウド化と運用を楽にする OpenStack ソリューション ~ハイブリッド・クラウドを...
Cloud Days Tokyo 2015 "オンプレミス環境のクラウド化と運用を楽にする OpenStack ソリューション ~ハイブリッド・クラウドを...
 
Jenkins 2.0 (日本語)
Jenkins 2.0 (日本語)Jenkins 2.0 (日本語)
Jenkins 2.0 (日本語)
 
Alfresco CI
Alfresco CIAlfresco CI
Alfresco CI
 
[DO09] 獲れたて OSS x DevOps!自動化三昧を満喫セヨ
[DO09] 獲れたて OSS x DevOps!自動化三昧を満喫セヨ[DO09] 獲れたて OSS x DevOps!自動化三昧を満喫セヨ
[DO09] 獲れたて OSS x DevOps!自動化三昧を満喫セヨ
 
【NGINXセミナー】 NGINXのWAFとは?その使い方と設定方法 解説セミナー
【NGINXセミナー】 NGINXのWAFとは?その使い方と設定方法 解説セミナー【NGINXセミナー】 NGINXのWAFとは?その使い方と設定方法 解説セミナー
【NGINXセミナー】 NGINXのWAFとは?その使い方と設定方法 解説セミナー
 
Visual StudioやAzureからAzure DevOpsを使う
Visual StudioやAzureからAzure DevOpsを使うVisual StudioやAzureからAzure DevOpsを使う
Visual StudioやAzureからAzure DevOpsを使う
 
~ Build と言えば やっぱり Developer! ~ Microsoft 開発ツール最新アップデート
~ Build と言えば やっぱり Developer! ~ Microsoft 開発ツール最新アップデート~ Build と言えば やっぱり Developer! ~ Microsoft 開発ツール最新アップデート
~ Build と言えば やっぱり Developer! ~ Microsoft 開発ツール最新アップデート
 
【BS14】Blazor WebAssemblyとJavaScriptのインターオペラビリティ
【BS14】Blazor WebAssemblyとJavaScriptのインターオペラビリティ 【BS14】Blazor WebAssemblyとJavaScriptのインターオペラビリティ
【BS14】Blazor WebAssemblyとJavaScriptのインターオペラビリティ
 

Mehr von de:code 2017

[AI08] 深層学習フレームワーク Chainer × Microsoft で広がる応用
[AI08] 深層学習フレームワーク Chainer × Microsoft で広がる応用[AI08] 深層学習フレームワーク Chainer × Microsoft で広がる応用
[AI08] 深層学習フレームワーク Chainer × Microsoft で広がる応用de:code 2017
 
[AI10] ゲームキャラクターのための人工知能と社会への応用 ~ FINAL FANTASY XV を事例として ~
[AI10] ゲームキャラクターのための人工知能と社会への応用 ~ FINAL FANTASY XV を事例として ~[AI10] ゲームキャラクターのための人工知能と社会への応用 ~ FINAL FANTASY XV を事例として ~
[AI10] ゲームキャラクターのための人工知能と社会への応用 ~ FINAL FANTASY XV を事例として ~de:code 2017
 
[DO07] マイクロサービスに必要な技術要素はすべて Spring Cloud にある
[DO07] マイクロサービスに必要な技術要素はすべて Spring Cloud にある[DO07] マイクロサービスに必要な技術要素はすべて Spring Cloud にある
[DO07] マイクロサービスに必要な技術要素はすべて Spring Cloud にあるde:code 2017
 
[SC09] パッチ待ちはもう古い!Windows 10 最新セキュリティ技術とゼロデイ攻撃攻防の実例
[SC09] パッチ待ちはもう古い!Windows 10 最新セキュリティ技術とゼロデイ攻撃攻防の実例[SC09] パッチ待ちはもう古い!Windows 10 最新セキュリティ技術とゼロデイ攻撃攻防の実例
[SC09] パッチ待ちはもう古い!Windows 10 最新セキュリティ技術とゼロデイ攻撃攻防の実例de:code 2017
 
[SC10] 自社開発モバイルアプリの DLP 対応化を Microsoft Intune で可能に
[SC10] 自社開発モバイルアプリの DLP 対応化を Microsoft Intune で可能に[SC10] 自社開発モバイルアプリの DLP 対応化を Microsoft Intune で可能に
[SC10] 自社開発モバイルアプリの DLP 対応化を Microsoft Intune で可能にde:code 2017
 
[DI12] あらゆるデータをビジネスに活用! Azure Data Lake を中心としたビックデータ処理基盤のアーキテクチャと実装
[DI12] あらゆるデータをビジネスに活用! Azure Data Lake を中心としたビックデータ処理基盤のアーキテクチャと実装[DI12] あらゆるデータをビジネスに活用! Azure Data Lake を中心としたビックデータ処理基盤のアーキテクチャと実装
[DI12] あらゆるデータをビジネスに活用! Azure Data Lake を中心としたビックデータ処理基盤のアーキテクチャと実装de:code 2017
 
[DI10] IoT を実践する最新のプラクティス ~ Azure IoT Hub 、SDK 、Azure IoT Suite ~
[DI10] IoT を実践する最新のプラクティス ~ Azure IoT Hub 、SDK 、Azure IoT Suite ~[DI10] IoT を実践する最新のプラクティス ~ Azure IoT Hub 、SDK 、Azure IoT Suite ~
[DI10] IoT を実践する最新のプラクティス ~ Azure IoT Hub 、SDK 、Azure IoT Suite ~de:code 2017
 
[AI03] AI × 導入の速さを武器に。 ” 人工知能パーツ ” Cognitive Services の使いどころ
[AI03] AI × 導入の速さを武器に。 ” 人工知能パーツ ” Cognitive Services の使いどころ[AI03] AI × 導入の速さを武器に。 ” 人工知能パーツ ” Cognitive Services の使いどころ
[AI03] AI × 導入の速さを武器に。 ” 人工知能パーツ ” Cognitive Services の使いどころde:code 2017
 
[SP04] これからのエンジニアに必要な「マネジメント」の考え方
[SP04] これからのエンジニアに必要な「マネジメント」の考え方[SP04] これからのエンジニアに必要な「マネジメント」の考え方
[SP04] これからのエンジニアに必要な「マネジメント」の考え方de:code 2017
 
[DO17] セゾン情報システムズの CTO 小野氏による、伝統的 Sier におけるモダン開発への挑戦
[DO17] セゾン情報システムズの CTO 小野氏による、伝統的 Sier におけるモダン開発への挑戦[DO17] セゾン情報システムズの CTO 小野氏による、伝統的 Sier におけるモダン開発への挑戦
[DO17] セゾン情報システムズの CTO 小野氏による、伝統的 Sier におけるモダン開発への挑戦de:code 2017
 
[DO13] 楽天のクラウドストレージ使いこなし術 Azure と OSS で少しずつ進めるレガシー脱却
[DO13] 楽天のクラウドストレージ使いこなし術 Azure と OSS で少しずつ進めるレガシー脱却[DO13] 楽天のクラウドストレージ使いこなし術 Azure と OSS で少しずつ進めるレガシー脱却
[DO13] 楽天のクラウドストレージ使いこなし術 Azure と OSS で少しずつ進めるレガシー脱却de:code 2017
 
[DO11] JOY, Inc. : あなたの仕事場での喜びは何ですか?
[DO11] JOY, Inc. : あなたの仕事場での喜びは何ですか?[DO11] JOY, Inc. : あなたの仕事場での喜びは何ですか?
[DO11] JOY, Inc. : あなたの仕事場での喜びは何ですか?de:code 2017
 
[DO08] 『変わらない開発現場』を変えていくために ~エンプラ系レガシー SIer のための DevOps 再入門~
[DO08] 『変わらない開発現場』を変えていくために ~エンプラ系レガシー SIer のための DevOps 再入門~[DO08] 『変わらない開発現場』を変えていくために ~エンプラ系レガシー SIer のための DevOps 再入門~
[DO08] 『変わらない開発現場』を変えていくために ~エンプラ系レガシー SIer のための DevOps 再入門~de:code 2017
 
[DO06] Infrastructure as Code でサービスを迅速にローンチし、継続的にインフラを変更しよう
[DO06] Infrastructure as Code でサービスを迅速にローンチし、継続的にインフラを変更しよう[DO06] Infrastructure as Code でサービスを迅速にローンチし、継続的にインフラを変更しよう
[DO06] Infrastructure as Code でサービスを迅速にローンチし、継続的にインフラを変更しようde:code 2017
 
[DO05] システムの信頼性を上げるための新しい考え方 SRE ( Site Reliability Engineering ) in Azure, o...
[DO05] システムの信頼性を上げるための新しい考え方 SRE ( Site Reliability Engineering ) in Azure, o...[DO05] システムの信頼性を上げるための新しい考え方 SRE ( Site Reliability Engineering ) in Azure, o...
[DO05] システムの信頼性を上げるための新しい考え方 SRE ( Site Reliability Engineering ) in Azure, o...de:code 2017
 
[DO04] アジャイル開発サバイバルガイド 〜キミが必ず直面する課題と乗り越え方を伝えよう!〜
[DO04] アジャイル開発サバイバルガイド 〜キミが必ず直面する課題と乗り越え方を伝えよう!〜[DO04] アジャイル開発サバイバルガイド 〜キミが必ず直面する課題と乗り越え方を伝えよう!〜
[DO04] アジャイル開発サバイバルガイド 〜キミが必ず直面する課題と乗り越え方を伝えよう!〜de:code 2017
 
[SP03] 「怠惰の美徳~言語デザイナーの視点から」
[SP03] 「怠惰の美徳~言語デザイナーの視点から」[SP03] 「怠惰の美徳~言語デザイナーの視点から」
[SP03] 「怠惰の美徳~言語デザイナーの視点から」de:code 2017
 
[SP02] Developing autonomous vehicles with AirSim
[SP02] Developing autonomous vehicles with AirSim[SP02] Developing autonomous vehicles with AirSim
[SP02] Developing autonomous vehicles with AirSimde:code 2017
 
[SP01] CTO が語る! 今注目すべきテクノロジー
[SP01] CTO が語る! 今注目すべきテクノロジー[SP01] CTO が語る! 今注目すべきテクノロジー
[SP01] CTO が語る! 今注目すべきテクノロジーde:code 2017
 
[DO16] Mesosphere : Microservices meet Fast Data on Azure
[DO16] Mesosphere : Microservices meet Fast Data on Azure [DO16] Mesosphere : Microservices meet Fast Data on Azure
[DO16] Mesosphere : Microservices meet Fast Data on Azure de:code 2017
 

Mehr von de:code 2017 (20)

[AI08] 深層学習フレームワーク Chainer × Microsoft で広がる応用
[AI08] 深層学習フレームワーク Chainer × Microsoft で広がる応用[AI08] 深層学習フレームワーク Chainer × Microsoft で広がる応用
[AI08] 深層学習フレームワーク Chainer × Microsoft で広がる応用
 
[AI10] ゲームキャラクターのための人工知能と社会への応用 ~ FINAL FANTASY XV を事例として ~
[AI10] ゲームキャラクターのための人工知能と社会への応用 ~ FINAL FANTASY XV を事例として ~[AI10] ゲームキャラクターのための人工知能と社会への応用 ~ FINAL FANTASY XV を事例として ~
[AI10] ゲームキャラクターのための人工知能と社会への応用 ~ FINAL FANTASY XV を事例として ~
 
[DO07] マイクロサービスに必要な技術要素はすべて Spring Cloud にある
[DO07] マイクロサービスに必要な技術要素はすべて Spring Cloud にある[DO07] マイクロサービスに必要な技術要素はすべて Spring Cloud にある
[DO07] マイクロサービスに必要な技術要素はすべて Spring Cloud にある
 
[SC09] パッチ待ちはもう古い!Windows 10 最新セキュリティ技術とゼロデイ攻撃攻防の実例
[SC09] パッチ待ちはもう古い!Windows 10 最新セキュリティ技術とゼロデイ攻撃攻防の実例[SC09] パッチ待ちはもう古い!Windows 10 最新セキュリティ技術とゼロデイ攻撃攻防の実例
[SC09] パッチ待ちはもう古い!Windows 10 最新セキュリティ技術とゼロデイ攻撃攻防の実例
 
[SC10] 自社開発モバイルアプリの DLP 対応化を Microsoft Intune で可能に
[SC10] 自社開発モバイルアプリの DLP 対応化を Microsoft Intune で可能に[SC10] 自社開発モバイルアプリの DLP 対応化を Microsoft Intune で可能に
[SC10] 自社開発モバイルアプリの DLP 対応化を Microsoft Intune で可能に
 
[DI12] あらゆるデータをビジネスに活用! Azure Data Lake を中心としたビックデータ処理基盤のアーキテクチャと実装
[DI12] あらゆるデータをビジネスに活用! Azure Data Lake を中心としたビックデータ処理基盤のアーキテクチャと実装[DI12] あらゆるデータをビジネスに活用! Azure Data Lake を中心としたビックデータ処理基盤のアーキテクチャと実装
[DI12] あらゆるデータをビジネスに活用! Azure Data Lake を中心としたビックデータ処理基盤のアーキテクチャと実装
 
[DI10] IoT を実践する最新のプラクティス ~ Azure IoT Hub 、SDK 、Azure IoT Suite ~
[DI10] IoT を実践する最新のプラクティス ~ Azure IoT Hub 、SDK 、Azure IoT Suite ~[DI10] IoT を実践する最新のプラクティス ~ Azure IoT Hub 、SDK 、Azure IoT Suite ~
[DI10] IoT を実践する最新のプラクティス ~ Azure IoT Hub 、SDK 、Azure IoT Suite ~
 
[AI03] AI × 導入の速さを武器に。 ” 人工知能パーツ ” Cognitive Services の使いどころ
[AI03] AI × 導入の速さを武器に。 ” 人工知能パーツ ” Cognitive Services の使いどころ[AI03] AI × 導入の速さを武器に。 ” 人工知能パーツ ” Cognitive Services の使いどころ
[AI03] AI × 導入の速さを武器に。 ” 人工知能パーツ ” Cognitive Services の使いどころ
 
[SP04] これからのエンジニアに必要な「マネジメント」の考え方
[SP04] これからのエンジニアに必要な「マネジメント」の考え方[SP04] これからのエンジニアに必要な「マネジメント」の考え方
[SP04] これからのエンジニアに必要な「マネジメント」の考え方
 
[DO17] セゾン情報システムズの CTO 小野氏による、伝統的 Sier におけるモダン開発への挑戦
[DO17] セゾン情報システムズの CTO 小野氏による、伝統的 Sier におけるモダン開発への挑戦[DO17] セゾン情報システムズの CTO 小野氏による、伝統的 Sier におけるモダン開発への挑戦
[DO17] セゾン情報システムズの CTO 小野氏による、伝統的 Sier におけるモダン開発への挑戦
 
[DO13] 楽天のクラウドストレージ使いこなし術 Azure と OSS で少しずつ進めるレガシー脱却
[DO13] 楽天のクラウドストレージ使いこなし術 Azure と OSS で少しずつ進めるレガシー脱却[DO13] 楽天のクラウドストレージ使いこなし術 Azure と OSS で少しずつ進めるレガシー脱却
[DO13] 楽天のクラウドストレージ使いこなし術 Azure と OSS で少しずつ進めるレガシー脱却
 
[DO11] JOY, Inc. : あなたの仕事場での喜びは何ですか?
[DO11] JOY, Inc. : あなたの仕事場での喜びは何ですか?[DO11] JOY, Inc. : あなたの仕事場での喜びは何ですか?
[DO11] JOY, Inc. : あなたの仕事場での喜びは何ですか?
 
[DO08] 『変わらない開発現場』を変えていくために ~エンプラ系レガシー SIer のための DevOps 再入門~
[DO08] 『変わらない開発現場』を変えていくために ~エンプラ系レガシー SIer のための DevOps 再入門~[DO08] 『変わらない開発現場』を変えていくために ~エンプラ系レガシー SIer のための DevOps 再入門~
[DO08] 『変わらない開発現場』を変えていくために ~エンプラ系レガシー SIer のための DevOps 再入門~
 
[DO06] Infrastructure as Code でサービスを迅速にローンチし、継続的にインフラを変更しよう
[DO06] Infrastructure as Code でサービスを迅速にローンチし、継続的にインフラを変更しよう[DO06] Infrastructure as Code でサービスを迅速にローンチし、継続的にインフラを変更しよう
[DO06] Infrastructure as Code でサービスを迅速にローンチし、継続的にインフラを変更しよう
 
[DO05] システムの信頼性を上げるための新しい考え方 SRE ( Site Reliability Engineering ) in Azure, o...
[DO05] システムの信頼性を上げるための新しい考え方 SRE ( Site Reliability Engineering ) in Azure, o...[DO05] システムの信頼性を上げるための新しい考え方 SRE ( Site Reliability Engineering ) in Azure, o...
[DO05] システムの信頼性を上げるための新しい考え方 SRE ( Site Reliability Engineering ) in Azure, o...
 
[DO04] アジャイル開発サバイバルガイド 〜キミが必ず直面する課題と乗り越え方を伝えよう!〜
[DO04] アジャイル開発サバイバルガイド 〜キミが必ず直面する課題と乗り越え方を伝えよう!〜[DO04] アジャイル開発サバイバルガイド 〜キミが必ず直面する課題と乗り越え方を伝えよう!〜
[DO04] アジャイル開発サバイバルガイド 〜キミが必ず直面する課題と乗り越え方を伝えよう!〜
 
[SP03] 「怠惰の美徳~言語デザイナーの視点から」
[SP03] 「怠惰の美徳~言語デザイナーの視点から」[SP03] 「怠惰の美徳~言語デザイナーの視点から」
[SP03] 「怠惰の美徳~言語デザイナーの視点から」
 
[SP02] Developing autonomous vehicles with AirSim
[SP02] Developing autonomous vehicles with AirSim[SP02] Developing autonomous vehicles with AirSim
[SP02] Developing autonomous vehicles with AirSim
 
[SP01] CTO が語る! 今注目すべきテクノロジー
[SP01] CTO が語る! 今注目すべきテクノロジー[SP01] CTO が語る! 今注目すべきテクノロジー
[SP01] CTO が語る! 今注目すべきテクノロジー
 
[DO16] Mesosphere : Microservices meet Fast Data on Azure
[DO16] Mesosphere : Microservices meet Fast Data on Azure [DO16] Mesosphere : Microservices meet Fast Data on Azure
[DO16] Mesosphere : Microservices meet Fast Data on Azure
 

[DO02] Jenkins PipelineとBlue Oceanによる、フルスクラッチからの継続的デリバリ

  • 1. Jenkins Pipeline + Blue Ocean フルスクラッチからの継続的デリバリ
  • 2. 2© 2017 CloudBees, Inc. All Rights Reserved. 川口耕介とは • Jenkinsプロジェクトの父 • CloudBeesのCTO
  • 3. 3© 2017 CloudBees, Inc. All Rights Reserved. 継続的デリバリとは Development Production Commit Build Test Stage Deploy Feedback Loop $ The Business
  • 4. 4© 2017 CloudBees, Inc. All Rights Reserved. Software changes continuously deployed to live production Continuous Deployment Software changes continuously delivered to stakeholders in any environment Continuous Delivery Software changes continuously delivered to stakeholders in any environment Continuous DeliveryContinuous Integration Automated commit, build and testing of code in the development environment DevOps  Cultural approaches & technical practices User FeedbackRapid Changes Discipline AGILE An incremental approach to identifying, prioritizing, and coordinating feature development Development Production / Prod-like Live Production Env.Stage Release Deploy Monitor Upstream (left) Downstream (right) Define Plan Code Compile Build Unit Test Analyze Integrate Int. Test Package Place Load Test Acct. Test Change Mgt. Production Bugs なぜ継続的デリバリ?
  • 5. 5© 2017 CloudBees, Inc. All Rights Reserved. Jenkins Pipeline • Pipeline as Code • 継続的デリバリのプロセスの定義を記述する • リポジトリにJenkinsfileとしてコミットする • jenkins.io/doc/book/pipeline
  • 6. 6© 2017 CloudBees, Inc. All Rights Reserved. https://flic.kr/p/opw1JR Blue Ocean
  • 7. 7© 2017 CloudBees, Inc. All Rights Reserved.
  • 8. 8© 2017 CloudBees, Inc. All Rights Reserved.
  • 9. 9© 2017 CloudBees, Inc. All Rights Reserved.
  • 10. 10© 2017 CloudBees, Inc. All Rights Reserved.
  • 11. 11© 2017 CloudBees, Inc. All Rights Reserved. kohsuke/jhipster-sample-app ツール • Maven • Node / Gulp • Gatling • Docker 本日の材料
  • 13. 13© 2017 CloudBees, Inc. All Rights Reserved. 開発者個別 • ビルド • 単体テスト • 静的解析 チーム全体 • ビルド • 単体テスト • 静的解析 QA環境 • デプロイ • 性能テスト 本番環境 • デプロイ パイプラインを設計
  • 14. 14© 2017 CloudBees, Inc. All Rights Reserved. ブランチ戦略を設計 master qa production
  • 15. 15© 2017 CloudBees, Inc. All Rights Reserved. docker run -p 8080:8080 –u root ¥ -v /var/run/docker.sock:/var/run/docker.sock ¥ -v $PWD/jenkins_home:/var/jenkins_home jenkinsci/blueocean Jenkins + Blue Oceanを起動
  • 16. 16© 2017 CloudBees, Inc. All Rights Reserved.
  • 17. 17© 2017 CloudBees, Inc. All Rights Reserved.
  • 19. 19© 2017 CloudBees, Inc. All Rights Reserved. • Jenkins Pipelineはビルドシステムではない! • 既存のビルドシステムを他とくっつける糊のようなもの • ゴール • 再現性のあるポータブルなビルド • バイナリを作って後のために保存 • 今回はMavenを使います ビルド
  • 20. 20© 2017 CloudBees, Inc. All Rights Reserved. pipeline { agent any stages { stage('Build') { steps { sh 'mvn' } } } } ビルド
  • 21. 21© 2017 CloudBees, Inc. All Rights Reserved. stage('Build') { agent { docker { image 'maven:3-alpine' } } /* .. */ } ビルド
  • 22. 22© 2017 CloudBees, Inc. All Rights Reserved. stage('Build') { agent ... steps { sh 'mvn clean install' archiveArtifacts 'target/*.war' junit 'target/surefire-reports/*.xml' } } ビルド
  • 23. 23© 2017 CloudBees, Inc. All Rights Reserved. stage('Build') { /* .. */ steps { withMaven { sh 'mvn clean package' } } } プラグインを使って頻出パターンを簡略化
  • 24. 24© 2017 CloudBees, Inc. All Rights Reserved. stage('Build') { /* .. */ steps { withMaven(mavenSettingsConfig:'my-maven-settings') { sh 'mvn clean package' } } } CIビルド環境に適応
  • 26. 26© 2017 CloudBees, Inc. All Rights Reserved. stage('Frontend Test') { agent { docker 'node:alpine' } steps { sh 'yarn install' sh 'yarn global add gulp-cli' sh 'gulp test' } } フロントエンドの単体テスト
  • 27. 27© 2017 CloudBees, Inc. All Rights Reserved. stage('Frontend Test') { agent { docker 'node:alpine' } steps { sh 'yarn install' sh 'yarn global add gulp-cli' sh 'gulp test' junit 'target/test-results/karma/*.xml' } } 結果の捕捉
  • 29. 29© 2017 CloudBees, Inc. All Rights Reserved. いろいろなオプションがある • FindBugs • PMD • Checkstyle • … SonarQube? • jenkins.io/blog/2017/04/18/continuousdelivery-devops-sonarqube/ 静的解析
  • 30. 30© 2017 CloudBees, Inc. All Rights Reserved. pipeline { agent any stages { stage('Analyze') { agent ... steps { withMaven { sh 'mvn pmd:pmd' pmd pattern:'target/pmd.xml' } } } } } PMDの例
  • 32. 32© 2017 CloudBees, Inc. All Rights Reserved. 開発者個別 • ビルド • 単体テスト • 静的解析 チーム全体 • ビルド • 単体テスト • 静的解析 QA環境 • デプロイ • 性能テスト 本番環境 • デプロイ パイプラインの設計
  • 33. 33© 2017 CloudBees, Inc. All Rights Reserved. • Jenkins Pipelineはデプロイメント・システムではない! • 既存のデプロイメント・システムを他とくっつける糊のようなもの • 所変われば… • AWS/Azure • Chef/Puppet • アップストアへ登録 • 社内サーバにアップロード デプロイ
  • 34. 34© 2017 CloudBees, Inc. All Rights Reserved. pipeline { agent any stages { stage('Deploy to QA') { steps { sh './deploy.sh' } } } } デプロイ
  • 35. 35© 2017 CloudBees, Inc. All Rights Reserved. pipeline { agent any stages { stage('Deploy to QA') { when { branch 'qa' } steps { sh './deploy.sh' } } } } qaブランチのみで実行
  • 37. 37© 2017 CloudBees, Inc. All Rights Reserved. 開発者個別 • ビルド • 単体テスト • 静的解析 チーム全体 • ビルド • 単体テスト • 静的解析 QA環境 • デプロイ • 性能テスト 本番環境 • デプロイ パイプラインの設計
  • 38. 38© 2017 CloudBees, Inc. All Rights Reserved. stage(‘Deploy to Production') { steps { input message: 'Deploy to production?', ok: 'Fire zee missiles!' sh './deploy.sh prod' } } 確認
  • 39. 39© 2017 CloudBees, Inc. All Rights Reserved. 確認
  • 41. 41© 2017 CloudBees, Inc. All Rights Reserved. • 継続的デリバリの実現には開発者へのフィードバックが欠かせない • パイプラインを使って • メールを送る • HipChat/Slack通知 • JIRAチケットの更新 • jenkins.io/node/tags/notifications/ フィードバックループを作る
  • 42. Q & A
  • 43. 43© 2017 CloudBees, Inc. All Rights Reserved. jenkins.io/doc/book/pipeline jenkins.io/projects/blueocean Docker コンテナ • jenkinsci/jenkins:lts-alpine • jenkinsci/blueocean jenkinsci-users@googlegroups.com 資料