一度もJenkinsをまともに試していないのに(から?)、Jenkinsの勉強会に参加してきました。
継続的デリバリーだとか継続的インテグレーションだとか、いまやIT系(特にWeb系)では当たり前になっているというのに今まで手を付けていなかったので、始める言い訳としていいかなと思い、参加してみました。
以下、話を聞きながら適当にメモしたことを箇条書きにして備忘録代わりにします。適当なので内容的に間違っている可能性あるので、そこら辺はご了承の程を。
川口さん:「2013年Jenkinsの歩み」
- 1090人のコミット人数
- 平均1人20のコミット
- 62コミット/day
プロジェクトとしてはかなり大きな方
カオスになっていたgitプラグイン
- 2.0にするときに設定画面を簡素にした
- 複雑さは奥に押し込めた
- 2.0にするときに設定画面を簡素にした
- gitのブランチをプッシュしたらJenkinsが走るように出来るようになった
かなり内部のパフォーマンスを上げたんだな、という話しが続く
- SSHフローコントロールのあたりをいじったり
OS Xの仮想化とかアツイ話しやで。
- ZFSとか使った <- Sunが潰れてから初めて!
- cloudbees.com/osxの話し
Yahoo!japan Jenkinsはじめました - Yahoo! JAPANのCI/CD
- 「始めました!」という話しから「結構使ってきたよ」という話しに変更とのこと。
- Yahoo!のプロモーション広告担当の人(らしい)
- Yahooの石川真幸さん
Ops2名 + Jenkinsで運用
マスター3台、スレーブは各10台
デプロイ
- fabric, Capistrano, Rundeck
最初は有志の活動、後に組織化してエバンジェリストが出来る
結果
- Jenkinsのジョブから、1Clickでデプロイを実現
- 運用体制2名での確立ができた
課題とかトラブル事例
- JenkinsとGitHubエンタープライズの連携にSCMポーリング使っていた
- GitHubエンターブライズに負荷集中!
- そのため、Webhookに切り替える
- サーバを増やすときに稟議を通すのが大変
- 仮想環境を有効活用しよう!
- Jcloudsプラグイン
- これを用いてOpenStackやCloudStackとかとJenkinsの連携を行う
- 社内でOpenStackベースの社内PaaSと連携して、物理サーバ不要とした
- ビルド終了で仮想サーバも自動削除
- Jcloudsプラグイン
- 仮想環境を有効活用しよう!
- その他細かい物
- 細かいフロー(リリース、ジョブ数増加)
- テストコードが不足していたりとか
- もっと高度なデプロイに挑戦
- 今注目されているBlueprint deployment(ここ自信なし)とかImmutable Infrastructureとか
- JenkinsとGitHubエンタープライズの連携にSCMポーリング使っていた
まとめ
- CI+CDを達成するために必要な2つのこと
- エバンジェリスト’s
- 周囲にその大切さを伝え、巻き込んでいくことの重要性
- ルールや議論はほどほどで、まずはやってみること!
- エバンジェリスト’s
- CI+CDを達成するために必要な2つのこと
質問
- (メモし忘れました)
- 「ボトムアップで始めたと言ったが、何年前から始めた?」
- 途中入社のため詳細は把握してないが、少なくとも3-4年前から始まっている
- 「上手くいかないテストとは具体的にどういった所か?」
- 単純にテストを書く習慣がないということに加えると、画面など主導で行わざると得ないところ
- 今後Seleniumとか推し進めているところ
- 単純にテストを書く習慣がないということに加えると、画面など主導で行わざると得ないところ
- 「社内PaaSにOpenStackを使うようになった経緯とその利点とかあるかどうか」
- 元々社内PaaSがあったが、古くなっていて調査したところ、OpenStackが良さそうだという結論になったので採用した
- 拡張しやすいので、社内のセキュリティルールに則した独自の仕様を盛り込むことができるのがいい
株式会社シフト 玉川さん:Jenkinsエンタープライズについて
注:だいたいここら辺から内容の理解も追いついていないので力尽きてメモが適当です!
第三者検証をやっている会社の者
- 基本的にマニュアルテストをやっている会社
- 私は自動テストやCIの導入を仕事にしている
- Cloudbeesとパートナー
- Jenkinsに関するセミナーとかもしている
- Jenkins Enterprise By Cloudbeesの販売代理店も担当している
- Enterpriseにしかない独自のプラグインとかも使える
- 基本的にマニュアルテストをやっている会社
Jenkins Enterprise By Cloudbeesの特徴
- 豊富なプラグイン
- 大きな軸
- 稼働率向上
- High AvailabilityとかJenkins Operations Center
- Folders Plugin
- ジョブをフォルダに入れて階層管理
- Templates Plugin
- 大規模開発向けのプラグイン
- セキュリティ向上機能
- Role-Base Access Controlo Plugin
- Secure Copy Plugin
- 複数のジェンキンスで成果物を安全にやりとり
- Custom Update Center Plugin
- インストールするJenkinsのコアやプラグインのバージョンを社内で縛る機能
- リソース最適化
- 稼働率向上
- 大きな軸
- 豊富なプラグイン
LTの時間
メインのセッションが終わって休憩を挟んだ後LTの時間になりました。上の写真はその休憩中に配備されたお菓子や酒類の成れの果てです。
割とすぐに無くなってしまった…かのように見せかけて、人数が結構こなかったせいか、あまりが出そうだったので主催の人がどんどん取ってってくださーい(余っても処分に困るので)、といってましたね。
後すみません、お菓子食べるのに集中しててLTのメモするの忘れたため、LTに関しては全く記録がありません!話しは聞いていましたけどね!
参加してきた感想
これも箇条書きで適当に残しておきます。
かなりの人数の多さ
- 普段参加している勉強会・コミュニティとは違う層の人が多い印象
- スーツな姿の人も結構目立ったところが印象的
- コミュニティが力だと言っていたが、確かにそうなんだろうと感じる
最初の導入がJenkinsの2013年の現況と歴史みたいな話しだったので、初心者でも分かりやすくて良かった
- こういうとっかかりがあると入りやすい、とか思ったりした。
川口さんのライブコーディングがさらっと自然に出来ていたのが印象的
- 「英語をタイプしながら日本語を喋るのは難しい」という発言が出てきていました
- そうはいいながら結構スムーズに出来ていたので、講演慣れしてそうだなー、という印象を受けました
- 「英語をタイプしながら日本語を喋るのは難しい」という発言が出てきていました
本当はもっと文章の体で記事を残そうかと思ったんですけど、メモから文章に書き直す間に時間が過ぎて記事を更新する意欲がなくなりそうだったので、適当でもいいから更新すること優先にしました。
とりあえず参加してみて良かったです。流石にそろそろJenkinsとか継続的インテグレーション関連のことも知らないといけないと思っていたので、とっかかりとして非常に良かったです。