DMM.comラボではビッグデータ基盤の日次バッチ(ETL処理)のワークフローエンジンとしてDigdagを採用しました。 ワークフローの運用は、障害時のリカバリ、進捗状況に応じた他システム連携、JOB実行時間の局所化など様々な課題があります。 Digdag選定理由や設計の勘所(サーバ構成・ワークフローの設計方針)、Digdag Plugin実装、他チーム連携のためのClient実装など、課題解決のために取り組んだ内容について紹介させていただきました!
Back in May 2016 we announced our intent to rethink the Jenkins User experience with the Blue Ocean project and today the Jenkins project are pleased to announce the general availability of Blue Ocean 1.0. Blue Ocean is an entirely new, modern and fun way for developers to use Jenkins that has been built from the ground up to help teams of any size approach Continuous Delivery. Easily installed as
こちらの記事はMackerel Advent Calendarの11日目の記事として書いています。 qiita.com mackerelを使って監視ルールをバージョン管理して、もし差分があったら自動でGithubにPRを投げるみたいなものを作った時の話です。 こちらの記事を見ていいなぁと思い、そんなことをやってみたいと思いました。 kakakakakku.hatenablog.com 概要 監視設定を管理している状態ですが、カジュアルにGUIで変更などした後にもその状態をちゃんと管理したいという気持ちがあります。 定期的に変わっていないかを判定して、変わっていたらアラートもありですが、結局その後することはコードに反映させることかと思うので、変更のPRまであげられたら楽だなぁと思いました。 なので今回は変更があった場合は何かアラートを投げるのではなく、PRを投げて人が見れるできる状態まで持っ
CIって? CIはContinuous Integration(継続的インテグレーション)の略です。 継続的インテグレーションとは、ソフトウェア開発手法において、プロジェクトメンバーがそれぞれ開発した結果を頻繁に結合し、定期的にビルドやテストを行うことである。問題点を早期に摘出することができ、効率的な開発に役立つ。 不具合は早く見つける方が対策費用が抑えられるため、ソフトウェアのビルドを頻繁に行うのが好ましく、ビルド結果が正しいことを検証するためにすぐにテストを行う。このような手続きは出来る限り自動化するのが好ましい。そのため、継続的インテグレーションを実践するためには、結合のためのビルドとテストの自動化のために「CIサーバー」などと呼ばれる専用コンピュータを用意することが推奨されている。 ちなみに、ソフトウェア開発手法のひとつである「エクストリームプログラミング」では、継続的インテグレー
This document describes a framework for implementing modern continuous integration/continuous delivery (CI/CD) processes on a multi-team software delivery platform that uses Google Kubernetes Engine. You can then iterate on the platform to further improve performance for development and operations, including release velocity, platform reliability, and recovery time from failures. This document is
JenkinsはJavaで作られた継続的インテグレーションツールです。今回はこのJenkinsのマスター/スレーブ環境をJujuを用いて構築する方法をご紹介します。 Jenkinsについて Jenkinsは現代のソフトウェア開発においてほぼ必須とも言える継続的インテグレーションにおける標準的なツールの1つなので、実際に使っている方も多いでしょう。よって今更説明する必要もないかもしれませんが、せっかくなので概要だけでも書いておきます。 Jenkinsは継続的インテグレーション(CI:Continuous Integration)を実現するためのJava製のサーバーソフトウェアです。オンプレミスでも構築できるFLOSSで高機能なCIツールとして、世界中で幅広く使われています。UbuntuでもQAチームがAutoPkgTestなどの自動化に利用しています。 Jenkinsのインストール方法 Je
はじめに 「開発者(個人)のための」としているのは、別に自分でやっても良いんだけど Jenkins に任せられるなら任せたい、くらいのモチベーションを表現したつもりです。 環境 Ubuntu 14.04 LTS Jenkins 1.573 Bootstrap になって雰囲気が変わりましたね 初期設定 Jenkins 初期設定 Plugin のインストール Git Plugin 依存しているPluginも自動的にインストールされます。 Git Parameter Plugin は、ビルド時に Extended Choice Parameter plugin の Single Select ようなパラメータ形式で、リビジョンやタグを選択できるプラグインです。 Git 初期設定 Git Install Git がインストールされていないなら、apt や yum でインストールしておいて良いでしょ
先日公開した「UIテストの自動化!Node.jsとSeleniumでWebアプリのUIテスト環境構築」では、手動で行っていたWebアプリのUIテストをSeleniumを使って自動化する手法についてご説明しました。 SeleniumでUIテストを自動化することにより、リグレッションテスト(改修により既存機能への影響がないかを確認する回帰テスト)が簡単にでき、バグの早期発見に繋げることができますが、実際にはこのテストを運用でしっかりと行っていかないとプロジェクトとしての品質向上にはつながりません。また、コマンドラインの扱いに慣れていない方は、コマンドラインからのテストの実行に抵抗があり、テスト結果もコンソールに出力されるため見づらいと思う方も多いと思います。 そこで今回はCI(継続的インテグレーション)ツールであるJenkinsとSeleniumを連携することで、定期的にテストを実行し、テスト
Jenkinsユーザ・カンファレンス2015で @nobuoka さんが発表されていた、 開発中の機能やUI/UXの検証環境を手軽に動かしたい をJenkins+Dockerでやってみました http://www.slideshare.net/YuNobuoka/docker-43489941 概要 http://${branchname}.feature.example.com で各コンテナにアクセスできるようにする DockerホストはJenkinsのスレーブノードとして登録することでJenkinsからDockerを操作できるようにする 各コンテナは3000番ポート(webrickのデフォルトポート)を公開する webrickを起動するのみでsshdなど他のサービスは基本的には立ち上げない サブドメインと各コンテナ(の公開ポート)の解決にはhttpdを利用する 元の資料ではPlackを
APソリューショングループの相野谷(@ainoya)です.このたびATLと共同で,CIやCDにおけるビルドパイプラインの実行を手助けする小さなツールwalterを開発しました. 開発の動機: Jenkinsプラグインに強く依存するビルドパイプライン設定 Jenkinsを使ってCIを実現する場合,複数のジョブを繋げて一連の処理フロー(ビルドパイプライン)を作るのが一般的かと思います.Jenkinsには,ビルドパイプラインを構成するための便利なプラグインがあり,これを使って失敗時の実行制御や,ジョブの並列実行制御を簡単に設定できます. ところが,こうしたプラグインで実際にCIを運用してみると,ちょっと惜しい点がいくつか出てきました. パイプラインの全体実行フローをJenkins上でしか確認できない Jenkinsジョブを実際にキックするまで動作が確認できない 設定の移行がしづらい.GUI中心で
著者の @kaz_29 さんから「CakePHPで学ぶ継続的インテグレーション」を献本して頂きました。日頃から関心のある分野なので、早速読ませて頂きました。 PHP で学ぶ継続的インテグレーション 本書のタイトルは「CakePHPで学ぶ継続的インテグレーション」です。実際、本書の中では、CakePHPアプリケーションを題材に継続的インテグレーションを行う手法が解説されています。 ただ、ここで紹介されている継続的インテグレーションの手法は、CakePHP 固有のものではなく、他のフレームワークでも転用可能なものです。 勝手なお世話ですが、書籍のタイトルとしては、「PHPで学ぶ継続的インテグレーション」の方が、良かったかもしれませんね:D 分散された情報がこの一冊に 継続的インテグレーション(CI)を行うには、あるツールさえ入れておけばできるというものではなく、多くのツールを組み合わせる必要が
Jenkins に Bitbucket のアカウントでログインしたいなーと思ったので書いてみた。 GitHub - mallowlabs/bitbucket-oauth-plugin: A Jenkins Plugin that supports authentication via Bitbucket OAuth 設定画面はこんな感じ。 Bitbucket の権限設定とは全くリンクしないので、誰か対応して Pull Request 下さい。 アップデートサイトに登録する気もあんまり無いので、万が一必要な人がいたらアピールしてください。 (2013/05/30 追記) まさかのアピールを受けたのでアップデートサイトに公開しました。 プラグインの機能については想像通りだと思うので、 以下に Bitbucket の OAuth を使う時に注意すべき点などをメモしておく。 参照すべきドキュメント
Dockerが使えるようになったため、Jenkinsにより仮想サーバの起動から、サーバ構築、テスト、仮想サーバの廃棄までを自動化してみました。 やりたいこと 以下のように、Chefのリポジトリの更新をトリガーに、仮想サーバの起動から、サーバ構築、テスト、仮想サーバの廃棄までをJenkinsにて自動化します。 Chefのレシピをリモートリポジトリへgit pushすると、Jenkinsが通知を検知 JenkinsからDockerの仮想サーバ(コンテナ)を起動 起動が成功すれば、Chefを実行し、サーバを構築 サーバ構築が成功すれば、serverspecを実行し、サーバの状態をテスト テストが成功すれば、Dockerの仮想サーバ(コンテナ)を廃棄 また、Dockerの起動停止、サーバ構築、テストは全てSSH接続により行います。 構成 CentOS 6.5 : Chef、serverspec、J
最近、サーバーを一から構築する必要があって、chefを使ってみることにした。 CIしたいのでまずはJenkinsを入れる。 Chef: 11.12.4 Vagrant 1.5.4 Vagrant この辺のコマンド $ vagrant box add centos http://developer.nrel.gov/downloads/vagrant-boxes/CentOS-6.5-x86_64-v20140110.box $ mkdir vagrant_chef $ cd vagrant_chef $ vagrant init centos で環境構築。 Vagrantfileに config.vm.network :private_network, ip:"aaa.bbb.ccc.ddd" を追加する。 起動。 $ vagrant up sshコマンドで接続できるように $ vagra
続いて、開発するアプリの登録を行います。アプリの登録では【1】アプリ名や識別名などの登録、【2】プロビジョニングプロファイルを作成しダウンロード、インストールします。 これらの準備が終わったら、App Storeへ公開するためのアプリ開発、パッケージング、アップロードといった流れになります。 「Jenkins Xcode Integration Plugin」でビルドを自動化 このアプリ公開までの作業のうち、いくつかをJenkinsによって自動化することで継続的にアプリを公開できるようになります。通常、アプリのビルドやパッケージングはXcodeから行うことになりますが、Jenkinsから実行する場合にはXcodeのコマンドラインツールである「xcodebuild」などを使って処理を行います。 Jenkinsジョブからシェルを起動してxcodebuildなどのコマンドを直接実行するか、「Je
posted at 2012/12/22 2012/12/22 HAZI Dec 22, 2012 HAZI 12/22 プログラミング生放送勉強会 第19回@品川 に参加してきました!(というか参加中です! 邪道Jenkinsというタイトルで、一般的に言われている CI Toolとしてじゃない、Jenkinsの使い方について、発表させて頂きました。
仕事でCakePHP 1.3のユニットテストを書きました。 Jenkinsで自動実行させるのが、前にやったときより簡単にできたので 手順をご紹介します。 (職場はLinuxで、紹介するのはMac OS Xでの手順なのでいくつか違う点がありますが) 環境 今回は次の環境に自動テスト環境を作ってみました。 Mac OS Xにインストールしてみましたが、Cent OSにインストールしたときでも、Jenkinsのインストールとテスト実行コマンド以外はほとんど設定方法にかわりはありません。 なお、CakePHPの環境はすでに構築済みでSubversionでバージョン管理していることとします。 Mac OS X 10.7(Lion) PHP や ApacheはHomebrewで用意しました(PHP は5.3.10がインストールされています) CakePHP 1.x系のテスト結果をJenkinsに取り込
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く