SlideShare ist ein Scribd-Unternehmen logo
1 von 30
DEV@cloudの実装
Jenkins-as-a-Serviceはどうやって動いているか

川口耕介




             ©2010 CloudBees, Inc. All Rights
                       Reserved
DEV@Cloudとは
• Jenkinsのホスティング
 – 1000+ のマスタ
 – のべ 1,500,000分以上のビルド


• ソースコード・バイナリリポジトリなど
 – Git, SVN, Maven


• 現在はEC2上で動作

              ©2010 CloudBees, Inc. All Rights   2
                        Reserved
Jenkins マスター
• マスターは別々のJVMで
 – 別のOSユーザーで

• なぜ?
 – 隔離
 – モニタリング・診断などが簡単

• 一台の計算機に多数のマスタを集積
 – 使われていないインスタンスは乾燥保存

          ©2010 CloudBees, Inc. All Rights   3
                    Reserved
Jenkins マスターのコード
• Core = OSS Jenkins
  – LTS
  – 独自パッチはほぼ解消した
• 独自プラグイン群
  – ユーザーに使われると困るもの
    • Groovy Console
    • マスター上でビルドが起こらないように
  – ユーザーが設定する必要のないもの
    • メールサーバの設定
    • ルートURLの設定

              ©2010 CloudBees, Inc. All Rights   4
                        Reserved
Jenkins マスターのデータ
• $JENKINS_HOMEはEBSに
 – 1テナント1ボリューム
 – スナップショットによるバックアップ
• サイズの拡大が可能
 – 再マウントの為の短いダウンタイムが必要

• スナップショット+クローンを活用した
  い!
 – プラグイン実験用の一時的クローンとかど
   うでしょう?
          ©2010 CloudBees, Inc. All Rights   5
                    Reserved
Jenkinsの外:Chef
•   Tomcat
•   初期設定
•   ビルドツール
•   …
      package “httpd”
      cookbook_file “/etc/httpd.conf” do
          source “myconfig”
      end
      service “httpd” do
          action :start
      end


                ©2010 CloudBees, Inc. All Rights   6
                          Reserved
Chefのアーキテクチャ

                         chef-server




                                                masters




    slaves
                                    web-tier




             ©2010 CloudBees, Inc. All Rights             7
                       Reserved
Chefの使い方の工夫
• Chefにゼロからスレーブをセットアップ
  させていると間に合わない

• 予めセットアップしたやつをAMI化
 – 残りデルタだけを起動時にChefにやっても
   らう




        ©2010 CloudBees, Inc. All Rights   8
                  Reserved
JenkinsとChef/Puppet
 手間




                                       Chef/Puppet
                                       手動管理



                                                     台数

            ©2010 CloudBees, Inc. All Rights              9
                      Reserved
スレーブの割り当ての仕組み
• Providore
  – ブローカー・サービス
  – Jenkinsの外部
  – Jcloudsを使ってEC2 APIと対話
  – スレーブの割り当て・プール・破棄




              ©2010 CloudBees, Inc. All Rights   10
                        Reserved
プールからの割り当て



                                       再利用
    スレーブくれ!                                  プール



                   providore




        ©2010 CloudBees, Inc. All Rights           11
                  Reserved
EC2からの割り当て
      教訓:
      • EC2 APIが落ちてもよいようにせよ



    スレーブくれ!                                割り当て
                                                  ec2 api


                   providore




        ©2010 CloudBees, Inc. All Rights                    12
                  Reserved
初期化と占有




    スレーブくれ!


                    providore
                                            1. LXCを開始
                                            2. マスターを割り当て



                     スレーブ

         ©2010 CloudBees, Inc. All Rights     slave        13
                   Reserved
スレーブの接続




        1. 接続情報通知


                        providore


 2. SSHで接続


                         スレーブ

             ©2010 CloudBees, Inc. All Rights   14
                       Reserved
スレーブの接続




    1. 解放


                       providore
                                               2. LXCの破棄・掃除




                        スレーブ

            ©2010 CloudBees, Inc. All Rights              15
                      Reserved
デモ




     ©2010 CloudBees, Inc. All Rights
               Reserved
Linuxコンテナ
• OSレベルの仮想化
 – 中からは完全な独立Linuxシステムのように見え
   る
 – 実は単一カーネルの上で動いている
 – Solarisの笑い声が聞こえる…

• スレーブのリサイクルが高速
 – リセット&リブートはLXCの方が圧倒的に早い

• EC2からの独立性
 – テナントの隔離や再利用のロジックがクラウド
   APIに依存しない方が望ましい
            ©2010 CloudBees, Inc. All Rights   17
                      Reserved
ロシア人形モデル
      EC2 Hypervisor
        EC2 Node


          LXC Guest




      ©2010 CloudBees, Inc. All Rights   18
                Reserved
Linux コンテナ: ワークスペース
• LXCホストには複数テナントのWSが接
  続
 – LXCゲストは1つしか見えないようになっ
   ている
 – Consistent hashによってできるだけ同じホ
   ストにビルドを割り当てる


• 仮想化版のHDDカートリッジ


          ©2010 CloudBees, Inc. All Rights   19
                    Reserved
Nagiosによるモニタリング
• jenkins-ci.orgも
• 拡張可能
• テキストベースの設定ファイル
 – マスターが追加されるたびに自動生成
• PagerDutyとの統合
• サービス間の依存関係の概念
 – コア・サービスが落ちた時の大量の通知を
   防ぐ

        ©2010 CloudBees, Inc. All Rights   20
                  Reserved
