BEMAロゴ

エンジニアの
成長を支援する
技術メディア

【AI×DevOpsLab】サーバーレスで挑む次世代スキルシート自動生成ツールを開発してみた

はじめに 

皆さん、こんにちは。株式会社メンバーズ デブオプスリードカンパニOpen in new tabーの山田です。

デブオプスリードカンパニーでは、毎週金曜日の13時から18時まで、「DevOpsLab」という特別な時間を設けています。この時間は、自身の学習や研究活動に自由に使うことができます。

このDevOpsLabの時間を活用し「研究開発:AI×DevOps」という題で、スキルシート作成ツールを生成AIを使って、開発するための検討をしました。

なぜ今、AIを活用したスキルシート作成ツールなのか?

社員のスキルを適切に管理し、可視化することは、プロジェクトのアサインや個人のキャリアパス形成において非常に重要です。情報の可視化や人が自然言語でスキルを検索することができると、アサインの幅が広がると考えました。そのため、生成AIを組み合わせることで、より使いやすく、効率的なものへと進化できるのでは?と考えスタートしました。 具体的には、スキルシート作成・利用時における「必要なスキルを持った人材を自然言語で探すのが難しい」「スキル情報の更新が手間」といった課題をAIの力で解決することを目指しています。

今回のシステム開発における主要な要件は以下の3点です。

AIを使用した検索機能

特定スキルを持った社員情報が登録されているかを、AIを使って効率的に検索できるようにします。例えば、「〇〇プロジェクトで即戦力となるエンジニアは?」といった曖昧な要望にも対応できるような検索を目指します。

スキル情報の格納と管理機能の実装

社員一人ひとりのスキル情報を正確に、そして柔軟に管理できる基盤を構築します。

適切な権限管理システムの構築

AIを使用する際や、スキル情報の登録・閲覧においてセキュリティを確保するため、ユーザー(スキルシートの閲覧者)と編集者(スキルシートの登録・更新者)の適切なアクセス権限を設定することで、情報の整合性を保ちます。

アーキテクチャ設計と技術選定:サーバーレスの選択

システム開発において、基盤となるアーキテクチャの選定はプロジェクトの成否を左右する重要な要素です。 今回、私たちが採用を決定したサーバーレスアーキテクチャについて、その選定理由を交えてご紹介します。

一般的なWebシステムのアーキテクチャは、ユーザーインターフェースを担うフロントエンド、ビジネスロジックを処理するミドルウェア(バックエンド)、そしてデータを永続的に保存するバックエンド(データベースなど)で構成されます。今回のスキルシート作成ツールも、この基本的な考え方に基づき設計を進めています。

クラウド上の「サーバーあり」と「サーバーレス」の比較

アーキテクチャの選定にあたり、私たちはクラウド環境での運用を前提に、「サーバーあり」(仮想サーバーなどを利用するIaaS/PaaSアプローチ)と「サーバーレス」の2つの選択肢を比較検討しました。

1. サーバーありアーキテクチャ(クラウド上の仮想サーバーなど)

メリット

  • システムの完全なコントロールが可能:
    サーバーOSからミドルウェアまで、細部にわたって自由に設定でき、特定の要件に合わせた高度なカスタマイズやパフォーマンス最適化が容易です。
  • 豊富なツールとエコシステム:
    長年の実績があり、運用・開発に関するツールやノウハウ、コミュニティが成熟しています。

デメリット

  • 運用・保守の負担が依然として存在: クラウド上にサーバーを構築しても、OSのパッチ適用、ミドルウェアのバージョンアップ、リソースの監視といった運用タスクは依然として残ります。
  • 手動または複雑なスケーリング管理が必要: トラフィックの変動に応じて、サーバーの増減を自動化するには別途設定やツールが必要になり、その管理が複雑になる場合があります。
  • リソースの最適化が課題: 常に起動しているため、利用状況によってはリソースが余剰となり、コストが最適化されない可能性があります。

2. サーバーレスアーキテクチャ

メリット

  • 運用負荷が極めて少ない:
    サーバーのプロビジョニングやパッチ適用、スケーリングといったインフラ管理のほとんどをクラウドプロバイダーに任せられるため、エンジニアはサービスの開発そのものに集中できます。
  • 自動スケーリングによる柔軟な対応:
    アクセスの増加に合わせて自動的にリソースが拡張されるため、急なトラフィック増加にもサービスが停止することなく対応できます。
  • コスト効率が優れている:
    実行された処理の量(リクエスト数や実行時間など)に応じて課金されるため、アイドル状態のコストを抑えられ、無駄なコストを大幅に削減できます。

デメリット

  • 特定のベンダーへの依存: 特定のクラウドプロバイダーのサービスに深く依存するため、将来的な移行が難しくなる「ベンダーロックイン」のリスクがあります。
  • コールドスタートの課題: 一定時間アクセスがない関数が呼び出される際、最初の処理に時間がかかる「コールドスタート」が発生する場合があります。これはユーザー体験に影響を与える可能性があるため、対策を検討する必要があります。
  • デバッグや監視の複雑性: 複数の小さな関数が連携して動作するため、従来のモノリシックなアプリケーションに比べてデバッグや全体の監視が複雑になる場合があります。

私たちは、「開発者のスキルアップ」「運用負荷の軽減」「コスト効率」という3つの観点から検討を重ねた結果、サーバーレスアーキテクチャの採用を決定しました。 特に、AI機能の迅速な試行錯誤やデプロイを考えると、運用負荷が少なく、自動スケーリングに優れるサーバーレスは非常に相性が良いと判断しました。

技術的には、これらの考え方に基づき、具体的なクラウドサービスやAI関連サービスを選定し、開発を進めていく予定です。

今後の展望

現在は初期段階のため公開できる情報は限られていますが、具体的な技術選定と実装を着実に進めていきます。 特にAIを活用した検索機能については、どのようなモデルや手法が最適か、試行錯誤を重ねながら進めていきたいと考えています。開発者自身と実際の利用者双方が「これは本当に便利だ!」と実感できるツールにすることを目標に開発を進めていきます。

開発の進捗状況は定期的にこのBEMAを通じて公開させていただく予定です。 今後の展開にぜひご期待ください!

この記事が役に立ったと思ったら、
ぜひ「いいね」とシェアをお願いします!

リンクをコピーXでシェアするfacebookでシェアする

この記事を書いた人

山田 義智
山田 義智
2023年に株式会社メンバーズ デブオプスリードカンパニーに中途入社しました。 以前はオンプレミスシステムのインフラエンジニアとして勤務しており、現在はクラウドインフラエンジニアとして活躍できるよう、クラウド技術について学習に励んでいます。
詳しく見る
ページトップへ戻る