Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
オリジナリティのあるGitLabを標準に近づける
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
xorphitus
December 20, 2018
Technology
800
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
オリジナリティのある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
160
コンテナ起動への道
xorphitus
0
170
型システムを学ぼうとした結果
xorphitus
0
82
M-x doctor
xorphitus
0
180
型で数を表そう
xorphitus
0
110
AOT と direct linking
xorphitus
0
92
CFS入門
xorphitus
0
91
HyperLogLog
xorphitus
0
130
immutable database
xorphitus
0
330
Other Decks in Technology
See All in Technology
AX時代の自治体支援リソース再配分と役割分担の再構成:戦略とロードマップ(概要)
sishi2026
0
200
Sizing, Benchmarking and Performance Tuning Apache Flink Clusters
rmetzger
0
140
セキュリティ専任チームなしで攻撃を先回りするSREが実践したSIEM on Amazon OpenSearch Service
cscengineer
PRO
0
670
詳解 never 型 - ボトム型の性質を深掘り
nealle
0
160
仕様と現実の間で落とし所を探るリモートMCPの認証・認可 — Sansanの認証基盤における課題と実践
sansantech
PRO
2
160
2026 Apache Flink Community Checkpoint
rmetzger
0
200
慶應義塾大学 AI実践05 論文執筆の仕組み化
keio_smilab
PRO
7
3.8k
複雑な業務システムを高速でつくるため、チーム全員をつくれる人へ
ayakurabuchi
0
140
Ebitengine製iOSアプリ公開ボタンを押す会
eiei114
0
110
デザインレビューは自動化できるのか?─ Flutter × Figma で UI 品質保証を考える
techiro
2
830
Building Audio Plugin Ecosystem for Android in 2026
atsushieno
2
160
Kiro Crew 入門 (手を離しても進む仕事) | 目指せ Kiro マスター 11
inariku
PRO
4
600
Featured
See All Featured
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
350
Discover your Explorer Soul
emna__ayadi
2
1.3k
Mind Mapping
helmedeiros
1
430
Efficient Content Optimization with Google Search Console & Apps Script
katarinadahlin
PRO
1
980
Paper Plane
katiecoart
PRO
5
55k
Darren the Foodie - Storyboard
khoart
PRO
4
4.1k
Kristin Tynski - Automating Marketing Tasks With AI
techseoconnect
PRO
0
580
Ten Tips & Tricks for a 🌱 transition
stuffmc
1
280
A Soul's Torment
seathinner
8
3.9k
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
6
1.3k
[Rails World 2026] Durable orchestration on Rails: from continuation to workflow
palkan
3
1.2k
Hiding What from Whom? A Critical Review of the History of Programming languages for Music
tomoyanonymous
3
1.4k
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