SlideShare a Scribd company logo
1 of 51
Download to read offline
©2016 CloudBees, Inc. All Rights Reserved 1©2016 CloudBees, Inc. All Rights Reserved
Jenkins + Docker + Azureで作る
継続的デリバリ
川口耕介 / CTO / CloudBees, Inc.
kk@kohsuke.org / @kohsukekawa
©2016 CloudBees, Inc. All Rights Reserved 2
©2016 CloudBees, Inc. All Rights Reserved 3
©2016 CloudBees, Inc. All Rights Reserved 4
ビルド・エージェント総数
©2016 CloudBees, Inc. All Rights Reserved 5
Source: State of Jenkins Survey Sept. 2015
Jenkinsの利用の拡大
©2016 CloudBees, Inc. All Rights Reserved 6
2013年度サーベイ 2015年度サーベイ
Jenkinsはミッションクリティカル?
©2016 CloudBees, Inc. All Rights Reserved 7
増え続ける Jenkins の利用
ビルドの自動化
デプロイスクリプトの共有
テストの自動化
継続的デリバリ
©2016 CloudBees, Inc. All Rights Reserved 8
優れたソフトウェアを
素早く届けたい
なぜ継続的デリバリ(CD)?
©2016 CloudBees, Inc. All Rights Reserved 9
• 短いサイクルでソフトウェアを少しづつ改善
• コンセプトからビルド・テスト・デプロイまでをより
素早く頻繁に
• 素直で単純な反復可能なプロセスが欠かせな
い
継続的デリバリとは
©2016 CloudBees, Inc. All Rights Reserved 10
• “Netflix deploys a hundred times per day”
• “Amazon deploys every 11.6 seconds”
目標はソフトウェア開発の虎
©2016 CloudBees, Inc. All Rights Reserved 11
• Google Docによるデプロイ手順の作成
• 深夜のデプロイ作業
• 二週間に一度のデプロイ
現実
©2016 CloudBees, Inc. All Rights Reserved 12男坂より © Kurumada Production
©2016 CloudBees, Inc. All Rights Reserved 13
継続的デリバリへの道のり
• 自動化
– 高い再現性
– 時間を短く、頻繁に
• エラーに耐えるアーキテクチャ
• エラーを検出するパイプライン
• エラーを許容するインフラ
©2016 CloudBees, Inc. All Rights Reserved 14
アーキテクチャ・実装技法
• フィーチャーフラグ
• ダークラウンチ
• マイクロサービス
©2016 CloudBees, Inc. All Rights Reserved 15
エラーを検出するパイプライン
dev
qa
production
©2016 CloudBees, Inc. All Rights Reserved 16
• コードレビューの自動検査
• 信頼できるテスト
• ブランチの活用
• 複数の検問
エラーを検出するパイプライン
©2016 CloudBees, Inc. All Rights Reserved 17
インフラ
• エラーを許容
– 青緑デプロイ
– カナリアリリース
• エラーを防ぐ
– 不死鳥サーバ
– Immutableインフラ
©2016 CloudBees, Inc. All Rights Reserved 18
Crawl, Walk, Run
©2016 CloudBees, Inc. All Rights Reserved 19
その為の道具
©2016 CloudBees, Inc. All Rights Reserved 20
©2016 CloudBees, Inc. All Rights Reserved 21
2013 2015
ビルド 95% 97%
テスト 86% 90%
デプロイ 48% 58%
運用 15% 24%
Jenkinsの用途は?
©2016 CloudBees, Inc. All Rights Reserved 22
©2016 CloudBees, Inc. All Rights Reserved 23
jenkins.io/2.0
©2016 CloudBees, Inc. All Rights Reserved 24
その為の道具
©2016 CloudBees, Inc. All Rights Reserved 25
docker pull jenkins
Jenkinsをコンテナ化
©2016 CloudBees, Inc. All Rights Reserved 26
docker run -p 8080:8080 ¥
–v /var/lib/jenkins:/var/jenkins_home ¥
jenkins
Jenkinsをコンテナ化
©2016 CloudBees, Inc. All Rights Reserved 27
• アップデートが簡単
• 将来の引っ越しが簡単
コンテナ化の利点
©2016 CloudBees, Inc. All Rights Reserved 28
• Azure Slaveプラグインを使う
• 利点
– 負荷に応じて自動伸縮
– いつも新築のビルド環境
– WindowsでもLinuxでも
Azure上のビルド環境
©2016 CloudBees, Inc. All Rights Reserved 29
Azure Slaveプラグインの設定
©2016 CloudBees, Inc. All Rights Reserved 30
Azure Slaveプラグインの設定
©2016 CloudBees, Inc. All Rights Reserved 31
Azure Slaveプラグインの勘所
• 30-60分のRetention timeを設定する
• ラベルを活用する
– 悪い例: Standard_D1, Linux
– 良い例: ProjectFoo, NodeJs
• 長すぎる初期化スクリプトを避ける
©2016 CloudBees, Inc. All Rights Reserved 32
ジョブの設定
©2016 CloudBees, Inc. All Rights Reserved 33
Docker プラグイン
Azure上のビルド環境 その2
©2016 CloudBees, Inc. All Rights Reserved 34
Docker プラグイン
Azure Container Service
(with Docker swarm)
Build Agent
©2016 CloudBees, Inc. All Rights Reserved 35
Azure Slave プラグインと比べて
• 利点
– ビルド環境の作成・管理・利用が簡単
– いつも完全に新築のビルド環境
• 欠点
– ワークスペースの再利用なし
– オートスケールなし
– Docker in Docker
©2016 CloudBees, Inc. All Rights Reserved 36
器はできた
©2016 CloudBees, Inc. All Rights Reserved 37
Jenkins 2.0: Pipeline as Code
• 新しい「パイプライン」型の導入
• 作業手順をコードとしてJenkinsfileに記述
• Jenkinsfileをソースリポジトリに保存
• パイプライン実行中にJenkinsを再起動できる
• Jenkinsfileを拡張してよりDRYに
©2016 CloudBees, Inc. All Rights Reserved 38
Dockerコンテナをビルドする例
def imageName = 'jenkinsciinfra/bind'
node('docker') {
checkout scm
// Compute a unique image tag
def imageTag = "build-${env.BUILD_NUMBER}"
// The `docker` variable introduced by the plugin
stage 'Build'
def whale = docker.build("${imageName}:${imageTag}")
// Publish this image to Docker Hub
stage 'Deploy'
whale.push()
}
©2016 CloudBees, Inc. All Rights Reserved 39
Jenkins 2.0: Organization Folder
©2016 CloudBees, Inc. All Rights Reserved 40
Organization Folderの利点
• Jenkinsの設定は一度だけ
• Jenkinsfileをコミットするだけ
• ブランチ別のビルド履歴
• プルリクエストの自動ビルドと結果の通知
©2016 CloudBees, Inc. All Rights Reserved 41
ツールコンテナの活用
node('docker') {
// run gradle with Java8
stage 'build'
docker.image('java:8-jdk').inside {
checkout scm
sh './gradlew --info'
stash name:'war', includes:'build/*.war'
}
// then test with phantomjs
stage 'test'
docker.image('acme:phantomjs').inside {
git url:'.https://github.com/acme/test.git'
unstash 'war'
sh './test.py'
}
}
©2016 CloudBees, Inc. All Rights Reserved 42
ツールコンテナの活用
• Docker Pipelineプラグイン
• 実行環境を精密にコントロール
– Jenkins管理者の負担を軽減
©2016 CloudBees, Inc. All Rights Reserved 43
Jenkins + Docker + Azureのフロンティア
• Docker in Docker
– コンテナ内でコンテナをビルド
• Docker slaveプラグイン
©2016 CloudBees, Inc. All Rights Reserved 44
チームから全社へ
©2016 CloudBees, Inc. All Rights Reserved 45
一家に一台Jenkins
©2016 CloudBees, Inc. All Rights Reserved 46
https://www.flickr.com/photos/grapesteinbeck/
中央集権化
©2016 CloudBees, Inc. All Rights Reserved 47
中央集権化の利点
• Jenkinsの運用の効率化
• ベストプラクティスの開発と普及
• 計算機資源のプール
©2016 CloudBees, Inc. All Rights Reserved 48
CloudBees Jenkins Platform
Private SaaS Edition (PSE)
©2016 CloudBees, Inc. All Rights Reserved 49
PSEでJenkinsの大規模運用
• 自動的なフェイルオーバー
• マルチテナント
• 個々のマスターの配置について悩まない
©2016 CloudBees, Inc. All Rights Reserved 50
まとめ
• 継続的デリバリで幸せになりたい
• Jenkins 2.0を作った
• AzureでスケーラブルなJenkins環境
• まだ進化は続く
©2016 CloudBees, Inc. All Rights Reserved 51