モニタすべきもの
•   ユーザーが見るもの: indexページ
•   JVMヒープ、特にpermgen
•   負荷
•   ディスクスペース
•   スレーブの稼動状況


     curl http://jenkins/computer/api/json


                   ©2010 CloudBees, Inc. All Rights   21
                             Reserved
未解決問題
• マスタが増えるにつれスケーラビリティ
  が…
• ポーリングからプッシュへ
  大丈夫ですか?返事してください!




        ©2010 CloudBees, Inc. All Rights   22
                  Reserved
Groovyスクリプトコンソール
• 探索的トラブルシューティング
• データ収集

• Scriptler 2.0
  – コミュニティのリポジトリから管理スクリ
    プトをダウンロードして実行する仕組み
  – https://github.com/jenkinsci/jenkins-scripts/



                  ©2010 CloudBees, Inc. All Rights   23
                            Reserved
「一度きり→手作業」 vs 「繰り返し→自動
化」
• 他のツールとの連携は我々には「一度き
  り」ではない
 – いわゆるスケールメリットというやつ
• エコシステム・パートナー
 – あらかじめ統合を自動化しておく
 – ユーザーは連携を有効化するだけ




        ©2010 CloudBees, Inc. All Rights   24
                  Reserved
まとめ
• 野良Jenkins、増えていませんか?
• 少しずつシステマティックな管理を導入
  する
 – スケールメリット
 – 一度にやろうとすると無限に先延ばしに
   なってしまう
• この事例が参考になりますように



        ©2010 CloudBees, Inc. All Rights   25
                  Reserved
今週末発売
• 入門的内容
 – Java & Ruby
• チーム間作業の改善
 – 昇進、指紋
• 検証済みマージ
 – Subversion & Git
• 分散ビルド
• Selenium

                 ©2010 CloudBees, Inc. All Rights   26
                           Reserved
Questions?




                Thank You!
         http://www.cloudbees.com



             ©2010 CloudBees, Inc. All Rights   27
                       Reserved
2006年
• 分散ビルドのサポート




        ©2010 CloudBees, Inc. All Rights   28
                  Reserved
©2010 CloudBees, Inc. All Rights   29
          Reserved
Jenkinsのクラウド化


                      Elastic マス
               多数のマスタ タ
         自動伸縮クラスタ

    分散ビルド

机の下計算機



            ©2010 CloudBees, Inc. All Rights   30
                      Reserved

Weitere ähnliche Inhalte

Was ist angesagt?

Virtual Kubelet and Virtual Node
Virtual Kubelet and Virtual NodeVirtual Kubelet and Virtual Node
Virtual Kubelet and Virtual NodeYoshio Terada
 
ソフトウェアパッケージベンダーのためのクラウドソリューション「SQL Anywhere OnDemand Edition」
ソフトウェアパッケージベンダーのためのクラウドソリューション「SQL Anywhere OnDemand Edition」ソフトウェアパッケージベンダーのためのクラウドソリューション「SQL Anywhere OnDemand Edition」
ソフトウェアパッケージベンダーのためのクラウドソリューション「SQL Anywhere OnDemand Edition」nisobe58
 
How to face the Kubernetes ?
How to face the Kubernetes ? How to face the Kubernetes ?
How to face the Kubernetes ? Yoshio Terada
 
Windows Server 2016でコンテナを動かしてみた
Windows Server 2016でコンテナを動かしてみたWindows Server 2016でコンテナを動かしてみた
Windows Server 2016でコンテナを動かしてみたTakashi Kanai
 
Jenkins User Conference 東京 2015
Jenkins User Conference 東京 2015Jenkins User Conference 東京 2015
Jenkins User Conference 東京 2015Kohsuke Kawaguchi
 
Hyper-V仮想マシンをAzureへV2C移行
Hyper-V仮想マシンをAzureへV2C移行Hyper-V仮想マシンをAzureへV2C移行
Hyper-V仮想マシンをAzureへV2C移行wintechq
 
20180901 community ws2019_share
20180901 community ws2019_share20180901 community ws2019_share
20180901 community ws2019_shareOsamu Takazoe
 
祝GA、 Service Fabric 概要
祝GA、 Service Fabric 概要祝GA、 Service Fabric 概要
祝GA、 Service Fabric 概要Takekazu Omi
 
Windowsコンテナ入門
Windowsコンテナ入門Windowsコンテナ入門
Windowsコンテナ入門Kyohei Mizumoto
 
Azure Service Fabric Cluster の作成
Azure  Service Fabric Cluster の作成Azure  Service Fabric Cluster の作成
Azure Service Fabric Cluster の作成Takekazu Omi
 
深層学習 環境構築 Azure
深層学習 環境構築 Azure深層学習 環境構築 Azure
深層学習 環境構築 AzureYuki Hattori
 
2014年12月 ソネット bit-drive セミナー資料
2014年12月 ソネット bit-drive セミナー資料2014年12月 ソネット bit-drive セミナー資料
2014年12月 ソネット bit-drive セミナー資料wintechq
 
Java-minishift-20191123
Java-minishift-20191123Java-minishift-20191123
Java-minishift-20191123Yasushi Osonoi
 
Interact2019 - Windows Admin Center 2019年6月のお話
Interact2019 - Windows Admin Center 2019年6月のお話Interact2019 - Windows Admin Center 2019年6月のお話
Interact2019 - Windows Admin Center 2019年6月のお話Norio Sashizaki
 
Infrastrucure as a CodeにおけるJenkinsの役割
Infrastrucure as a CodeにおけるJenkinsの役割Infrastrucure as a CodeにおけるJenkinsの役割
Infrastrucure as a CodeにおけるJenkinsの役割Takashi Honda
 
