業務システムにおける SoR という言葉を聞いたことがあるでしょうか。これはシステムの種類を分類した言葉で、そのほかにも SoE や SoI といった分類があります。
しかしその中でもSoRは他の種類のシステムと比較して業務の根幹を担う重要な役割を持つものです。そこでこの記事では、SoR, SoE, SoI の違いや、SoR を運用する際の注意点を解説します。
SoRとは
SoR とは、System of Recordsの略で、「記録のためのシステム」を意味します。コンピュータのシステムは1950年代ごろから商用開発されてきましたが、そこから現在に至るまで多くの業務システムはデータを効率的に記録・蓄積、またはそれらを運用する用途に使われることが主な役割でした。人間が行うことで時間がかかったりミスが出てしまったりする作業をコンピュータに任せることで、業務の効率化・高品質化を実現したのです。
例えば、もともとは紙を使って人の手で行われていた収支計算が経理システムとなり、製造業であれば製造工程や製造量の管理などもコンピュータで行うようになりました。後述するSoE型システムが登場する2011年まで、業務システムのほとんどがSoR型システムだったと言われています。
このような性質を持つSoR型のシステムはそもそも定型化されている業務を滞りなく実施することが要件です。よって開発段階ではその業務がどんなフローで、どんなデータを蓄積し、どんな計算を行うかといったきちんと要件定義が行われます。そのため、業務そのものの手順が変わらない限りシステムの大きな変更が入らないというのも特徴です。
また運用段階ではそれらの業務に支障をきたさないよう間違いなく正常に稼働し続けることが求められます。このような性質は「可用性」と呼ばれ、継続稼働が可能で、万が一障害が起こった場合もすぐに復旧できるようなシステム設計することが重要です。
SoEやSoIとの違い
SoRと同じくシステムの分類を指す用語として「SoE」や「SoI」があります。これらはSoRと比較して新しい言葉で、近年テクノロジーの発達などにより業務システムに求められる要件に変化があったことで生まれました。それでは、これらの分類の違いについて見ていきましょう。
SoEとは?
SoEとは、System of Engagemenetの略で、「繋がりのためのシステム」という意味です。ここでいう繋がりとは、主に企業とユーザを繋げる役割のことを指します。パソコンやスマホが普及して誰もがインターネットに接続できる現代において、その「繋がり」を業務でも活用する必要が出てきたのです。
この言葉は、アメリカの経営コンサルタントであるジェフェリー・ムーア氏が2011年に提唱しました。彼によると、一般市民や中小企業がITのトレンドを機敏に察知してそれらを有効に活用しているのに対して、大企業による経営のIT化は遅れているといいます。今までのSoRによって蓄積されたデータをより活用できるよう、それらをリアルタイムに人々と同期して、企業と顧客が相互に情報を交換できるシステムを作らなければならないと提唱したのです。
このSoEには、多くの人が普段から使うような電子メール・SNS・メッセージアプリ、また主に企業が使うものではCRM(顧客関係管理)システムなどが含まれます。多くの人が参加することでデータが集まり、それらをもとにマーケティングを行うことで顧客との関係性をより縮められるのです。
SoE型システムの構築には、SoRとは異なり短期間での開発・高頻度のメンテナンスが求められます。人々が求めるものは常に移り変わっているため、集めた情報をもとに即座にシステムを修正する必要があるのです。こうしたシステムは、設計段階では簡単な用件定義だけを行いスモールスタートし、運用しながらシステムをブラッシュアップしていきます。こういった意味では、SoRとは正反対に位置する種類のシステムとも言えるでしょう。
SoIとは?
SoIとは、System of Insightの略で、「洞察のためのシステム」を意味します。これはSoEの提唱からさらに後、インターネットがより人々に広まって通信速度も増加し、システムが処理すべきデータの量が膨大になったことで生まれた概念です。いわゆるビッグデータやアナリティクスと呼ばれるような、大量のデータを分析することで顧客の潜在的な需要を発見したり、新たなビジネスを予測することが役割となります。
例えば代表的なSoIは、通信販売サイトにおける「レコメンド機能」です。通信販売サイトではユーザにおすすめの商品を紹介する際に、各ユーザの閲覧履歴・販売履歴によってその商品を変えていることが多くあります。しかしそれは単に今まで見ていた商品と同じカテゴリだからといった単純な関連性だけで決められていない場合もあるのです。今までそのサイトを利用したユーザの膨大な行動履歴を記録してそれらを分析することで、全く異なるジャンルの商品であっても関連して買う可能性の高い商品を選定し、オススメとして掲載します。SOIはこれまでのSoRやSoEが収集・運用してきたデータをさらに大規模に活用することができるシステムなのです。
SoR/SoE/SoIの関係性
ここまで述べたようにSoR/SoE/SoIがそれぞれ全く異なる性質を持っていますが、実はそれらは相反するものではなく密接に関わり合いながら運用されていることも重要な点です。例えばSoEは企業と顧客を繋げる役割を持ちますが、それらデータを蓄積して安定的な利用をできるようにしておくのはSoRであり、さらにデータの量が多くなればSoIを活用して効率的に分析することが求められます。またSoIも新しい型のシステムを表す言葉ではありますが、その実態は今までSoRやSoEが行ってきた作業のうち「洞察」つまりデータの分析に特化したシステムという意味です。
SoEやSoIが言葉としては新しいものですが、SoR型のシステムや考え方が現代において古いということではなく、その時代の必要性に合わせて特化されていると考えられます。逆に古い概念であるSoRが、これら業務システムの根幹をなす「データ蓄積」を担っているという意味では最も重要であるとも言えるでしょう。
SoRに求められる「可用性」
先述したように、SoRの運用においては「可用性」が強く求められます。SoRはあくまでも記録を行うためのシステムではあるものの、SoEやSoIはそれらのデータを活用・分析することがその役割であるため、SoRが停止してしまうと正しいビジネスが行えなくなってしまうのです。
それでは、SoRの可用性を担保するためには具体的にどのような方法があるのでしょうか。ここではSoRを安定して運用するためのテクノロジーを3つご紹介します。
バックアップとリストア
バックアップとは、データの予備を保存しておくこと、リストアとは保存されたバックアップを使ってデータを前の状態に戻すことを指します。この方法は最もシンプルでわかりやすい方法です。一定期間ごとにデータのバックアップを取得し、万が一システムに障害が起こった際はそれらをリストアすることで正しいデータを担保することができます。
ただし、シンプルであるがゆえに課題が多い方法でもあります。データベースのバックアップはとても難しいのです。その理由は、まずデータベースの更新頻度にあります。システムの規模が大きく利用する人が増えるほど、記録されているデータの更新は頻繁になり、その量も膨大になります。するとバックアップを取得する頻度が例えば週に1度では正常なデータの担保が取れていると言えず、頻度を上げて1日に1度にするとバックアップ業務そのものが大きな負担がかかる、といったジレンマに追われることになるのです。
データベースの種類によっては差分のみ・増分のみバックアップを行うなど方法を工夫することで負担を軽減しているものもありますが、基本的に24時間365日稼働し続けているようなシステムにはこの方法は適用しづらいでしょう。定期的にバックアップメンテナンスを行なっても問題ないシステムであれば、低コストで実現できる可用性担保の方法といえます。
クラウドのリカバリー機能
クラウド上でシステムを構築するハードウェアなどの基盤を提供するIaaSには、障害の際に即座にリカバリーをできる機能が備わっているものもあります。例えばAmazonが提供するクラウドサービスであるAmazon Web Service(AWS)では、2021年3月に「AWS Backup」というサービスが発表されました。このサービスはAWSが提供するデータベースサービスの一つである「Amazon RDS」においてバックアップデータを自動的に取得し、バックアップの適用可能範囲であるRPO(Recovery point objective)を5分以内にすることを可能としています。
またAWSにはその他にも、AWS側が原因で仮想マシンが機能できなくなった場合に自動で復旧する「インスタンスの復旧」(Auto Recovery)という機能もあります。「CloudWatch」という仮想マシン監視サービス上で設定をしておくことで、AWS側のハードウェア障害や電源障害といった物理的な問題が起こった際に、IPアドレスなどを含めて仮想マシンを自動的に復旧するというものです。
ただし、AWSなどの基盤系クラウドサービスは設定に専門的な知識を要する場合もあります。特に海外を拠点とするサービスであればリリースされたばかりの機能は日本語の表記がないことも珍しくなく、採用しにくい場合も多いです。また次々に機能追加が行われるため、それらの情報を常に収集しながらシステムを考えていく必要があります。
HAクラスタ
HAクラスタとは、複数台のサーバーを使用してシステムの冗長化を行う仕組みです。HAとは「High Availability」すなわち「高可用性」を意味します。HAクラスタを利用することで、万が一システムがダウンしても相互接続された他のサーバーを利用してサービスを継続できます。
例:データレプリケーション構成
稼働率は99.99%と、通常の業務システムには十分な可用性を担保しながらもコストがかかりにくい点が大きな特徴です。また、先述したAWSのAuto Recovery機能とは異なり、物理的な障害だけでなくアプリケーションレベルの障害も検知することができ、ダウンタイムもより短くなっています。
さらにHAクラスタは、これまで紹介したバックアップやリカバリーとは異なりほぼ自動的にシステム復旧を行います。そのためシステムを常に監視したり、緊急の夜間対応をしたりといった人件費を抑える効果もあるのです。システムに求められた要件にもよりますが、コストパフォーマンスに優れた可用性担保手段といえるでしょう。
可用性を重視したシステム運用をしよう
ここまで述べてきたように、SoR・SoE・SoIはそれぞれ異なるシステムの分類ですが、特にシステムの根幹となるSoRにおいては可用性がとても重要な要件となります。システムの可用性に興味がある方は、以下のようなマンガを使って学習をするのもオススメです。ぜひ皆さんも可用性についての知識をつけた上で、安定したSoRシステムの開発・運用を行い日々の業務を効率化しましょう。
【漫画で分かる可用性】