More Related Content

What's hot

AKS (k8s) Hands on Lab Contents
AKS (k8s) Hands on Lab ContentsAKS (k8s) Hands on Lab Contents
AKS (k8s) Hands on Lab ContentsYoshio Terada
 
kpackによるコンテナイメージのビルド
kpackによるコンテナイメージのビルドkpackによるコンテナイメージのビルド
kpackによるコンテナイメージのビルドMasanori Nara
 
Jjug CCC 2019 Fall Azure Spring Cloud
Jjug CCC 2019 Fall Azure Spring CloudJjug CCC 2019 Fall Azure Spring Cloud
Jjug CCC 2019 Fall Azure Spring CloudYoshio Terada
 
[DO02] Jenkins PipelineとBlue Oceanによる、フルスクラッチからの継続的デリバリ
[DO02] Jenkins PipelineとBlue Oceanによる、フルスクラッチからの継続的デリバリ[DO02] Jenkins PipelineとBlue Oceanによる、フルスクラッチからの継続的デリバリ
[DO02] Jenkins PipelineとBlue Oceanによる、フルスクラッチからの継続的デリバリde:code 2017
 
はじめての JFrog Platform V2
はじめての JFrog Platform V2はじめての JFrog Platform V2
はじめての JFrog Platform V2Tsuyoshi Miyake
 
AWS SDK for Go を使って作ってみた話
AWS SDK for Go を使って作ってみた話AWS SDK for Go を使って作ってみた話
AWS SDK for Go を使って作ってみた話uchimanajet7
 
Virtual Kubelet and Virtual Node
Virtual Kubelet and Virtual NodeVirtual Kubelet and Virtual Node
Virtual Kubelet and Virtual NodeYoshio Terada
 
Jenkins x Kubernetesが簡単だと思ったら大変だった話
Jenkins x Kubernetesが簡単だと思ったら大変だった話Jenkins x Kubernetesが簡単だと思ったら大変だった話
Jenkins x Kubernetesが簡単だと思ったら大変だった話Masaki Yamamoto
 
進化する Web ~ Progressive Web Apps の実装と応用 ~
進化する Web  ~ Progressive Web Apps の実装と応用 ~進化する Web  ~ Progressive Web Apps の実装と応用 ~
進化する Web ~ Progressive Web Apps の実装と応用 ~Microsoft Azure Japan
 
Jenkins X on GKE & Rancher2.0 on ORACLE Cloud
Jenkins X on GKE & Rancher2.0 on ORACLE CloudJenkins X on GKE & Rancher2.0 on ORACLE Cloud
Jenkins X on GKE & Rancher2.0 on ORACLE Cloudcyberblack28 Ichikawa
 
Jenkinsユーザカンファレンス2015 前座資料
Jenkinsユーザカンファレンス2015 前座資料Jenkinsユーザカンファレンス2015 前座資料
Jenkinsユーザカンファレンス2015 前座資料ikikko
 
Myfirst cloudfoundry intro_20161201
Myfirst cloudfoundry intro_20161201Myfirst cloudfoundry intro_20161201
Myfirst cloudfoundry intro_20161201Tomohiro Ichimura
 
Japan Container Day 2018
Japan Container Day 2018Japan Container Day 2018
Japan Container Day 2018Yoshio Terada
 
App Service の DevOps と Visual Studio Team Services 最新アップデート
App Service の DevOps と Visual Studio Team Services 最新アップデートApp Service の DevOps と Visual Studio Team Services 最新アップデート
App Service の DevOps と Visual Studio Team Services 最新アップデートMicrosoft Azure Japan
 
Wasm blazor and wasi 2
Wasm blazor and wasi 2Wasm blazor and wasi 2
Wasm blazor and wasi 2Takao Tetsuro
 
Rancher2.3とwindows Containerで作るkubernetesクラスタ
Rancher2.3とwindows Containerで作るkubernetesクラスタRancher2.3とwindows Containerで作るkubernetesクラスタ
Rancher2.3とwindows Containerで作るkubernetesクラスタTakashi Kanai
 
Kubernetes上のWindows Server コンテナーのマイクロサービス間分離
Kubernetes上のWindows Server コンテナーのマイクロサービス間分離Kubernetes上のWindows Server コンテナーのマイクロサービス間分離
Kubernetes上のWindows Server コンテナーのマイクロサービス間分離Takashi Kanai
 

What's hot (20)

AKS (k8s) Hands on Lab Contents
AKS (k8s) Hands on Lab ContentsAKS (k8s) Hands on Lab Contents
AKS (k8s) Hands on Lab Contents
 
kpackによるコンテナイメージのビルド
kpackによるコンテナイメージのビルドkpackによるコンテナイメージのビルド
kpackによるコンテナイメージのビルド
 
Jjug CCC 2019 Fall Azure Spring Cloud
Jjug CCC 2019 Fall Azure Spring CloudJjug CCC 2019 Fall Azure Spring Cloud
Jjug CCC 2019 Fall Azure Spring Cloud
 
