コンテナ事例
CircleCI, Cucumber-Chef
第3回 コンテナ型仮想化の情報交換会@大阪
@sawanoboly
運営組織
2
• 業務執行社員をつとめる合同会社
• アプリケーションのためのプラットフォーム構築/運
用自動化をテーマにした活動を担当
• http://opsrock.in 共同開発・運営
• Chefをはじめ、Infrastracture as Code
関連を主に取り扱うソリューションを提供
• 導入支援・トレーニングも
以前話したlxcの話
『lxc on cloud』
• 自宅DCライクなクラウド上のインスタンス
3
宣伝:Chefの本を書きました
• 4/28発売 (ISBN:978-4-04-891985-2)
• 「Chef活用ガイド ∼ コードではじめる構成管
理」
• Infrastructure as Codeを実践しよう!
• 公式Docsの流れを踏襲し、

さらに詳しく記述
• 日本公式代理店の

クリエーションラインさんと

共著
4
本日の内容
• コンテナ事例:CircleCI
• CircleCI+ngrok
• ITERATIVE DELIVERY(反復型デリバリ)
• コンテナ事例:Cucumber-Chef
• CircleCI + Cucumber-Chef
5
アンケートのお願い
• http://higanworks.com/ のトップにセッシ
ョンのアンケートを設置していますので、ご
協力お願い致します!!(4/14日まで)
6
コンテナ事例
CircleCI
※中の人とかではありません
コンテナ事例 CircleCI, Cucumber-Chef
CircleCIって?
• CI = 継続的インテグレーションのサービス
• Jenkins / Travis CI / drone.io / etc..
• We use LXC!!
• (herokuやDockerのアレだよ)
9
CircleCIの基本(一応)
• Githubと連携、pushでトリガー
• Ubuntuコンテナが起動して、コード取得
• タスクをこなす、主にテスト
• レポート/カバレッジなどを保存する
• 成果物を保存する
• 有料($19/monthから)
• Private Repo対応
• 複数コンテナの同時多重起動が可能
10
多分こんな構成
11
EC2インスタンス
(LXCホスト)
ビルド用コンテナ
(ubuntu)
S3(ビルドのキャッシュ)
EC2インスタンス
(LXCホスト)
ビルド用コンテナ
(ubuntu)
ビルド用コンテナ
(ubuntu)
ビルド用コンテナ
(ubuntu)
ビルド一覧
12
コンテナだからどうなの?
• ビルド環境の起動・終了が高速
• リスタートは数秒
• 親ホスト(Ubuntu)ベースの環境
• LXC BRIDGE(多分)でコンテナにSSHログ
インを提供
• ビルドのデバッグがしやすい
• ライブラリなどのキャッシュディレクトリ
をいじれる
13
ビルド用コンテナにSSHでログイン
14
CircleCIの制限 1/2
• コンテナは最大1時間で停止
• そのまま運用はさすがにダメ
• SSHつきだと30分
• 親ホスト(Ubuntu)ベースの環境なので、
Ubuntuオンリー
15
CircleCIの制限 2/2
• sudoなし、パッケージ追加とかはNG
• 自前でローカルにビルドor 外部に用意
• ただ、言語やバージョンマネージャは豊富
• rvm, nvm, phpenv, pyenv, jre複数、

golang, scala(play), clojure(lein)等々..
• バックエンドもいろいろ起動済み
• mysql, postgres, memcache, redis,

rabbitmqなど
16
Ubuntu縛りに関して
• 将来的にはDocker!!
17
利点と制限から考える
• とにかく準備が速い
• CPU(ホスト32コア)もあまり無駄なく利用
• 時間のかかるビルドやテストも速い

※ まあまあ制限はかかってる模様

Binutils(SBU)の素ビルド(j8)は1m前後く
らい
• 時間の制限

=> 時間内は何やってもOKなのでは。。?
• むしろ勝手に無くなるコンテナとして利用
18
ITERATIVE DELIVERY
(反復型デリバリ)
IMPACT MAPPINGより
ITERATIVE DELIVERYとは
• デプロイ + ビジネス デリバリ(意訳)
• アジャイルを、企画やらふくめて組織全体に
適用しよう(これも意訳)
• 開発だけアジャイルでも、ゴールは遠いまま
という事態が発生