Jenkins+Gitによる検証済みマージ(30分版)
Jenkins+Gitによる検証済みマージ(30分版)Jenkins+Gitによる検証済みマージ(30分版)
Jenkins+Gitによる検証済みマージ(30分版)Kohsuke Kawaguchi
 

Was ist angesagt? (20)

Virtual Kubelet and Virtual Node
Virtual Kubelet and Virtual NodeVirtual Kubelet and Virtual Node
Virtual Kubelet and Virtual Node
 
第六回Jenkins勉強会
第六回Jenkins勉強会第六回Jenkins勉強会
第六回Jenkins勉強会
 
ソフトウェアパッケージベンダーのためのクラウドソリューション「SQL Anywhere OnDemand Edition」
ソフトウェアパッケージベンダーのためのクラウドソリューション「SQL Anywhere OnDemand Edition」ソフトウェアパッケージベンダーのためのクラウドソリューション「SQL Anywhere OnDemand Edition」
ソフトウェアパッケージベンダーのためのクラウドソリューション「SQL Anywhere OnDemand Edition」
 
How to face the Kubernetes ?
How to face the Kubernetes ? How to face the Kubernetes ?
How to face the Kubernetes ?
 
Windows Server 2016でコンテナを動かしてみた
Windows Server 2016でコンテナを動かしてみたWindows Server 2016でコンテナを動かしてみた
Windows Server 2016でコンテナを動かしてみた
 
Jenkins User Conference 東京 2015
Jenkins User Conference 東京 2015Jenkins User Conference 東京 2015
Jenkins User Conference 東京 2015
 
Jenkins 再入門
Jenkins 再入門Jenkins 再入門
Jenkins 再入門
 
Hyper-V仮想マシンをAzureへV2C移行
Hyper-V仮想マシンをAzureへV2C移行Hyper-V仮想マシンをAzureへV2C移行
Hyper-V仮想マシンをAzureへV2C移行
 
20180901 community ws2019_share
20180901 community ws2019_share20180901 community ws2019_share
20180901 community ws2019_share
 
祝GA、 Service Fabric 概要
祝GA、 Service Fabric 概要祝GA、 Service Fabric 概要
祝GA、 Service Fabric 概要
 
Cibc work kokawa
Cibc work kokawaCibc work kokawa
Cibc work kokawa
 
Windowsコンテナ入門
Windowsコンテナ入門Windowsコンテナ入門
Windowsコンテナ入門
 
Azure Service Fabric Cluster の作成
Azure  Service Fabric Cluster の作成Azure  Service Fabric Cluster の作成
Azure Service Fabric Cluster の作成
 
深層学習 環境構築 Azure
深層学習 環境構築 Azure深層学習 環境構築 Azure
深層学習 環境構築 Azure
 
2014年12月 ソネット bit-drive セミナー資料
2014年12月 ソネット bit-drive セミナー資料2014年12月 ソネット bit-drive セミナー資料
2014年12月 ソネット bit-drive セミナー資料
 
Java-minishift-20191123
Java-minishift-20191123Java-minishift-20191123
Java-minishift-20191123
 
Non-coding! Azure
Non-coding! AzureNon-coding! Azure
Non-coding! Azure
 
Interact2019 - Windows Admin Center 2019年6月のお話
Interact2019 - Windows Admin Center 2019年6月のお話Interact2019 - Windows Admin Center 2019年6月のお話
Interact2019 - Windows Admin Center 2019年6月のお話
 
Infrastrucure as a CodeにおけるJenkinsの役割
Infrastrucure as a CodeにおけるJenkinsの役割Infrastrucure as a CodeにおけるJenkinsの役割
Infrastrucure as a CodeにおけるJenkinsの役割
 
Jenkins+Gitによる検証済みマージ(30分版)
Jenkins+Gitによる検証済みマージ(30分版)Jenkins+Gitによる検証済みマージ(30分版)
Jenkins+Gitによる検証済みマージ(30分版)
 

Andere mochten auch

CouchDB JP Developers Dummit LT
CouchDB JP Developers Dummit LTCouchDB JP Developers Dummit LT
CouchDB JP Developers Dummit LTKoji Kawamura
 
Devsumi2012 攻めの運用の極意
Devsumi2012 攻めの運用の極意Devsumi2012 攻めの運用の極意
Devsumi2012 攻めの運用の極意Ryosuke IWANAGA
 
10th Anniversary
10th Anniversary10th Anniversary
10th Anniversarydynamis
 
教科書と現場のあいだ
教科書と現場のあいだ教科書と現場のあいだ
教科書と現場のあいだYukei Wachi
 
【17-A-2】 10年後も通用する開発環境の秘訣 <デブサミ2012>
【17-A-2】 10年後も通用する開発環境の秘訣 <デブサミ2012>【17-A-2】 10年後も通用する開発環境の秘訣 <デブサミ2012>
【17-A-2】 10年後も通用する開発環境の秘訣 <デブサミ2012>智治 長沢
 
Developer summit continuous deliveryとjenkins
Developer summit   continuous deliveryとjenkinsDeveloper summit   continuous deliveryとjenkins
Developer summit continuous deliveryとjenkinsKohsuke Kawaguchi
 
デブサミ2012 appinventorユーザー会
デブサミ2012 appinventorユーザー会デブサミ2012 appinventorユーザー会
デブサミ2012 appinventorユーザー会Takeaki Tada
 