[DO02] Jenkins PipelineとBlue Oceanによる、フルスクラッチからの継続的デリバリ
[DO02] Jenkins PipelineとBlue Oceanによる、フルスクラッチからの継続的デリバリ[DO02] Jenkins PipelineとBlue Oceanによる、フルスクラッチからの継続的デリバリ
[DO02] Jenkins PipelineとBlue Oceanによる、フルスクラッチからの継続的デリバリ
 
はじめての JFrog Platform V2
はじめての JFrog Platform V2はじめての JFrog Platform V2
はじめての JFrog Platform V2
 
AWS SDK for Go を使って作ってみた話
AWS SDK for Go を使って作ってみた話AWS SDK for Go を使って作ってみた話
AWS SDK for Go を使って作ってみた話
 
Openshift 20191121
Openshift 20191121Openshift 20191121
Openshift 20191121
 
第六回Jenkins勉強会
第六回Jenkins勉強会第六回Jenkins勉強会
第六回Jenkins勉強会
 
Virtual Kubelet and Virtual Node
Virtual Kubelet and Virtual NodeVirtual Kubelet and Virtual Node
Virtual Kubelet and Virtual Node
 
Jenkins x Kubernetesが簡単だと思ったら大変だった話
Jenkins x Kubernetesが簡単だと思ったら大変だった話Jenkins x Kubernetesが簡単だと思ったら大変だった話
Jenkins x Kubernetesが簡単だと思ったら大変だった話
 
進化する Web ~ Progressive Web Apps の実装と応用 ~
進化する Web  ~ Progressive Web Apps の実装と応用 ~進化する Web  ~ Progressive Web Apps の実装と応用 ~
進化する Web ~ Progressive Web Apps の実装と応用 ~
 
Jenkins X on GKE & Rancher2.0 on ORACLE Cloud
Jenkins X on GKE & Rancher2.0 on ORACLE CloudJenkins X on GKE & Rancher2.0 on ORACLE Cloud
Jenkins X on GKE & Rancher2.0 on ORACLE Cloud
 
Jenkinsユーザカンファレンス2015 前座資料
Jenkinsユーザカンファレンス2015 前座資料Jenkinsユーザカンファレンス2015 前座資料
Jenkinsユーザカンファレンス2015 前座資料
 
Myfirst cloudfoundry intro_20161201
Myfirst cloudfoundry intro_20161201Myfirst cloudfoundry intro_20161201
Myfirst cloudfoundry intro_20161201
 
Japan Container Day 2018
Japan Container Day 2018Japan Container Day 2018
Japan Container Day 2018
 
App Service の DevOps と Visual Studio Team Services 最新アップデート
App Service の DevOps と Visual Studio Team Services 最新アップデートApp Service の DevOps と Visual Studio Team Services 最新アップデート
App Service の DevOps と Visual Studio Team Services 最新アップデート
 
Wasm blazor and wasi 2
Wasm blazor and wasi 2Wasm blazor and wasi 2
Wasm blazor and wasi 2
 
Rancher2.3とwindows Containerで作るkubernetesクラスタ
Rancher2.3とwindows Containerで作るkubernetesクラスタRancher2.3とwindows Containerで作るkubernetesクラスタ
Rancher2.3とwindows Containerで作るkubernetesクラスタ
 
Kubernetes上のWindows Server コンテナーのマイクロサービス間分離
Kubernetes上のWindows Server コンテナーのマイクロサービス間分離Kubernetes上のWindows Server コンテナーのマイクロサービス間分離
Kubernetes上のWindows Server コンテナーのマイクロサービス間分離
 
Jenkinsstudy#4kokawa
Jenkinsstudy#4kokawaJenkinsstudy#4kokawa
Jenkinsstudy#4kokawa
 

Similar to DOO-003_Jenkins 作者が語る、Docker コンテナによる継続的デリバリのオススメと新機能のご紹介

ビルドサーバで使うDocker
ビルドサーバで使うDockerビルドサーバで使うDocker
ビルドサーバで使うDockerMasashi Shinbara
 
20140605_じどうかの窓口_CloudBees_Jenkins
20140605_じどうかの窓口_CloudBees_Jenkins20140605_じどうかの窓口_CloudBees_Jenkins
20140605_じどうかの窓口_CloudBees_JenkinsSHIFT Inc.
 
Azure DevOps 関西 2019 - Overview
Azure DevOps 関西 2019 - OverviewAzure DevOps 関西 2019 - Overview
Azure DevOps 関西 2019 - OverviewKeiji Kamebuchi
 
Developer summit continuous deliveryとjenkins
Developer summit   continuous deliveryとjenkinsDeveloper summit   continuous deliveryとjenkins
Developer summit continuous deliveryとjenkinsKohsuke Kawaguchi
 
ハイブリットクラウド環境におけるモダンアプリケーション開発
ハイブリットクラウド環境におけるモダンアプリケーション開発ハイブリットクラウド環境におけるモダンアプリケーション開発
ハイブリットクラウド環境におけるモダンアプリケーション開発政雄 金森
 
これから始めるAzure Kubernetes Service入門
これから始めるAzure Kubernetes Service入門これから始めるAzure Kubernetes Service入門
これから始めるAzure Kubernetes Service入門Yuto Takei
 
SI現場のテスト自動化への挑戦〜フルコンテナ構成のCI/CD環境〜
SI現場のテスト自動化への挑戦〜フルコンテナ構成のCI/CD環境〜SI現場のテスト自動化への挑戦〜フルコンテナ構成のCI/CD環境〜
SI現場のテスト自動化への挑戦〜フルコンテナ構成のCI/CD環境〜Daiki Kawanuma
 
AITCシニア技術者勉強会 「今さら聞けないWebサイト開発」 vol2
AITCシニア技術者勉強会 「今さら聞けないWebサイト開発」 vol2AITCシニア技術者勉強会 「今さら聞けないWebサイト開発」 vol2
AITCシニア技術者勉強会 「今さら聞けないWebサイト開発」 vol2近藤 繁延
 
Introduction to Magnum (JP)
Introduction to Magnum (JP)Introduction to Magnum (JP)
Introduction to Magnum (JP)Motohiro OTSUKA
 
忙しい人の5分で分かるDocker 2017年春Ver
忙しい人の5分で分かるDocker 2017年春Ver忙しい人の5分で分かるDocker 2017年春Ver
忙しい人の5分で分かるDocker 2017年春VerMasahito Zembutsu
 
Windows Server 2016でコンテナを動かしてみた
Windows Server 2016でコンテナを動かしてみたWindows Server 2016でコンテナを動かしてみた
Windows Server 2016でコンテナを動かしてみたTakashi Kanai
 
2015-07-27 Docker Introduction 〜Dockerの基礎とユースケースに関する考察〜
2015-07-27 Docker Introduction 〜Dockerの基礎とユースケースに関する考察〜2015-07-27 Docker Introduction 〜Dockerの基礎とユースケースに関する考察〜
2015-07-27 Docker Introduction 〜Dockerの基礎とユースケースに関する考察〜Shuji Yamada
 
