EnterpriseZine(エンタープライズジン)

EnterpriseZine(エンタープライズジン)

テーマ別に探す

ワークスアプリケーションズがCassandraを選んだわけ #CASE 001

edited by DB Online   2015/09/04 11:00

 国産ERPベンダーとして気を吐くワークスアプリケーションズ。同社はこれまでアプリケーションベンダーとして、その独自の製品コンセプトや機能面を取り上げられることが多く、その裏にある技術に関しては多くは語られてこなかった。同社は創業5年で上場を果たし、10年間の上場の後、2011年にMBOを行った。新製品の開発に、より多くの研究開発費を投入するためだ。そしてこの頃から、代表取締役最高経営責任者 牧野正幸氏の思いもあり、技術革新により一層こだわった新生ワークスアプリケーションズが始まった。

 ワークスアプリケーションズでは、グローバルでの技術者採用にも積極的に取り組んでいる。「アジアを中心に優秀な技術者の採用が進んでいます」と語るのは、ワークスアプリケーションズ 広報の太田更紗氏だ。この成果もあり、現在では海外での開発体制がかなり充実した。

ワークスアプリケーションズ 広報 太田更紗氏
ワークスアプリケーションズ 広報 太田更紗氏

 そんなワークスアプリケーションズでは、2014年10月、新製品として次世代ERPシステム「HUE」を発表した。「HUEは技術の革新です」と太田氏。次世代ERPシステムとして開発しているHUEは、同社の実績あるERPパッケージ「COMPANY」を拡張したものではない。まったく新しいコンセプトで、1から作り直したものなのだ。

 このHUEでは、ERPアプリケーションでは当たり前だったリレーショナル・データベースと決別し、NoSQLのCassandraを採用した。同社では、すでに5年ほど前からCassandraを社内システムで運用していたという。

 ここで、ワークスアプリケーションズが新製品のHUEでなぜCassandraを採用したのか。その理由と、Cassandraをベースにしたアプリケーション開発の過程について、同社でHUEテクノロジー開発リーダーを務める堤 勇人氏に話を訊いてみよう。

とにかく速さを求めてCassandraを選んだ

 HUEテクノロジー開発 リーダーを務める堤 勇人氏
ワークスアプリケーションズ HUEテクノロジー開発リーダー 堤 勇人氏

Q:HUEでCassandraを採用した背景を教えてください。どのような課題があったのでしょうか。

堤:最大の理由は速度です。HUEでは、100ミリ秒でレスポンスする目標が掲げられました。これを実現するのは、CEOの牧野の強い思いでもあります。

 掲げられた速度目標は、ユーザーのアクションに対し常に100ミリ秒以下で画面を返すものです。100ミリ秒というのは、人が「一瞬」と感じる速度の境界です。これを実現しようとすると、画面描画時間などもあり、データベースへのアクセスは20ミリ秒くらいしか許容できません。

 当初はリレーショナル・データベースを含めこの要件の実現を検討しましたが、ERPの処理でリレーショナル・データベースを使うと、ソートやJoinが発生するので50ミリ秒くらいはかかります。これでもERPとしてはずいぶん高速です。ところがデータベース処理で50ミリ秒使うと、ユーザーへのレスポンスを100ミリ秒以下にはなかなかできません。

 であれば、時間のかかるソート処理などもあらかじめしておく。そう考えるとNoSQLデータベースでもいいのではと思い至りました。一方で、ERPではバッチ処理的なものも数多くあり、これも当然ながら速くしたい。データベースの処理で速度と言った場合、スループットとレスポンスがありますが、その両方が必要となる訳です。

 もちろんリレーショナル・データベースも、お金をかければレスポンスやバッチ処理は高速化できます。でもそれだとユーザーメリットにはなりません。さらに、HUEはクラウドで提供するので、ユーザーが増えても可能な限り線形でスケールする仕組みが必要でした。こういった要件から、Cassandraを採用しました。

Q:リレーショナル・データベースとのハイブリッドではなくCassandraだけで作ることになったのはなぜですか?

堤:理由はやはり速度です。NoSQLを使うとした際に、改めてERPの処理について考えてみました。その結果、全ての処理にトランザクションをかける必要はないのではとの結論となったのです。

 そこでNoSQLを全面的に採用し、トランザクションでデータ整合性を確保しなければならない部分は、別途作り込むことにしたのです。COMPANYは、機能を網羅していることが売りのERPです。対して新たなHUEは、COMPANYで速度が出ない機能は出荷しないくらいのコンセプトで、とにかく速度を重視すると牧野も言っています。

 Cassandraを選んだもう1つの理由に、スモールスタートできることがあります。NoSQLデータベースには、性能を確保するには良いサーバーが5ノードくらい必要、という製品もあります。Cassandraは1ノードでも利用でき、3ノードもあれば十分に性能が出ます。

 それと分散処理構成でも、単一障害点(Single Point of Failure)がないアーキテクチャも評価しました。マスターノードがなく、その上で可用性に重点を置いているのも採用ポイントでした。

 当然、他のNoSQLデータベースも検討しました。その際に比べたのは実績です。また、オープンソースであり、特定のベンダーにロックインされないのも評価ポイントでした。すでに社内システムでCassandraを利用しており、技術的な蓄積があったことも安心材料でした。

 CassandraがJavaで書かれていることも重要でした。我々はアプリケーションもJavaで書いているので、社内にはJavaの得意なエンジニアがたくさんいます。いざとなればCassandraのソースコードを読み、パッチを送ることも出来ます。


著者プロフィール

  • 谷川 耕一(タニカワ コウイチ)

    EnterpriseZine/DB Online チーフキュレーター かつてAI、エキスパートシステムが流行っていたころに、開発エンジニアとしてIT業界に。その後UNIXの専門雑誌の編集者を経て、外資系ソフトウェアベンダーの製品マーケティング、広告、広報などの業務を経験。現在はフリーランスのITジャーナリストとして、クラウド、データベース、ビッグデータ活用などをキーワードに、エンタープライズIT関連の取材、執筆を行っている。

  • DB Online編集部(ディービーオンライン ヘンシュウブ)

    DB Online編集部 翔泳社 EnterpriseZine(EZ)が提供するデータベース/データテクノロジー専門メディア「DB Online」編集部です。皆様からの情報お待ちしています。 Twitter : https://twitter.com/db_online Facebook : http://www.facebook.com/dbonline.shoeisha

All contents copyright © 2007-2021 Shoeisha Co., Ltd. All rights reserved. ver.1.5