Forkwell Press

エンジニアの生き様をウォッチするメディア

自動化、システム化で安定稼働を実現 「できるだけ人を介さない」証券会社のインフラのつくりかたーFOLIO 澤田 泰治氏

f:id:grooves:20180718154909j:plain 国内株を取り扱う独立系証券会社としては、10年ぶりとなる新規参入企業として起業した株式会社FOLIOのキーマンにお話を伺うリレーインタビューの第2弾は、インフラストラクチャエンジニアとしてSREチームを束ねる澤田泰治さんが登場します。

 創業当初から、文字どおり基盤となるシステムの構築に尽力してきた澤田さんは、証券会社というまったく新たな舞台で、エンジニアリングの力を発揮するためには、技術力だけでなく、エンジニア特有の思考力が必要だと言います。

 FOLIOのサービスの安定化、信頼性の担保に寄与するエンジニア思考とはどんなものなのでしょうか?

ITを活用した証券会社誕生! 挑戦と“想定外”

「これが本当のベンチャーだ」

 創業メンバーとしてFOLIOに関わることになった澤田泰治さんは、新会社設立の構想を詳しく聞けば聞くほど、その道筋のたしかさと理念に共感したと言います。

「ベンチャー企業の立ち上げ自体は学生時代から結構身近にあったので、自分なりにこんなものだろうというイメージはあったのですが、どのプロジェクトも自分がそれに加わろうとはあまり思えませんでした。FOLIOの場合は、創業メンバーに旧知の人が複数いて、その人たちの優秀さをよく知っていたので、ここでならチャレンジしてみてもいいかなと思ったんです」

 それまではゲーム業界でエンジニアとして活躍していた澤田さん。FOLIO設立の話と、20代後半を迎え、これからのキャリアを考えたとき、「いましかできないこと」に挑戦したいという思いが重なりました。

「サイバーエージェントでモバイルネイティブゲーム開発に携わって、ちょうど区切りがついたときでした。このまま残るか、それとも外に出てチャレンジするのか? 慎重な性格なのでいろいろ考えましたが、考えた結果、この会社なら挑戦してみても間違いないと思えたんです」

 テクノロジーを使って日本の証券、金融業界に打って出る。FOLIOのサービスは、澤田さんにとってまったくの異業種でしたが、エンジニアとしてやるべきことは変わらないと、第一歩を踏み出すことになりました。

「異業種だということはそれほど気にならなくて、IT の力でより良いサービスを提供するという基本は変わらないと思っていました。いまでもそれはブレていないのですが、はじめてみたら『全然違う!』ということもたくさんありました」

 新規参入、しかもこれまでにないWebサービスをベースとした証券会社ということで、FOLIOのサービスの原型を作るまでには、澤田さんの想像を超えた“想定外”が数多く待ち受けていました。

「一番大変だったのは、初めてのことばかりで周りに相談できる人がいないことですね。金融のこと、証券について、コンプライアンスについては、それぞれの専門家に聞けば良かったんですが、エンジニアリングに関しては、証券システムを一から作った経験のある人もいなかったので。」

 ベンチャー企業の創業というだけでもスタートは慌ただしくなるのに、これまで世の中になかったものを一から作り出すという難題がその時期に重なります。

「オフィスにパソコンは来たけど、デスクがないとか、プリンターがないとかネットが通ってないとか、法人カードがまだできてないぞとか、そんなドタバタの中で始まったんです。ベンチャーあるあるだとは思うのですが、そんなカオスの日々の中で証券会社のサービスを一から作っていかなければいけなかったので。最初の頃はそれこそ社長の自宅に創業メンバーが集まって意見を出しあって作業していたのですが、そもそも『はじめの一歩』がわからない。ああでもないこうでもないといいながらなんとかプロダクトを作り込んでいったんです」

 創業メンバーとして一からサービスを立ち上げ、システムの大方針にも深く関わった澤田さん。FOLIOのサービスはいかにして作られたのか? また今後どんなふうに発展していくのか? ここからは、インフラエンジニアとして、文字どおりFOLIOの基盤を支える澤田さんの言葉に耳を傾けてみましょう。