Cloud Days Tokyo 2015 "オンプレミス環境のクラウド化と運用を楽にする OpenStack ソリューション ~ハイブリッド・クラウドを...
Cloud Days Tokyo 2015 "オンプレミス環境のクラウド化と運用を楽にする OpenStack ソリューション ~ハイブリッド・クラウドを...Cloud Days Tokyo 2015 "オンプレミス環境のクラウド化と運用を楽にする OpenStack ソリューション ~ハイブリッド・クラウドを...
Cloud Days Tokyo 2015 "オンプレミス環境のクラウド化と運用を楽にする OpenStack ソリューション ~ハイブリッド・クラウドを...Shinichiro Arai
 
[TL10] Azure IaaS 構築・運用・管理の専門家が語る DevTest Labs ~高速・費用無駄ナシ・簡単管理を実現する開発・テスト環境の構築~
[TL10] Azure IaaS 構築・運用・管理の専門家が語る DevTest Labs ~高速・費用無駄ナシ・簡単管理を実現する開発・テスト環境の構築~[TL10] Azure IaaS 構築・運用・管理の専門家が語る DevTest Labs ~高速・費用無駄ナシ・簡単管理を実現する開発・テスト環境の構築~
[TL10] Azure IaaS 構築・運用・管理の専門家が語る DevTest Labs ~高速・費用無駄ナシ・簡単管理を実現する開発・テスト環境の構築~de:code 2017
 
Chefで始めるWindows Server構築
Chefで始めるWindows Server構築Chefで始めるWindows Server構築
Chefで始めるWindows Server構築Takashi Kanai
 
はじめてのAzure Web App for Containers! -コンテナの基礎から DevOps 環境の構築まで-
はじめてのAzure Web App for Containers! -コンテナの基礎から DevOps 環境の構築まで-はじめてのAzure Web App for Containers! -コンテナの基礎から DevOps 環境の構築まで-
はじめてのAzure Web App for Containers! -コンテナの基礎から DevOps 環境の構築まで-Saki Homma
 
はじめてのコンテナーDocker & Windows & Linux
はじめてのコンテナーDocker & Windows & LinuxはじめてのコンテナーDocker & Windows & Linux
はじめてのコンテナーDocker & Windows & LinuxKazushi Kamegawa
 

Similar to DOO-003_Jenkins 作者が語る、Docker コンテナによる継続的デリバリのオススメと新機能のご紹介 (20)

ビルドサーバで使うDocker
ビルドサーバで使うDockerビルドサーバで使うDocker
ビルドサーバで使うDocker
 
Amazon EC2 Container Service Deep dive
Amazon EC2 Container Service Deep diveAmazon EC2 Container Service Deep dive
Amazon EC2 Container Service Deep dive
 
20140605_じどうかの窓口_CloudBees_Jenkins
20140605_じどうかの窓口_CloudBees_Jenkins20140605_じどうかの窓口_CloudBees_Jenkins
20140605_じどうかの窓口_CloudBees_Jenkins
 
Azure DevOps 関西 2019 - Overview
Azure DevOps 関西 2019 - OverviewAzure DevOps 関西 2019 - Overview
Azure DevOps 関西 2019 - Overview
 
Developer summit continuous deliveryとjenkins
Developer summit   continuous deliveryとjenkinsDeveloper summit   continuous deliveryとjenkins
Developer summit continuous deliveryとjenkins
 
ハイブリットクラウド環境におけるモダンアプリケーション開発
ハイブリットクラウド環境におけるモダンアプリケーション開発ハイブリットクラウド環境におけるモダンアプリケーション開発
ハイブリットクラウド環境におけるモダンアプリケーション開発
 
これから始めるAzure Kubernetes Service入門
これから始めるAzure Kubernetes Service入門これから始めるAzure Kubernetes Service入門
これから始めるAzure Kubernetes Service入門
 
SI現場のテスト自動化への挑戦〜フルコンテナ構成のCI/CD環境〜
SI現場のテスト自動化への挑戦〜フルコンテナ構成のCI/CD環境〜SI現場のテスト自動化への挑戦〜フルコンテナ構成のCI/CD環境〜
SI現場のテスト自動化への挑戦〜フルコンテナ構成のCI/CD環境〜
 
AITCシニア技術者勉強会 「今さら聞けないWebサイト開発」 vol2
AITCシニア技術者勉強会 「今さら聞けないWebサイト開発」 vol2AITCシニア技術者勉強会 「今さら聞けないWebサイト開発」 vol2
AITCシニア技術者勉強会 「今さら聞けないWebサイト開発」 vol2
 
Introduction to Magnum (JP)
Introduction to Magnum (JP)Introduction to Magnum (JP)
Introduction to Magnum (JP)
 
忙しい人の5分で分かるDocker 2017年春Ver
忙しい人の5分で分かるDocker 2017年春Ver忙しい人の5分で分かるDocker 2017年春Ver
忙しい人の5分で分かるDocker 2017年春Ver
 
Windows Server 2016でコンテナを動かしてみた
Windows Server 2016でコンテナを動かしてみたWindows Server 2016でコンテナを動かしてみた
Windows Server 2016でコンテナを動かしてみた
 
2015-07-27 Docker Introduction 〜Dockerの基礎とユースケースに関する考察〜
2015-07-27 Docker Introduction 〜Dockerの基礎とユースケースに関する考察〜2015-07-27 Docker Introduction 〜Dockerの基礎とユースケースに関する考察〜
2015-07-27 Docker Introduction 〜Dockerの基礎とユースケースに関する考察〜
 
Cloud Days Tokyo 2015 "オンプレミス環境のクラウド化と運用を楽にする OpenStack ソリューション ~ハイブリッド・クラウドを...
Cloud Days Tokyo 2015 "オンプレミス環境のクラウド化と運用を楽にする OpenStack ソリューション ~ハイブリッド・クラウドを...Cloud Days Tokyo 2015 "オンプレミス環境のクラウド化と運用を楽にする OpenStack ソリューション ~ハイブリッド・クラウドを...
Cloud Days Tokyo 2015 "オンプレミス環境のクラウド化と運用を楽にする OpenStack ソリューション ~ハイブリッド・クラウドを...
 
ACI Kubernetes Integration
ACI Kubernetes IntegrationACI Kubernetes Integration
ACI Kubernetes Integration
 
[TL10] Azure IaaS 構築・運用・管理の専門家が語る DevTest Labs ~高速・費用無駄ナシ・簡単管理を実現する開発・テスト環境の構築~
[TL10] Azure IaaS 構築・運用・管理の専門家が語る DevTest Labs ~高速・費用無駄ナシ・簡単管理を実現する開発・テスト環境の構築~[TL10] Azure IaaS 構築・運用・管理の専門家が語る DevTest Labs ~高速・費用無駄ナシ・簡単管理を実現する開発・テスト環境の構築~
[TL10] Azure IaaS 構築・運用・管理の専門家が語る DevTest Labs ~高速・費用無駄ナシ・簡単管理を実現する開発・テスト環境の構築~
 
