凸版印刷株式会社は120年余の歴史の中で培ってきた「印刷テクノロジー」をベースに、「情報コミュニケーション」「生活・産業」「エレクトロニクス」の3つの事業分野を中心としたさまざまな事業展開を図っています。
特にビジネスモデルの変革をけん引する「トッパン・デジタルトランスフォーメーション」においては「印刷テクノロジー」に新たなテクノロジーを組み合わせ、ソフトとハードの両面から変革と挑戦を続け、情報とくらしをデザインする「社会的価値創造企業」を目指しています。
時代の変化を見すえる同社が現在取り組んでいるのが、社内のIT部門の内製力強化です。アジャイル開発やクラウド、SaaSを積極的に活用し、社内に開発・運用体制を作ることで、ビジネス環境の変化に即応できる組織を作ろうとしています。
同社では新しいサービスの開発をサーバーレスで行うことを決め、社内人材の育成も視野に入れたプロジェクトの推進にあたって、クラスメソッドのサーバーレス、コンテナに特化したモダンアプリケーション開発のワンストップ支援サービス「クラスメソッドMAD(Modern Application Development)(以下「MAD」)」を依頼いただきました。
クラスメソッドのコンサルティングを受けて得た成果と変化について、同社のDXデザイン事業部 開発戦略部の柳田 賢祐さん、ICT開発センター開発1部の今井 仁さん、橘 亮さん、髙橋 慶彦さんにうかがいました。
マネージドサービスを活用したシステム構築を目指す
凸版印刷では、自社構築を進めていた印刷資材の受発注システムをベースに、商品や資材をマッチングさせる新サービスの開発を検討していました。
新サービスは企業と自治体、NPO法人などがそれぞれ提供したいものと、必要としているものについてマッチングさせることができます。
例えば、自治体が抱える賞味期限間近の備蓄品をフードバンク側に提供する仕組みとして活用したり、汎用的に展開できるのではないかと考えたのです。同社では、これをクラウド技術やSaaSの活用などにより、サーバーレスで実現させる方針を立てました。
「自分たちでOSやミドルウェアの管理をしていると人材がいくらあっても足りません。自社で独自に開発するものをできるだけ減らし、AWSの機能やSaaSなど、良い外部サービスを積極的に使って開発や運用の手間は減らしていこうと考えました。」(柳田さん)
しかし、当時、同社内にはサーバーレス開発に関するスキルをもった技術者はいませんでした。そこで将来のためにもクラウドネイティブな開発を自社で行えるよう、このプロジェクトを通じて社内人材を育成する必要性を強く感じたそうです。
「クラウドネイティブで開発していく方針は決まりましたが、それが可能な技術者がいるわけではありませんでした。そこで内製できる技術者を育成しなければならない、という課題が生まれたのです」(今井さん)
AWSによる開発標準や各技術についての講義サービスはいくつか存在しましたが、実際のプロジェクトに沿って必要な知識を効率的に学べるような研修を提供してくれるようなサービスはなく、一方で、開発支援をしながら、技術者育成まで対応してくれるようなサービスもなかなかありません。
そこで、かつて別のプロジェクトでサーバーレス開発を依頼した実績のあったクラスメソッドに相談をいただきました。
相談の際に、クラスメソッドのサーバーレス/コンテナ開発・導入支援のページもご覧いただき、ちょうど求めていたサービスだと感じたそうです。
「開発をお願いするのではなく、開発できるような体制づくりの支援をしていただけるという提案をいただきましたのでマッチすると考えました」(今井さん)
3ヶ月半のオンライン講義で学習と開発を並行実施
クラスメソッドMADはサーバーレス、コンテナに特化したモダンアプリケーション開発の支援サービスで、コンサルティング、PoC、構築などのサービスを提供しています。
今回はサーバーレスのバックエンド構築へのコンサルティングとして、オンライン講義形式をとり、凸版印刷がこれから取り組もうとする実際の開発において必要となってくる技術や、プロジェクト管理のノウハウについて独自のカリキュラムを組んでスキルトランスファーを行いました。
イチから人材を育成することを目的とした今回は、基本となるAWSのアカウントを作成するところから講義を開始しました。
コロナ禍の影響を受けてオンライン講義となったことに当初は不安もあったそうですが、講義が始まってからは、プロジェクトに関わる人間が人数の制約なく受講し、学べるメリットを強く感じたそうです。
システム開発と並行して技術知識を支援することを目的とする本案件では、開発のフェーズに応じて必要な技術情報も変化していきましたが、柔軟に希望に応えて講義内容も組み換えていきました。
「フルマネージドの技術を使っていくために、まず私たちが知らなければならない情報・知識を最初にレクチャーしてもらいました。その後、開発プロジェクトで直面した課題に応じてリクエストを出して支援を依頼しました」(髙橋さん)
クラスメソッドからは、講義による技術情報サポート、人材育成のほか、実際のプロジェクトの内容に即したサンプルコードの提供によっても支援を行いました。
開発が進むにつれて、ご希望に応じてPythonのサンプルコードをすぐに実装できる内容で作成して提供しており、活用いただいたようです。また、プロジェクトの後半には、運用を見据えた監視や運用に関する情報・ノウハウの講義も行われました。
同社では、オンライン講義を元にプロジェクトメンバー同士で学び合う仕組みができたそうです。
「講義が終わるごとに社内で振り返りの勉強会をするようにし、認識のずれや理解力の差をできる限り埋めて次の講義を迎えるように工夫をしました」(橘さん)
と、プロジェクトメンバーが能動的に学ぶことによって、未経験の技術を活用したシステム構築を目標だった年度内に完了させることができました。
凸版印刷の新しいマッチングシステムは、AWSのフルマネージドサービスを活用して下図のような構成となりました。Amazon CloudFrontをフロントに使い、バックエンドにはAmazon API Gateway + AWS Lambdaのサーバーレス構成を起用。データベースにはPostgreSQL互換のAmazon Auroraを用いることとしました。
AWS、SaaSの中からベストプラクティスを。Auth0の導入
クラスメソッドは、特定のベンダーに依存せず、お客様の目的に対して最適な機能、サービスの利用を提案しています。
本プロジェクトで開発しているマッチングシステムは、将来的にはSaaSとして提供することを想定しています。その際に必ず必要となるのが認証機能でした。以前の開発では認証部分を毎回作りこんでいたそうで、この機能の構築・運用を軽減することは課題の一つでした。
クラスメソッドからは、実績もあり、組み込みや構築も簡単なAuth0をご紹介しました。
柳田さんたちは、当初はAmazon Cognitoの使用を提案されるものと考えていたそうで、AWS Codeシリーズの代わりにGitHubの提案があったことと合わせて、意外性が強く印象に残ったそうです。
「クラスメソッド=AWSという印象が強く、このご提案は驚きました。今はクラウド全体をうまく使っている会社だなという印象になっています」(柳田さん)
Auth0を導入後、その機能や運用のしやすさについてはSaaS活用の利点と合わせて評価いただいています。
「ログインやパスワード認証回りで、新しい脆弱性や対策とのいたちごっこを続けるには相当なリソースや知識がなければできません。信用でき、つねに最新の状況に対応してくれる専門のツールがあるのであれば使うべきと考えていました」(髙橋さん)
「ITの人材が慢性的に不足している組織としては、日々の運用保守を軽減していかないといけません。私たちにとって何がコアか、何がコアでないかを考え、試してみてダメなら変えていけば良いと積極的に考えました」(柳田さん)
Auth0のAPIを活用するためのサンプルコードも、クラスメソッドから提供したものを元にしていただいています。
「クラスメソッドに作成いただいたサンプルコードを、ほぼそのまま採用して、Auth0とLambdaを利用しています。」(橘さん)
理解しやすく実用的なサンプルコードをご提供できるのも、経験豊富なクラスメソッドのエンジニアの強みです。
CI/CDツール「CircleCI」の導入でテストとリリースの工数を削減
従来のリリース時にはExcelで作業手順書を書き、複数人で確認しながらコマンドを実行するという、レガシーなやり方をしていたと言います。ミスを防ぐためにチェックの人数を増やして対応するのは、根本的な対策にならないだけでなく、工数の負担にもなっていました。
リリースのプロセスを適切に管理できるようにすることを目的に、CI/CDツールの中でもダッシュボードが見やすい「CircleCI」を選んでいただきました。
CircleCIの導入後、バックエンド側の自動テストを簡単に設定できるようになり、今後はフロント側のテストをどこまで自動化するかを検討中とのことです。
「さまざまな環境でCircleCIの自動デプロイを試してみたのですが、テストと本番環境を間違えることもなく、自動化でかなり省力化できることが実感できました」(髙橋さん)
と手応えをつかんでいるようでした。
同社内のSlackにはCircleCIの勉強会用スレッドができていて、すでに学習意欲のあるスタッフが集まって水平展開をしているのだとか。
「凸版印刷全体の標準にできるように普及を進めたいです」(柳田さん)
と活用の意気込みを語っていただきました。
SaaS展開に向けて、さらなるエンジニアリング体制の強化を
2021年度に本格展開を目指して開発中のサービスには、すでに引き合いもきているそうです。
「B2Bでサービスをご提供していると、お客様ごとに異なる要求に対してのカスタマイズが入ります。今後はサービスをSaaSとして提供することで、運用面の軽減を図りたいです」(橘さん)
今回のコンサルティングを受けて、チームにはクラウド活用の土壌ができあがりつつあります。同社では技術メンバーにAWSのアカウントの支給を行っており、実際に動かして学べる環境を得て、すでにAWS認定資格の合格者も現れているそうです。
クラウドネイティブな開発を成功させ、将来にむけてエンジニアが成長していく環境も整いつつある凸版印刷株式会社を、クラスメソッドは今後も引き続き支援してまいります。
クラスメソッドは、AWSとSaaSの最新情報とベストプラクティスをご提案しつつ、クラウドネイティブな開発を行えるIT組織作りの支援をします。