Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
ecspressoへの貢献を振り返る / JAWS-UG コンテナ支部 #24 ecspres...
Search
cohalz
August 08, 2023
Programming
1
5.9k
ecspressoへの貢献を振り返る / JAWS-UG コンテナ支部 #24 ecspresso MeetUp
https://jawsug-container.connpass.com/event/285124/
cohalz
August 08, 2023
Tweet
Share
More Decks by cohalz
See All by cohalz
はてなのSRE組織2024 / Road to SRE NEXT@福岡
cohalz
2
1.5k
SREのキャリア、 あるいは生態 / #ya8
cohalz
11
1.5k
カンファレンスのボランティアスタッフって何やるの? / DAIMYO Meetup #4
cohalz
0
110
小さなものでも Step Functions / Serverless Meetup Fukuoka Re:boot
cohalz
0
140
ECSのCI/CD改善と標準化の取り組み / JAWS FESTA 2023 in Kyushu
cohalz
8
6.2k
はてなフォトライフをECSに移行した話 / Hatena Engineer Seminar #20
cohalz
1
18k
SREの異動と働き方 〜はてなブログ編〜 / Hatena Engineer Seminar #13
cohalz
0
2.3k
Envoy.なんか / Kyoto.なんか #5
cohalz
1
160
CDKを用いたモダンなECSクラスタの構築と運用 / AWS Cloud Development Kit -CDK- Meetup
cohalz
6
3.2k
Other Decks in Programming
See All in Programming
Webの技術スタックで マルチプラットフォームアプリ開発を可能にするElixirDesktopの紹介
thehaigo
2
1k
聞き手から登壇者へ: RubyKaigi2024 LTでの初挑戦が 教えてくれた、可能性の星
mikik0
1
130
.NET のための通信フレームワーク MagicOnion 入門 / Introduction to MagicOnion
mayuki
1
1.7k
リアーキテクチャxDDD 1年間の取り組みと進化
hsawaji
1
220
色々なIaCツールを実際に触って比較してみる
iriikeita
0
330
シェーダーで魅せるMapLibreの動的ラスタータイル
satoshi7190
1
480
Nurturing OpenJDK distribution: Eclipse Temurin Success History and plan
ivargrimstad
0
940
as(型アサーション)を書く前にできること
marokanatani
10
2.7k
CSC509 Lecture 13
javiergs
PRO
0
110
ローコードSaaSのUXを向上させるためのTypeScript
taro28
1
620
Jakarta EE meets AI
ivargrimstad
0
100
Macとオーディオ再生 2024/11/02
yusukeito
0
370
Featured
See All Featured
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
4 Signs Your Business is Dying
shpigford
180
21k
Building a Modern Day E-commerce SEO Strategy
aleyda
38
6.9k
The World Runs on Bad Software
bkeepers
PRO
65
11k
Build The Right Thing And Hit Your Dates
maggiecrowley
33
2.4k
Testing 201, or: Great Expectations
jmmastey
38
7.1k
What’s in a name? Adding method to the madness
productmarketing
PRO
22
3.1k
How GitHub (no longer) Works
holman
310
140k
The Language of Interfaces
destraynor
154
24k
The MySQL Ecosystem @ GitHub 2015
samlambert
250
12k
Bootstrapping a Software Product
garrettdimon
PRO
305
110k
Fashionably flexible responsive web design (full day workshop)
malarkey
405
65k
Transcript
ecspressoへの貢献を 振り返る @cohalz JAWS-UG コンテナ支部 #24 ecspresso MeetUp 1
自己紹介 • こはる(@cohalz) • 株式会社はてな SRE ◦ はてなブックマーク ◦ はてなブログ
2
はてなにおけるecspressoの利用 • 2021年3月頃から本格利用開始 ◦ 社内向けサービスなどではそれ以前から一部利用 • 現在はてなブログ・はてなブックマーク ・Mackerelで全面的に採用 3
今日話すこと • ecspresso関連の貢献の紹介 ◦ v1.5からv2までの新機能 ◦ v2で追加したバージョンファイル機能について • OSS貢献のススメ ◦
様々な貢献の仕方があるよ 4
5 貢献の紹介
貢献の歴史 • 2021/3から本体へのPRは9件 ◦ v1.5.0から • その他に本体以外の貢献もあり 6
コントリビュート数はbotを除けば1番目 7
verifyコマンドでのIAM権限の修正(#262) • タスク実行ロールに不要な権限が必要だった ◦ v1.5.0(2021/4/10)から実行権限でも可に ◦ v2で完全に実行権限のみに移行 8
ecspresso initでタグが含まれるように (#270) • initでtagとpropagateTagsが含まれるように ◦ 社内ではタグをつける運用だった ◦ v1.5.0(2021/4/10)から 9
desiredCountがdiffに出るように (#274, #276) • 設定でdesiredCountを書いた際にdiffが出るように ◦ 台数もコード管理したい場合に便利 ◦ v1.5.1(2021/4/20)から 10
CodeDeployでrollbackが可能に (#261, #275, #284) • CodeDeployでもロールバックできるように ◦ デプロイ中でもそうでなくてもロールバック可能に ◦ v1.5.2(2021/5/5)から
11
tfstateの値参照がTerraform Cloudに対応 (fujiwara/tfstate-lookup #30) • 以前はS3やGCSのみ ◦ 社内でTerraform Cloud導入が進んだきっかけ ◦
v1.6.0(2021/8/7)から 12
diffでunified形式が使えるように (#365, #367) • git diffのようなdiffが出せるように ◦ 以前は全行出ていた ◦ v1.7.5(2021/12/25)から
◦ v2でデフォルトに 13
v2の準備が始まった際にいくつか機能要望(#374) 14
15 v2で追加した バージョンファイルの紹介
ecspressoのバージョン管理問題 • GitHub Actionsでlatestを指定していた ◦ API limitや不具合バージョンのリスクあり • 手元で使いたい時のバージョン管理 ◦
開発者が増えるならバージョン統一したい 16
これを解決するために • .ecspresso-versionというファイルを導入 ◦ Actions/Orbで使える ◦ asdfでも利用できる • どういう順番で実装・どう利用しているか 17
GitHub Actionsで利用できるように (#490) • Actionsにversion-fileオプションを追加 ◦ shogo82148/actions-setup-perlの変更きっかけ (#1367) • その後fujiwaraさんがOrb対応(#492)
18
asdf-ecspressoで読めるように (kayac/asdf-ecspresso #1) • legacy_version_file機能を使い実装 ◦ bin/list-legacy-filenamesファイルに追加するだけ • asdfで読める形式でActionsの方を追加 ◦
vプレフィックスの有無など気をつけポイント 19
asdf install ecspresso (asdf-vm/asdf-plugins #790) • asdf install ecspressoできるように •
製作者にasdf-pluginsに登録してもらった ◦ @kolukuさん ◦ YAPC::Kyoto 2023の懇親会きっかけで進んだ 20
Tips: required_versionと組み合わせる • required_versionでこのファイルを使う ◦ jsonnet推奨 ◦ required_version: '= v'
+ importstr '.ecspresso-version' ◦ ecspresso handbook v2のChapter 15でも紹介され ている手法 21
Tips: Renovateで更新するには • Regex Managerを使って更新を拾える ◦ 参考: https://scrapbox.io/aereal-tech/Renovateで ecspressoのバージョンを上げる 22
Renovateの設定を公開 (hatena/renovate-config #70) • このRenovate設定をOSSとして公開 ◦ 参考: はてなで使用しているRenovateの設定プリセッ トを公開しました •
renovate.jsonに1行追加するだけで使えます ◦ "extends": ["github>hatena/renovate-config:ecspressoVersion.json5"] 23
24 OSS貢献のススメ
これだけ貢献したきっかけ • CI/CDの改善がOSS活動になっていた ◦ 機能が足りてないから改善する • 楽しんで追加する ◦ もはや趣味コードの一つ ◦
「このライブラリと組み合わせたら面白そう」 25
PRだけでなくIssueでも • Issueに機能要望を書くだけでも ◦ デプロイ方法は千差万別 ◦ どう使われてるかのきっかけになる • 非互換変更な要望もv2で対応してもらった 26
それ以外の貢献方法 • 使うだけでも貢献...だけど ◦ SNSなど本人に見える場所で貢献するとなおよし ◦ 良いIssue/PRがあったらリアクションするなども • OSS開発してる人が何されたら嬉しいか ◦
Songmuさんの「OSS活動を細く長く続ける技術」 27
28 寄付という手もあります
おわり • 追加した機能の歴史を紹介しました • OSS貢献でこれからも長く利用していきましょう 29