低価格で高品質なサービスを提供し、葬儀に関わるサービスの透明性を高めたWebサービス「小さなお葬式」は2009年から事業を展開しており、受注件数は4年連続で業界一位と支持を集めています。
「小さなお葬式」を運営する株式会社ユニクエストでは受注件数が増加していく中、Webサービスの安定稼働やリリース体制に課題感を持つようになってきました。インフラにはAWSを使っていましたが、AWSの強みを十分に生かしているとはいえず、より高い可用性やスムーズな新機能の提供を実現するため、リニューアルの必要性を感じていたのです。
AWSをインフラとして使用してきた同社ですが、現在稼働中のサービスのバックエンドを安全にコンテナ環境に置き換えるには、経験や知識の面で不安を感じたと言います。
そこで、クラスメソッドのサーバーレス/コンテナに特化した開発・導入支援サービス「クラスメソッドMAD(Modern Application Development)」をご依頼いただきました。
同社が採用したコンテナ技術のメリットや導入効果、クラスメソッドの支援内容へのご感想などを、同社の北原様、篠原様、森様、長谷川様におうかがいしました。
レガシープロセスからの脱却を目指して
同社が事業の成長にともない、インフラの改善を検討したのは2〜3年前のことでした。テレビコマーシャル等に露出することで増加していくアクセスに、柔軟に対応することができなければ、ユーザーに迷惑がかかるばかりか機会損失も生まれてしまいます。
当時はまず、アプリケーションはそのままに、インフラだけクラウドに変更する「リフト」を実行しました。しかし、レガシーのままのアプリケーションと、それに引きずられてレガシーなプロセスが残ってしまっていることは引き続き課題として感じられていたそうです。
「事業の成長をとめないために、エンジニアとしてはアプリケーションのリアーキテクチャーを行って、今後も開発・運用を続けていけるシステムを作らないといけないと考えていました。」(北原さん)
また、人的リソースの面からもコンテナ/サーバーレスを導入する意義があると考えていました。
「当社の開発部には20名弱のエンジニアが在籍しているのですが、スキルはやはりアプリケーション開発が主になっています。インフラがわかるエンジニアが少ないため、インフラ運用についてはAWSのフルマネージドの機能を利用して負荷を減らすことを考えていました。」(篠原さん)
レガシーなシステムから脱却し、事業成長に向けて開発しやすく、運用負荷の軽いシステムにリニューアルすることを目的に、2020年7月ごろからプロジェクトがスタートしました。
コンテナ技術、モダンアプリケーション開発のナレッジを求めて
プロジェクトに合わせてSRE(Site Reliability Engineering)チームを立ち上げ、より信頼性の高いシステムの構築と運用の検討を進めていた同社。
AWSは活用していたものの、SREで重要な技術となるコンテナやサーバーレスの活用経験は少なく、モダンアプリケーションのナレッジが不足していると感じていたそうです。
篠原さんはじめ、同社のエンジニアは日頃からセミナーやイベントに参加してAWSに関する最新の知見を蓄積していましたが、それでも社内で検討した構成がベストプラクティスなのか確信を持てなかったと言います。
クラスメソッドへの技術支援の依頼は、こうした課題感に加えて、業務でAWSを扱うようになったときから読んでいた技術ブログ「DevelopersIO」や、ユニクエスト本社がクラスメソッドの大阪支社に近かったことがきっかけになりました。
「クラスメソッドは、AWSに関するエキスパートとして技術ブログを通して社内で知られた存在でした。メンバーにも受け入れられると思っていましたし、他社の検討はしませんでした。」(北原さん)
問い合わせを受けたクラスメソッドでも、ほぼ時を同じくして新サービス「クラスメソッドMAD(Modern Application Development)」チームが立ち上がったところでした。このサービスは、コンテナ/サーバーレスに特化したコンサルティングを提供するものであり、まさに求めていたものだったと言います。
SREやモダンアプリケーション開発を支える知見
Webサイトリニューアルプロジェクトの最初のゴールは、2021年3月までに一部のページをリニューアルすることに定められました。
クラスメソッドは2020年10月から参加し、コードレビューやサンプルコードの作成、QA対応などの技術支援を行いました。
「最初に課題や依頼事項の共有をして、以降はBacklogのチケットベースでの開発課題や疑問へのサポートをお願いしていました。プロジェクトも後半になって、やりとりを加速させたくなった時にはデイリースクラム形式で情報共有やモブプログラミングを行うなど、短期間ながら柔軟に対応いただいて助かりました。」(篠原さん)
QA対応だけでなく、Lambda@Edgeや、CircleCIのサンプルコードを作成・提供するなど、開発をより効率良く進める支援も行っています。
また、開発だけでなく、運用やリリースについても、技術支援実績が豊富なクラスメソッドのエンジニアの知見が生きる場面がありました。
長谷川さんは、SREとして必要な情報ほど、インターネットで正解を探すのは難しいと感じていたそうです。仮に情報があったとしても体系立ててまとめられているわけではなく、前提条件が異なっていたり、断片的であることから、自社のシステムにも当てはまるのか判断は難しいものです。
そのため、クラスメソッドのエンジニアが実績に基づいて提案する適正な設定や、ベストプラクティスは貴重な情報だったといいます。
「SLI/SLOをどのように定めるべきか、どんなメトリクスを監視するのが良いか、どんな値でアラート設定したら良いのか、などをご教授いただきました。SREチームが今後の運用を考えていく上で、大切な知見になったと思います。」(長谷川さん)
リリースの際には、DNSの切り替えという、あまり経験することのない作業をアプリケーションのリリースと同時に行うかどうかという判断で、クラスメソッドのエンジニアの知見が生きました。
当初のスケジュールでは、アプリケーションのリリースとDNSの切り替えが同時になる想定でした。
しかし、クラスメソッドのエンジニアに相談し、DNSの切り替えとアプリケーションのリリースを同時に行うことはリスクが高いため、それらを分割して実施する提案を受けて、スケジュールを見直すことにしたそうです。
「『小さなお葬式』はユニクエストにとって最も重要なサービスです。リリースの際にサービスが止まってしまってはいけないので、非常に心配していたところでした。
おかげさまで大きなトラブルなくリリースすることができて、相談して良かったと思っています。」(森さん)
「そこで失敗していたら悪い事業インパクトを与えていたでしょう」
と北原さんも胸を撫で下ろしました。
一部のリニューアルが終わった状態で、厳密な計測はしていませんが、表示速度は体感できるほど確実に向上しました。プロジェクトは順調に進んでいるようです。
開発プロセスの見直しでチーム間のコミュニケーションも活発に
AWSやTerraform、CircleCIを活用し、開発プロセスに手を入れた結果、部門内の風通しもよくなってきたようです。
それまでデザイナーはコーディングが終わった段階で手放すような流れがありましたが、今回のリプレースを機に、プログラマーの領域も理解しようという空気ができ、逆にプログラマーもデザイナーのコーディングに意識が向くようにもなりました。
「これまで交わらなかったところがチームとして機能するようになってきました」(篠原さん)
と、開発体制にも良い影響が表れているようです。
現在は一部のページをリニューアルした状態で、これから半年ほどかけて順次ページを更新していく予定です。
「小さなお葬式」自体では半分くらい、リニューアルプロジェクトの全体からは2〜3割が終わった状況ですが、インフラなどの環境面だけでなく、チームの効率化も進んでいることで、これからの業務のスピードアップと生産性の向上に期待が持てる状態となりました。
現場のエンジニアと伴走するサポートを
リニューアルプロジェクトはまだ道半ばです。バックエンドの連携や、各種データ分析は今後取り組みたい課題です。また、モニタリングについてもダッシュボードを作成し、環境を充実させていく予定です。
「弊社のように、AWSで悩んでいる組織は多いと思います。DXや内製化に取り組む中で、ベストプラクティスが何かわからない不安はあると思います。クラスメソッドのような、現場のエンジニアに伴走してくれるコンサルティングサービスは、自社開発・運用への勇気がでてありがたいです。」(篠原さん)
SREやコンテナ、モダンアプリケーション開発など、最新のIT技術や開発プロセスの知見を提供しつつ、企業がIT開発・運用を自走できる力を身に着けられるよう支援する「クラスメソッドMAD」。
クラスメソッドは、顧客企業が自らクラウド技術の利点を生かし、システム開発・運用を行えるよう支援してまいります。