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

とらのあなラボ Deno 導入の取り組み

とらのあなラボ Deno 導入の取り組み

とらのあなラボ Deno 導入の取り組み

- Deno って何っ?
- Deno ココが好き
- 入り口
- 宣伝
- 現在
- 本格業務導入に向けて - 2つの可能性
- まとめと宣伝

虎の穴ラボ株式会社

September 01, 2022
Tweet

More Decks by 虎の穴ラボ株式会社

Other Decks in Technology

Transcript

  1. Copyright (C) 2021 Toranoana Inc. All Rights Reserved. 2022 2022/08/30


    とらのあなラボ Tech Day #5 
 
 虎の穴ラボ
 奥谷 一陽
 とらのあなラボ Deno 導入の取り組み

  2. Copyright (C) 2021 Toranoana Inc. All Rights Reserved. 2022 自己紹介


    奥谷 一陽
 所属:虎の穴ラボ株式会社
 担当:とらコインSHOP、Fantiaの開発
 興味:TypeScript、Deno
 おすすめコンテンツ:
   『プラネテス』
   『暴太郎戦隊ドンブラザーズ』
 
 Twitter:@okutann88

  3. Copyright (C) 2021 Toranoana Inc. All Rights Reserved. 2022 現在とらのあなラボは

    
 Deno 宣伝してる! と開発に導入した!の 間くらい

  4. Copyright (C) 2021 Toranoana Inc. All Rights Reserved. 2022 Deno

    (業務) 本格導入に向けた
 取り組みを紹介していきます

  5. Copyright (C) 2021 Toranoana Inc. All Rights Reserved. 2022 アジェンダ


    - Deno って何っ?
 - Deno ココが好き
 - 入り口
 - 宣伝
 - 現在
 - 本格業務導入に向けて - 2つの可能性
 - まとめと宣伝

  6. Copyright (C) 2021 Toranoana Inc. All Rights Reserved. 2022 Deno

    って何?
 
 
 
 
 
 
 
 
 参考:https://deno.land/

  7. Copyright (C) 2021 Toranoana Inc. All Rights Reserved. 2022 Deno

    って何?
 - A modern runtime for JavaScript and TypeScript
 - Node.js の開発者 Ryan Dahl を筆頭に、
 Deno Land Inc で開発されているランタイム
 - Node.js での反省が生かされている
 例えば、node_modules …
 - 開発開始 約4年前
 - Deno 1.0 リリース 2020年5月13日

  8. Copyright (C) 2021 Toranoana Inc. All Rights Reserved. 2022 Deno

    ココが好き
 - サードパーティツールの導入なく TypeScript を動かせる
 - テスト、リンター、カバレッジツールなどが含まれた
 シングルバイナリで提供
 - npm install 不要、node_modules 無し!
 - 各種リソースアクセスへのパーミッション管理搭載
 - Deno Deploy(エッジコンピューティングサービス)がある
 など

  9. Copyright (C) 2021 Toranoana Inc. All Rights Reserved. 2022 Deno

    の入り口
 - Deno 1.0 公開時に書いたブログ

  10. Copyright (C) 2021 Toranoana Inc. All Rights Reserved. 2022 Deno

    の入り口
 - 以後リリースノートに触れていく記事などを書く
 - 良かったこと
 - あまり業務で触れてこなかったAPIへの解像度が上がった
 Web Crypto など
 - 定点観測しているので、経緯のようなものをつかめる

  11. Copyright (C) 2021 Toranoana Inc. All Rights Reserved. 2022 宣伝


    - 「Deno いいぞ」と言っているのは自由なので、
 社内的に宣伝していった。
 - 社外向けに勉強会 toranoana.deno の立ち上げ
 

  12. Copyright (C) 2021 Toranoana Inc. All Rights Reserved. 2022 宣伝

    - 公式に認知される -
 - Companies interested in Deno (Denoに興味がある企業)
 
 
 
 
 参考:https://github.com/denoland/deno/wiki

  13. Copyright (C) 2021 Toranoana Inc. All Rights Reserved. 2022 宣伝

    - 技術向上施策になる -
 - これまでの活動などもあり、
 社内の重点施策としてTypeScript x Denoを取り扱うことに!
 - 約9ヶ月ほど定期的に勉強会を行うようになる。

  14. Copyright (C) 2021 Toranoana Inc. All Rights Reserved. 2022 宣伝

    - 技術向上施策になる -
 - 施策担当者曰く、
 - 「ランタイムの未来は完全には読みきれないが
   TypeScript の練習環境としてDenoはいい」
 - 「仮にランタイムが将来残らなくても、
   TypeScriptにかけた時間無駄になりにくい」
 => Denoと必ずしも一蓮托生である必要は無い

  15. Copyright (C) 2021 Toranoana Inc. All Rights Reserved. 2022 宣伝

    - 技術向上施策になる -
 例えば こんなテーマ
 - TypeScript 言語仕様
 - Deno で動かせるテンプレートエンジン
 - Deno でDB 操作/マイグレーション
 - リポジトリの階層ベストプラクティス、実践的コードの実装
 最終的に参加者全員が Deno でMPAアプリを書けるようになった!

  16. Copyright (C) 2021 Toranoana Inc. All Rights Reserved. 2022 現在


    - 社内向けサービスのバックエンドサーバーとして、開発に利用
 - 本体のバージョンに合わせて、
 開発に継続して環境もアップデート
 例えば? タスクランナー deno task に対応させたりなど
 - 社外向けはまだ

  17. Copyright (C) 2021 Toranoana Inc. All Rights Reserved. 2022 社内向けサービスでの開発


    - 既存サービスのサブシステムとして開発
 - 目的:社員の出席管理
 - 既存のサービスに社員のデータ(名前、社員番号など)を持つ
 - 最終的には、マイグレーションもDenoへ移管したいが、
 一旦現在は既存サービスのRailsにまかせている

  18. Copyright (C) 2021 Toranoana Inc. All Rights Reserved. 2022 社内向けサービスでの使用


    DB APIサーバー APIサーバー SPA Vue App SPA React App 既存システム
  19. Copyright (C) 2021 Toranoana Inc. All Rights Reserved. 2022 社内向けサービスでの使用

    - Deno の開発導入で良かったこと - 
 - 開発1日目から開発を始めている
 デフォルトでTypeScriptが動く
 - ツール群のインストールが不要
 強いてマイナスポイントを挙げるなら?
 - デファクトスタンダードな ORM が無い
 - 導入事例をなかなか見つけられない
 

  20. Copyright (C) 2021 Toranoana Inc. All Rights Reserved. 2022 本格業務導入に向けて

    - 2つの可能性 
 - 本格業務運用に向けて、大きく 2 つのパターンが検討できる
 - ランタイムとして
 - 実行環境として(Deno Deploy)

  21. Copyright (C) 2021 Toranoana Inc. All Rights Reserved. 2022 本格業務導入に向けて

    - ランタイムとして
 - 既存の クラウドコンピューティングインフラでの導入
 - AWS なら
 - EC2
 - ECS
 - Lambda(とコンテナを接続)
 =>既存の環境との代替での使用を見込める

  22. Copyright (C) 2021 Toranoana Inc. All Rights Reserved. 2022 本格業務導入に向けて

    - ランタイムとして
 - AWS Lambda で Denoを動かす記事 2021年12月08日公開

  23. Copyright (C) 2021 Toranoana Inc. All Rights Reserved. 2022 本格業務導入に向けて

    - 実行環境として(Deno Deploy)
 Deno Deploy 起点のフルサーバレスサービスインフラを想定
 - クラウドコンピューティングインフラに縛られずに
 欲しいサービスを部分個別に契約して構成する
 例えば?

  24. Copyright (C) 2021 Toranoana Inc. All Rights Reserved. 2022 Deno

    Deploy 起点フルサーバーレス サービス インフラ 構想
 
 deno deploy ・APIサーバー ・DB管理 ・ストレージ キャッシュ呼び出し Redis qStash バッチ処理呼び出し フロントサーバー
  25. Copyright (C) 2021 Toranoana Inc. All Rights Reserved. 2022 Deno

    Deploy 起点フルサーバーレス サービス インフラ 構想
 deno deploy フロントサーバー ・APIサーバー ・DB管理 ・ストレージ キャッシュ呼び出し Redis qStash バッチ処理呼び出し deno deploy +      + bunny cdn ... API呼び出し
  26. Copyright (C) 2021 Toranoana Inc. All Rights Reserved. 2022 本格業務導入に向けて

    
 - 2種類の導入方法は、サービス/プロダクトの状況による
 - 既存サービスに載せるなら
 プラットフォームのお作法に乗るべき
 - 新規であれば、少しチャレンジした構成も取りうるはず。
  =>極個人的な見解としては、
    フルサーバーレスはチャレンジしたい

  27. Copyright (C) 2021 Toranoana Inc. All Rights Reserved. 2022 現在、業務導入に至れていない理由

    
 - タイミング
 Deno を導入するというイベントを含められる
 適切なプロジェクトが無かった
 - 実績
 広く一般での商用利用実績を見て、やや慎重な判断をしている
 =>実績を作るための社内アプリ開発や、勉強会

  28. Copyright (C) 2021 Toranoana Inc. All Rights Reserved. 2022 本格業務導入に向けて

    - 事例 merch.deno.com
 - Deno 公式グッズ販売サイト
 
 
 
 
 - Deno Deploy x Shopify API によるフルサーバーレス構成
 - 珍しい ソースコードが公開されたショッピングサイト https://github.com/denoland/merch

  29. Copyright (C) 2021 Toranoana Inc. All Rights Reserved. 2022 まとめ


    - とらのあなラボでの Deno 導入経緯/状況についてお話しました
 - ぜひ Deno 試してみてください
 特に、Deno Deploy でアプリケーションを動かすところまで
 触れられるといい体験が得られると思います
 - 一緒に実績を作っていきましょう!

  30. Copyright (C) 2021 Toranoana Inc. All Rights Reserved. 2022 宣伝


    
 
 
 
 
 toranoana.denoは 2ヶ月に1回くらいのペースで開催です こちらもぜひ