OSS活用最前線、メインフレームで新たなビジネスを作る

IT・IT製品TOP > Key Conductors > 栗村 彰吾(日本アイ・ビー・エム株式会社) > OSS活用最前線、メインフレームで新たなビジネスを作る
この記事をtweetする このエントリーをはてなブックマークに追加

IT現場の道先案内人 Key Conductors

OSS活用最前線、メインフレームで新たなビジネスを作る

2016/12/19

 今回は「ITを活用しビジネスを成長させるためにはどのようなツールが必要なのか」をテーマに最新のOSSついて紹介します。

ITをビジネス獲得の武器に イノベーションを起こした企業がやったこと

 従来、企業におけるIT活用の目的といえば、売上や人事情報の管理などの定型業務処理の効率化がメインでした。ITの定型業務処理への活用規模はさまざまですが、表やグラフを作成するのにExcelを使うのもこれに当たります。

 近年ではバックヤードの定型業務処理の効率化にITを活用するだけでなく、ビジネス獲得の武器として活用されています。バックヤードからフロントヤードへとITを活用する幅が広がっています。

 フロントヤードにおけるIT活用の背景には、スマートフォンやSNSの普及が挙げられます。個人が気軽に情報を発信/受信できるようになったことで、社内の定型業務処理でITシステムが扱ってきたデータとは異なる種類のデータが増え続けています。たとえばExcelファイルのように行と列で定義されたデータや、規則性のあるデータなどの構造化データに対し、Twitterの「つぶやき」や位置情報などの構造化されていないデータ(非構造化データ)はその代表的なものといえるでしょう。

 個人が気軽に発する情報が増加した結果、企業は顧客の多様なニーズを明らかにできるようになりました。そして、ユーザーや消費者一人一人に向き合ったサービス――「One-to-Oneマーケティング」が求められるようになってきているのです。

 イノベーションを起こし、人々の生活に影響を与えている企業は、ITを新たなビジネスモデル創出のために活用しています。データを直接ビジネスにつなげている企業は、例えばタクシーを1台も持たずに世界中にビジネス展開をする、タクシー配車サービスのUberがあります。Uberはスマートフォンを活用し、利用者のGPS情報とタクシーのGPS情報をマッチングさせ、利用者に最も近いタクシーを配送するサービスです。

 このように多様化するニーズに対応していくためには、データをいかに早く分析し、エンドユーザーに対して正確な情報を提供するかが成功の要因となります。本連載第1回目でご紹介しましたが、市場ニーズの多様化や予測しきれないビジネス環境の変化に高いレベルでタイムリーに対応するためには常に最先端のテクノロジーが実装されるオープンソースソフトウェア(OSS)の活用が欠かせません。そのため、イノベーションを起こすにはOSSの活用が鍵を握っています。

 今、最も注目されているデータ活用のためのOSS 3大テクノロジーが「Node.js」「Apache Spark」そして「Docker」です。 Node.jsはサーバサイドのJavaScript実行環境です。Apache Spark(Spark)はデータ処理を分散環境で並列して実行するための処理フレームワークです。Sparkはインメモリで処理ができるため、従来の並列分散処理ツールに比べ、処理速度が高速です(Sparkの詳しい技術要素については今後紹介します)。Dockerはアジャイル開発に適したアプリケーションコンテナ管理ソフトウェアであり、システム運用の自動化などを実現しやすいITインフラ基盤といえます。

 なぜ、この3つが注目されているのかというと、ニーズの多様化や変化に対応していくために、サービスを次々に作り変えることができるスピード感が重視されているからです。

 Dockerで変化に柔軟に対応できるシステム運用基盤を整え、Node.jsでフロントヤードのアプリケーションのための実行環境を構築し、Sparkで価値のある情報を見つけ出す、というアプローチで、変化に対応しやすいIT環境を整備できると期待されています(図1)。

図1 「OSS3大テクノロジー(docker、Node.js、Apache Spark)」の連携

※会員登録いただくと図をご覧いただけます。
会員登録はこちら(無料)