すべては安定運用のため なるべく人を介さないシステム構築への挑戦

f:id:grooves:20180718155314j:plain ――創業当初、思ったより大変だなというのが実感だったそうですが、インフラエンジニアとして苦労したことは?

「お金を扱うサービスなので、セキュリティ周りや障害がクリティカルな問題になりますね。安易にメンテナンスに入り、復旧というわけにはいきません。ミスとかバグとかはゼロにはできないのですが、それがあっても顧客への影響を最小限にし、運用を続けられるようなシステムの構築がインフラには求められます。仮にバグを出してしまったら、そこは顧客へのお詫びだけではなく、どうしてエラーが発現したのか、今後どう対処していくのかなど、監督機関に報告する義務があります。そのあたりは、そもそもバグや障害に対する重みがこれまでとはまったく違いますね」

――インフラエンジニアとしては、そうした問題をどう解決してくのでしょう?

「前例がないチャレンジということもあり、その辺りは試行錯誤でしたね。サーバーにしても、スタート時は『クラウドサービスで証券サービスを作ってもよいものか』という感触だったので、自社で管理するオンプレミスのサーバーに置くかというような全然ベンチャーらしくないことをしなければいけませんでした。この頃は、まず証券業を始めるための免許を取ることが先決で、どの程度までリスクを取っていいのかが誰にもわからなかったんです。その後コンプライアンス方面の担当者の方たちやベンダーさんとの話し合いを進めていくことで、クラウドサービスも使用してよいということになりました。けど、この辺りの厳密さは当初想定しなかったことでしたね」

――FOLIOでは、SREチームとバックエンドチーム、フロントチームがある程度横断的に働いているそうですね。

「FOLIOでもSRE(Site Reliability Engineering)チームが発足し、チームの責任者として、他のチームとも運用面での状況共有を行いながら仕事を進めています。SREチームの中でも個々人のスペシャリティを発揮してもらっていますが、チームの共通認識としてあると思っているのは、『障害があった時になるべく人を介さずに復旧できるサービス、システムの構築』ということですね」

――人を介さないというのは?

「業務特性上、サービスを安全に安定的に運用しなければいけないのですが、『絶対に落ちないサーバー』とか『何が起きても止まらないシステム』というのは、理想ではあっても実現させるのは難しい。障害は起きる前提で、そのときどう対処すればいいのか、そもそも障害を起きにくくするためにはどうすればよいかというところを考える必要があります。何か起きたらその度に手動で手当をすると言うようなやり方だと、手当てをしたところがかえって新たなリスクを負うことになりかねません。セキュリティの観点でも、手当てをするために空けた箇所が、セキュリティホールになってしまうこともあります。こうしたことを避けるために、障害が起きてもエンジニアが直接触らず修復できるような自動化、マイクロサービスによる耐障害性の向上などを意識してシステムの構築を行っています」

――前回のインタビューでバックエンドエンジニアの海津さんにお聞きしたときも、自動化の話は出てきました。

「現在のSREチームには、手作業や力業で何とかしようという人がいなくて、プログラムで解決しようという意識は共有できていますね。いい意味で『楽がしたい』人たちの集まりとも言えますね(笑)。究極的には、自分たちがいなくても自動的に可動し続けていくようなシステムを作りたい。楽をするために、一生懸命自動化の仕組みを考える、楽をするためにがんばるって、なんだかおかしいのですが、エンジニアにとって怠惰であるというのはある意味での美徳だと思っているメンバーが多いように思います」

開発、運用、ビジネスを一体化させるDevOps

f:id:grooves:20180718155609p:plain ――御社では、DevOps(デブオプス)をソフトウェアの開発手法として取り入れていると聞きました。

