Submit Search
コンテナ事例 CircleCI, Cucumber-Chef
•
10 likes
•
6,202 views
Yukihiko SAWANOBORI
Follow
第3回 コンテナ型仮想化の情報交換会@大阪 の発表資料です
Read less
Read more
1 of 37
Download now
Downloaded 17 times
More Related Content
コンテナ事例 CircleCI, Cucumber-Chef
1.
コンテナ事例 CircleCI, Cucumber-Chef 第3回 コンテナ型仮想化の情報交換会@大阪 @sawanoboly
2.
運営組織 2 • 業務執行社員をつとめる合同会社 • アプリケーションのためのプラットフォーム構築/運 用自動化をテーマにした活動を担当 •
http://opsrock.in 共同開発・運営 • Chefをはじめ、Infrastracture as Code 関連を主に取り扱うソリューションを提供 • 導入支援・トレーニングも
3.
以前話したlxcの話 『lxc on cloud』 •
自宅DCライクなクラウド上のインスタンス 3
4.
宣伝:Chefの本を書きました • 4/28発売 (ISBN:978-4-04-891985-2) •
「Chef活用ガイド ∼ コードではじめる構成管 理」 • Infrastructure as Codeを実践しよう! • 公式Docsの流れを踏襲し、 さらに詳しく記述 • 日本公式代理店の クリエーションラインさんと 共著 4
5.
本日の内容 • コンテナ事例:CircleCI • CircleCI+ngrok •
ITERATIVE DELIVERY(反復型デリバリ) • コンテナ事例:Cucumber-Chef • CircleCI + Cucumber-Chef 5
6.
アンケートのお願い • http://higanworks.com/ のトップにセッシ ョンのアンケートを設置していますので、ご 協力お願い致します!!(4/14日まで) 6
7.
コンテナ事例 CircleCI ※中の人とかではありません
9.
CircleCIって? • CI =
継続的インテグレーションのサービス • Jenkins / Travis CI / drone.io / etc.. • We use LXC!! • (herokuやDockerのアレだよ) 9
10.
CircleCIの基本(一応) • Githubと連携、pushでトリガー • Ubuntuコンテナが起動して、コード取得 •
タスクをこなす、主にテスト • レポート/カバレッジなどを保存する • 成果物を保存する • 有料($19/monthから) • Private Repo対応 • 複数コンテナの同時多重起動が可能 10
11.
多分こんな構成 11 EC2インスタンス (LXCホスト) ビルド用コンテナ (ubuntu) S3(ビルドのキャッシュ) EC2インスタンス (LXCホスト) ビルド用コンテナ (ubuntu) ビルド用コンテナ (ubuntu) ビルド用コンテナ (ubuntu)
12.
ビルド一覧 12
13.
コンテナだからどうなの? • ビルド環境の起動・終了が高速 • リスタートは数秒 •
親ホスト(Ubuntu)ベースの環境 • LXC BRIDGE(多分)でコンテナにSSHログ インを提供 • ビルドのデバッグがしやすい • ライブラリなどのキャッシュディレクトリ をいじれる 13
14.
ビルド用コンテナにSSHでログイン 14
15.
CircleCIの制限 1/2 • コンテナは最大1時間で停止 •
そのまま運用はさすがにダメ • SSHつきだと30分 • 親ホスト(Ubuntu)ベースの環境なので、 Ubuntuオンリー 15
16.
CircleCIの制限 2/2 • sudoなし、パッケージ追加とかはNG •
自前でローカルにビルドor 外部に用意 • ただ、言語やバージョンマネージャは豊富 • rvm, nvm, phpenv, pyenv, jre複数、 golang, scala(play), clojure(lein)等々.. • バックエンドもいろいろ起動済み • mysql, postgres, memcache, redis, rabbitmqなど 16
17.
Ubuntu縛りに関して • 将来的にはDocker!! 17
18.
利点と制限から考える • とにかく準備が速い • CPU(ホスト32コア)もあまり無駄なく利用 •
時間のかかるビルドやテストも速い ※ まあまあ制限はかかってる模様 Binutils(SBU)の素ビルド(j8)は1m前後く らい • 時間の制限 => 時間内は何やってもOKなのでは。。? • むしろ勝手に無くなるコンテナとして利用 18
19.
ITERATIVE DELIVERY (反復型デリバリ) IMPACT MAPPINGより
20.
ITERATIVE DELIVERYとは • デプロイ
+ ビジネス デリバリ(意訳) • アジャイルを、企画やらふくめて組織全体に 適用しよう(これも意訳) • 開発だけアジャイルでも、ゴールは遠いまま という事態が発生 => ウォーター・スクラム・フォール 20
21.
インクリメンタルと イテレーティブ 21 http://www.agileproductdesign.com/blog/dont_know_what_i_want.html ※Jeff Patton氏のブログ記事より Iterating incrementing
22.
Deploy feature branch
to Heroku with CircleCI [Rebuild.fm] • ブランチごとにherokuデプロイしたりしま すという話 22
23.
コンテナの活用として (とりあえず小さく) 実践してみよう
24.
そこでngrok (えぬぐろっく?) 24
25.
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も
26.
CircleCI+ngrockで • とりあえずGithubのブランチ全部? • 折角だから1コミット1(and
more)デリバリ にしてしまおう 26
27.
delivery per commit!! 27
28.
コミットごとに一時的にデリバリ • デプロイ対象サーバが固定だと、順番待ちに なる • ブランチだとだいたいHEADになる •
ロールバック(以前のコミットをデプロイし 直し)もまあ可能ですが。。 • ちょっとした デザイン変更をShare • デザイナさんなどによる『ちょっとデプロ イお願い』を省略して、非同期な開発 (Rebuild.fmより拝借)、並列的な作業 28
29.
サンプルコードはこちら 29 https://github.com/OpsRockin/jekyll_and_ngrok
30.
コンテナ事例 Cucumber-Chef
31.
Cucumber-Chef • テスト駆動型インフラ開発 31
32.
TestLab 32 Cucumber-Chef VM(Vagrant or EC2) Chef
Server (on host os) LXC Bridge Container Container Chef-Client Chef-Client ここ繰り返し 最後に Cucumber
33.
設定サンプル • 1台のEC2インスタンスに複数コンテナで 、まあまあ高速&節約のインフラテスト 33
34.
CircleCI+Cucumber-Chef • CircleCIコンテナ=>EC2コンテナのコンテ ナ連鎖 • インフラ構築テストや、アプリ用任意バック エンドを用意したり↓ 34 時系列 CircleCIにコンテナ Cucumber-Chefで EC2に Hadoopクラスタ CircleCIで 要Hadoopのアプリを テスト GithubにPush EC2の Hadoopクラスタ を破棄 CircleCIの コンテナは自動破棄 用事があればこの時点にSSHアタッチ
35.
コンテナお仕事情報 • 商用サービスで、エンドユーザ向けのデリバ リプロセスの一部をコンテナでやろうと企画 中のプロジェクトがあります。 • おもしろそうだと思う方、やれそうな方、私 までご連絡で。 35
36.
おわり
37.
アンケートのお願い(再) • http://higanworks.com/ のトップにセッシ ョンのアンケートを設置していますので、ご 協力お願い致します!!(4/14日まで) 37
Download