図1 「OSS3大テクノロジー(docker、Node.js、Apache Spark)」の連携
(出典:日本IBM)

 図1ではこれら3つのテクノロジーの連携を表しています。ソーシャルメディアから取り込んだデータをSparkで分析し、クライアントに提供しています。アプリケーションのプラットフォームとしてはNode.jsが稼働しています。そしてこれらのテクノロジーは、全てアジャイルな開発を可能にするDocker上で稼働しています。

OSS 3大テクノロジー(1)「Node.js」

 今回は3大テクノロジーのうち、サーバサイドでの処理を担うJavaScript実行環境「Node.js」について紹介します。

リクエスト数の増加に対応するサーバサイド技術

 Node.jsが注目されている背景には、スマートフォンの普及によりモバイルアクセスが増加したことが挙げられます。PCのブラウザからしかWebサイトにアクセスできなかった時代と比べると、Webアプリケーションに対するアクセス数は格段に増加しています。

 Apacheのような従来のWebアプリケーションサーバは、個々のリクエストに対してそれぞれスレッドを用意して処理する「マルチスレッドモデル」で実装されています。複数のスレッドを立ち上げることで並列してリクエストを処理できますが、スレッドはメモリを消費してしまうため、リクエストが増えれば増えるほどメモリが逼迫(ひっぱく)します。これは「C10K問題」と言われ、サーバへの同時リクエストが1万件を超えると、スレッドの立ち上げ過ぎによるリソース不足で、リクエストを処理し切れなくなってしまいます。また、一つの処理を完了しなければ次のリクエストの処理を行えないため、遅延が発生してしまいます。この場合は、サーバ自体を増やしてリクエストに対応するしか方策がありません。

 Node.jsは「ノンブロッキングI/O・非同期I/Oモデル」「イベントループモデル」によってこのような問題を解決します(図2)。Node.js自体はマルチスレッドではなく、単一のスレッドで全てのリクエストを処理するシングルスレッドです。シングルスレッドによってメモリの消費を抑えることができますが、通常であれば1つのリクエストの処理が完了するまで次のリクエストを受け取ることができません。

図2 Webサーバ「Apache」と「Node.js」の挙動の違い

※会員登録いただくと図をご覧いただけます。
会員登録はこちら(無料)

図2 Webサーバ「Apache」と「Node.js」の挙動の違い
(出典:日本IBM)

 そこでNode.jsでは、ノンブロッキングI/O・非同期I/Oモデルによって、シングルスレッドでも前のリクエストの処理の完了を待つことなく、次のリクエストの処理を行うことができるようになっています。前のリクエストはコールバック関数によって他のリクエストの処理に影響を与えることなく結果を受け取ることができます。また、イベントループモデルによってリクエストを次々に処理に回すことができます。

 Node.jsであれば、Apacheのように増加するリクエストに対応するためにサーバー自体を増やしていく必要がなくなります。同時に大量のリクエストに対しリアルタイムに対応できるため、例えば不特定多数が参加するソーシャルゲームやオンラインゲームの統計データに活用されています。前段でご紹介したタクシー配車サービスのUberでは、リアルタイムに利用者とタクシーをマッチングさせる配車システム にNode.jsを用いています。  

NoSQLデータベースとの親和性

 Webアプリケーションの開発環境の変化は、このようなWebアプリケーションサーバだけでなく、データベースなどの周辺環境にも及んでいます。MySQLのような従来型のリレーショナルデータベースだけでなく、さまざまな形式のデータが扱えてスケーラブルなNoSQLデータベースが使われるようになってきました。久しくWebアプリケーションの開発は「LAMPスタック(Linux、Apache、MySQL、PHP)」といわれてきましたが、アクセス数の増加やアジャイルな開発に対応していくために、近年ではMEANスタック(MongoDB 、Express 、AngularJS 、Node.js)が注目されています。