Chefで始めるWindows Server構築
Chefで始めるWindows Server構築Chefで始めるWindows Server構築
Chefで始めるWindows Server構築
 
はじめてのAzure Web App for Containers! -コンテナの基礎から DevOps 環境の構築まで-
はじめてのAzure Web App for Containers! -コンテナの基礎から DevOps 環境の構築まで-はじめてのAzure Web App for Containers! -コンテナの基礎から DevOps 環境の構築まで-
はじめてのAzure Web App for Containers! -コンテナの基礎から DevOps 環境の構築まで-
 
はじめてのコンテナーDocker & Windows & Linux
はじめてのコンテナーDocker & Windows & LinuxはじめてのコンテナーDocker & Windows & Linux
はじめてのコンテナーDocker & Windows & Linux
 
Alfresco CI
Alfresco CIAlfresco CI
Alfresco CI
 

More from decode2016

SPL-005_オープンソースから見たマイクロソフト
SPL-005_オープンソースから見たマイクロソフトSPL-005_オープンソースから見たマイクロソフト
SPL-005_オープンソースから見たマイクロソフトdecode2016
 
SPL-004_Windows 10 開発の舞台裏から学ぶエンジニアの未来
SPL-004_Windows 10 開発の舞台裏から学ぶエンジニアの未来SPL-004_Windows 10 開発の舞台裏から学ぶエンジニアの未来
SPL-004_Windows 10 開発の舞台裏から学ぶエンジニアの未来decode2016
 
SPL-003_黒船襲来! 世界DevOps トップ企業 x マイクロソフトによるトークバトル セッション
SPL-003_黒船襲来! 世界DevOps トップ企業 x マイクロソフトによるトークバトル セッションSPL-003_黒船襲来! 世界DevOps トップ企業 x マイクロソフトによるトークバトル セッション
SPL-003_黒船襲来! 世界DevOps トップ企業 x マイクロソフトによるトークバトル セッションdecode2016
 
SPL-002_クラウド心配性な上司を説得するコツを伝授します ~本当に信頼できるクラウドの構築/運用とは? マイクロソフト クラウド成長の軌跡~
SPL-002_クラウド心配性な上司を説得するコツを伝授します ~本当に信頼できるクラウドの構築/運用とは? マイクロソフト クラウド成長の軌跡~SPL-002_クラウド心配性な上司を説得するコツを伝授します ~本当に信頼できるクラウドの構築/運用とは? マイクロソフト クラウド成長の軌跡~
SPL-002_クラウド心配性な上司を説得するコツを伝授します ~本当に信頼できるクラウドの構築/運用とは? マイクロソフト クラウド成長の軌跡~decode2016
 
PRD-009_クラウドの ERP による業務システム開発 ~OData エンド ポイントから Power BI 連携~
PRD-009_クラウドの ERP による業務システム開発 ~OData エンド ポイントから Power BI 連携~PRD-009_クラウドの ERP による業務システム開発 ~OData エンド ポイントから Power BI 連携~
PRD-009_クラウドの ERP による業務システム開発 ~OData エンド ポイントから Power BI 連携~decode2016
 
PRD-008_クラウド ネイティブ ERP ~Dynamics AX のアーキテクチャ/環境構築から開発/運用まで~
PRD-008_クラウド ネイティブ ERP ~Dynamics AX のアーキテクチャ/環境構築から開発/運用まで~PRD-008_クラウド ネイティブ ERP ~Dynamics AX のアーキテクチャ/環境構築から開発/運用まで~
PRD-008_クラウド ネイティブ ERP ~Dynamics AX のアーキテクチャ/環境構築から開発/運用まで~decode2016
 
PRD-006_機械学習で顧客対応はこう変わる! Azure ML と Dynamics で造る次世代 CRM
PRD-006_機械学習で顧客対応はこう変わる! Azure ML と Dynamics で造る次世代 CRMPRD-006_機械学習で顧客対応はこう変わる! Azure ML と Dynamics で造る次世代 CRM
PRD-006_機械学習で顧客対応はこう変わる! Azure ML と Dynamics で造る次世代 CRMdecode2016
 
PRD-005_Skype Developer Platform によるアプリケーション開発の最新情報
PRD-005_Skype Developer Platform によるアプリケーション開発の最新情報PRD-005_Skype Developer Platform によるアプリケーション開発の最新情報
PRD-005_Skype Developer Platform によるアプリケーション開発の最新情報decode2016
 
PRD-004_ここまでできる! Azure AD と Office 365 連携開発の先進手法
PRD-004_ここまでできる! Azure AD と Office 365 連携開発の先進手法PRD-004_ここまでできる! Azure AD と Office 365 連携開発の先進手法
PRD-004_ここまでできる! Azure AD と Office 365 連携開発の先進手法decode2016
 
PRD-002_SharePoint Server 2016 & Online ハイブリッド環境での業務活用
PRD-002_SharePoint Server 2016 & Online ハイブリッド環境での業務活用PRD-002_SharePoint Server 2016 & Online ハイブリッド環境での業務活用
PRD-002_SharePoint Server 2016 & Online ハイブリッド環境での業務活用decode2016
 
INF-028_そのエラーやお困りごと、ツールを使えば解決できるかも! ~Sysinternals や OS 標準ツールの徹底活用術~
INF-028_そのエラーやお困りごと、ツールを使えば解決できるかも! ~Sysinternals や OS 標準ツールの徹底活用術~INF-028_そのエラーやお困りごと、ツールを使えば解決できるかも! ~Sysinternals や OS 標準ツールの徹底活用術~
INF-028_そのエラーやお困りごと、ツールを使えば解決できるかも! ~Sysinternals や OS 標準ツールの徹底活用術~decode2016
 
INF-027_セキュリティ マニアックス -サイバー攻撃の手口と防御手法- ~敵を知り、己を知れば百戦危うからず~
INF-027_セキュリティ マニアックス -サイバー攻撃の手口と防御手法- ~敵を知り、己を知れば百戦危うからず~INF-027_セキュリティ マニアックス -サイバー攻撃の手口と防御手法- ~敵を知り、己を知れば百戦危うからず~
INF-027_セキュリティ マニアックス -サイバー攻撃の手口と防御手法- ~敵を知り、己を知れば百戦危うからず~decode2016
 
INF-026_真のクラウドベース EMM ~マイクロソフトのモビリティ戦略はいかにユニークか~
INF-026_真のクラウドベース EMM ~マイクロソフトのモビリティ戦略はいかにユニークか~INF-026_真のクラウドベース EMM ~マイクロソフトのモビリティ戦略はいかにユニークか~
INF-026_真のクラウドベース EMM ~マイクロソフトのモビリティ戦略はいかにユニークか~decode2016
 
INF-025_企業で使える Windows 10 ~現実的なアプリ & デバイス管理~
INF-025_企業で使える Windows 10 ~現実的なアプリ & デバイス管理~INF-025_企業で使える Windows 10 ~現実的なアプリ & デバイス管理~
INF-025_企業で使える Windows 10 ~現実的なアプリ & デバイス管理~decode2016
 
