SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

特集記事

軽くて使いやすい仮想化技術 「Docker」の仕組みと
エンタープライズ開発における4つの活用事例


なぜエンタープライズ開発にDockerを採用したのか

 ここからは、筆者が在席するワークスアプリケーションズにおけるDockerの活用事例を紹介します。

 当社は、エンタープライズ向けのERPパッケージ「COMPANY」の開発を行っています。エンタープライズ向けの製品を提供する中で、エンタープライズ向けゆえの複雑さに伴う、様々な課題に直面してきました。ここからは、Dockerを用いることで課題を解決できた事例を紹介します。

2つの課題

 本記事で紹介する解決事例は、次に示す2つの課題を対象としたものです。

課題①「複数製品・複数バージョンの開発および保守」

 エンタープライズ向けゆえの課題として、開発や保守を行う製品の多さがあります。COMPANYには人事給与から会計、サプライチェーンマネジメントと様々な製品をラインアップしており、当社のWebサイトに掲載しているものだけでも19製品あります。加えて、開発中の製品も多数あります。

 加えて、お客様によってバージョンアップのタイミングが異なることもあり、1製品につき、複数バージョンを保守しなくてはなりません。

 こうした事情による複雑な開発・保守環境は、当社が抱える長年の課題の1つでした。

課題②「複数拠点での開発」

 当社では、同じ製品を複数の国で共同で開発しています。そのため、開発者が使用するEclipseやTomcatの構成を同じにするほか、データベースやソースコード管理など共有で使うものは、各拠点間で同期を取りながら運用していく必要があります。この「複数拠点における同期」を簡単に行う仕組みを、長年模索していました。

 これらの課題に対し、開発から評価までの各フェーズにおいて、Dockerを取り入れた仕組みを解決策として導入しました。以下がその事例です。

解決事例①「継続的インテグレーションの利用」

 当社ではGitLabJenkinsを連携させて、継続的インテグレーション(以下CI)を行っています。

継続的インテグレーション
継続的インテグレーション

 

 よくあるCIですが、複数バージョンが絡んでくると複雑になってきます。また、過去のバージョンに修正が発生した場合、テスト環境の関連ライブラリにバージョンの不一致が発生することで、テストに失敗することがありました。

複数バージョンが絡んでくると複雑に
複数バージョンが絡んでくると複雑に

 

 解決策には、仮想環境を使う方法や、古いバージョン用にテスト環境を構築する方法がありますが、準備やテスト処理に時間がかかってしまいます。

 この問題に対し、各バージョンごとの環境をDockerイメージとして用意しておき、Jenkinsがテスト時に対応バージョンのDockerイメージを起動して、そのコンテナ内でビルドやテストを行うという仕組みに変更しました。この結果、ソースコードのバージョンに対応した環境を用意することができました。さらに、環境の起動が速いため、マージリクエストを素早く処理することも可能なりました。

Dockerを使うことで解決
Dockerを使うことで解決

次のページ
解決事例②「評価環境利用」

この記事は参考になりましたか?

特集記事連載記事一覧

もっと読む

この記事の著者

遠藤 博樹(エンドウヒロキ)

株式会社ワークスアプリケーションズ Advanced Technology&Engineering Div.所属。製品や社内システムに対するインフラ研究を担当し、製品のクラウド化や開発用システムの分散化など製品の品質向上や開発者の生産性の向上を目的に、インフラからの視点で新しい技術を社内に取...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

秋吉 真衣(アキヨシマイ)

株式会社ワークスアプリケーションズ Advanced Technology&Engineering Div.所属。クラウド運用研究グループにて自社の新サービスである「CCMS」の開発・導入支援を担当。クラウド上での自社製品の運用の汎用化・自動化を進める中で、自動化ツールの開発や周辺技術の調査・検証な...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/7894 2014/07/24 16:46

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー