クラウドでのシステム構築を成功させるために重要なこと

f:id:monex_engineer:20200611113104j:plain

 

クラウドは自分たちの手で

近年、システム構築にかかるコストが上昇している気がします。なぜでしょうか。

その要因の一つに、システムベンダーのリスクの取り方が変わってきたことが挙げられます。

 

 大規模なシステム構築においては、開発プロジェクトの工程管理やリスク管理が複雑になってきており、新聞や雑誌ではベンダーが依頼主から多額の賠償請求をされる記事が見られるようになりました。ベンダーの立場からすると、許される限りの時間と工数を割いて、安全にプロジェクトを進めることが自分たちの会社を守るためにも会社の売り上げのためにも重要だということになります。

 

一方、自社で進める場合は、守るべきところと攻めるべきところのメリハリをつけて進めることが出来ます。コストの削減、リリースまでの期間の短縮、品質の向上のどれをとっても自社のビジネスに貢献することになるので、自分たちの会社のためにもコスト、スケジュール、品質とリスクを真剣に検討することになります。

 

このことから、ベンダーに丸投げせず、自分たちで構築することが重要であることがわかります。

クラウドはオンプレミスと異なり、ある程度の試行錯誤が許容されるため、自分たちで進めるにはちょうど良い環境であると言えます。

 

システム不具合ゼロを目指す?

これまで、システム障害は発生させてはいけないもので「ゼロ」を目指すことが求められてきましたが、今では、システム障害は無くならないものだから「障害の影響範囲を小さくし、問題が発生した場合はすぐに元に戻せること」が重要視されるようになってきました。その指標としてMTTR(障害復旧時間)が使われるようになりました。クラウド環境でのシステム運用が一般化したことが、このような考え方を後押ししているのだと思います。

 

さて、当社は金融機関でありますから、顧客の取引に影響のある障害は避けなければなりません。上述のトレンドを取り入れるには、アーキテクチャー上の変更が必要になります。間違いがあってはならないシステムをSOR(System of Record)、顧客の使い勝手を向上させビジネスに貢献するシステムをSOE(System of Engagement)とすると、これらを明確に分離する必要があります。

 

この二つの考え方は真逆で、SORな人達はSOEな人達を「チャラい」といい、SOEはSORを「古臭い」、というネットの記事もあるくらいなので、両立は簡単ではないでしょう。

 

関係者に新しいテクノロジーを正しく理解してもらう 

システムをクラウド上で構築・運用することのメリットの一つに、CICDに代表されるリリース期間の短縮があります。クラウド環境そのものがCICDとの親和性が高くなっていますから、そのメリットを十分享受するためには一歩踏み込んで開発プロセスやルールを見直す必要があります。

先行してAWSでCICDを実践しているチームは、従来のウォーターフォール型の開発をベースにしたリリースフローに沿ってリリースを行っているため、CICDのメリットを発揮しきれておらず、どのように説明すればわかってもらえるか、悩んでいます。「当社のやり方は時代遅れだ」という主張をしても仕方ないので、なぜクラウドなら安全なのかをテクニカルに伝えることが重要なのでは、という話をしています。

 

クラウドやアジャイルが世の中で徐々に理解されるようになり、拒否反応を示す人も少なくなってきたと思います。しかしながら従来のシステムが勝っている部分もあることも事実であり、今後クラウド化を円滑に進めていくためには、意思決定を行う人達に対してクラウドのメリットをわかりやすくコツコツと伝えていくことが重要なのだと思います。

 

安原 敦開発本部長