INF-024_Windows 10 の展開 ~プロビジョニング? いやワイプ & ロードでしょ!~
INF-024_Windows 10 の展開 ~プロビジョニング? いやワイプ & ロードでしょ!~INF-024_Windows 10 の展開 ~プロビジョニング? いやワイプ & ロードでしょ!~
INF-024_Windows 10 の展開 ~プロビジョニング? いやワイプ & ロードでしょ!~decode2016
 
INF-023_マイクロソフトの特権管理ソリューションの全貌 ~永続的な管理者特権の廃止への道~
INF-023_マイクロソフトの特権管理ソリューションの全貌 ~永続的な管理者特権の廃止への道~INF-023_マイクロソフトの特権管理ソリューションの全貌 ~永続的な管理者特権の廃止への道~
INF-023_マイクロソフトの特権管理ソリューションの全貌 ~永続的な管理者特権の廃止への道~decode2016
 
INF-022_情報漏えいを責めるべからず。今必要な対策とは? ~Windows 10 セキュリティ機能徹底解説~
INF-022_情報漏えいを責めるべからず。今必要な対策とは? ~Windows 10 セキュリティ機能徹底解説~INF-022_情報漏えいを責めるべからず。今必要な対策とは? ~Windows 10 セキュリティ機能徹底解説~
INF-022_情報漏えいを責めるべからず。今必要な対策とは? ~Windows 10 セキュリティ機能徹底解説~decode2016
 
INF-021_実践! Windows as a Service との上手な付き合い方 ~新しい OS 更新管理の徹底解説~
INF-021_実践! Windows as a Service との上手な付き合い方 ~新しい OS 更新管理の徹底解説~INF-021_実践! Windows as a Service との上手な付き合い方 ~新しい OS 更新管理の徹底解説~
INF-021_実践! Windows as a Service との上手な付き合い方 ~新しい OS 更新管理の徹底解説~decode2016
 
INF-020_メーカーがおしえてくれない正しいクラウドについて
INF-020_メーカーがおしえてくれない正しいクラウドについてINF-020_メーカーがおしえてくれない正しいクラウドについて
INF-020_メーカーがおしえてくれない正しいクラウドについてdecode2016
 
INF-019_Nano Server だけでここまでできる! ~極小サーバーの使い方~
INF-019_Nano Server だけでここまでできる! ~極小サーバーの使い方~INF-019_Nano Server だけでここまでできる! ~極小サーバーの使い方~
INF-019_Nano Server だけでここまでできる! ~極小サーバーの使い方~decode2016
 

More from decode2016 (20)

SPL-005_オープンソースから見たマイクロソフト
SPL-005_オープンソースから見たマイクロソフトSPL-005_オープンソースから見たマイクロソフト
SPL-005_オープンソースから見たマイクロソフト
 
SPL-004_Windows 10 開発の舞台裏から学ぶエンジニアの未来
SPL-004_Windows 10 開発の舞台裏から学ぶエンジニアの未来SPL-004_Windows 10 開発の舞台裏から学ぶエンジニアの未来
SPL-004_Windows 10 開発の舞台裏から学ぶエンジニアの未来
 
SPL-003_黒船襲来! 世界DevOps トップ企業 x マイクロソフトによるトークバトル セッション
SPL-003_黒船襲来! 世界DevOps トップ企業 x マイクロソフトによるトークバトル セッションSPL-003_黒船襲来! 世界DevOps トップ企業 x マイクロソフトによるトークバトル セッション
SPL-003_黒船襲来! 世界DevOps トップ企業 x マイクロソフトによるトークバトル セッション
 
SPL-002_クラウド心配性な上司を説得するコツを伝授します ~本当に信頼できるクラウドの構築/運用とは? マイクロソフト クラウド成長の軌跡~
SPL-002_クラウド心配性な上司を説得するコツを伝授します ~本当に信頼できるクラウドの構築/運用とは? マイクロソフト クラウド成長の軌跡~SPL-002_クラウド心配性な上司を説得するコツを伝授します ~本当に信頼できるクラウドの構築/運用とは? マイクロソフト クラウド成長の軌跡~
SPL-002_クラウド心配性な上司を説得するコツを伝授します ~本当に信頼できるクラウドの構築/運用とは? マイクロソフト クラウド成長の軌跡~
 
PRD-009_クラウドの ERP による業務システム開発 ~OData エンド ポイントから Power BI 連携~
PRD-009_クラウドの ERP による業務システム開発 ~OData エンド ポイントから Power BI 連携~PRD-009_クラウドの ERP による業務システム開発 ~OData エンド ポイントから Power BI 連携~
PRD-009_クラウドの ERP による業務システム開発 ~OData エンド ポイントから Power BI 連携~
 
PRD-008_クラウド ネイティブ ERP ~Dynamics AX のアーキテクチャ/環境構築から開発/運用まで~
PRD-008_クラウド ネイティブ ERP ~Dynamics AX のアーキテクチャ/環境構築から開発/運用まで~PRD-008_クラウド ネイティブ ERP ~Dynamics AX のアーキテクチャ/環境構築から開発/運用まで~
PRD-008_クラウド ネイティブ ERP ~Dynamics AX のアーキテクチャ/環境構築から開発/運用まで~
 
PRD-006_機械学習で顧客対応はこう変わる! Azure ML と Dynamics で造る次世代 CRM
PRD-006_機械学習で顧客対応はこう変わる! Azure ML と Dynamics で造る次世代 CRMPRD-006_機械学習で顧客対応はこう変わる! Azure ML と Dynamics で造る次世代 CRM
PRD-006_機械学習で顧客対応はこう変わる! Azure ML と Dynamics で造る次世代 CRM
 
PRD-005_Skype Developer Platform によるアプリケーション開発の最新情報
PRD-005_Skype Developer Platform によるアプリケーション開発の最新情報PRD-005_Skype Developer Platform によるアプリケーション開発の最新情報
PRD-005_Skype Developer Platform によるアプリケーション開発の最新情報
 
PRD-004_ここまでできる! Azure AD と Office 365 連携開発の先進手法
PRD-004_ここまでできる! Azure AD と Office 365 連携開発の先進手法PRD-004_ここまでできる! Azure AD と Office 365 連携開発の先進手法
PRD-004_ここまでできる! Azure AD と Office 365 連携開発の先進手法
 
PRD-002_SharePoint Server 2016 & Online ハイブリッド環境での業務活用
PRD-002_SharePoint Server 2016 & Online ハイブリッド環境での業務活用PRD-002_SharePoint Server 2016 & Online ハイブリッド環境での業務活用
PRD-002_SharePoint Server 2016 & Online ハイブリッド環境での業務活用
 