Android最新技術動向(2012.2)
Android最新技術動向(2012.2)Android最新技術動向(2012.2)
Android最新技術動向(2012.2)Makoto Anjo
 
私と自分戦略
私と自分戦略私と自分戦略
私と自分戦略Naoto Takai
 
実践Android Developer Testing
実践Android Developer Testing実践Android Developer Testing
実践Android Developer Testingussy
 
アジャイルプロセス協議会の紹介
アジャイルプロセス協議会の紹介アジャイルプロセス協議会の紹介
アジャイルプロセス協議会の紹介Akiyah
 
TDD研究会 デブサミ2012 コミュニティLT
TDD研究会 デブサミ2012 コミュニティLTTDD研究会 デブサミ2012 コミュニティLT
TDD研究会 デブサミ2012 コミュニティLTYasui Tsutomu
 
10 years devsumi agile and the future
10 years devsumi agile and the future10 years devsumi agile and the future
10 years devsumi agile and the futureKenji Hiranabe
 
差別化で未来を生き抜く エンジニアの7つの秘訣
差別化で未来を生き抜く エンジニアの7つの秘訣差別化で未来を生き抜く エンジニアの7つの秘訣
差別化で未来を生き抜く エンジニアの7つの秘訣Yusuke Yamamoto
 
三周まわったおれたちのアジャイル
三周まわったおれたちのアジャイル三周まわったおれたちのアジャイル
三周まわったおれたちのアジャイルHiromu Shioya
 
devsumi2012 わたしの自分戦略
devsumi2012 わたしの自分戦略devsumi2012 わたしの自分戦略
devsumi2012 わたしの自分戦略masayoshi takahashi
 
Devsumi2012 倉貫講演資料
Devsumi2012 倉貫講演資料Devsumi2012 倉貫講演資料
Devsumi2012 倉貫講演資料Yoshihito Kuranuki
 

Andere mochten auch (20)

CouchDB JP Developers Dummit LT
CouchDB JP Developers Dummit LTCouchDB JP Developers Dummit LT
CouchDB JP Developers Dummit LT
 
Devsumi2012 攻めの運用の極意
Devsumi2012 攻めの運用の極意Devsumi2012 攻めの運用の極意
Devsumi2012 攻めの運用の極意
 
10th Anniversary
10th Anniversary10th Anniversary
10th Anniversary
 
教科書と現場のあいだ
教科書と現場のあいだ教科書と現場のあいだ
教科書と現場のあいだ
 
【17-A-2】 10年後も通用する開発環境の秘訣 <デブサミ2012>
【17-A-2】 10年後も通用する開発環境の秘訣 <デブサミ2012>【17-A-2】 10年後も通用する開発環境の秘訣 <デブサミ2012>
【17-A-2】 10年後も通用する開発環境の秘訣 <デブサミ2012>
 
Developer summit continuous deliveryとjenkins
Developer summit   continuous deliveryとjenkinsDeveloper summit   continuous deliveryとjenkins
Developer summit continuous deliveryとjenkins
 
デブサミ2012 appinventorユーザー会
デブサミ2012 appinventorユーザー会デブサミ2012 appinventorユーザー会
デブサミ2012 appinventorユーザー会
 
Android最新技術動向(2012.2)
Android最新技術動向(2012.2)Android最新技術動向(2012.2)
Android最新技術動向(2012.2)
 
私と自分戦略
私と自分戦略私と自分戦略
私と自分戦略
 
moon and strategy
moon and strategymoon and strategy
moon and strategy
 
実践Android Developer Testing
実践Android Developer Testing実践Android Developer Testing
実践Android Developer Testing
 
自分戦略
自分戦略自分戦略
自分戦略
 
Devsumi2012 JGGUG LT
Devsumi2012 JGGUG LTDevsumi2012 JGGUG LT
Devsumi2012 JGGUG LT
 
アジャイルプロセス協議会の紹介
アジャイルプロセス協議会の紹介アジャイルプロセス協議会の紹介
アジャイルプロセス協議会の紹介
 
TDD研究会 デブサミ2012 コミュニティLT
TDD研究会 デブサミ2012 コミュニティLTTDD研究会 デブサミ2012 コミュニティLT
TDD研究会 デブサミ2012 コミュニティLT
 
10 years devsumi agile and the future
10 years devsumi agile and the future10 years devsumi agile and the future
10 years devsumi agile and the future
 
差別化で未来を生き抜く エンジニアの7つの秘訣
差別化で未来を生き抜く エンジニアの7つの秘訣差別化で未来を生き抜く エンジニアの7つの秘訣
差別化で未来を生き抜く エンジニアの7つの秘訣
 
三周まわったおれたちのアジャイル
三周まわったおれたちのアジャイル三周まわったおれたちのアジャイル
三周まわったおれたちのアジャイル
 
devsumi2012 わたしの自分戦略
devsumi2012 わたしの自分戦略devsumi2012 わたしの自分戦略
devsumi2012 わたしの自分戦略
 
Devsumi2012 倉貫講演資料
Devsumi2012 倉貫講演資料Devsumi2012 倉貫講演資料
Devsumi2012 倉貫講演資料
 

Ähnlich wie Dev@cloudの実装

#cross2012 クラウドCROSS ニフティの中の人によるニフティクラウド活用
#cross2012 クラウドCROSS ニフティの中の人によるニフティクラウド活用#cross2012 クラウドCROSS ニフティの中の人によるニフティクラウド活用
#cross2012 クラウドCROSS ニフティの中の人によるニフティクラウド活用Abe Junichiro
 
