以前書いた記事を勉強会用に再編してみまっす
基調講演 Jenkinsプロジェクトの現状とワークフロー
- 見どころはずばりWorkflow plugin
- 特徴
- 複雑な活動を簡潔に指揮・記述
- それなりの学習コストが必要そう
- 複雑なことを完結に書くためにはそれなりのノウハウとかいるよね
- 一つのジョブで必要な全てを記述
- これまでpipelineとかbuild-flowとかで管理していたものが置き換えられそう
- GroovyによるDSL
- Snippet Generatorがある
- でも(まだ)細かいところはgenerateしてくれないしバグも沢山あるっぽい
- JVMのロスや再起動に耐えるデザイン
- ジョブ実行中にJenkins再起動などがあっても途中から再開できる
- JenkinsEnterpriseだとチェックポイント作れるらしい
- 拡張性
- 他のプラグインと連携できるってことだと思う、けど正直良く分かってない
- 複雑な活動を簡潔に指揮・記述
- サンプル
- 特徴
はてなにおける継続的デプロイメントの現状とDockerの導入
PSGI(Perl Web Server Gateway Interface)は、プログラミング言語Perlで使われる、WebアプリケーションとWebサーバを接続するインタフェースの1つであり、PerlにおけるWebアプリケーション用標準インタフェースとして使われることが意図されている。
* http://ja.wikipedia.org/wiki/PSGI
* Perlに思い入れがなければ他のものが良さそう
* DockerAPI
* たぶんこんなの https://docs.docker.com/reference/api/docker_remote_api_v1.13/
* DockerAPIを使ったポート番号解決
1. DockerAPI(json)から、Image="hogehoge:latest"なエントリを見つける
1. Portsからホスト側のポートを取得
* Docker使うと簡単にホスト-コンテナでポートフォワード可能
* http://deeeet.com/writing/2014/05/11/docker-network/
* *ホスト側のIPの指定を省略することもできる.この場合,自動でポートが選ばれる.* らしいのでポートが被るとか心配しなくてよさそう
1. ポート番号解決用のアプリで処理できるようにごにょごにょする
* イメージビルドにはキャッシュを上手く使う(使えるようにする)と時間が短くできるので是非
* 課題
* コンテナの破棄がめんどうらしい
* 例えば毎日0時にリセットする、などすれば解決できる?
* 確認環境だと割り切れば翌日には使えなくなっても許容されるのではないか
JenkinsとPuppet+ServerspecでインフラCI
- 割とエモい話
-
- つまりはこういうことだと思う
- infrastructure as code(Puppet/Chef)
- コードにはテストを用意しよう(Serverspec)
- コード変更したらテストをCIで回そう(Jenkins)
- コードの適用先が必要になるので、そこは何とかする必要がある
- Dockerとか使えれば難しくはないはず
- 以上!
- つまりはこういうことだと思う
おまけ
-
「Infrastructure as a CodeにおけるJenkinsの役割」 〜環境構築も継続的インテグレーションを行う時代です〜 は聴講はしてないけどインフラ系の人は読むと良いと思いました、特にAWSとか使ってる人
- (今回の勉強会では扱わない予定だけど