INF-028_そのエラーやお困りごと、ツールを使えば解決できるかも! ~Sysinternals や OS 標準ツールの徹底活用術~
INF-028_そのエラーやお困りごと、ツールを使えば解決できるかも! ~Sysinternals や OS 標準ツールの徹底活用術~INF-028_そのエラーやお困りごと、ツールを使えば解決できるかも! ~Sysinternals や OS 標準ツールの徹底活用術~
INF-028_そのエラーやお困りごと、ツールを使えば解決できるかも! ~Sysinternals や OS 標準ツールの徹底活用術~
 
INF-027_セキュリティ マニアックス -サイバー攻撃の手口と防御手法- ~敵を知り、己を知れば百戦危うからず~
INF-027_セキュリティ マニアックス -サイバー攻撃の手口と防御手法- ~敵を知り、己を知れば百戦危うからず~INF-027_セキュリティ マニアックス -サイバー攻撃の手口と防御手法- ~敵を知り、己を知れば百戦危うからず~
INF-027_セキュリティ マニアックス -サイバー攻撃の手口と防御手法- ~敵を知り、己を知れば百戦危うからず~
 
INF-026_真のクラウドベース EMM ~マイクロソフトのモビリティ戦略はいかにユニークか~
INF-026_真のクラウドベース EMM ~マイクロソフトのモビリティ戦略はいかにユニークか~INF-026_真のクラウドベース EMM ~マイクロソフトのモビリティ戦略はいかにユニークか~
INF-026_真のクラウドベース EMM ~マイクロソフトのモビリティ戦略はいかにユニークか~
 
INF-025_企業で使える Windows 10 ~現実的なアプリ & デバイス管理~
INF-025_企業で使える Windows 10 ~現実的なアプリ & デバイス管理~INF-025_企業で使える Windows 10 ~現実的なアプリ & デバイス管理~
INF-025_企業で使える Windows 10 ~現実的なアプリ & デバイス管理~
 
INF-024_Windows 10 の展開 ~プロビジョニング? いやワイプ & ロードでしょ!~
INF-024_Windows 10 の展開 ~プロビジョニング? いやワイプ & ロードでしょ!~INF-024_Windows 10 の展開 ~プロビジョニング? いやワイプ & ロードでしょ!~
INF-024_Windows 10 の展開 ~プロビジョニング? いやワイプ & ロードでしょ!~
 
INF-023_マイクロソフトの特権管理ソリューションの全貌 ~永続的な管理者特権の廃止への道~
INF-023_マイクロソフトの特権管理ソリューションの全貌 ~永続的な管理者特権の廃止への道~INF-023_マイクロソフトの特権管理ソリューションの全貌 ~永続的な管理者特権の廃止への道~
INF-023_マイクロソフトの特権管理ソリューションの全貌 ~永続的な管理者特権の廃止への道~
 
INF-022_情報漏えいを責めるべからず。今必要な対策とは? ~Windows 10 セキュリティ機能徹底解説~
INF-022_情報漏えいを責めるべからず。今必要な対策とは? ~Windows 10 セキュリティ機能徹底解説~INF-022_情報漏えいを責めるべからず。今必要な対策とは? ~Windows 10 セキュリティ機能徹底解説~
INF-022_情報漏えいを責めるべからず。今必要な対策とは? ~Windows 10 セキュリティ機能徹底解説~
 
INF-021_実践! Windows as a Service との上手な付き合い方 ~新しい OS 更新管理の徹底解説~
INF-021_実践! Windows as a Service との上手な付き合い方 ~新しい OS 更新管理の徹底解説~INF-021_実践! Windows as a Service との上手な付き合い方 ~新しい OS 更新管理の徹底解説~
INF-021_実践! Windows as a Service との上手な付き合い方 ~新しい OS 更新管理の徹底解説~
 
INF-020_メーカーがおしえてくれない正しいクラウドについて
INF-020_メーカーがおしえてくれない正しいクラウドについてINF-020_メーカーがおしえてくれない正しいクラウドについて
INF-020_メーカーがおしえてくれない正しいクラウドについて
 
INF-019_Nano Server だけでここまでできる! ~極小サーバーの使い方~
INF-019_Nano Server だけでここまでできる! ~極小サーバーの使い方~INF-019_Nano Server だけでここまでできる! ~極小サーバーの使い方~
INF-019_Nano Server だけでここまでできる! ~極小サーバーの使い方~
 

Recently uploaded

論文紹介: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...Toru Tamaki
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルCRI Japan, Inc.
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイスCRI Japan, Inc.
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptxsn679259
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
論文紹介: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 UnderstandingToru Tamaki
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsWSO2
 
論文紹介: 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 Gamesatsushi061452
 

Recently uploaded (10)

論文紹介: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...
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
論文紹介: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
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
論文紹介: 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
 