ここ最近のJenkins新機能
ここ最近のJenkins新機能ここ最近のJenkins新機能
ここ最近のJenkins新機能Kohsuke Kawaguchi
 
2019年度 CaaS ワークショップ @ NTTコム
2019年度 CaaS ワークショップ @ NTTコム2019年度 CaaS ワークショップ @ NTTコム
2019年度 CaaS ワークショップ @ NTTコムTomoyaTakegoshi
 
Osc spring cloud_stack20130223
Osc spring cloud_stack20130223Osc spring cloud_stack20130223
Osc spring cloud_stack20130223Noriko Suto
 
Dockerを使ったローカルでの開発から本番環境へのデプロイまで
Dockerを使ったローカルでの開発から本番環境へのデプロイまでDockerを使ったローカルでの開発から本番環境へのデプロイまで
Dockerを使ったローカルでの開発から本番環境へのデプロイまでRyo Nakamaru
 
スマートフォン×Cassandraによるハイパフォーマンス基盤の構築事例
スマートフォン×Cassandraによるハイパフォーマンス基盤の構築事例スマートフォン×Cassandraによるハイパフォーマンス基盤の構築事例
スマートフォン×Cassandraによるハイパフォーマンス基盤の構築事例terurou
 
クラウドのなかみ
クラウドのなかみクラウドのなかみ
クラウドのなかみSatoshi Hirata
 
LL言語でもHudsonを使おう!
LL言語でもHudsonを使おう!LL言語でもHudsonを使おう!
LL言語でもHudsonを使おう!KLab株式会社
 
インフラエンジニアデイ Sousousha20100520 01
インフラエンジニアデイ Sousousha20100520 01インフラエンジニアデイ Sousousha20100520 01
インフラエンジニアデイ Sousousha20100520 01真一 藤川
 
そうだ、ECL2.0でホステッドプライベート・クラウドをつくろう!
そうだ、ECL2.0でホステッドプライベート・クラウドをつくろう!そうだ、ECL2.0でホステッドプライベート・クラウドをつくろう!
そうだ、ECL2.0でホステッドプライベート・クラウドをつくろう!ミランティスジャパン株式会社
 
SQL Azure のシームレスな管理
SQL Azure のシームレスな管理SQL Azure のシームレスな管理
SQL Azure のシームレスな管理junichi anno
 
OSC2012 Tokyo/Spring JOSUG
OSC2012 Tokyo/Spring JOSUGOSC2012 Tokyo/Spring JOSUG
OSC2012 Tokyo/Spring JOSUGHideki Saito
 
商用VPSのここだけの話
商用VPSのここだけの話商用VPSのここだけの話
商用VPSのここだけの話joeswebhosting
 
20111119 OSC Tokyo/Fall on CloudStack and LXC
20111119 OSC Tokyo/Fall on CloudStack and LXC20111119 OSC Tokyo/Fall on CloudStack and LXC
20111119 OSC Tokyo/Fall on CloudStack and LXCMasahide Yamamoto
 
すごく分かるwarden
すごく分かるwardenすごく分かるwarden
すごく分かるwardeni_yudai
 
毎日が憧れの新築、反復可能なデリバリーによる常時新築システム
毎日が憧れの新築、反復可能なデリバリーによる常時新築システム毎日が憧れの新築、反復可能なデリバリーによる常時新築システム
毎日が憧れの新築、反復可能なデリバリーによる常時新築システムTomohiro Ohtake
 
Web サービス インフラの近未来
Web サービス インフラの近未来Web サービス インフラの近未来
Web サービス インフラの近未来Syuichi Murashima
 
【Cloud Week 2015@Hokkaido University】Dockerとインフラ運用自働化とIoT
【Cloud Week 2015@Hokkaido University】Dockerとインフラ運用自働化とIoT【Cloud Week 2015@Hokkaido University】Dockerとインフラ運用自働化とIoT
【Cloud Week 2015@Hokkaido University】Dockerとインフラ運用自働化とIoTcloudconductor
 

Ähnlich wie Dev@cloudの実装 (20)

#cross2012 クラウドCROSS ニフティの中の人によるニフティクラウド活用
#cross2012 クラウドCROSS ニフティの中の人によるニフティクラウド活用#cross2012 クラウドCROSS ニフティの中の人によるニフティクラウド活用
#cross2012 クラウドCROSS ニフティの中の人によるニフティクラウド活用
 
ここ最近のJenkins新機能
ここ最近のJenkins新機能ここ最近のJenkins新機能
ここ最近のJenkins新機能
 
2019年度 CaaS ワークショップ @ NTTコム
2019年度 CaaS ワークショップ @ NTTコム2019年度 CaaS ワークショップ @ NTTコム
2019年度 CaaS ワークショップ @ NTTコム
 
Osc2009 Do Xen Hara
Osc2009 Do Xen HaraOsc2009 Do Xen Hara
Osc2009 Do Xen Hara
 
Osc spring cloud_stack20130223
Osc spring cloud_stack20130223Osc spring cloud_stack20130223
Osc spring cloud_stack20130223
 
Dockerを使ったローカルでの開発から本番環境へのデプロイまで
Dockerを使ったローカルでの開発から本番環境へのデプロイまでDockerを使ったローカルでの開発から本番環境へのデプロイまで
Dockerを使ったローカルでの開発から本番環境へのデプロイまで
 
スマートフォン×Cassandraによるハイパフォーマンス基盤の構築事例
スマートフォン×Cassandraによるハイパフォーマンス基盤の構築事例スマートフォン×Cassandraによるハイパフォーマンス基盤の構築事例
スマートフォン×Cassandraによるハイパフォーマンス基盤の構築事例
 
