この記事では、日本でよく使われる代表的なOSS(オープンソースソフトウェア)を体系的にまとめることを目的としている。
プログラミングのソースコードを広く一般に公開し、誰でも自由に扱って良いとされるソフトウェアのこと。インターネットを通じて、簡単に入手することが出来、誰でも無償で自由に使用、複製、再配布、自分で開発したコードへの組み込みが可能である。
日本OSS推進フォーラムのクラウド技術部会が作成した『OSS鳥瞰図2019版』をもとに、各OSSについて簡単な解説をしている。また、各OSSの公式サイトへのリンクも付けているため、参考にして欲しい。
なお、プログラミングスキルを向上するためには、独学では限界がある。Udemyという教育プラットフォームではIT系のオンライン講座が豊富にそろっているので、参考にしてみてほしい。
目次
デスクトップ・業務アプリケーション
デスクトップ
Big Blue Button
遠隔教育のためのWeb会議システム。最大接続数は200名程度。音声通話、PC画面やメモの共有、チャットルームなどの機能を備えている。
Firefox
世界で最も使われているWebブラウザーの一つ。自由度が高いのが特徴。
Thunderbird
Mozillaが主となり開発を進めているオープンソースの高機能メールクライアントソフトウェア。「タブ表示」「アーカイブ機能」「Gmail連携」「チャット機能」「ニュースクライアント機能」「高いカスタマイズ性」などの特徴がある。
BA・BI
Pentaho
オープンソースのBIツール。レポーティング、インタラクティブ(対話型)分析、ダッシュボード、データ統合/ETL(Extract/Transform/Load)、データ・マイニング、その他、BIプラットフォームとBIに必要なすべての機能が用意されております。
グループウェア
Zimbra
メッセージ&グループウェアのソリューションシステムです。エンタープライズクラスのメール/カレンダー/コラボレーション機能を提供しています。
クライアント側とサーバ側両方のコンポーネントを含んでいます。
オフィススイート
Apach OpenOffice
OpenOffice.orgの後継プロジェクトの一つであり、IBM LotusSymphonyの後継プロジェクトでもあります。Microsoft Offieceとの互換性があり、基本的な操作方法はほとんど変わらないです。
人事・給与
Mosp
国産ベンダーが開発している勤怠管理システム。
Web・APサーバー
Web・APサーバー
Apache Tomcat
Javaのアプリケーションサーバー。Servlet, JSPの参照実装。商用のアプリケーションサーバに劣らない性能、信頼性を持つ。WebコンテナのみでEJBコンテナは含まない。
Apache HTTP Server
全世界の約半数で使用されている実績のあるWebサーバー。世界中で最も人気の高いWebサーバソフトウェアの一つ。
データベース
RDBMS
MariaDB
MySQLの派生として開発されているRDBMS。セキュリティ面やパフォーマンスがMySQLよりも向上しており、今後採用が増えていくと見込まれています。
MySQL
元々はSunMicroSystemsのDBだったが、OracleがSUNを買収。
DB管理
phpMyAdmin
webブラウザ画面でMySQLデータベースを管理するソフトウェア。画面構成がシンプルで操作が簡単に出来るのが特徴。
運用管理
運用監視
Nagios
サーバー内部にインストールされたNagios本体、またはリモートサーバー内のエージェントやSNMP情報を利用し、リソース使用量やプロセス稼働状態などの監視を行うシステム監視ソフトウェア。C言語で開発されており、LinuxもしくはUNIXで動作させることができる。
OpenNMS
エンタープライズレベルのネットワーク監視ツール。特徴は、ネットワークリソースの監視とは異なりWeb/DHCP/DNS、そしてデータベースアクセスなどのサービスを対象としていること。
Sensu
システム監視の自動化を目的としたフレームワーク製品で、Nagiosの問題点の改善を基本コンセプトとして開発されており、Nagiosとはプラグインなどで互換性を持っている。Rubyで作成されており、モニタリングツールとして大量のデータを監視処理できるように設計されている。
SyslogNG
オリジナルのsyslogdの機能はもちろんのこと、リッチなフィルタリング機能や柔軟な設定オプション、TCPでのログ転送など、さまざまな機能がサポートされている。
ネットワークモニタリング
Cacti
サーバーやネットワーク機器のリソース使用状況のグラフ化を、インストール後の基本設定のみで行うことができる。PHPで開発されており、PHPが動作するプラットフォームであればLinux以外の商用UNIX/Windows OSでも稼働させることが可能。収集・集計した監視データはApacheなどのHTTPサーバーを経由しブラウザーでアクセス。収集したデータはRDB(デフォルトはMySQL)に格納する。
RRDTool
時系列データ用の高性能な「データロギング」および「グラフ作成」ツール。「ネットワーク帯域幅」「温度」「CPU負荷」などのあらゆる種類のデータソースから収集した時系列データを処理することを目的としている。
Wireshark
ネットワークデータを分析、表示するプロトコルアナライザー。Windows、MacOS、Linuxなどで利用できるため、ネットワーク分析の定番ツールとなっている。
Zenoss
Pythonで実装されたシステム管理ソフトウェアで、WebベースのUIを備えているのが特徴。システムの可用性やパフォーマンス、イベント、設定などをWebブラウザから管理・監視できる。問題検出や問題の自動解決、障害管理、アラート、レポートなどの機能を持ち、プラグインによる拡張も可能。
負荷分散
HA Proxy
ロードバランサーやリバースプロキシとして利用できる多機能プロキシサーバ。負荷分散においてはラウンドロビン方式だけでなく、様々な負荷分散アルゴリズムの定義が出来ます。
Webサイト構築
CMS・ポータル
WordPress
CMS(Contents Management System)の一種でブログ更新のためのソフトウェア。PHPとMySQLで構築されている。プラグインが多く、プログラミングの知識が無くても拡張性の高いサイト構築が出来る。
eコマース
EC-CUBE
日本の株式会社EC-CUBEが開発するEC向けのコンテンツ管理システム。日本国内で開発されているため、海外製のソフトウェアよりも自然な日本語表記となっています。ただし、機能はやや少なめです。
ビッグデータ
データ収集
Talend
多くの企業に利用されている企業データの統合プラットフォームです。単一のアプリケーションでオンプレミスとクラウド両方のデータ収集・変換・共有などが可能になっています。
Revolution R open
Revolution R openはデータ分析ツールです。R言語のデメリットである処理の重さを解消した点が特徴です。
分散処理
Apache Hadoop
大規模データを分散処理するためのミドルウェア。Java言語で開発されている。また、ペタバイト級のデータを処理することが出来る。
Apache Spark
Hadoopの後発として期待されるビッグデータ処理基盤。
検索エンジン
Elasticsearch
Elastic社が開発する全文検索エンジン。
AI
機械学習
APACHE MLlib Spark
Apache Sparkは分散メモリRDDを活用することで、特定のデータに対する繰り返し処理に向くアーキテクチャーです。
MLlibはその特徴を活用して機械学習を実装することで、高速な学習処理を実現しています。MLlibは現在もビルドインの機械学習アルゴリズムを増加させており、実用的な機械学習用途でも十分に活躍できる存在となってきています。
CoreML
Appleが開発した機械学習のためのフレームワークです。機械学習モデルの仕様はオンデバイスで完結させることができ、さらにCreateMLというフレームワークを使うことで簡単に機械学習モデルを作成出来ることが特徴です。
Jubatus
Jubatus(ユバタス)はオンライン機械学習向け分散処理フレームワークです。
株式会社Preferred NetworksとNTTソフトウェアイノベーションセンタが共同開発した、日本発のオープンソースプロダクトです。
最終的に全ての人にスケーラブルなオンライン機械学習フレームワークを提供することがJubatusの目標です。
ディープラーニング・フレームワーク
Apache MXNet
Pythonを含めた複数のプログラミング言語から利用できる深層学習フレームワークです。ワシントン大学とカーネギーホール大学によって開発されました。
命令的にも宣言的にも(TensorflowのようにもPyTorch/Chainerのようにも)書ける非常に柔軟なライブラリです。様々な深層学習モデルをサポートしており、非常に人気があります。
Caffe2
FaceBookが発表したオープンソースフレームワーク。ディープラーニングを使っての人工知能の構築と実行には通常、スパコンやデータセンターが必要だが、Caffe2を使えばそうしたインフラなしにディープラーニングを使えるとされています。
Chainer
ニューラルネットワークの計算及び学習を行うためのオープンソースソフトウェアライブラリ。バックプロパゲーションに必要なデータ構造をプログラムの実行時に動的に生成する特徴があり、複雑なニューラルネットワークの構築を必要とするディープラーニングで用いられる。
Pytorch
Python向けのオープンソース機械学習ライブラリで、Facebookの人工知能研究グループにより初期開発されました。比較的新しいライブラリですが、海外のコミュニティが活発で、日本でも人気が急上昇しています。
OS、仮想化、クラウド
OS
Android
Google社が提供するオペレーティングシステムの一つ。主にスマートフォンやタブレットで使用されている。
CentOS
セント オーエス。Red Hat Enterprise Linuxをベースにして作成されたLinuxディストリビューション。
FreeBSD
UNIX系OSの一つ。負荷が高まっても誤作動や停止が起こりにくい高い安定性が評価されており、大規模なサーバなどでの採用例が多い。
Ubuntu
ウブントゥ。高い完成度と使いやすさを誇る、世界で人気No.1のLinuxディストリビューション
サーバ仮想化
Docker
コンテナ仮想化を用いてアプリケーションを開発・配置・実行するためのソフトウェア/プラットフォーム。OSレベルの仮想化により、アプリケーションを開発・実行環境から隔離し、アプリケーションの素早い提供を可能にする。
KVM
KVM (Kernel-based Virtual Machine:カーネルベースの仮想マシン) は、Linuxに組み込まれたオープンソースの仮想化テクノロジーです。
具体的には、KVM を使用すると、Linux をハイパーバイザーに変貌させることができます。
これによりホストマシンは、ゲストや仮想マシン (VM) と呼ばれる複数の独立した仮想化環境を稼働させることができます。
Xen
コンピュータを仮想化し、複数のOSを並行して動作させられるようにする仮想化ソフトの一種。仮想化のオープンソースソフトウェアとしてのシェアは縮小傾向にあります。
ストレージ仮想化
Ceph
単一の分散コンピュータ・クラスター上でオブジェクトストレージを実装したフリーソフトウェアのストレージプラットフォーム。
オブジェクト、ブロック、ファイルレベルのストレージインタフェースを提供し、単一障害点がなく、エクサバイトレベルまで拡張可能な、フリーで利用できる完全な分散オペレーションを主な目的としている。
Gluster
スケーラブルなストレージのための汎用分散ファイルシステムの1つ。
InfiniBandのRDMAやTCP/IPなどのインターコネクトを使用して複数のホストに分散した各種ストレージを集約し、大規模並列ネットワークファイルシステムを構築できる。
ネットワーク仮想化
Open vSwitch
オープンソースで開発されているOpenFlowをサポートする仮想スイッチ。
仮想環境での仮想スイッチとしての役割を果たす。Linux標準のBridge機能に代わる機能を持つ。エンタープライズレベルの機能を提供することで注目を集めている。
Open Daylight
最も普及しているオープンソースのSDNコントローラ。
コントローラベース コード以外にも、フレームワークとして関連する機能(コントローラ アプリケーション、Southbound Protocol Plugin、ネットワーク仮想化プラットフォーム等)を既存のオープンソース技術を活用して開発されています
IOT
KNIME
データ連携・統合・分析を行うことができるエンドツーエンドのデータ分析プラットフォーム。2000を超える分析モジュールが用意されており、専門知識がなくても高度な分析が可能になっている。読み方は「ナイム」。
開発支援
開発言語
Perl
パール。UNIXやWindowsなど多種のプラットフォームの上で動作するインプタリ方式のプログラミング言語。
PHP
コミュニティベースで開発されている汎用的プログラミング言語。サーバーサイドで動的なウェブページを作成する機能を多く備えている。
開発環境
GanttProject
ガントチャート作成に特化したOSSプロジェクト管理ツール。Java製。複数人でのプロジェクト管理に向いている。
プロジェクト管理
Redmine
オープンソースのプロジェクト管理ソフト。スケジュール管理、課題管理、バグトラッキング、Wikiなど、プロジェクト管理に必要な機能が揃っている。タスクのことを“チケット”と呼び、一覧で管理できるのが特徴。
テストツール
Selenium
Webアプリケーションのテスト自動化を実現するブラウザ駆動型のソフトウェア。Webベース管理タスクの自動化に利用可能。
EMMA
Javaプログラムのカレッジツールの一つ。実際にアプリケーションを稼働させながら、カバレッジを収集できるのが特徴。
バージョン管理
Apache Subversion
Apache Subversionは、プログラムのソースコードなどを管理する集中型バージョン管理システムの一つ。
セキュリティ
ID管理
FreeIPA
FreeIPAはMicrosoftのActive Directoryと同様に、アカウント管理と集中認証を提供するLinux用のオープンソースセキュリティソリューションです。
FreeIPAは、389 Directory Server、MIT Kerberos、SSSDなどの複数のオープンソースプロジェクトの上に構築されています。
SSL・VPN・SSH
OpenVPN
OpenVPNはSSL/TLSをベースに各種機能を組み合わせたオールインワン型のSSL VPNです。
ファイルサーバー、メールサーバーなど
DNS・DHCP
BIND
世界で最も多く利用されているDNSサーバー。DNSサーバとリゾルバライブラリ、各種ツールの集合体。
FTPサーバー
FileZila
FileZillaは、多くの機能と使いやすいインターフェイスを特徴とするクロスプラットフォームなFTP、FTPS、SFTPのクライアント(FileZilla Client)と、Windows向けの高機能なFTPサーバ(FileZilla Server)です。
まとめ
以上紹介したOSSはあくまでもほんの一部である。この他にも多くのソフトウェアがあるため、『OSS鳥瞰図2019版』を参考に探してみて欲しい。
また、下記は次世代ビジネスがソフトウェア・ファーストに刷新されることを描いた良著である。読み物として面白いため、紹介しておく。
↓↓この記事がお役に立ったならば、応援クリックを押していただけると大変嬉しいです↓↓