NTTコム オンライン・マーケティング・ソリューション株式会社(以下、NTTコムオンライン)は、デジタルマーケティング事業、データ&アナリティクス事業、SMSを利用したビジネスメッセージ・サービス事業などを担っています。同社の開発部門ではこれまで、システムリリースに向けたデプロイでの業務効率化に課題を抱えていました。手順書作成、確認作業などに時間を有し、確実性もないために慎重を期していたのです。
既存のデプロイ環境をあまり変更しないことを前提に、CI/CDの手法を用いて作業効率化を図りたいと考えた同社は、技術支援のパートナーとしてクラスメソッドを採用。AWS上のシステムについて、リリース作業の効率化プロジェクトを実施。本番環境へのリリース前に既に大きな成果が見えています。本プロジェクトに際しての課題感から展望まで、テクノロジー部 中田様、田川様に詳しく伺いました。
スピード開発、社内ナレッジの蓄積、業務効率化、全てを実現するための「技術支援」採用
AWSでのシステム運用がメインになってきたNTTコムオンラインでは、AWSをより生かしたい、リリース作業を効率化するためCI/CDの仕組みを導入することはできないか、と考えていました。一方で、既存のやり方を維持したままCI/CDを導入することが可能なのか、どれだけ業務効率化の効果があるのか検証しきれず、一歩を踏み出せない状況があったそうです。
「これまでのリリース作業は、開発チームでリリース作業手順書を半日程度かけてつくり、2名でレビュー1時間を2回、実際の作業チームでも手順書レビューを2人で2時間程行い、コマンドレベルで200行コピー&ペーストで2時間程度かけて書くといったプロセスでした。これを、ステージング環境、商用環境それぞれに対して実施しており、工数としては4~5人日かかっています」(田川さん)
「自分達のリリース作業を崩さない形で効率化を実現できるかどうか、というのが重要なポイントでした。一般的に公開されている情報やナレッジの組み合わせだけで構築するのは難しく、かといってAWSの最適な構成をくみ上げるためのスキル習得に十分な時間をかけることも難しい。そこが課題でした」(中田さん)
業務効率化が前提であり技術習得は付加的な価値であると考えた時、バランスをとりながら実現できる方法として「技術知見があるところに開発を支援してもらい、ナレッジを吸収する」というプロセスが最善であると考えました。現状のリリースプロセスの実現について問い合わせを行い、クラスメソッドから実現性について確度の高い返答が来たことを決め手に、技術支援が採用されました。
今後の展開を見据え、自社基準を保ったままでの効率化を試行錯誤
EC2上のシステムについてのCI/CDを模索する中で、クラスメソッドからはAWS CodeDeployを利用した構成を提案させて頂きました。AWS CodeDeployについて利用経験が無かった同社エンジニアの方々ですが、新しい手法に触れることでむしろ奮起し、モチベーション高く、面白くプロジェクトを進められたと語ってくれました。
「自分自身も含め、チームメンバーはCodeDeployを初めて触りました。そこでクラスメソッドさんからは『こんなことが出来る』『こうやってAWS CodePipelineで繋ぎ合わせる』という基礎的なところからインプットして貰いました。更にYAML系のサンプルを教えていただき、その後は自分達で手を動かしていきました」(田川さん)
週1のミーティングに加え、随時、backlogにて作業状況を共有し、分からない所があれば質問、都度コメントを返すというプロセスでプロジェクトを進めました。スタート時にはハッキリとしたゴールイメージは無く、ひとつひとつの機能をつくりこんでいくという開発プロセスだった為、進む方向性がはっきりとした形になるまでは、試行錯誤が続きました。
「実際にひとつプロトタイプが動き出した瞬間はすごくテンションが上がって。そこからは両社向かう先が分かって、進行も早かったですね。IAMのつくり方とか、ロールやYAMLの書き方、権限周りも含めて、やりたいことを汲み取って頂いてすごく助けられました。質問へのレスもすごく早くて、こちらのやりたいこと、こちらが詰まっているところをうまく解決して頂きました」(田川さん)
「今回のプロジェクトでは、ターゲットとした環境だけで無く、今後を見据えて他のシステムにも利用できるよう、既存の複雑な環境を崩さずに構築することが求められていました。効率化、自動化という落とし所をどこにするか見つけるのは難しいことでしたが、作業効率、作業品質の改善、向上はもちろん、もともと蓄積していたやり方、弊社としてのナレッジを、妥協せずにうまく組み入れて新しい形になったと思います」(中田さん)
「スキルトランスファー」を行いながらの開発で、知見を蓄積
本プロジェクトの実際の環境での実装はこれからであるものの、この導入が完了した場合のプロセスの簡略化、削減などは確実に見えています。また、本開発を「スキルトランスファー」で実施したことで、社内に知見が蓄積されたことで、お2人は大きな手応えを感じられているようです。
「このシステムの導入が完了すれば、毎回リリース作業が同じ手順になるため、作業時間が2時間程度から15~20分程度になる予定です。手順が簡略化されることでミスも減り、リリース作業の単純化で作業者としても安心できます」(田川さん)
「我々社内に『自分たちでつくった』という知見と実績ができたのは、とても大きな意味があったと思います。権限周りのアドバイスなどもアドバイス頂き、別のプロジェクトでも活かせそうです」(中田さん)
エンジニアの「開発に専念できる環境づくり」を目指し、様々な側面から効率化を進める
「今回のプロジェクトでは、部で管理している最も大きく複雑なシステムで実績が出来ましたので、今後他のシステムにも導入しやすい状況になったと思います。効率化という点でも、事前に予測していた期待以上に結果が出せたと思います。とはいえまずは、このプロジェクトをやり切っていきたいですね」(中田さん)
「開発に専念できる環境づくり」を大きな課題と捉え、開発メンバーのモチベーションを低下させている作業を軽減させていきたい、とするNTTコムオンライン。今回取り組んだAWS上でのリリース効率化だけでなく、オンプレ環境でのリリース効率化、テストの自動化などにも取り組んでいきたいと考えているとのこと。
「本来弊社側がリードして踏み込んでいかなければいけないグレーゾーンの部分で、クラスメソッドさんが積極的に歩み寄って、踏み込んでやってくれたことも、今回うまく行った理由だと思います。今後も、別のシステムや別の機能を開発したい時、スピード感を持って動きたいという時に、なんとか自分たちだけで解決しようとするのではなく、クラスメソッドさんに技術支援をお願いするという選択肢を考えていきたいですね」(中田さん)
クラスメソッドはこれからも、様々なテクノロジーの知見をもって、NTTコム オンライン・マーケティング・ソリューションの企業活動を継続してサポートしてまいります。