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
オリジナリティのあるGitLabを標準に近づける
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
xorphitus
December 20, 2018
Technology
780
1
Share
オリジナリティのあるGitLabを標準に近づける
2018-12-20 Gitlab Meetup Tokyo #12
多量に独自パッチを当てたGitLabをOmnibus Packageに移行した話。
xorphitus
December 20, 2018
More Decks by xorphitus
See All by xorphitus
マイクロサービスを作ろう
xorphitus
0
150
コンテナ起動への道
xorphitus
0
160
型システムを学ぼうとした結果
xorphitus
0
76
M-x doctor
xorphitus
0
170
型で数を表そう
xorphitus
0
100
AOT と direct linking
xorphitus
0
82
CFS入門
xorphitus
0
83
HyperLogLog
xorphitus
0
120
immutable database
xorphitus
0
310
Other Decks in Technology
See All in Technology
Amazon Bedrock 経由の Claude Cowork を試してみよう・MCP にも繋いでみよう
sugimomoto
0
290
Anthropic AIネイティブ・スタートアップ構築のプレイブック を理解する
nagatsu
0
230
string地獄を脱出する
sansantech
PRO
1
110
自称宇宙最速で不合格となったAIP-C01にリベンジを果たすべくAIで問題集アプリを作ってみた。
yama3133
0
250
Claude Codeを組織で使いこなす— サーバサイドAIエージェント運用の実践知
techtekt
PRO
0
140
JEP 522 Deep Dive - G1 GC同期コスト削減によるスループット向上を徹底検証&解説
tabatad
1
480
A Harness for Behaviour: how to get AI to generate code that does what we intend, or "TDD in the age of AI"
xpmatteo
1
520
AI駆動開発でなんでもハンズオン環境をつくってみた
yoshimi0227
0
180
Unlocking the Apps
pimterry
0
140
個人AIからチームAIへ:開発における品質と生産性の再設計
moongift
PRO
0
320
AI-DLCを活用した高品質・安全なAI駆動開発実践 / AI Driven Development
yoshidashingo
1
270
もりもり新機能を一挙紹介! AgentCoreに入門して、AWS上にAIエージェントを構築しよう
minorun365
PRO
6
350
Featured
See All Featured
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
Ruling the World: When Life Gets Gamed
codingconduct
0
240
HU Berlin: Industrial-Strength Natural Language Processing with spaCy and Prodigy
inesmontani
PRO
0
390
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
287
14k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.3k
My Coaching Mixtape
mlcsv
0
140
Lightning Talk: Beautiful Slides for Beginners
inesmontani
PRO
2
560
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
199
74k
A better future with KSS
kneath
240
18k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
2.9k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
16k
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1.3k
Transcript
ΦϦδφϦςΟͷ͋Δ (JU-BCΛඪ४ʹ͚ۙͮΔ 2018-12-20 GITLAB MEETUP TOKYO #12
͡Ίʹ about_me.edn {:name "@xorphitus" :role ["server side engineer", "SRE"] :language
[{:name "Clojure", :desc "ॳ৺ऀ"} {:name "Haskell", :desc "ೖத"} {:name "Rust", :desc "ͦΖͦΖ࢝ΊΔ"}] :keyboard "Nyquist (ࣗ࡞)" :favoite ["xmonad", "single malt whisky"]}
ࠓ͓͑͢Δ͜ͱ ಠࣗύον͔Βͷ։์ ▸ ಠࣗύονΛ30͘Β͍ͯͯΑ͘ҭͬͨGitLabΛOmnibus PackageʹҠߦͨ͠ ▸ ࠓαϚϦ͚ͩհ ▸ ৽نੑͷ͋ΔτϐοΫͳ͍Ͱ͢
Ҡߦͷͷલʹ ͳͥଟྔͷಠࣗύον͍͔ͨͬͯͨ ▸ ϓϩμΫτͱͯ͠ະख़ͩͬͨGitLabΛར༻͍ͯͨͨ͠Ί ▸ গͳ͘ͱ4ܥ͔Βར༻ɺGitHub༧ࢉతʹNG ▸ ݁ՌɺΞοϓάϨʔυ͕ਏ͍ ▸ 100ϑΝΠϧҎ্ͷconflict!
w/o ճؼςετ ▸ ৬ਓʹΑΔmerge͕ඞཁ ▸ ͦͯ͠τϥϒϧγϡʔςΟϯά͕ਏ͍ ▸ ެࣜͷͳͷ͔ɺಠࣗύονͷͳͷ͔ͷΓ͚͕ൃੜ
ಠࣗύονͷଛӹذ ಠࣗύονͷӡ༻ίετ ಠࣗύονʹΑΔϦλʔϯ ࣌ͷྲྀΕ ↑͍·͜͜ ެࣜଆͷػೳڧԽ ʹΑΔϦλʔϯͷ ݮগ ύονͷ૿ՃʹΑ Δίετͷ૿େ
ެࣜGITLABͷਐԽͱಠࣗύονͷՁԼ PROFIT and LOSS
ͦΜͳΘ͚Ͱ Ҡߦ͠·ͨ͠
ಠࣗύονͷͱରࡦ Ҏલͷঢ়گ ରԠํ ιʔεΠϯετʔϧ Omnibus Package RPM MySQLରԠνϡʔχϯά PostgreSQLԽͰఫഇ ݟͨΛ͑Δύον
GitLabͷਐԽΛ৴͡શഇࢭ ػೳՃɾมߋύον ɾGitLabʹಉͷ৽ػೳ ɹ͕͋ΕҠߦ ɾAPIΛར༻͢Δόον࡞ ɾGitLab Pluginͷ׆༻ ɾͲΕແཧͳΒύον ɹͱͯ͢͠
·ͬઌʹݕূͨ͜͠ͱ MySQL͔ΒPostgreSQL ▸ ҎલMySQLͰ͘ͳΔΫΤϦΛಠࣗύονͰղফ͍ͯͨ͠ ▸ MySQLར༻ʹ͖ͭzero downtime upgradeෆՄ ▸ pgloaderͰMySQL͔ΒPostgreSQLσʔλҠߦͨ͠
▸ GitLabͷެࣜυΩϡϝϯτʹར༻ํ๏͕ॻ͍ͯ͋Δ ▸ ύοέʔδ൛ΛͬͨΒώʔϓϝϞϦ͕ෆͨ͠ͷͰɺࣗ લͰϏϧυ
Ͱ͖Δ͚ͩअຐ͠ͳ͍ಠࣗύον ସखஈ͕ͳ͍͕ඞཁͳͷಠࣗύον ▸ ݱࡏͰίϝϯτؚΊ60ߦఔͷRubyϑΝΠϧΛ1ͭઃஔ ͢Δ͚ͩʹͱͲ·͍ͬͯΔ ▸ config/initializers/zzzz_my_patches.rb ▸ GitLabͷRailsͷઃఆͷ্ॻ͖ ▸
ϞϯΩʔύονʹΑΔϥΠϒϥϦͷڍಈมߋ ▸ CapistranoͰGitLab Pluginͱ·ͱΊͯઃஔ
Ռൃද Ҡߦͯ͠ΞοϓάϨʔυָ͕ʹͳͬͨʂ ▸ Before ▸ ४උʹ ▸ ຊ൪ద༻μϯΛ͏ͷͰٳग़ۈ࣮ͯ͠ࢪ ▸ After
▸ ४උɺຊ൪ద༻߹Θͤͯ1࣌ؒ͘Β͍ ▸ ຊ൪ద༻Ͱμϯ͠ͳ͍ͷͰӦۀ࣌ؒதʹ࣮ࢪ ▸ ΞοϓάϨʔυͰτϥϒϧղফͨ͠έʔε݅
͜Ε͔ΒΔ͜ͱ ՝Կ͔ ▸ GitLab Runnerͷ৽ ▸ GitLabຊମ৽Ͱ͖͕ͨɺRunner·ͩख͔ͣ ▸ ver 9.5.0͕AWSͱΦϯϓϨʹෳཱ͍ͬͯΔ…
▸ GKE্ͷߏஙΛݕ౼த
͝ਗ਼ௌ͋Γ͕ͱ ͏͍͟͝·ͨ͠
ఆू
ఆू ಠࣗύονͰ͍ͬͯͨ͜ͱͷସԽͷத ▸ ৽ػೳҠߦͤͨ͞ͷ ▸ GitHubϛϥʔϦϯάػೳ ▸ APIPluginΛ׆༻ͯ͠Γͬͨͷ ▸ LDAP͔Βফ͑ͨϢʔβΛblock͢Δ
▸ WebhookԽͨ͠ͷ ▸ ChatWork௨ઃఆ ▸ ύονͰͳ͍͕ɺMySQLͷఆظόοΫΞοϓʢɾϦετΞʣεΫϦϓτ Omnibus PackageͷػೳΛར༻͢ΔΑ͏ʹมߋ
ఆू ͨ͠ಠࣗύονͷதԿ͔ ▸ ᶃ Markdown rendererͷมߋ ▸ GitLabͰ௨ৗͷվߦΛ<br>ʹͳ͍͕ɺզʑͱͯ͠<br>ʹ ͳͬͯཉ͍͠ ▸
ᶄ ֎෦ͯʹϝʔϧΛૹΒͳ͍Α͏ʹ͢Δ ▸ υϝΠϯ͕ࣾͰͳ͚ΕૹΒͳ͍ɺ҆શஔ ▸ ᶅ ݹ͍ΠϕϯτใΛআ͢Δworkerͷఀࢭ ▸ աڈͷܦҢ͕ࣦΘΕͳ͍Α͏ʹ͢Δରࡦ
ఆू ਏ͔ͬͨ͜ͱ ▸ Ҡߦʹ͍όʔδϣϯΞοϓΛ͕ͨ͠ɺͦ͜ͰΤϥʔ͕ൃੜͨ͠ ▸ ಠࣗύονͷସػೳ࡞ʹGitLab Plugin System͕ඞཁͩͬͨ ▸ ͕ɺόʔδϣϯΛ্͛ͳ͍ͱ͑ͳ͔ͬͨ
▸ όʔδϣϯΛ্͛Δ࣌ʹΔDB migrationͰɺաڈͷෆશͳσʔ λ͕ࠞࡏͯ͠Τϥʔʹͳͬͨ ▸ طଘσʔλ͔Βؾ߹Ͱαϧϕʔδͯ͠ɺΒ͍͠σʔλΛಥͬ ࠐΉεΫϦϓτΛॻ͍ͯԿͱ͔ͨ͠
ఆू Ͳͷ͘Β͍͕͔͔͔࣌ؒͬͨ ▸ 1ਓͰͬͯɺ4ϲ݄͘Β͍ ▸ ݁ߏΔ͜ͱ͕ଟ͔ͬͨ ▸ ଟྔʹ͋Δಠࣗύονͷഎܠཧղ ▸ DBҠߦͷݕূ࡞ۀ
▸ Webhook༻ΤϯυϙΠϯτͷ࡞ΛServerlessͰ͢Δ ▸ Etc