クラウドのなかみ
クラウドのなかみクラウドのなかみ
クラウドのなかみ
 
LL言語でもHudsonを使おう!
LL言語でもHudsonを使おう!LL言語でもHudsonを使おう!
LL言語でもHudsonを使おう!
 
インフラエンジニアデイ Sousousha20100520 01
インフラエンジニアデイ Sousousha20100520 01インフラエンジニアデイ Sousousha20100520 01
インフラエンジニアデイ Sousousha20100520 01
 
そうだ、ECL2.0でホステッドプライベート・クラウドをつくろう!
そうだ、ECL2.0でホステッドプライベート・クラウドをつくろう!そうだ、ECL2.0でホステッドプライベート・クラウドをつくろう!
そうだ、ECL2.0でホステッドプライベート・クラウドをつくろう!
 
SQL Azure のシームレスな管理
SQL Azure のシームレスな管理SQL Azure のシームレスな管理
SQL Azure のシームレスな管理
 
OSC2012 Tokyo/Spring JOSUG
OSC2012 Tokyo/Spring JOSUGOSC2012 Tokyo/Spring JOSUG
OSC2012 Tokyo/Spring JOSUG
 
商用VPSのここだけの話
商用VPSのここだけの話商用VPSのここだけの話
商用VPSのここだけの話
 
20111119 OSC Tokyo/Fall on CloudStack and LXC
20111119 OSC Tokyo/Fall on CloudStack and LXC20111119 OSC Tokyo/Fall on CloudStack and LXC
20111119 OSC Tokyo/Fall on CloudStack and LXC
 
OpenStack入門 2016/06/10
OpenStack入門 2016/06/10OpenStack入門 2016/06/10
OpenStack入門 2016/06/10
 
すごく分かるwarden
すごく分かるwardenすごく分かるwarden
すごく分かるwarden
 
毎日が憧れの新築、反復可能なデリバリーによる常時新築システム
毎日が憧れの新築、反復可能なデリバリーによる常時新築システム毎日が憧れの新築、反復可能なデリバリーによる常時新築システム
毎日が憧れの新築、反復可能なデリバリーによる常時新築システム
 
Web サービス インフラの近未来
Web サービス インフラの近未来Web サービス インフラの近未来
Web サービス インフラの近未来
 
【Cloud Week 2015@Hokkaido University】Dockerとインフラ運用自働化とIoT
【Cloud Week 2015@Hokkaido University】Dockerとインフラ運用自働化とIoT【Cloud Week 2015@Hokkaido University】Dockerとインフラ運用自働化とIoT
【Cloud Week 2015@Hokkaido University】Dockerとインフラ運用自働化とIoT
 

Mehr von Kohsuke Kawaguchi

Workflow, container, and beyond
Workflow, container, and beyondWorkflow, container, and beyond
Workflow, container, and beyondKohsuke Kawaguchi
 
JavaOne 2014: Next Step in Automation: Elastic Build Environment
JavaOne 2014: Next Step in Automation: Elastic Build EnvironmentJavaOne 2014: Next Step in Automation: Elastic Build Environment
JavaOne 2014: Next Step in Automation: Elastic Build EnvironmentKohsuke Kawaguchi
 
On sharing ideas & sharing code
On sharing ideas & sharing codeOn sharing ideas & sharing code
On sharing ideas & sharing codeKohsuke Kawaguchi
 
コードの互換性と進化の両立
コードの互換性と進化の両立コードの互換性と進化の両立
コードの互換性と進化の両立Kohsuke Kawaguchi
 
Jenkins User Conference 2013: Literate, multi-branch, mobile and more
Jenkins User Conference 2013: Literate, multi-branch, mobile and moreJenkins User Conference 2013: Literate, multi-branch, mobile and more
Jenkins User Conference 2013: Literate, multi-branch, mobile and moreKohsuke Kawaguchi
 
Jenkins User Conference 2013 Palo Alto: Keynote
Jenkins User Conference 2013 Palo Alto: KeynoteJenkins User Conference 2013 Palo Alto: Keynote
Jenkins User Conference 2013 Palo Alto: KeynoteKohsuke Kawaguchi
 
How we made jenkins community
How we made jenkins communityHow we made jenkins community
How we made jenkins communityKohsuke Kawaguchi
 
Large scale automation with jenkins
Large scale automation with jenkinsLarge scale automation with jenkins
Large scale automation with jenkinsKohsuke Kawaguchi
 
Jenkins User Conference 2012 San Francisco
Jenkins User Conference 2012 San FranciscoJenkins User Conference 2012 San Francisco
Jenkins User Conference 2012 San FranciscoKohsuke Kawaguchi
 
Jenkins user conference 東京
Jenkins user conference 東京Jenkins user conference 東京
Jenkins user conference 東京Kohsuke Kawaguchi
 
Creating a Developer Community
Creating a Developer CommunityCreating a Developer Community
Creating a Developer CommunityKohsuke Kawaguchi
 
Jenkins user conference 2011
Jenkins user conference 2011Jenkins user conference 2011
Jenkins user conference 2011Kohsuke Kawaguchi
 
プロジェクト現状報告・Rubyによるjenkinsプラグイン開発
プロジェクト現状報告・Rubyによるjenkinsプラグイン開発プロジェクト現状報告・Rubyによるjenkinsプラグイン開発
プロジェクト現状報告・Rubyによるjenkinsプラグイン開発Kohsuke Kawaguchi
 
