Jenkins

開発ツール「Jenkins」や関わるエンジニアの特徴について解説した記事です。会話形式のやさしい文章で「Jenkins」の用語のイメージを紹介した後に、採用に役立つJenkinsの知識を解説しています。

1分で分かる!Jenkinsとは?

ジャバ―ド先生、大変!!

ことりん君、今日はどうしたの?

ダチョウさんが運営している「だちょうのたまごオンラインショップ」を覚えている??

もちろん!インフラ(サーバー)エンジニアとか組み込みエンジニアのことを話したよね。

そうそう!それでね、その「だちょうのたまごオンラインショップ」なんだけど、どうやらダチョウさんとこのエンジニアさんが間違って開発用のプログラムを本番環境に構築しちゃったみたいなんだ!!

あぁ、それはよくないね。ダチョウさん大丈夫かな?

ひとまずはオンラインショップを停止して、メンテナンスしているらしいんだけどね。こういうトラブルを防ぐためにはどうすればいいんだろうね…。

人の手で作業する以上、どんなに気を付けていても間違いは必ず起こってしまうものだからね。最近では、構築のような定型かつリスクが高い作業は、Jenkins(ジェンキンス)を使って自動化しちゃうってのがスタンダードだね。

Jenkins??

そう!Jenkinsっていうソフトウェアを使えば開発に関する様々なタスクを自動化することができるんだ。オープンソースソフトウェアだから誰でも無料で使えるんだよ。

無料で使えるのはとってもありがたいね!でも、自動化って具体的には何ができるの??

プログラミング言語によっては、構築をするときに「ビルド」という作業が必要なんだ。ビルドっていうのは、エンジニアが書いたプログラムをコンピュータがわかる言葉に変換してあげることだよ。ビルドによって作成されたファイルを、サーバーにアップすると作成したプログラムがサービスに反映されるという流れなんだ。

ふむふむ。

ただ、これを毎回手作業でやるのはとっても大変だし、作業を誤ってしまうリスクもあるよね。たとえば、ビルド対象のプログラムを間違ったり、アップする先を間違ったり…。

急いでいるときは、確認がおろそかになることもあるもんね。

そうだね。こういう作業をすべて決められたとおりに自動的に実行できるのがJenkinsなんだ。たとえば、あらかじめ決められた時間(たとえば1時間ごと)にxxxのプログラムのビルドを行って、その結果作成されたファイルをxxxにアップする…といったことができるようになるんだよ。

なるほど!それなら間違いが起きなさそうだね!

作業を行うトリガーは時間だけじゃなくて、「プログラムに変更が入った場合」という設定も可能なんだ。だから、プログラムを修正したら自動的に環境へ反映させるということもできるよ。

それは便利だね。Jenkinsっていろいろできるんだね。

そうなんだ。Jenkinsはエンジニアにとって無くてはならないツールになりつつあるんだ。ビルドの自動化だけじゃなくて、「ビルドの前にテストコードを実行してNGがなければビルドを実行する」とか「ビルドの前にプログラムを解析して、コーディングルールに違反しているものがなければビルドを実行する」といったこともできるから、品質面もチェックすることができるしね。

そんなこともできるんだ!そうすればバグや問題があるプログラムを反映することはなくなるね!

構築って単純な作業に見えて結構大変なんだよね。Jenkinsを使えば、構築にかかる時間はもちろん、作業で発生するリスクも減らせるから、ダチョウさんにも教えてあげるといいよ!

ジャバ―ド先生ありがとう!ダチョウさんのところにいってくる!

いってらっしゃい!

Jenkinsとは?採用に役立つJenkinsの基礎知識

Jenkinsとは、開発の構築という工程に関わる作業を自動化・高速化するためのツールです。Jenkinsは、オープンソースソフトウェアであり、Linux Foundationという組織が管理しています。

昨今、ビジネスのスピードは加速度を増しています。そのため、ビジネスを推進するための重要な要素であるITシステムの開発もスピードが求められています。そのため、以前と比較してもテストやビルドといった作業を頻繁に行う必要が増えている状況です。

Jenkinsを活用することで、上記のようなテストやビルドにかかる作業を自動化し、より速く、そしてより正確に構築を実施することができます。

Jenkinsを使うエンジニア

前述のとおり、Jenkinsはソフトウェアのビルドや構築を目的としたツールです。そのため、サービスやシステムの開発に携わる多くのエンジニアがJenkinsを利用します。ただし、最近ではJenkinsを活用してインフラ構築を自動化するケースも増えています。こちらを考慮すると、アプリケーションやインフラといった分野を問わず、すべてのエンジニアが使う可能性があるツールといえるでしょう。

Jenkinsを使うエンジニアの特徴と在籍業界

前述のとおり、Jenkinsはエンジニアにとってはメジャーなツールです。そのため、特筆すべき特徴はありません。

そのため、Jenkinsを使用するエンジニアが在籍している業界も幅広いといえます。その中でもビジネスおよびアプリケーション開発にスピードが求められるWeb業界、スマホゲームを含むスマートフォンアプリ業界などは、Jenkinsがよく利用されています。

採用する時に知っておくとよいこと

Jenkinsは、さまざまなことができる奥が深いツールです。もちろん、エンジニア全員がJenkinsのスキルを持っているに越したことはありません。ただし、一般的にはJenkinsの導入はインフラエンジニアが行います。また開発環境であればJenkinsのスキルを持つエンジニアが行うこともあります。

そのため、Webエンジニアなどのような開発を担当するエンジニアについて、Jenkinsの概要を把握しておく必要はあるものの、細かいところまで把握しておく必要性は低いといえます。

このあたりは求めているポジションや想定されるタスクにもよりますので、都度確認するようにしましょう。

求人のポイント

求人を作成する時は、下記の内容を求人に入れるとよいです。

1システム(サービス)の詳細
※特にそのシステム(サービス)をなぜ作っているのかを熱量をもって記載する。
2開発環境
3現在のエンジニア組織の体制
4現行システムの課題と募集の背景
5求められる業務と期待値
6エンジニアとしてのスキルアップ支援制度の有無と詳細
7エンジニアチーム内での相互成長のための仕組み(勉強会やLT会など)の有無と詳細
8選考フロー
9待遇
10キャリアパス

Jenkinsの豆知識

Jenkinsを開発したのは日本人

Jenkinsはいまや、世界的に有名なツールです。地球上のあらゆるプロジェクトでJenkinsは利用されています。このJenkinsを開発したのは、実は日本人エンジニアの川口耕介氏です。日本のIT業界は世界と比較すると数周遅れだといわれることもありますが、日本人であっても世界に評価されるソフトウェアをつくれることを証明しています。

https://twitter.com/kohsukekawa

Jenkins関連のイベント 

Jenkins関連のイベントとしては下記のようなものがあります。

関連記事

  1. Redis

  2. CircleCI

  3. scikit-learn

  4. REST-API

  5. Solaris

  6. Bash