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

「隙間家具OSS」に至る道/Fujiwara Tech Conference 2025

「隙間家具OSS」に至る道/Fujiwara Tech Conference 2025

FUJIWARA Shunichiro

January 17, 2025
Tweet

More Decks by FUJIWARA Shunichiro

Other Decks in Technology

Transcript

  1. 自己紹介 @fujiwara (X, GitHub, Bluesky) @sfujiwara (hatena, mixi2) 面白法人カヤック 〜2025-01(退職)

    ISUCON 優勝4回 / 運営(出題)4回 github.com/kayac/ecspresso github.com/fujiwara/lambroll
  2. Sub::Pipe print "<a>" | html; # &lt;a&gt; こういう関数( html )を実装できるモジュール

    本質部分は2行しかない use overload '|' => sub { $_[0]->( $_[1] ) }; sub joint(&) { bless $_[0], __PACKAGE__ }; danさんに添削してもらった https://dankogai.livedoor.blog/archives/5121567 8.html
  3. OSS活動 初期の振り返り だいたい何かの Plugin 的なものを書いている 実は自前WebフレームワークとかORMも書いたことはある pluggable な OSS 開発のいいところ

    大きなフレームワークから明示的なインターフェースで委譲された 「隙間」を埋める小さなパーツ 取りかかるハードルが低い(技術的にも心理的にも) すぐに成果が出る
  4. 2024-12 Stretcher Pull型デプロイツール 使っていた Archer (perl + ssh + rsync)

    が辛くなってきたため AWS CodeDeploy や sorah/mamiya を 参考にして設計 pull型 (tarをS3から取ってくる) tar, rsyncをコマンド呼び出し コマンド実行(アプリ再起動) Go でシングルバイナリ
  5. クラウド前提のシステム = 複数のサービスにまたがってシステムを構築する クラウドの中で ストレージ(オブジェクトストレージ) メッセージング(message queue) コンピュート(FaaSも含む) サーバー上の1プロセス →

    クラウド上の1コンテナ(Function) スケーラビリティを獲得するために進化した結果 大きなクラウドの中で小さい隙間を埋めたい → 入出力がAPIになったアプリケーションやFaaSのコード
  6. 隙間家具OSSの個人的エポックメイキング Rin - Redshift data Importer by SQS messaging. https://github.com/fujiwara/Rin

    2015年に開発 Redshift へのデータ取り込み概念図 COPY クエリを誰か(利用者)が実行する必要がある
  7. Rin の設計方針 S3 へのアップロードは他に任せる (fluentd) S3, SQS の可用性は大変高い ⇔ Redshift

    のダウンタイムは比較的大きい ミスマッチ部分を一度に処理しないことでリトライを容易に Redshift への COPY 発行に特化するツール
  8. 誰もが困る隙間は埋まる(ことが多い) Rin 開発2ヶ月後 Firehose がリリース。マネージドな取り込みができるようになった が、東京リージョンで使えるようになったのは2年後 Rinのメリットもあった 設定が柔軟にできる S3に置かれるログなら何でも取り込める(ALB, CloudFront,

    他何でも) Firehose はリトライが2時間まで、Redshift の長時間停止が難しい 結局 2015〜2024 まで10年使い続けた (2025/01上旬に引退) 2024-10-30 「Amazon Redshift の自動コピーの一般提供のお知らせ」 https://aws.amazon.com/jp/about-aws/whats-new/2024/10/general-availability-auto-copy-amazon-redshift/
  9. その後の隙間家具OSS ecspresso Amazon ECS デプロイツール (2017/12) mirage-ecs ECS で好きなだけ環境構築 (2019/06)

    lambroll AWS Lambda デプロイツール (2019/11) tracer ECS タスクのログ(など)を見やすく表示 (2021/11) ecrm Amazon ECR を安全に掃除 (2022/08) cfft CloudFront Functions デプロイツール (2024/01) lamux AWS Lambda multiplexer (2024/10) 「fujiwara-ware紹介 Advent Calendar 2024」 https://adventar.org/calendars/10954