DOO-003_Jenkins 作者が語る、Docker コンテナによる継続的デリバリのオススメと新機能のご紹介

  • 1. ©2016 CloudBees, Inc. All Rights Reserved 1©2016 CloudBees, Inc. All Rights Reserved Jenkins + Docker + Azureで作る 継続的デリバリ 川口耕介 / CTO / CloudBees, Inc. kk@kohsuke.org / @kohsukekawa
  • 2. ©2016 CloudBees, Inc. All Rights Reserved 2
  • 3. ©2016 CloudBees, Inc. All Rights Reserved 3
  • 4. ©2016 CloudBees, Inc. All Rights Reserved 4 ビルド・エージェント総数
  • 5. ©2016 CloudBees, Inc. All Rights Reserved 5 Source: State of Jenkins Survey Sept. 2015 Jenkinsの利用の拡大
  • 6. ©2016 CloudBees, Inc. All Rights Reserved 6 2013年度サーベイ 2015年度サーベイ Jenkinsはミッションクリティカル?
  • 7. ©2016 CloudBees, Inc. All Rights Reserved 7 増え続ける Jenkins の利用 ビルドの自動化 デプロイスクリプトの共有 テストの自動化 継続的デリバリ
  • 8. ©2016 CloudBees, Inc. All Rights Reserved 8 優れたソフトウェアを 素早く届けたい なぜ継続的デリバリ(CD)?
  • 9. ©2016 CloudBees, Inc. All Rights Reserved 9 • 短いサイクルでソフトウェアを少しづつ改善 • コンセプトからビルド・テスト・デプロイまでをより 素早く頻繁に • 素直で単純な反復可能なプロセスが欠かせな い 継続的デリバリとは
  • 10. ©2016 CloudBees, Inc. All Rights Reserved 10 • “Netflix deploys a hundred times per day” • “Amazon deploys every 11.6 seconds” 目標はソフトウェア開発の虎
  • 11. ©2016 CloudBees, Inc. All Rights Reserved 11 • Google Docによるデプロイ手順の作成 • 深夜のデプロイ作業 • 二週間に一度のデプロイ 現実
  • 12. ©2016 CloudBees, Inc. All Rights Reserved 12男坂より © Kurumada Production
  • 13. ©2016 CloudBees, Inc. All Rights Reserved 13 継続的デリバリへの道のり • 自動化 – 高い再現性 – 時間を短く、頻繁に • エラーに耐えるアーキテクチャ • エラーを検出するパイプライン • エラーを許容するインフラ
  • 14. ©2016 CloudBees, Inc. All Rights Reserved 14 アーキテクチャ・実装技法 • フィーチャーフラグ • ダークラウンチ • マイクロサービス
  • 15. ©2016 CloudBees, Inc. All Rights Reserved 15 エラーを検出するパイプライン dev qa production
  • 16. ©2016 CloudBees, Inc. All Rights Reserved 16 • コードレビューの自動検査 • 信頼できるテスト • ブランチの活用 • 複数の検問 エラーを検出するパイプライン
  • 17. ©2016 CloudBees, Inc. All Rights Reserved 17 インフラ • エラーを許容 – 青緑デプロイ – カナリアリリース • エラーを防ぐ – 不死鳥サーバ – Immutableインフラ
  • 18. ©2016 CloudBees, Inc. All Rights Reserved 18 Crawl, Walk, Run
  • 19. ©2016 CloudBees, Inc. All Rights Reserved 19 その為の道具
  • 20. ©2016 CloudBees, Inc. All Rights Reserved 20
  • 21. ©2016 CloudBees, Inc. All Rights Reserved 21 2013 2015 ビルド 95% 97% テスト 86% 90% デプロイ 48% 58% 運用 15% 24% Jenkinsの用途は?
  • 22. ©2016 CloudBees, Inc. All Rights Reserved 22
  • 23. ©2016 CloudBees, Inc. All Rights Reserved 23 jenkins.io/2.0
  • 24. ©2016 CloudBees, Inc. All Rights Reserved 24 その為の道具
  • 25. ©2016 CloudBees, Inc. All Rights Reserved 25 docker pull jenkins Jenkinsをコンテナ化
  • 26. ©2016 CloudBees, Inc. All Rights Reserved 26 docker run -p 8080:8080 ¥ –v /var/lib/jenkins:/var/jenkins_home ¥ jenkins Jenkinsをコンテナ化
  • 27. ©2016 CloudBees, Inc. All Rights Reserved 27 • アップデートが簡単 • 将来の引っ越しが簡単 コンテナ化の利点
  • 28. ©2016 CloudBees, Inc. All Rights Reserved 28 • Azure Slaveプラグインを使う • 利点 – 負荷に応じて自動伸縮 – いつも新築のビルド環境 – WindowsでもLinuxでも Azure上のビルド環境
  • 29. ©2016 CloudBees, Inc. All Rights Reserved 29 Azure Slaveプラグインの設定
  • 30. ©2016 CloudBees, Inc. All Rights Reserved 30 Azure Slaveプラグインの設定
  • 31. ©2016 CloudBees, Inc. All Rights Reserved 31 Azure Slaveプラグインの勘所 • 30-60分のRetention timeを設定する • ラベルを活用する – 悪い例: Standard_D1, Linux – 良い例: ProjectFoo, NodeJs • 長すぎる初期化スクリプトを避ける
  • 32. ©2016 CloudBees, Inc. All Rights Reserved 32 ジョブの設定
  • 33. ©2016 CloudBees, Inc. All Rights Reserved 33 Docker プラグイン Azure上のビルド環境 その2
  • 34. ©2016 CloudBees, Inc. All Rights Reserved 34 Docker プラグイン Azure Container Service (with Docker swarm) Build Agent
  • 35. ©2016 CloudBees, Inc. All Rights Reserved 35 Azure Slave プラグインと比べて • 利点 – ビルド環境の作成・管理・利用が簡単 – いつも完全に新築のビルド環境 • 欠点 – ワークスペースの再利用なし – オートスケールなし – Docker in Docker
  • 36. ©2016 CloudBees, Inc. All Rights Reserved 36 器はできた
  • 37. ©2016 CloudBees, Inc. All Rights Reserved 37 Jenkins 2.0: Pipeline as Code • 新しい「パイプライン」型の導入 • 作業手順をコードとしてJenkinsfileに記述 • Jenkinsfileをソースリポジトリに保存 • パイプライン実行中にJenkinsを再起動できる • Jenkinsfileを拡張してよりDRYに
  • 38. ©2016 CloudBees, Inc. All Rights Reserved 38 Dockerコンテナをビルドする例 def imageName = 'jenkinsciinfra/bind' node('docker') { checkout scm // Compute a unique image tag def imageTag = "build-${env.BUILD_NUMBER}" // The `docker` variable introduced by the plugin stage 'Build' def whale = docker.build("${imageName}:${imageTag}") // Publish this image to Docker Hub stage 'Deploy' whale.push() }
  • 39. ©2016 CloudBees, Inc. All Rights Reserved 39 Jenkins 2.0: Organization Folder
  • 40. ©2016 CloudBees, Inc. All Rights Reserved 40 Organization Folderの利点 • Jenkinsの設定は一度だけ • Jenkinsfileをコミットするだけ • ブランチ別のビルド履歴 • プルリクエストの自動ビルドと結果の通知
  • 41. ©2016 CloudBees, Inc. All Rights Reserved 41 ツールコンテナの活用 node('docker') { // run gradle with Java8 stage 'build' docker.image('java:8-jdk').inside { checkout scm sh './gradlew --info' stash name:'war', includes:'build/*.war' } // then test with phantomjs stage 'test' docker.image('acme:phantomjs').inside { git url:'.https://github.com/acme/test.git' unstash 'war' sh './test.py' } }
  • 42. ©2016 CloudBees, Inc. All Rights Reserved 42 ツールコンテナの活用 • Docker Pipelineプラグイン • 実行環境を精密にコントロール – Jenkins管理者の負担を軽減
  • 43. ©2016 CloudBees, Inc. All Rights Reserved 43 Jenkins + Docker + Azureのフロンティア • Docker in Docker – コンテナ内でコンテナをビルド • Docker slaveプラグイン
  • 44. ©2016 CloudBees, Inc. All Rights Reserved 44 チームから全社へ
  • 45. ©2016 CloudBees, Inc. All Rights Reserved 45 一家に一台Jenkins
  • 46. ©2016 CloudBees, Inc. All Rights Reserved 46 https://www.flickr.com/photos/grapesteinbeck/ 中央集権化
  • 47. ©2016 CloudBees, Inc. All Rights Reserved 47 中央集権化の利点 • Jenkinsの運用の効率化 • ベストプラクティスの開発と普及 • 計算機資源のプール
  • 48. ©2016 CloudBees, Inc. All Rights Reserved 48 CloudBees Jenkins Platform Private SaaS Edition (PSE)
  • 49. ©2016 CloudBees, Inc. All Rights Reserved 49 PSEでJenkinsの大規模運用 • 自動的なフェイルオーバー • マルチテナント • 個々のマスターの配置について悩まない
  • 50. ©2016 CloudBees, Inc. All Rights Reserved 50 まとめ • 継続的デリバリで幸せになりたい • Jenkins 2.0を作った • AzureでスケーラブルなJenkins環境 • まだ進化は続く
  • 51. ©2016 CloudBees, Inc. All Rights Reserved 51