【まとめ】よく使われる代表的なOSS(オープンソースソフトウェア)を一覧にまとめてみた

この記事では、日本でよく使われる代表的なOSS(オープンソースソフトウェア)を体系的にまとめることを目的としている。

参考:OSSとは

プログラミングのソースコードを広く一般に公開し、誰でも自由に扱って良いとされるソフトウェアのこと。インターネットを通じて、簡単に入手することが出来、誰でも無償で自由に使用、複製、再配布、自分で開発したコードへの組み込みが可能である。

日本OSS推進フォーラムのクラウド技術部会が作成した『OSS鳥瞰図2019版』をもとに、各OSSについて簡単な解説をしている。また、各OSSの公式サイトへのリンクも付けているため、参考にして欲しい。

なお、プログラミングスキルを向上するためには、独学では限界がある。

私がおすすめするプログラミングスクールを『ITコンサルタントの私が本当におすすめするプログラミングスクール4選』で紹介しているため、合わせて確認してほしい。

デスクトップ・業務アプリケーション

デスクトップ

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版』を参考に探してみて欲しい。

また、下記は次世代ビジネスがソフトウェア・ファーストに刷新されることを描いた良著である。読み物として面白いため、紹介しておく。

↓↓この記事がお役に立ったならば、応援クリックを押していただけると大変嬉しいです↓↓

ブログランキング・にほんブログ村へ