[OSSを理解する]

Web/APサーバー、DBMS、開発支援ソフトウェアのOSS鳥瞰図【第4回】

2017年5月19日(金)小磯 俊一郎(日本OSS推進フォーラム クラウド技術部会)

IT Leadersは2012年5月に「OSS鳥瞰図」を作成・公開した。様々あり多岐にわたるOSSを鳥の目で俯瞰的に理解できるように、という意図で作成したものだ。しかしOSSの進化は急ピッチである。そこに問題意識を持った日本OSS推進フォーラム クラウド技術部会が完全リニューアルし、「OSS鳥瞰図2017年α版」を作成した。今回は「Web/AP サーバー、データベース」および「開発支援」のカテゴリを解説する。

開発言語、開発支援ツール

 2016年度α版のOSS鳥瞰図では「開発環境」を以下の7つのサブカテゴリに分けています。

  • 統合開発環境/ビルド支援
  • バージョン管理
  • プログラム言語
  • 開発フレームワーク
  • 帳票ツール
  • プロジェクト管理
  • テストツール
「OSS鳥瞰図2017年α版」より、「開発支援」の部分を抜粋
拡大画像表示

 この中から開発言語、プロジェクト管理、テストツールのOSSを中心に説明します。

 プログラム言語に関するクラウド技術部会の調査で使用頻度大となっているのが「Perl」「PHP」「Python」です。冒頭で説明したLAMP(LAPP)の4文字目の“P”を構成する要素であり、Webアプリケーションを開発するのに適した言語として広く認知/利用されています。OSSを利用したWebアプリケーションの開発を始めるなら、このあたりの言語スキルの習得は必須でしょう。

 もう一つ紹介しておきたいのが日本で開発されたオブジェクト指向スクリプト言語「Ruby」です。Webアプリケーション開発との相性もよく、日本だけでなく海外でも人気が高いのが特徴です。LAMPの“P”をRubyの“R”に置き換えた、「LAMR」という言葉も使われ始めています。Rubyを使ったアプリ開発のフレームワークである「Ruby on Rails」も提供されているので、こちらもセットで知っておくとよいでしょう。

 次にプロジェクト管理です。OSS鳥瞰図ではプロジェクト管理のサブカテゴリには「Bugzilla」「Mantis」「OpenProj」「Redmine」「Trac」の5つを載せています。この中で、Javaで開発されたデスクトップアプリケーションであるOpenProj以外の4つはすべてWebベースのツールであり、それぞれ先ほど紹介した以下の言語(環境)で開発されています。

  • Bugzilla :Perl
  • Mantis :PHP
  • Redmine :Ruby on Rails
  • Trac :Python

 一例としてRedmineについて紹介します。Redmineは、もともとシステムのバグ修正管理を目的としたツールでした。バージョンアップを重ねるごとに様々な機能が追加され、現在ではシステム開発作業全般に適用することが可能となっています。

 Redmineでは、開発作業のプロセスにおける個々のタスクを「チケット」という単位で管理します。このチケットの一つひとつに担当者やステータスの情報を付加して可視化することで、プロジェクトの作業全体を把握してマネージします。

 チケットの状態は一覧表示のほか、ガントチャートやカレンダなど複数のビューで確認することができます。公式サイトにオンラインデモが用意されています(図2)。この種のツールを未導入のシステム部門には試行してみることをお勧めします。

図2 Redmineの画面例
拡大画像表示

 テストツールのサブカテゴリについて紹介します。アプリケーション開発において必ず通るパスがテスト工程であり、それはOSSの開発でも同じです。一方でテストは開発を担うエンジニアから見ると簡略化したい、自動化したい工程でもあります。こういったニーズに応えて様々なテストツールが登場しているわけです。

 OSS鳥瞰図では13種のOSSを記載していますが、ここでは「Jenkins」を例にします。JenkinsはJavaベースで開発された継続的インテグレーション(CI:Continuous Integration)ツールであり、テストの自動化に特徴があります。

 ソフトウェアの開発では、プログラムを記述した後、ライブラリを組み込んだりして実行可能なコードを作ります(ビルド)。それをテスト環境でテストし、問題がないことを確認したら、本番環境にコードをセットアップします(デプロイメント)。インスペクション(検査)を経て本番稼働します。

 これは一般的な開発プロセスですが、今日では日々、同時並行でこのプロセスを繰り返す必要があります。Webのサービスが典型例で、何らかの不具合、あるいは機能向上の対応をできる限り短時間で実施しなければなりません。できなければ利用者が離れてしまうからです。そこで生まれたのが継続的インテグレーションという考え方であり、ビルド、テスト、デプロイを自動化するJenkinsなどのCIツールです。

JenkinsはJavaの実行環境さえあれば間単に導入することができます。ただし限界もあり、複雑なテストや大規模システムのテストを自動化するには一気に難易度が上がるので必ずしも適しません。読者の企業のプロジェクトに導入する際は、十分な計画を立てた上で実践されることをお勧めします。

◇ ◇ ◇

 今回は対象となるカテゴリ数が多く、個々のOSSについて深く解説するまでには至らなかった部分もありますが、今後のご参考にしていただければ幸いです。また、今回取り上げた各種OSSは、クラウド技術部会での調査結果にもとづき、筆者の主観で主要と思われるものをピックアップしています。どのOSSも公式ドキュメントをはじめ、Web上では数多くの情報が公開されています。実際に導入を検討される際は、それらの情報も忘れずに参照することが大事です。次回(第5回)「セキュリティ」にスポットを当てます。

筆者プロフィール

小磯 俊一郎
日本OSS推進フォーラム クラウド技術部会メンバー
富士通 OSS技術センター マネージャー 

バックナンバー
OSSを理解する一覧へ
関連記事

Special

-PR-

Web/APサーバー、DBMS、開発支援ソフトウェアのOSS鳥瞰図【第4回】 [ 2/2 ] IT Leadersは2012年5月に「OSS鳥瞰図」を作成・公開した。様々あり多岐にわたるOSSを鳥の目で俯瞰的に理解できるように、という意図で作成したものだ。しかしOSSの進化は急ピッチである。そこに問題意識を持った日本OSS推進フォーラム クラウド技術部会が完全リニューアルし、「OSS鳥瞰図2017年α版」を作成した。今回は「Web/AP サーバー、データベース」および「開発支援」のカテゴリを解説する。

PAGE TOP