Azureに関する話題や実例も、より身近、より具体的になってきた。Azure開発に関する情報の公開も活発になってきており、実際に開発を行う機が熟してきた感がある。いった中で、実際に導入を判断するユーザーサイドに対する説明情報や、事例に関しては不足しており、「実際にどう始めたらよいのか?」「何がこれまでと異なるのか?」と思われている方も少なくないであろう。Azureで運用することの可能性や事例および注意事項について説明する。Azureでハマらないための42の覚え書き」を載せている。その部分が本題なので、ぜひその部分は目を通していただきたい。一般的なクラウドのメリットとデメリットまず、一般的な話として、クラウドの主なメリット、デメリットを個条書きで紹介する。●一般にシステムをクラウドに置くメリットサーバなどのIT資源の購入が不要になり、初期コストが安く済む導入後は、利用した分のみを費用計上できるサーバ管理業務が省力化される(パッチ適用やサーバの監視は基本的に不要)小さい会社でも廉価にインフラを持てるので、新規事業をスモール・スタートできる。失敗しても、すぐ撤収できる。Quick」(たくさん失敗、安く失敗、すぐに失敗)を実行しやすい需要が読めないケースでも、後でインフラを増強できる●一般にシステムをクラウドに置くデメリットサービス・レベル保証が99.95%のところが多い。年間4時間は止まるということサーバとの距離によって、通信に遅れが発生するセキュリティを高める方法はあるが、(基本的に)重要なデータが流出するリスクはオンプレミスより高いインフラの自由度が低い。本稿では、業務システムを「仕事に使う情報システム」という大ざっぱな定義で考えることとする。よって、例えば業務システムの種類は、基幹業務や勘定系システム、営業支援やCRM、データ分析、Eコマース(BtoC/BtoB)のサイトなどいろいろとあるが、まずは大ざっぱに、仕事に関連するシステムについて言及していると考えていただきたい。それでは事例の紹介に入る(現実の事例ではあるが、具体的な企業名は伏せている)。事例の内容について、顧客のビジネス、現状のシステム、課題や要望を順に述べさせていただく。一部は整理しやすいように個条書きにしてある。事業所を構える教育事業A社。新規教材販売サービスを立ち上げる兼ね合いで、販売窓口となる代理店を全国展開することになった。システムが必要となっている。新規事業であるため、リスクを考えると、ある程度予算を絞ってシステムを導入したいと考えている。今後の方針として自社でシステムを持たず、システム部門自体をアウトソースすることも要望として持っている。代理店の全国展開に合わせ、代理店が大小さまざまな規模であることから、専用線ではなくインターネットで提供する形を取らざるを得ない。●現状のシステム顧客管理システム、運営するスクールの教材管理システム、社内管理システムがあるが、これらはすべてクライアント/サーバ型のシステム(Windowsフォーム)で作られている。Accessを利用している。●現状の課題や要件など現状では、以下のような課題や要件がある。インターネットを利用してサービス提供する必要がある付随して、データセンターが必要となっているが、事業の規模が確定していないため、契約に踏み切りにくい新規事業の見込みを考えると、スケーラビリティを考慮したい(現行システムはビジネスの成長に耐えられず、動作が非常に重くなっている)収益の源泉となっている業務に特殊性があり、パッケージ対応できない。よってスクラッチで作る部分は必要となっている帳票業務が多い(100種類程度)勘定系の業務については、Excelに近い操作性を求めており、リッチ・クライアントでの提供を求めている。次の図はこれらの要件をまとめたものだ。新システムの全体図(教育事業A社による要望)●なぜクラウドを選択したかクライアント/サーバ型やSOAのシステムなど、さまざまなシステム形態が考えられる中で、クラウドを選択したのは下記の理由からである。Azureを選択したのは下記の理由からである。Azureによりリレーショナル・データベース(以降、RDB)も使えるので、単にWindowsサーバ自体が雲の向こう側にあるイメージに近い)●リスクヘッジクラウド環境が何らかの理由で使用できなくなった場合に対するリスクヘッジとしては、社内に最小限の代替環境(=クラウド環境と同等のオンプレミス側のサーバ環境)を用意して、時間単位でデータの同期を取りながら業務を進めれば、万が一の場合も、社内環境を活用して業務を継続できるというように考えている。●アーキテクチャについて次の画面は、今回の事例で作成された業務システムのうち、勘定業務のUI(=ユーザー・インターフェイス)である。今回の事例となっている業務システムのうち、勘定業務のUI勘定業務のUIは、上記のように複雑になっている。HTMLとAjaxを駆使して実現できないこともないが、ユーザビリティを追求した結果、UIにはSilverlightが適していると判断した。4からそのデータをクライアント側のローカル・データストアに一時的に蓄積できるようになることが見込めるため、現段階からSilverlightを利用している。システム全体のアーキテクチャは、次の図のようになっている。サーバサイドでJSONデータが処理され、データベースに書き込まれる。この際に、ORマッピング・ツールとして「LightSpeed」というサードパーティ製のコンポーネントを利用している。Azure上でも動作がサポートされている。Azureストレージ・サービス(以下、単に「ストレージ」と表記)を利用している。Editionを利用している。勘定系の複雑な金額データを更新する際には、ストアド・プロシージャを多用している。●画面を見てみよう本稿でサンプルとして紹介するのは、ここまでに述べた現実の事例から、銀行振替業務と請求回収業務のみを、SaaS(=サービスとしてのソフトウェア)として切り出した架空のサービスである。今回のサンプルにおける振替業務では、簡単にいうと、金融機関が提供する銀行振替(=銀行引落)の代行サービスを利用して、その金融機関に対して顧客の支払情報を提出し、その処理結果を受け取って引き落としの成否をチェックし、引き落としができなかった場合は請求書の発行などを行う。銀行振替はクレジット・カードによる課金と比較して利用料が安いことから、継続的に課金を行うビジネスで利用されるケースが多い。詳細はここでは割愛する。それでは下記のURLから、画面を起動してみよう。Azureで動作していることが分からないかもしれない。http://tiamat.sigmact.com/パスワードは「a」だ。重要なデータは入っていないテスト環境なので、自由に操作していただいて構わない。一定期間でデータベースを初期化するように処理を組んであるので、その点はご容赦願いたい。](帳票系)にアクセスできる。◇データ一覧系[顧客情報一覧]画面では、[検索する]ボタンを押して、検索を実行していただきたい。参考までに300件程度のデータを表示しているので、動作スピードが伝わるかと思われる。Azureのインスタンスは日本に最も近いアジアに設置してある。ボタンを押下すると、[会員詳細画面]ダイアログが表示され、顧客情報の詳細を確認できる。]タブでは、細かな請求・入金のやり取りが記録・参照できるようになっている。◇エントリ系[新規顧客登録]画面では、次の画面のように、顧客を新規に登録する機能を提供する。]画面では、新規に口座情報を登録した顧客の一覧を表示できる。Azure上では、帳票のプリンタへの[出力]ボタンと、PDFの[生成]ボタンが正常に動作しない。RTF(リッチ・テキスト・フォーマット)形式では正常に出力できる。この一連の帳票機能は、オンプレミスの環境では正常に動作する。以上、事例として紹介させていただいた。Azureを使って業務システムを作ることは、十分に実現可能というイメージは伝わっただろうか。Azureでハマらないための42の覚え書きを紹介する。7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。TranslatorはPowerPoint用のアドイン。