=> ウォーター・スクラム・フォール
20
インクリメンタルと

イテレーティブ
21
http://www.agileproductdesign.com/blog/dont_know_what_i_want.html
※Jeff Patton氏のブログ記事より
Iterating
incrementing
Deploy feature branch to Heroku
with CircleCI [Rebuild.fm]
• ブランチごとにherokuデプロイしたりしま
すという話
22
コンテナの活用として
(とりあえず小さく)
実践してみよう
そこでngrok
(えぬぐろっく?)
24
ngrokのできること
25
WorkStation
app
localhost:4000
ngrokd server
(hosted or private)
*.sub.example.com (Aレコード)
ngrok(cli)
① local:4000へのProxyを
リクエスト
ex) サブドメイン = hoge
② hoge.sub.example.com
へのリクエストを
フォワードする
Public
Network
③appに対して

hoge.sub.example.com で到達可能に
HTTP/HTTPS

ほか普通のTCPも
CircleCI+ngrockで
• とりあえずGithubのブランチ全部?
• 折角だから1コミット1(and more)デリバリ
にしてしまおう
26
delivery per commit!!
27
コミットごとに一時的にデリバリ
• デプロイ対象サーバが固定だと、順番待ちに
なる
• ブランチだとだいたいHEADになる
• ロールバック(以前のコミットをデプロイし
直し)もまあ可能ですが。。
• ちょっとした デザイン変更をShare
• デザイナさんなどによる『ちょっとデプロ
イお願い』を省略して、非同期な開発
(Rebuild.fmより拝借)、並列的な作業
28
サンプルコードはこちら
29
https://github.com/OpsRockin/jekyll_and_ngrok
コンテナ事例
Cucumber-Chef
Cucumber-Chef
• テスト駆動型インフラ開発
31
TestLab
32
Cucumber-Chef
VM(Vagrant or EC2)
Chef Server
(on host os)
LXC Bridge
Container Container
Chef-Client
Chef-Client
ここ繰り返し
最後に
Cucumber
設定サンプル
• 1台のEC2インスタンスに複数コンテナで

、まあまあ高速&節約のインフラテスト
33
CircleCI+Cucumber-Chef
• CircleCIコンテナ=>EC2コンテナのコンテ
ナ連鎖
• インフラ構築テストや、アプリ用任意バック
エンドを用意したり↓
34
時系列
CircleCIにコンテナ
Cucumber-Chefで
EC2に

Hadoopクラスタ
CircleCIで
要Hadoopのアプリを
テスト
GithubにPush
EC2の

Hadoopクラスタ
を破棄
CircleCIの
コンテナは自動破棄
用事があればこの時点にSSHアタッチ
コンテナお仕事情報
• 商用サービスで、エンドユーザ向けのデリバ
リプロセスの一部をコンテナでやろうと企画
中のプロジェクトがあります。
• おもしろそうだと思う方、やれそうな方、私
までご連絡で。
35
おわり
アンケートのお願い(再)
• http://higanworks.com/ のトップにセッシ
ョンのアンケートを設置していますので、ご
協力お願い致します!!(4/14日まで)
37

More Related Content

PDF
VagrantユーザのためのDocker入門
PDF
はじめての CircleCI
PDF
【dots. IT勉強会】開発環境のDocker化
PDF
Kubernetesを触ってみた
PDF
Circle ci and docker+serverspec
PDF
ビルドサーバで使うDocker
PDF
コンテナ時代だからこそ要注目! Cloud Foundry
PDF
ProjectAtomic-and-geard
VagrantユーザのためのDocker入門
はじめての CircleCI
【dots. IT勉強会】開発環境のDocker化
Kubernetesを触ってみた
Circle ci and docker+serverspec
ビルドサーバで使うDocker
コンテナ時代だからこそ要注目! Cloud Foundry
ProjectAtomic-and-geard

What's hot (20)