公開モジュールのエコシステム

 Node.jsには「npm」というモジュールを管理する機能があります。豊富なモジュールやフレームワーク、リポジトリが備わっており、その数は70万を超えています。npmを使うことで簡単にモジュールを追加できるだけでなく、自分が作成したモジュールを公開することも可能です。

 npmはNode.jsのエコシステムとして機能し、これらを支えるコミュニティーが存在します。本連載ではnpmで追加可能なモジュールの1つである「Node-RED」を活用してアプリケーションを作ってみます。Node-REDとはハードウェアデバイス、API、オンラインサービスを連携させてロジックを作成できるフローエディタです。機能を「ノード」という単位でカプセル化し、それらをつなぎ合わせていくことでプログラミングの知識がなくてもアプリケーションを簡単に作成できます。

メインフレームでスタートアップ風にデータインフラを整備すると、シンプルになる

 データを活用しビジネスに貢献させていくためには、Node.jsやSparkなどのツールを活用するだけでなく、それらを動かすインフラも重要になります。それは、ビジネスニーズが変化していく中で、システムにかかる負荷の予想が困難になっていくからです。

 急激に負荷が増加した場合においても安定したパフォーマンスを維持できる高い処理能力がインフラに必要になります。また、セキュリティの確保も重要になります。データを安全に保管し、サイバー攻撃に対応したインフラである必要があります。

 このようなシステム基盤の要件を満たすことができるITインフラの1つがLinuxONEです。

 LinuxONEはもちろんNode.js、Spark、DockerといったOSSに対応しています。本連載第3回目でも紹介しましたが、LinuxONEは高負荷な状態でも安定して稼働し、暗号化においても最高水準の技術を実装しています。各コンポーネントを冗長化することで無停止を実現します。またI/O処理についても、ノード間のメッセージ通信が多くなったとしても遅延なくパフォーマンスを発揮できます。

 また、物理/仮想を問わず、従来のサーバ環境で本稿図1のようなシステムを構築する場合、Node.jsやSpark、データベースなど、複数のコンポーネントごとにサーバを分散させる必要があるため、インフラが複雑になりがちですが、LinuxONEであれば、複数のコンポーネントすべてを1台に統合させることが可能であり、複雑なインフラから開放されるという利点があります (図3) 。

図3 LinuxONEによるサーバ統合

※会員登録いただくと図をご覧いただけます。
会員登録はこちら(無料)

図3 LinuxONEによるサーバ統合
(出典:日本IBM)

 LinuxONEは定型業務処理を行うための従来のようなITインフラではなく、「イノベーションを起こし、ビジネスをドライブし続けられる次世代ITインフラ」として位置付けられます。

 本稿では「ITを活用しビジネスを獲得するにはOSSの利用が重要」であること、そのOSSにおいて、現在3大テクノロジーの1つとされる「Node.js」について紹介しました。次回はLinuxONE Community Cloudを用いてNode.jsを活用したアプリケーションを作成します。

 次回もお楽しみに!

会員限定で「読者からのコメント」が読み書きできます! 「読者からのコメント」は会員限定の機能。会員登録を行い、ログインすると読者からのコメントが読み書きできるようになります。

会員登録(無料)・ログイン

Myリストへ

この記事をtweetする このエントリーをはてなブックマークに追加


この寄稿記事に掲載している情報は、掲載日時点での情報となります。内容は変更となる場合がございますのでご了承下さい。また、「Key Conductors」の寄稿記事及び当該記事に寄せられたコメントについては、執筆者及びコメント投稿者の責任のもと掲載されているものであり、当社が、内容の最新性、真実性、合法性、安全性、適切性、有用性等を保証するものではありません。


30009341


IT・IT製品TOP > Key Conductors > 栗村 彰吾(日本アイ・ビー・エム株式会社) > OSS活用最前線、メインフレームで新たなビジネスを作る

このページの先頭へ

キーマンズネットとは
さまざまなオープンソースソフトウェア(OSS)に携わり、現在は「LinuxONE」を中心に、提案および構築を担当。お客さまのミッションクリティカルな業務にふさわしいシステムの提供に尽力する傍ら、LinuxONEの活用に関するセミナー講師として「メインフレームの価値」や「なぜ今メインフレームか」を啓蒙する活動にも従事する。

ページトップへ