ホット・トピック・セミナー「Metro」
ホット・トピック・セミナー「Metro」ホット・トピック・セミナー「Metro」
ホット・トピック・セミナー「Metro」Kohsuke Kawaguchi
 

Mehr von Kohsuke Kawaguchi (20)

Jenkins 2.0 (日本語)
Jenkins 2.0 (日本語)Jenkins 2.0 (日本語)
Jenkins 2.0 (日本語)
 
Workflow, container, and beyond
Workflow, container, and beyondWorkflow, container, and beyond
Workflow, container, and beyond
 
JavaOne 2014: Next Step in Automation: Elastic Build Environment
JavaOne 2014: Next Step in Automation: Elastic Build EnvironmentJavaOne 2014: Next Step in Automation: Elastic Build Environment
JavaOne 2014: Next Step in Automation: Elastic Build Environment
 
On sharing ideas & sharing code
On sharing ideas & sharing codeOn sharing ideas & sharing code
On sharing ideas & sharing code
 
コードの互換性と進化の両立
コードの互換性と進化の両立コードの互換性と進化の両立
コードの互換性と進化の両立
 
Jenkins User Conference 2013: Literate, multi-branch, mobile and more
Jenkins User Conference 2013: Literate, multi-branch, mobile and moreJenkins User Conference 2013: Literate, multi-branch, mobile and more
Jenkins User Conference 2013: Literate, multi-branch, mobile and more
 
Jenkins User Conference 2013 Palo Alto: Keynote
Jenkins User Conference 2013 Palo Alto: KeynoteJenkins User Conference 2013 Palo Alto: Keynote
Jenkins User Conference 2013 Palo Alto: Keynote
 
Jenkins State of union 2013
Jenkins State of union 2013Jenkins State of union 2013
Jenkins State of union 2013
 
How we made jenkins community
How we made jenkins communityHow we made jenkins community
How we made jenkins community
 
Large scale automation with jenkins
Large scale automation with jenkinsLarge scale automation with jenkins
Large scale automation with jenkins
 
Jenkins User Conference 2012 San Francisco
Jenkins User Conference 2012 San FranciscoJenkins User Conference 2012 San Francisco
Jenkins User Conference 2012 San Francisco
 
Jenkins user conference 東京
Jenkins user conference 東京Jenkins user conference 東京
Jenkins user conference 東京
 
Creating a Developer Community
Creating a Developer CommunityCreating a Developer Community
Creating a Developer Community
 
Jenkins user conference 2011
Jenkins user conference 2011Jenkins user conference 2011
Jenkins user conference 2011
 
プロジェクト現状報告・Rubyによるjenkinsプラグイン開発
プロジェクト現状報告・Rubyによるjenkinsプラグイン開発プロジェクト現状報告・Rubyによるjenkinsプラグイン開発
プロジェクト現状報告・Rubyによるjenkinsプラグイン開発
 
Current state of Jenkins
Current state of JenkinsCurrent state of Jenkins
Current state of Jenkins
 
Jenkins勉強会第二回
Jenkins勉強会第二回Jenkins勉強会第二回
Jenkins勉強会第二回
 
Jenkins と groovy
Jenkins と groovyJenkins と groovy
Jenkins と groovy
 
ホット・トピック・セミナー「Metro」
ホット・トピック・セミナー「Metro」ホット・トピック・セミナー「Metro」
ホット・トピック・セミナー「Metro」
 
Hudson (JJUG CCCにて)
Hudson (JJUG CCCにて)Hudson (JJUG CCCにて)
Hudson (JJUG CCCにて)
 

Kürzlich hochgeladen

SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものですiPride Co., Ltd.
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A surveyToru Tamaki
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Yuma Ohgami
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNetToru Tamaki
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdftaisei2219
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...Toru Tamaki
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Danieldanielhu54
 

Kürzlich hochgeladen (9)

SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
 