「楽をしたいということもそうなんですけど、開発 (Development) と運用 (Operations) を一体として考えるDevOpsの考え方が根付くと、スムーズに進むことも多くあるように思います。FOLIOもシステムのすべて内製しているわけではありませんが、コア部分を含めて自社のエンジニアが作っているというのは、自社のなかで改善を進めていけるDevOps向きだと思っています。Opsの本来の意味合いは、サービスのオペレーションだと思いますが、個人的には、ビジネスサイドのオペレーションも含めてOpsという認識で開発を進めています。自社が提供するサービスに関わるオペレーション全般をよくしていくという共通の目標に向かって、ビジネスサイドも、エンジニアサイドも一緒になって考えるというのが私たちなりのDevOpsのとらえ方です」

 FOLIOでは、SREチームの発足、DevOpsの採用など、開発現場における最新の手法や概念をいち早く取り入れています。これらはすべて「提供するサービスや業務に必要だから」という理由で採用されていると言います。

 澤田さんには、サービスに信頼性や安定性を求められる証券会社だからこそITが果たせることがあると考えているそうです。

「企業として、安定的に、しかも発展性を持って永続的にサービスを続けて行くための一番の敵は、“属人性”だと思っているんです。優秀な人は大切にすべきだし、弊社にはスペシャリストもたくさんいます。初期の人数が少ないフェーズでは、スピード感高く進めるための属人性も重要ですが、属人性が高まりすぎると、何か問題が起きたり、改善、改修をしようとしたとき、その人しかわからないことがどうしても出てきてしまいますし、スケールしていけません。その都度手動でやるのではなく、行動の管理についてもできるだけプログラマーがコードを書いて、解決するようにする。運用自体は誰がやっても同じ結果になるようにコントロールすることが理想です。こうしておけば “暗黙知”みたいなものが減らせるし、仮に誰かがいなくなっても、引き継げないということはなくなりますよね」

 安定性を担保するためには、システム運用面でのブラックボックスはできるだけ少なくしたい。澤田さんは、属人性をなくすことで、作業のボトルネックも解消できると言います。

「属人性が高いと、各人への依存度が作業のボトルネックになる可能性があります。現状のSREチームは人数も少ないので、属人性を高めると、『その人にしかわからないこと』が致命的な遅延原因になり得るんです」

エンジニア思考で「怠惰のために努力する」

 安定したサービスを提供するためには、チームでの情報共有を徹底し、さらに自動化、システム化を進めることで、属人性をできる限りなくすことが大切だと言います。

「SREチームはこれからも増員していって、仲間を増やしていきたいと思っていますが、物事を自動化したり、手作業をプログラムに置き換えたりといった与えられた課題をパズルのように解いていくのが好きな人は、きっとうちのやり方にあっていると思います。単に怠惰な人はどんな環境でも眠れると思うのですが、エンジニア思考で生きている人は、快適にするための仕組みを一生懸命考えて、快適に眠るために汗を惜しまないと思うんです。怠惰を目指して問題を解決しようとする人、そのプロセスを楽しめる仲間が増えていけばいいなと思います」

 創業メンバーとしてサービスの基盤を一から作り上げてきた澤田さんには、エンジニアとしての叶えたい夢があります。

「プログラマーを志したときから思っていることなんですけど、死ぬまでに何か一つ、ずっと残るようなプロダクトやサービスを作りたいなと思っているんです」

 歴史に名を残すような、みんなに使ってもらえるプロダクトやサービス。それは、「自分の手を離れてもずっと動き続けるのが理想」だと、常にエンジニア思考で発想する澤田さんは言います。

 目下、歴史に名を残すサービスの候補はもちろんFOLIOの提供するサービス。 プログラミングやエンジニアリングでインフラ、バックエンド、フロントエンド、さらにはサービス、ビジネスの問題を解決していくことこそが、その夢、理想への近道になるはずです。

 次回は、FOLIO のバックエンドエンジニアリーダーであり、FOLIO の開発組織のマネジメントを務める村上拓也さんが登場します。 同時並行で複数のプロジェクトが進行する FOLIO が直面している課題や、FOLIO がよりアジャイルな開発組織、アジャイルな企業になるためにどのようなアプローチをしているか?などについてお話をお聞きします。

ライター:大塚一樹


株式会社FOLIOでは、エンジニアを募集しています。

jobs.forkwell.com

jobs.forkwell.com

jobs.forkwell.com

jobs.forkwell.com

jobs.forkwell.com