PDF
BOSHで始めるImmutable Infrastructure
PPTX
Ansibleを使ってdockerコンテナをプロビジョニングする
PDF
dockerでImmutable InfrastructureなWordPressを考える
PDF
ECS-CLI in Action
PPTX
Docker & Kubernetes基礎
PDF
Cloud Foundry Admin UI v2を使ってみた
PPTX
開発環境をVagrantからdockerに移行してみた
PDF
Dockerで開発環境をデリバる
PDF
Vagrant & Dockerによるイマドキの開発環境構築
PDF
DevStackで始めるCloud FoundryとBOSH
PDF
はてなにおける継続的デプロイメントの現状と Docker の導入
PDF
机上の Kubernetes - 形式手法で見るコンテナオーケストレーション #NGK2016B
PDF
Docker, Kubernetes and OpenShift v3
PDF
BOSH-lite で 1VM Cloud Foundry
PPTX
これからのOpenShiftの話をしよう
PDF
KubernetesとOpenShiftの話
PDF
Drone.io のご紹介
PDF
Docker向け軽量os 3製品比較
PPTX
Ansible+Docker
BOSHで始めるImmutable Infrastructure
Ansibleを使ってdockerコンテナをプロビジョニングする
dockerでImmutable InfrastructureなWordPressを考える
ECS-CLI in Action
Docker & Kubernetes基礎
Cloud Foundry Admin UI v2を使ってみた
開発環境をVagrantからdockerに移行してみた
Dockerで開発環境をデリバる
Vagrant & Dockerによるイマドキの開発環境構築
DevStackで始めるCloud FoundryとBOSH
はてなにおける継続的デプロイメントの現状と Docker の導入
机上の Kubernetes - 形式手法で見るコンテナオーケストレーション #NGK2016B
Docker, Kubernetes and OpenShift v3
BOSH-lite で 1VM Cloud Foundry
これからのOpenShiftの話をしよう
KubernetesとOpenShiftの話
Drone.io のご紹介
Docker向け軽量os 3製品比較
Ansible+Docker
Ad

Viewers also liked (20)

PDF
JAWSUG初心者向けトラック 【Deploy&Ops】
PDF
Chef_Casual_Talks_Kansai_Vol1_Infrastructure_as_Code
PDF
さくらのクラウドフォーメーション with Chef [XEgg session]
PDF
Chef Casual Talks 出張版京セラドーム公演 (JAWS FESTA Kansai 2013内イベント)
PDF
Aws OpsWorks [JAWSDAYS 2014 ACEに聞けトラック]
PDF
Building document with the Sphinx public edtion
PPTX
mocloud カスタムDockerイメージ ハンズオン
PDF
Docker + Checkpoint/Restore
PDF
aws_opsworks
PDF
Infrastructure as Codeと 組織のドキュメンテーション + Immutable Infrastructure事例
PDF
Chef meetup vol2_higanwoks
PDF
MarketPlaceのAMIをPackerで作る時、 Chefは3度配膳する
PDF
2014年のChefとInfrastructure as code
PDF
さくらのインフラコード
PDF
仮想マシンざっくり解説と実践Vagrant | StaticPress × S3 × Vagrant 勉強会
PDF
はかどるChefの小ネタ集
PDF
OpenShift 3で、DockerのPaaSを作る話
PDF
[LT] インフラの人がChefやServerspec(ほか)が Rubyだったおかげですこし プログラムをするようになった話
PDF
マニアックツール紹介、マネジメントのKnife-Zero(Chef)とテストスイートInSpec
JAWSUG初心者向けトラック 【Deploy&Ops】
Chef_Casual_Talks_Kansai_Vol1_Infrastructure_as_Code
さくらのクラウドフォーメーション with Chef [XEgg session]
Chef Casual Talks 出張版京セラドーム公演 (JAWS FESTA Kansai 2013内イベント)
Aws OpsWorks [JAWSDAYS 2014 ACEに聞けトラック]
Building document with the Sphinx public edtion
mocloud カスタムDockerイメージ ハンズオン
Docker + Checkpoint/Restore
aws_opsworks
Infrastructure as Codeと 組織のドキュメンテーション + Immutable Infrastructure事例
Chef meetup vol2_higanwoks
MarketPlaceのAMIをPackerで作る時、 Chefは3度配膳する
2014年のChefとInfrastructure as code
さくらのインフラコード
仮想マシンざっくり解説と実践Vagrant | StaticPress × S3 × Vagrant 勉強会
はかどるChefの小ネタ集
OpenShift 3で、DockerのPaaSを作る話
[LT] インフラの人がChefやServerspec(ほか)が Rubyだったおかげですこし プログラムをするようになった話
マニアックツール紹介、マネジメントのKnife-Zero(Chef)とテストスイートInSpec
Ad