Dev@cloudの実装

  • 2. DEV@Cloudとは • Jenkinsのホスティング – 1000+ のマスタ – のべ 1,500,000分以上のビルド • ソースコード・バイナリリポジトリなど – Git, SVN, Maven • 現在はEC2上で動作 ©2010 CloudBees, Inc. All Rights 2 Reserved
  • 3. Jenkins マスター • マスターは別々のJVMで – 別のOSユーザーで • なぜ? – 隔離 – モニタリング・診断などが簡単 • 一台の計算機に多数のマスタを集積 – 使われていないインスタンスは乾燥保存 ©2010 CloudBees, Inc. All Rights 3 Reserved
  • 4. Jenkins マスターのコード • Core = OSS Jenkins – LTS – 独自パッチはほぼ解消した • 独自プラグイン群 – ユーザーに使われると困るもの • Groovy Console • マスター上でビルドが起こらないように – ユーザーが設定する必要のないもの • メールサーバの設定 • ルートURLの設定 ©2010 CloudBees, Inc. All Rights 4 Reserved
  • 5. Jenkins マスターのデータ • $JENKINS_HOMEはEBSに – 1テナント1ボリューム – スナップショットによるバックアップ • サイズの拡大が可能 – 再マウントの為の短いダウンタイムが必要 • スナップショット+クローンを活用した い! – プラグイン実験用の一時的クローンとかど うでしょう? ©2010 CloudBees, Inc. All Rights 5 Reserved
  • 6. Jenkinsの外:Chef • Tomcat • 初期設定 • ビルドツール • … package “httpd” cookbook_file “/etc/httpd.conf” do source “myconfig” end service “httpd” do action :start end ©2010 CloudBees, Inc. All Rights 6 Reserved
  • 7. Chefのアーキテクチャ chef-server masters slaves web-tier ©2010 CloudBees, Inc. All Rights 7 Reserved
  • 8. Chefの使い方の工夫 • Chefにゼロからスレーブをセットアップ させていると間に合わない • 予めセットアップしたやつをAMI化 – 残りデルタだけを起動時にChefにやっても らう ©2010 CloudBees, Inc. All Rights 8 Reserved
  • 9. JenkinsとChef/Puppet 手間 Chef/Puppet 手動管理 台数 ©2010 CloudBees, Inc. All Rights 9 Reserved
  • 10. スレーブの割り当ての仕組み • Providore – ブローカー・サービス – Jenkinsの外部 – Jcloudsを使ってEC2 APIと対話 – スレーブの割り当て・プール・破棄 ©2010 CloudBees, Inc. All Rights 10 Reserved
  • 11. プールからの割り当て 再利用 スレーブくれ! プール providore ©2010 CloudBees, Inc. All Rights 11 Reserved
  • 12. EC2からの割り当て 教訓: • EC2 APIが落ちてもよいようにせよ スレーブくれ! 割り当て ec2 api providore ©2010 CloudBees, Inc. All Rights 12 Reserved
  • 13. 初期化と占有 スレーブくれ! providore 1. LXCを開始 2. マスターを割り当て スレーブ ©2010 CloudBees, Inc. All Rights slave 13 Reserved
  • 14. スレーブの接続 1. 接続情報通知 providore 2. SSHで接続 スレーブ ©2010 CloudBees, Inc. All Rights 14 Reserved
  • 15. スレーブの接続 1. 解放 providore 2. LXCの破棄・掃除 スレーブ ©2010 CloudBees, Inc. All Rights 15 Reserved
  • 16. デモ ©2010 CloudBees, Inc. All Rights Reserved
  • 17. Linuxコンテナ • OSレベルの仮想化 – 中からは完全な独立Linuxシステムのように見え る – 実は単一カーネルの上で動いている – Solarisの笑い声が聞こえる… • スレーブのリサイクルが高速 – リセット&リブートはLXCの方が圧倒的に早い • EC2からの独立性 – テナントの隔離や再利用のロジックがクラウド APIに依存しない方が望ましい ©2010 CloudBees, Inc. All Rights 17 Reserved
  • 18. ロシア人形モデル EC2 Hypervisor EC2 Node LXC Guest ©2010 CloudBees, Inc. All Rights 18 Reserved
  • 19. Linux コンテナ: ワークスペース • LXCホストには複数テナントのWSが接 続 – LXCゲストは1つしか見えないようになっ ている – Consistent hashによってできるだけ同じホ ストにビルドを割り当てる • 仮想化版のHDDカートリッジ ©2010 CloudBees, Inc. All Rights 19 Reserved
  • 20. Nagiosによるモニタリング • jenkins-ci.orgも • 拡張可能 • テキストベースの設定ファイル – マスターが追加されるたびに自動生成 • PagerDutyとの統合 • サービス間の依存関係の概念 – コア・サービスが落ちた時の大量の通知を 防ぐ ©2010 CloudBees, Inc. All Rights 20 Reserved
  • 21. モニタすべきもの • ユーザーが見るもの: indexページ • JVMヒープ、特にpermgen • 負荷 • ディスクスペース • スレーブの稼動状況 curl http://jenkins/computer/api/json ©2010 CloudBees, Inc. All Rights 21 Reserved
  • 22. 未解決問題 • マスタが増えるにつれスケーラビリティ が… • ポーリングからプッシュへ 大丈夫ですか?返事してください! ©2010 CloudBees, Inc. All Rights 22 Reserved
  • 23. Groovyスクリプトコンソール • 探索的トラブルシューティング • データ収集 • Scriptler 2.0 – コミュニティのリポジトリから管理スクリ プトをダウンロードして実行する仕組み – https://github.com/jenkinsci/jenkins-scripts/ ©2010 CloudBees, Inc. All Rights 23 Reserved
  • 24. 「一度きり→手作業」 vs 「繰り返し→自動 化」 • 他のツールとの連携は我々には「一度き り」ではない – いわゆるスケールメリットというやつ • エコシステム・パートナー – あらかじめ統合を自動化しておく – ユーザーは連携を有効化するだけ ©2010 CloudBees, Inc. All Rights 24 Reserved
  • 25. まとめ • 野良Jenkins、増えていませんか? • 少しずつシステマティックな管理を導入 する – スケールメリット – 一度にやろうとすると無限に先延ばしに なってしまう • この事例が参考になりますように ©2010 CloudBees, Inc. All Rights 25 Reserved
  • 26. 今週末発売 • 入門的内容 – Java & Ruby • チーム間作業の改善 – 昇進、指紋 • 検証済みマージ – Subversion & Git • 分散ビルド • Selenium ©2010 CloudBees, Inc. All Rights 26 Reserved
  • 27. Questions? Thank You! http://www.cloudbees.com ©2010 CloudBees, Inc. All Rights 27 Reserved
  • 28. 2006年 • 分散ビルドのサポート ©2010 CloudBees, Inc. All Rights 28 Reserved
  • 29. ©2010 CloudBees, Inc. All Rights 29 Reserved
  • 30. Jenkinsのクラウド化 Elastic マス 多数のマスタ タ 自動伸縮クラスタ 分散ビルド 机の下計算機 ©2010 CloudBees, Inc. All Rights 30 Reserved

Hinweis der Redaktion

  1. スケールメリットがないと労働集約のままになってしまう