DMM.comラボではビッグデータ基盤の日次バッチ(ETL処理)のワークフローエンジンとしてDigdagを採用しました。 ワークフローの運用は、障害時のリカバリ、進捗状況に応じた他システム連携、JOB実行時間の局所化など様々な課題があります。 Digdag選定理由や設計の勘所(サーバ構成・ワークフローの設計方針)、Digdag Plugin実装、他チーム連携のためのClient実装など、課題解決のために取り組んだ内容について紹介させていただきました!
はじめに JenkinsでRailsのテストやってますか? 肥大化するテストを高速実行するためにテストを複数のJobに分割するというのは有効な手段です。しかし、Railsのテストを行うためにはbundle installによるGemのセットアップが必須です。分割したJobが一斉にbundle installするとトータルでのテスト実行時間は極端に低下してしまいます。 ここでは、時間のかかるbundle installを高速に行うための解説を行います。 なぜbundle installは遅いのか? bundle installコマンドを叩くことで、bundlerはrubygems.orgから関連ライブラリをダウンロードしローカルにインストールします。しかし、GemによってはC言語で書かれたコードをコンパイルする事がありインストールに時間がかかります。また、複数Jobが一気にrubygems.
Jenkins ユーザ・カンファレンス 2012 東京 - connpass » Jenkins ユーザ・カンファレンス 2012 東京 日本Jenkinsユーザ会 (写真:川口さんの基調講演にて姿を現した"ニンジャ"Jenkins、そして…"タモリ"?) 暫く前から開催がささやかれており、参加募集開始と共に爆発的な登録数を記録、何と『1000人』の壁を突破したという恐るべき興味関心を惹いていた【Jenkinsユーザカンファレンス】。 この日ようやく開催の運びとなり、自分も朝イチからガッツリ参加してきました! 開催場所は法政大学市ケ谷キャンパス 外濠校舎@市ヶ谷。この日は連日のうだるような暑さが続いており、市ヶ谷駅から徒歩で校舎に向かったのですがこの時点で汗ダラダラ、だいぶぐったり目w » Jenkins ユーザ・カンファレンス 2012 東京 – アクセス 日本Jenkinsユーザ会 (
Jenkins+GradleでJavaのCIのための基本build.gradle設定 (JUnit,PMD,FindBugs,CPD,JaCoCo)JavaJenkinsgradlePMDFindBugs 私的Java開発をJenkinsでCIするためのbuild.gradleとJenkinsの設定です。要不要に応じて書き換えたり足したりが必要です。特にチェックルール。 環境 Java 1.7 Groovy 1.8.6 Ant 1.9.2 Ivy 2.2.0 Gradle 1.11 Mac OS X 10.9.2 全体の流れ Jenkinsに必要なプラグインをインストール GradleでFindBugs, PMD, CPDを実行するようbuild.gradleを作成 Eclipseでは Jenkinsにいれるプラグイン Gradle plugin - jenkins+gradle連携 Fi
はじめに Jenkins Advent Calender 2011 16日目担当の id:tyuki39(@tyuki39) です。 小ネタを物量でカバーする形になって恐縮ですが、よろしくお願いします。 なお、前の日は id:ssogabe さんの「Karotzさんといっしょ」でした。 ビューにカラムを追加しよう! 皆さん、Jenkinsのビューを活用しているでしょうか? デフォルトの【すべて】ビューだけを使っている、なんてことはないですよね? Jenkinsのトップページにアクセスしたとき、または、マイビューにアクセスしたときに、 ・ 自分自身が関わっているジョブの状態がさっと一覧され、 ・ 設定画面がさっと開けたり、 ・ 失敗の原因を探るべく失敗ビルドのコンソールがさっと開けたり すると便利です。 Jenkinsのプラグインの中には、そんなニーズに応えてくれて、ビューをもっと使いやすく
オープンソースソフトウェアの継続的インテグレーション(CI:Continuous Integration)/継続的デリバリ(CD:Continuous Delivery)ツールとして広く使われている「Jenkins」の最新版「Jenkins 2.0」がリリースされた。 パイプライン機能の強化「Pipeline as Code」と「ステージビュー」 Jenkinsは、ソフトウェアの開発プロセスにおけるビルドやテスト、デプロイなどをジョブとして管理してジョブの実行を自動化するツール。これに加えて、一連の流れをパイプライン処理として定義、視覚化する機能がプラグインとして提供されていた。 Jenkins 2.0では、このパイプラインが標準機能としてサポートされ、ユーザーはGroovyのDSL(ドメイン特化言語)を使って、パイプラインをコードとしてモデリングできるようになった。このコードは、プロジェ
任意のブランチをmasterブランチにマージする前に、Jenkinsで静的分析やテスト実行をしたいというニーズがあったので、任意のブランチにpushしたら CIできるように設定をしてみました。 環境構成 OS: Amazon Linux AMI 2013.03 64bit Git: 1.7.4.5 Jenkins: 1.505 Jenkins設定 ジョブ設定 ビルドのパラメータ化 → パラメータの追加 → 文字列 下記のように、「名前」と「デフォルト値」を設定する ソースコード管理システム → Git → Branches to build 下記のように、「Branch Specifier (blank for default):」に先ほど設定した変数 $branch_name を設定 ただ単に、Jenkinsの画面で毎回ビルド実行をするだけでしたらこれで設定は終わりです。 あとは下記
ここ数年、CircleCIやTravis CIに代表されるクラウドCIサービスがメジャーになり、Jenkinsの影がめっきり薄くなりました。 でも、自社のプロダクトではクラウドサービスダメ!であったりで、恩恵を受けられない人のために、Jenkinsで少しでもその恩恵受けたい!というのが、この記事です。 CircleCIに対するJenkinsのデメリット 個人的に、Jenkins離れが多い理由は、 1. 初めのセットアップが面倒 2. 複数プロジェクトで共有すると環境が混ざって大変 3. ジョブ設定に関する知識が属人的になりやすい(Jenkinsおじさんの出現) の3つだと考えています。 今回は、特に2.に注目します。 複数プロジェクトの環境が混ざる あるプロジェクトAは、Rubyでサーバサイドアプリを、別のプロジェクトBは、Androidを、というような場合、 Aのビルドには、rbenv,
こんにちは。 Aimingでプログラマーをしています西川です。 この度Jenkinsの実践活用例を集めた「入門Jenkins」という本を執筆させていただきました。今回はその内容についてお話したいと思います。 入門Jenkinsの内容 私はウェブ開発を担当しているチームのJenkins全体を構築、運用しています。言語はRuby が主であり、JavaScriptが続きます。 今までのJenkinsの書籍や活用例の紹介はJavaによるものが多く、他の言語のものはあまりなかったように思えます。 入門Jenkinsではその点を打破したく、ウェブ上に散在していたRubyでのJenkins活用例と、私の経験をもとに執筆させていただきました。入門Jenkinsではいくつかの実践的なJenkinsの活用例を具体的に執筆しています。 私が執筆したのはRailsでの活用例で、単独の活用例を紹介しているうちではも
Photo by rawpixel.com from PexelsFor the longest time Jenkins has, in my opinion, really been the only game in town when it came to Continuous Integration (CI) and even to some extent Continuous Deployment (CD). However, after several years of using, and fighting Jenkins I think it may be time to move on. Like so many other programs Jenkins has become a victim of its own success. Jenkins began lif
何をやっているか分からない「Jenkinsおじさん」の作業を見える化しよう。Jenkins 2に新搭載されたPipelineを使えばパイプラインをコードで記述できるようになる。その基本的な使い方を解説。 ← 前回 連載 INDEX Jenkins 2に搭載された新機能の目玉として、今までPipelineプラグイン(※第3回で解説したBuild Pipelineプラグインとは別物である)として提供されていたPipeline(以下、パイプライン)が標準搭載されたことが話題となっている。今回はこのパイプライン機能について掘り下げて解説していきたい。 Jenkinsおじさん 「Jenkinsおじさん」という言葉を聞いたことはあるだろうか? これはJenkinsを運用管理してくれている人をロゴにあしらわれている紳士に例えて表現した言葉だ。恐らくJenkinsが活発に利用されているチームに1人はJen
みなさんこんにちは。@ryuzeeです。 2012年11月3日,4日の二日間にかけて行われたPHPMatsuri 2012で、登壇させていただきました。 その際の資料を公開しておきます。 内容は過去にやったワンクリックデプロイ勉強会の内容にCakePHPっぽい内容を追加した感じです。 大分前からこのあたりの話はしているのですが、まだまだデファクトスタンダードでどこの会社でもやっているという状況にはほど遠く、ようやく各社取り組み始めたところ、という感じな気がします(もちろん大分状況は変わってきた) 参加者の方に聞いたところ、環境構築含め自動化されているのは2名くらいでした。 せっかくフレームワークを使い倒して高速に開発できるようになっても、もっと他に高速化すべき箇所もあるし、そもそもその速度を継続できないと意味がない、いまそのあたりができていないならできるところから着実に改善していくといいん
こんにちは、サイオステクノロジー技術部 武井です。最近、「DevOps」という言葉をよく耳にすると思います。すでにこの言葉、バズワードと化しており、私もよくわからないで使っていることがありました。今回は、この「DevOps」というなんとなくフワッとしたものの正体を明らかにし、そして、Azure Web Apps for Containers + Docker + Jenkins + Seleniumを利用したCI/CDの実演まで行うことを本記事のゴールにします。ちなみに、タイトルには「イマドキ」とありますが、TravisCIやCircleCIなどの新進気鋭のCI/CDツールが台頭している昨今、Jenkinsでイマドキっていうのもどうかとは思いましたが、でもやっぱり現在のシェアは結構占めていると思いますので、Jenkinsでイマドキにさせて頂きました。 本記事は、以下の知識を持っていることを
本記事はアカウンティング・サース・ジャパン Advent Calendar 2016の5日目の記事です。 アカウンティング・サース・ジャパンは税理士向けクラウド会計システムA-SaaS(エーサース)を提供しているベンチャー企業です。ここしばらく常駐でお手伝いさせていただいており、現在はインフラ周りの改善を担当しています。 はじめに 継続的インテグレーションや継続的デプロイが当たり前の時代ですが、皆様のプロジェクトにおかれましてはTravisCIやCircleCIなどCIツールは導入済みでしょうか。 A-SaaSのシステムはRabbitMQなどで構成されたマイクロサービスアーキテクチャになっていて、アプリケーションは主にJavaやScala、たまにErlang(!)で構築されています。このようなシステムの中でデプロイフローがやや複雑になってきていたので、CIツールとしてJenkins2.0で
継続的インテグレーション(CI:Continuous Integration)を強力にサポートするツール 「Jenkins」 の機能や操作方法について解説していきます。今回は導入から簡単なジョブを実行するまでの初級編です。 はじめに 本記事 「Jenkinsチュートリアル」 では、継続的インテグレーション(CI:Continuous Integration)を強力にサポートするツール 「Jenkins」 の機能や、特に操作方法に焦点を当てて、その使用方法について解説していきます。 今回の初級編では、Jenkins に全く触れたことのない方向けに Jenkins を入手する所から、ジョブの作成、実行、結果の確認までを、一通り紹介します。Jenkins の基礎・基本となる必要最低限の使い方の説明に留めるため、応用や、より高度な活用方法については中級編以降をお待ち下さい。 Jenkinsについて
Created by Unknown User (kohsuke), last modified by Unknown User (rtyler) on Apr 27, 2016 Why We need to claim our rightful place in Continuous Delivery. We have lots of pieces that address these modern needs, but we are not communicating this very well. We need to revisit out of the box experience, so that Jenkins itself speaks that story and makes it clear what we are aiming for. Our software ne
[JavaScript] Jenkinsの対抗馬になるか?ビルド管理をJSで行うGrunt.jsの内容説明とスタートアップ こんにちは、ビルド管理といえばJenkinsだと思っていた@yoheiMuneです。 最近、node.js上で動くJavaScriptのビルド管理ツール「Grunt.js」について学んだので、今日は簡単な説明と 「Hello World」的なところまで書きたいと思います。 Grunt.jsとは何? grunt.jsは、grunt@Githubで公開されている ビルド管理ツールです。 個人的には、Jenkinsがビルド管理ツールとして有力だったのですが、 grunt.jsではフロントエンドのビルド作業を楽にできるいい感じのツールです。 Jenkinsでは例えば以下のようなビルドを行うと思います(JavaのWebアプリケーションの場合)。 checkStyleやfingB
rails + jenkinsでgithubにpushしたらテストというところまでは下記を参照してください。 Testing Rails apps with Jenkins - komagata GithubにpushしたらJenkinsでビルドする - komagata ウェブオペレーションで継続的デプロイというキャッチーな単語を知ったので試してみた。 継続的デプロイなんつっても、上記の様にいつものテストにcapのタスクを追加するだけ。簡単。 githubにpushされると勝手にjenkinsが動き出して… ステージング環境にデプロイ。 これでデザイナーの@machidaさんがgit pushした時も勝手にステージング環境が最新になる。デザインが変わっただけでも頻繁にデプロイされるので問題点などが議論し易い。(特にスマホサイトは実機からアクセス出来る環境があると便利。) 最近はデザイナー
CI(継続的インテグレーション)ツールの決定版、Jenkinsのすべてを解説する書籍です。インストール、サーバーの設定、ビルドジョブなどの基礎から、セキュリティ、コード品質、分散ビルドや自動化デプロイと継続的デリバリといった高度なトピックまで、Jenkinsを使いこなすのに必要な情報を網羅しています。さらに日本語版ではPlay! Frameworkを例としてJenkinsのプラグイン開発の手法を付録として収録。品質の高いソフトウェアを開発したいすべての開発者必携の一冊です。 目次 日本語版に寄せて 訳者まえがき はじめに 1章 Jenkinsの紹介 1.1 はじめに 1.2 継続的インテグレーションの基礎 1.3 Jenkinsの紹介(旧名Hudson) 1.4 HudsonからJenkinsへ――その略史 1.5 JenkinsとHudsonのどちらを使うべきか? 1.6 自分の組織への
Misoca開発チームの黒曜(@kokuyouwind)です。 最近PS VRを買いました。画像は夏にSony StoreのPS VR体験会へ行った際、スタッフの方が撮ってくださった写真です。 OculusやViveと比べると解像度は低めですが十分な没入感がありますし、なによりアイマスやVOCALOIDなどのキャラクターコンテンツが色々あるのは強いですね。 PS VRはいいぞ。 rspec-queueからrrrspecへの移行 MisocaではJenkinsを使ってCIを回しています。 またrspecでテストを書いており、Jenkins上では時間短縮のためにrspec-queueを使って並列実行していました。 しかし、テストが増えるにつれてrspecの実行時間が長くなってしまい、CPUコア数やメモリの制約で1ノード内での並列数も限界になっていました。 このため、ビルド時間の短縮を目的にrr
Jenkins2.0でてた Jenkins2.0がでてた。 https://jenkins.io/2.0/ ざっくりと概要を見ると、主な変更点は次の3つらしい。 Built-in support for delivery pipelines. Improved usability. Fully backwards compatible. 2に関しては、単純に見た目が良くなったよってこと。嬉しい。 3に関しては、後方互換性あるよってこと。幸せ。アップデートしない理由は理由ありませんということ。 1が気になる。 Jenkinsに感じてた不満点 Jenkinsって基本的にUIで設定をしていくから、面倒だなって思ってた。 ちょっと変更したいだけなのに、わざわざポチポチと...。 そもそもUI自体もそんなに良くはなかった。(jenkins1.6あたりからだいぶマシになったけど) あと、同じような設定
Eclipse, Jenkins, Apache Ivyを使ったプロジェクトにおける開発からデプロイまでの流れを図に描いてみました。 図では書き表せないことがありますね。テスト実行時のクラスパスは実行時ライブラリを含むとか、図で描くとカオスになります。GUIツールでビルド設計するのは意外と難しいのかもしれません。 ビルド設計する上で考えたことを書き出しておきます。何かアドバイスがあったら教えていただけると嬉しいです。 開発環境 WindowsでEclipseを使う。 Eclipseのプロジェクト構成で適切なビルドパスを設定する。 依存ライブラリはApache IvyDEプラグインで管理する。 依存ライブラリはMavenリポジトリから取得する。リポジトリ候補にはビルドサーバ上のキャッシュを含める*1。 他プロジェクトへの参照はEclipseのProject Referenceを設定する。 ク
継続的インテグレーション(CI)ツールとして有名なJenkinsは、ソフトウェア開発におけるテストやビルドと言った作業を自動化するツールだ。本記事ではJenkinsの最新版となるバージョン2系で正式に導入された、パイプライン機能を使ったビルド/テスト環境の構築を紹介する。 CIツールと「Jenkins」 ソフトウェア開発の現場において、そのテストはソフトウェアの設計やコーディングと同じくらい重要な過程である。近年のWebアプリケーションやスマートデバイス向けアプリケーション開発ではアプリケーションのリリース間隔が短くなっている傾向があり、そのためテストもより迅速かつ頻繁に行わなければならくなっている。そういった環境で有用なのが、継続的インテグレーション(CI)ツールだ。 CIは、元々は「ソフトウェアの開発コストを下げるためには開発の初期から頻繁にテストを行ってフィードバックを行うべき」とい
CI, Jenkins という単語を日に日に身の回りで聞くことが多くなったように感じています。 WEB+DBなどにも何度か特集が組まれていたりして、知名度が徐々に上がっているのでしょうね。 ここでは、Jenkins を CentOS 6 にインストールする手順を説明します。 前提条件 Jenkins を動かすためには、Java 6 以上があらかじめインストールされている必要があります。また、本稿のインストール手順では wget コマンドを利用しますので、インストールされていない場合は、予めインストールしておいてください。 お急ぎの方は、つぎのコマンドを叩けば wget と Java 7 がインストールされます。 # yum install wget java-1.7.0-openjdk Java の詳しいインストール手順は、下記の記事を参考にしてください。 CentOS/RedHat に
(1ヶ月前くらいの話だけど)解決できたからメモっておく。私のケースは、あまりにもしょーもない恥ずかしい話で、インターネッツに事例が見つからなかったので晒しておこうと思います。 以下、時系列に書いていきます。OSは Ubuntu 14.04 LTS でござる。 Jenkinsのインストール # apt-get install openjdk-7-jre openjdk-7-jdk # wget -q -O - https://jenkins-ci.org/debian/jenkins-ci.org.key | sudo apt-key add - # sh -c 'echo deb http://pkg.jenkins-ci.org/debian binary/ > /etc/apt/sources.list.d/jenkins.list' # apt-get update # apt-ge
今日から始めるJenkins CI(PHP, Windows, XAMPP使い向け) 2011/05/26 ざっくり言うと、継続的インテグレーションの最大の利点はリスクが軽減されることにある。以前に経験したことがあるプロジェクトでは、長期のプロジェクトの終わりの段階になっても、実際に終わってみるまで、それがどれくらいの長さになるのか見当もつかなかった。(出典:Continuous Integration / Martin Fowler) 今週雨が続いて「もう梅雨かあ」とボケボケな事を考える程度には田舎者の@remoreですこんばんは。もうこっちで暮らして10年は経つんですけどね。 さて、この前「アジャイルプラクティス」を読了して、アジャイルの魅力に取りつかれ始めています。2ヶ月前にまとめたPHPのテスティングフレームワークとBDD(ビヘイビア駆動開発)について調べた。で少し取り上げたJen
Jenkinsで静的コード解析を常時自動化する手法が公開されていたのでメモ。 これは使い道があると思う。 【元ネタ】 Twitter / akipii: テスト自動化ができなくても静的コード解析を回帰テストのように使うのは効果的という指摘。ガラクタのレガシー資産プロジェクトで有効かもしれない。Jenkinsを使って継続的に静的コード解析をさせる - suzukijの日記 http://goo.gl/rpTq7 Jenkinsを使って継続的に静的コード解析をさせる - suzukijの日記 Twitter / akipii: Antのbuild.xmlをSonarが読み込んでソースの各種メトリクスを出力し、更にJenkinsと連携してCronのように使う手法。SonarがMavenだけでなくAntも使えると便利。Ant,Jenkins,Sonarの導入手順 http://goo.gl/wXJ
Jenkinsのジョブ1つに対して複数のGitリポジトリを登録してビルドする方法について調べたのでメモ。簡単にできると思いきや意外とハマってしまった。。。 確認した環境 Jenkins 1.456 Jenkins Git Plugin 1.1.16 Jenkins Multiple SCMs plugin 0.2 Jenkins Git Pluginのみではできない!? まずはJenkins Git Pluginの設定のみでできないか試してみたのだが、残念ながらこの方法は失敗。一応設定方法を紹介すると以下の通り。 ジョブの設定で、ソースコード管理システムにGitを選択しつつ、Repository URLにGitリポジトリのURLを設定する。 さらに、Repository URLの下にある追加ボタンをクリックするとRepository URLの入力項目を増やすことができるので、ここに別プロジ
さくさく行きます。 前提条件 Jenkins, Gitレポジトリのあるサーバー共にUbuntu Server 11.10 (64bit) です。 Gitレポジトリの管理にはgitosisを使用します。 git clone, pullにはsshを使用するので公開鍵登録を行います。 sshのポートは標準の22ではなく10022を使用します。 Jenkinsのインストールとセットアップ 公式ページ ( http://pkg.jenkins-ci.org/debian/ ) を参考にしつつPPAを追加してapt-get installします。 Gitのプラグインも一緒にインストールします。 $ wget -q -O - http://pkg.jenkins-ci.org/debian/jenkins-ci.org.key | sudo apt-key add - $ echo "deb http:
The ‘as code’ paradigm is about being able to reproduce and/or restore a full environment within minutes based on recipes and automation, managed as code. Setting up Jenkins is a complex process, as both Jenkins and its plugins require some tuning and configuration, with dozens of parameters to set within the web UI manage section. Jenkins Configuration as Code provides the ability to define this
開発支援ツールを提供するテクマトリックスが2017年3月21日、米クラウドビーズ(CloudBees)が開発するCI(継続的インテグレーション)ツール「Jenkins Enterprise」の国内提供を始める。クラウドビーズでCTO(最高技術責任者)を務める川口耕介氏は、Jenkinsを2011年2月にオープンソースソフトウエア(OSS)として公開した開発者。いわばJenkinsの生みの親だ。 Jenkinsはソースコードからプログラム実行ファイルへの変換、プログラムのテスト、性能評価、サーバーへの展開などを自動化させるCIツール。1200以上のプラグインが公開されていて、多くの開発ツールやクラウド基盤を関連付けて開発作業を自動化できる。 Enterprise版はOSSの反省から Jenkins利用者の頭を悩ませるのが、Jenkinsの運用だ。プラグインは動作確認が不十分で、組み合わせによ
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く