Upgrade to Pro — share decks privately, control downloads, hide ads and more …

なぜクラウドサービスで Web コンソールを提供するのか

did0es
September 07, 2024

なぜクラウドサービスで Web コンソールを提供するのか

Web Developer Conference 2024 にて行ったセッションの資料です。

did0es

September 07, 2024
Tweet

More Decks by did0es

Other Decks in Technology

Transcript

  1. Hirai Shuta 株式会社サイバーエージェント 2022年入社 CyberAgent group Infrastructure Unit 所属 Web

    Developer(Mainly Front-End) Organizer for Meguro.es Website: https://did0.es X: https://x.com/did0es GitHub: https://github.com/shuta13
  2. CIU CyberAgent group Infrastructure Unit の略称 ・グループ IT 推進本部配下の事業部 サイバーエージェント全体のインフラを支える組織

    ・プライベートクラウドの展開 ・パブリッククラウドを利用している事業部の支援 詳細:https://it.cyberagent.group/team/ciu
  3. ちなみに CUI ≠ CIU 左は Character User Interface の略称 右は

    CyberAgent group Infrastructure Unit の略称
  4. AI の大衆化 PC さえあれば誰でも手の届くものになった ・機械学習向けのライブラリや Jupyter Notebook のような Web 実行環境の充実

    ・手法や数式を実装に落とし込むまでが簡略化 LLM の登場による生成 AI の普及 ・プロンプトエンジニアリングの登場 ・非エンジニアも AI に触れるようになった
  5. クラウドの提供サービスの変化 CUI ベースから GUI の拡充へ ・例:SageMaker Notebooks, Vertex AI Workbench

     ・Jupyter Notebook ベースの Web UI を採用  ・ML エンジニアが慣れている形に 非エンジニア向けのクラウドサービスの提供 ・例:GTP-4(Azure OpenAI Service), Imagen(Google Cloud)  ・対話形式で利用可能  ・サービスのセットアップも GUI から可能
  6. 現在の業務内容 初期 〜 中期に作られたコンソールのリプレイス ・フロントエンドチームで開発している SDK(後述) を用いたリプレイス  ・古い React や

    Vue.js が混在したプロジェクトを最新の Next.js で作り替え  ・UI の刷新  ・開発環境の改善 新規コンソール開発 ・SDK に内包されている生成ツールを用いて行う新規開発
  7. 初期 〜 中期の課題 独自の仕様や UI の乱立 ・サービスのニーズに合わせるがゆえのばらつき ・初期に作られたものをそのまま Web フロントエンドに引き継ぐ

    機能追加以外の工数の増大 ・中期に UI こそ統一されたものの...  ・定期的な依存パッケージの更新  ・不具合修正  ・↑をワンオペするがゆえに機能追加に時間を割きづらい
  8. SDK(SDK Client) コンソール開発向けのライブラリをまとめた SDK ・Org 向けに GitHub Packages で公開 ・個別にインストールして使える

     ・段階的な導入向け ・Create Cycloud App という CLI ツールで  一括セットアップも可能
  9. Create Cycloud App コマンド1つでコンソールを作成できる CLI ツール ・プロトタイピングや新規開発の補助 ・選択したテンプレートを元に作成 ・認証付き 実装方法

    ・Go で CLI を実装 ・CPU Arch と OS ごとのバイナリにビルド ・TypeScript でバイナリをラップして NPM Package として配布
  10. moldable https://github.com/CyberAgent/moldable ・CIU のメンバーで開発した OSS ・Markdown ドキュメントから  ソースコードを生成できる対話型ツール  ・Plop.js や

    Scaffdog の Go による再実装  ・実装は Create Cycloud App と同じく   Go + TypeScript ・手動のソースコードのコピペを防ぐ 画像 :https://opengraph.githubassets.com/b20ab85c06bd c7820163ae1b4f504c481c1a49dc51294ca425494961 67beb4be/CyberAgent/moldable
  11. 併せて行っていること - 1 モブプロ ・毎週 2 ~ 3 時間で実施 ・非同期的なコミュニケーションを避け、開発効率の向上

    ・内容  ・Figma のデザインレビュー  ・Figma のデザインを SDK に反映  ・SDK の運用改善
  12. 併せて行っていること - 2 SDK 勉強会 ・Web フロントエンド以外のエンジニアが、プロトタイピングできるように実施  ・所要時間 30 分

     ・CIU の エンジニア対象 ・内容  ・環境構築  ・Create Cycloud App の説明  ・ローカルで認証付きのコンソール生成
  13. 併せて行っていること - 3 輪読会 ・CIU ~ グループIT推進本部の Web フロントエンド知識の底上げ  ・毎週

    30 分で実施 ・内容  ・TypeScript 関連の技術書の輪読と問題演習  ・テスティングライブラリの Docs の輪読  ・エラーレポートサービスの Docs の輪読