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

ecspressoへの貢献を振り返る / JAWS-UG コンテナ支部 #24 ecspresso MeetUp

cohalz
August 08, 2023

ecspressoへの貢献を振り返る / JAWS-UG コンテナ支部 #24 ecspresso MeetUp

cohalz

August 08, 2023
Tweet

More Decks by cohalz

Other Decks in Programming

Transcript

  1. ecspressoへの貢献を
    振り返る
    @cohalz
    JAWS-UG コンテナ支部 #24 ecspresso MeetUp
    1

    View full-size slide

  2. 自己紹介
    ● こはる(@cohalz)
    ● 株式会社はてな SRE
    ○ はてなブックマーク
    ○ はてなブログ
    2

    View full-size slide

  3. はてなにおけるecspressoの利用
    ● 2021年3月頃から本格利用開始
    ○ 社内向けサービスなどではそれ以前から一部利用
    ● 現在はてなブログ・はてなブックマーク
    ・Mackerelで全面的に採用
    3

    View full-size slide

  4. 今日話すこと
    ● ecspresso関連の貢献の紹介
    ○ v1.5からv2までの新機能
    ○ v2で追加したバージョンファイル機能について
    ● OSS貢献のススメ
    ○ 様々な貢献の仕方があるよ
    4

    View full-size slide

  5. 5
    貢献の紹介

    View full-size slide

  6. 貢献の歴史
    ● 2021/3から本体へのPRは9件
    ○ v1.5.0から
    ● その他に本体以外の貢献もあり
    6

    View full-size slide

  7. コントリビュート数はbotを除けば1番目
    7

    View full-size slide

  8. verifyコマンドでのIAM権限の修正(#262)
    ● タスク実行ロールに不要な権限が必要だった
    ○ v1.5.0(2021/4/10)から実行権限でも可に
    ○ v2で完全に実行権限のみに移行
    8

    View full-size slide

  9. ecspresso initでタグが含まれるように
    (#270)
    ● initでtagとpropagateTagsが含まれるように
    ○ 社内ではタグをつける運用だった
    ○ v1.5.0(2021/4/10)から
    9

    View full-size slide

  10. desiredCountがdiffに出るように
    (#274, #276)
    ● 設定でdesiredCountを書いた際にdiffが出るように
    ○ 台数もコード管理したい場合に便利
    ○ v1.5.1(2021/4/20)から
    10

    View full-size slide

  11. CodeDeployでrollbackが可能に
    (#261, #275, #284)
    ● CodeDeployでもロールバックできるように
    ○ デプロイ中でもそうでなくてもロールバック可能に
    ○ v1.5.2(2021/5/5)から
    11

    View full-size slide

  12. tfstateの値参照がTerraform Cloudに対応
    (fujiwara/tfstate-lookup #30)
    ● 以前はS3やGCSのみ
    ○ 社内でTerraform Cloud導入が進んだきっかけ
    ○ v1.6.0(2021/8/7)から
    12

    View full-size slide

  13. diffでunified形式が使えるように
    (#365, #367)
    ● git diffのようなdiffが出せるように
    ○ 以前は全行出ていた
    ○ v1.7.5(2021/12/25)から
    ○ v2でデフォルトに
    13

    View full-size slide

  14. v2の準備が始まった際にいくつか機能要望(#374)
    14

    View full-size slide

  15. 15
    v2で追加した
    バージョンファイルの紹介

    View full-size slide

  16. ecspressoのバージョン管理問題
    ● GitHub Actionsでlatestを指定していた
    ○ API limitや不具合バージョンのリスクあり
    ● 手元で使いたい時のバージョン管理
    ○ 開発者が増えるならバージョン統一したい
    16

    View full-size slide

  17. これを解決するために
    ● .ecspresso-versionというファイルを導入
    ○ Actions/Orbで使える
    ○ asdfでも利用できる
    ● どういう順番で実装・どう利用しているか
    17

    View full-size slide

  18. GitHub Actionsで利用できるように
    (#490)
    ● Actionsにversion-fileオプションを追加
    ○ shogo82148/actions-setup-perlの変更きっかけ
    (#1367)
    ● その後fujiwaraさんがOrb対応(#492)
    18

    View full-size slide

  19. asdf-ecspressoで読めるように
    (kayac/asdf-ecspresso #1)
    ● legacy_version_file機能を使い実装
    ○ bin/list-legacy-filenamesファイルに追加するだけ
    ● asdfで読める形式でActionsの方を追加
    ○ vプレフィックスの有無など気をつけポイント
    19

    View full-size slide

  20. asdf install ecspresso
    (asdf-vm/asdf-plugins #790)
    ● asdf install ecspressoできるように
    ● 製作者にasdf-pluginsに登録してもらった
    ○ @kolukuさん
    ○ YAPC::Kyoto 2023の懇親会きっかけで進んだ
    20

    View full-size slide

  21. Tips: required_versionと組み合わせる
    ● required_versionでこのファイルを使う
    ○ jsonnet推奨
    ○ required_version: '= v' + importstr '.ecspresso-version'
    ○ ecspresso handbook v2のChapter 15でも紹介され
    ている手法
    21

    View full-size slide

  22. Tips: Renovateで更新するには
    ● Regex Managerを使って更新を拾える
    ○ 参考: https://scrapbox.io/aereal-tech/Renovateで
    ecspressoのバージョンを上げる
    22

    View full-size slide

  23. Renovateの設定を公開
    (hatena/renovate-config #70)
    ● このRenovate設定をOSSとして公開
    ○ 参考: はてなで使用しているRenovateの設定プリセッ
    トを公開しました
    ● renovate.jsonに1行追加するだけで使えます
    ○ "extends": ["github>hatena/renovate-config:ecspressoVersion.json5"]
    23

    View full-size slide

  24. 24
    OSS貢献のススメ

    View full-size slide

  25. これだけ貢献したきっかけ
    ● CI/CDの改善がOSS活動になっていた
    ○ 機能が足りてないから改善する
    ● 楽しんで追加する
    ○ もはや趣味コードの一つ
    ○ 「このライブラリと組み合わせたら面白そう」
    25

    View full-size slide

  26. PRだけでなくIssueでも
    ● Issueに機能要望を書くだけでも
    ○ デプロイ方法は千差万別
    ○ どう使われてるかのきっかけになる
    ● 非互換変更な要望もv2で対応してもらった
    26

    View full-size slide

  27. それ以外の貢献方法
    ● 使うだけでも貢献...だけど
    ○ SNSなど本人に見える場所で貢献するとなおよし
    ○ 良いIssue/PRがあったらリアクションするなども
    ● OSS開発してる人が何されたら嬉しいか
    ○ Songmuさんの「OSS活動を細く長く続ける技術」
    27

    View full-size slide

  28. 28
    寄付という手もあります

    View full-size slide

  29. おわり
    ● 追加した機能の歴史を紹介しました
    ● OSS貢献でこれからも長く利用していきましょう
    29

    View full-size slide