Similar to コンテナ事例 CircleCI, Cucumber-Chef (16)

PDF
Dockerの事例紹介
PDF
Chef, Consul を使ったクラウドオーケストレーション
PPTX
Introduction of Rancher at OSC Tokyo 17 Spring
PDF
DevOpsを実現する為のChef実践テクニック Chef12対応版
PDF
コンテナーによるIT基盤変革 - IT infrastructure transformation -
KEY
Lxc on cloud
PDF
あなたの安心を高速に守る Container-based CI
PDF
おにいぽんでもわかるContainer
PDF
DevOpsを実現するChef活用テクニック
PDF
Using LXC on Production
PPTX
【Cloud Week 2015@Hokkaido University】Dockerとインフラ運用自働化とIoT
PDF
ファーエンドテクノロジーのサービスを支えるOSS
PDF
忙しい人の5分で分かるDocker 2017年春Ver
PDF
コンテナ時代にインフラエンジニアは何をするのか
PDF
Dockerを使ったローカルでの開発から本番環境へのデプロイまで
PDF
Introduce that Best practices for writing Dockerfiles
Dockerの事例紹介
Chef, Consul を使ったクラウドオーケストレーション
Introduction of Rancher at OSC Tokyo 17 Spring
DevOpsを実現する為のChef実践テクニック Chef12対応版
コンテナーによるIT基盤変革 - IT infrastructure transformation -
Lxc on cloud
あなたの安心を高速に守る Container-based CI
おにいぽんでもわかるContainer
DevOpsを実現するChef活用テクニック
Using LXC on Production
【Cloud Week 2015@Hokkaido University】Dockerとインフラ運用自働化とIoT
ファーエンドテクノロジーのサービスを支えるOSS
忙しい人の5分で分かるDocker 2017年春Ver
コンテナ時代にインフラエンジニアは何をするのか
Dockerを使ったローカルでの開発から本番環境へのデプロイまで
Introduce that Best practices for writing Dockerfiles

More from Yukihiko SAWANOBORI (12)

PDF
DevOpsのアプローチと クラウド/バーチャル環境/構成管理ツール のお話
PDF
Chef(Server)と AWS OpsWorks(tm)の比較
PDF
What is chef
PPTX
CentOSでつくる神Plesk
PPTX
密着! nibohsiデプロイ 13:00-13:05 - railsアプリのデプロイ事例 -
KEY
The Chef integrations Z Cloud(Joyent)
PPT
Physical to Iaas(Instance), case of VIP.
PPT
Redmine backlogs beginning
PPTX
Aws glacier
PPTX
0808 jawsug-kobe | スポットインスタンスを使った EC2でのスケーラブル負荷検証
PPTX
Sensu impression
PPTX
cURL base_simple_publishing - part of Giraffi
DevOpsのアプローチと クラウド/バーチャル環境/構成管理ツール のお話
Chef(Server)と AWS OpsWorks(tm)の比較
What is chef
CentOSでつくる神Plesk
密着! nibohsiデプロイ 13:00-13:05 - railsアプリのデプロイ事例 -
The Chef integrations Z Cloud(Joyent)
Physical to Iaas(Instance), case of VIP.
Redmine backlogs beginning
Aws glacier
0808 jawsug-kobe | スポットインスタンスを使った EC2でのスケーラブル負荷検証
Sensu impression
cURL base_simple_publishing - part of Giraffi

コンテナ事例 CircleCI, Cucumber-Chef