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
2014-06-11_gotanda.pm
Search
SUZUKI Masashi
June 11, 2014
Technology
2.3k
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
2014-06-11_gotanda.pm
とある企業のPerlモジュール管理の歴史
SUZUKI Masashi
June 11, 2014
More Decks by SUZUKI Masashi
See All by SUZUKI Masashi
2026-06-18 ecspressoのtfstate参照が便利すぎた話
masasuzu
0
53
2026-04-14 Jagu'e'r Cloud Native分科会 Terraform Stateにおけるシークレットの平文保存という課題とその解決
masasuzu
1
62
2026-03-27 #terminalnight 変数展開とコマンド展開でターミナル作業をスマートにする方法
masasuzu
0
440
2026-03-23 Ops-JAWS Meetup39 Session Managerを使った セキュアなサーバーアクセス
masasuzu
2
160
2026-03-11 JAWS-UG 茨城 #12 改めてALBを便利に使う
masasuzu
3
490
2026-03-03 Jagu'e'r Tech Writer Meetup #19 登壇のネタ作りについて
masasuzu
0
320
2026-02-24 月末 Tech Lunch Online #10 Cloud Runのデプロイの課題から考えるアプリとインフラの境界線
masasuzu
0
200
2025-11-21 社内エンジニア勉強会 改めて理解するVPC Endpoint
masasuzu
0
470
2025-11-08 Security JAWS TerraformによるIAM Policy記述ガイド
masasuzu
2
1.5k
Other Decks in Technology
See All in Technology
SoccerMaster: A Vision Foundation Model for Soccer Understanding
kzykmyzw
0
130
個人開発で育てる「大規模設計の苗床」 - AI時代の1人開発から始める業務への知識接続 / The Seedbed for Large-Scale Design - From AI-Era Solo Projects to Professional Knowledge
bitkey
PRO
1
280
Amplify Gen2でbackend.tsにCDKを定義する/しない事によるCDKの挙動の違いとユースケース
smt7174
1
370
そのドキュメント、自動化しませんか?
yuksew
1
260
LLMやAIエージェントをソフトウェアに組み込むプラクティス
shibuiwilliam
2
410
AI Driven AI Governance
pict3
0
480
SRE本の知られざる名シーン / The Hidden Gems of Google SRE Book
nari_ex
1
420
“それは自分の仕事じゃない"を越えて行け
yuukiyo
1
450
実践!既存 Project への AI-Driven Development 適用〜 一ヶ月で Project 唯一のフロントエンドエンジニアを作り出せ〜
lycorptech_jp
PRO
0
140
Empower GenAI with Agile - あなたのアジャイルが生成AIのバフになる仕組み
hageyahhoo
1
210
第67回コンピュータビジョン勉強会CVPR2026読会前編
tsukamotokenji
0
140
ruby.wasmとPicoRuby.wasmに対応した仮想DOMライブラリを作ってる話 #kaigieffect_kaigi
sue445
PRO
0
150
Featured
See All Featured
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
How to optimise 3,500 product descriptions for ecommerce in one day using ChatGPT
katarinadahlin
PRO
1
3.7k
We Are The Robots
honzajavorek
0
280
Building Flexible Design Systems
yeseniaperezcruz
330
40k
Crafting Experiences
bethany
1
220
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
123
22k
The Art of Programming - Codeland 2020
erikaheidi
57
14k
Applied NLP in the Age of Generative AI
inesmontani
PRO
4
2.4k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.4k
HTML-Aware ERB: The Path to Reactive Rendering @ RubyCon 2026, Rimini, Italy
marcoroth
2
330
Game over? The fight for quality and originality in the time of robots
wayneb77
1
220
Leveraging Curiosity to Care for An Aging Population
cassininazir
1
380
Transcript
とある企業のPerl もじゅーる管理 すずきまさし / @masasuz 1
おまえだれよ すずきまさし / @masasuz 五反田の辺りにある中小web企業 6月1日で5年目らしい アプリケーションとインフラの中間エン ジニア(最近アプリよりに戻された) zsh /
perl / mysql / Ubuntu / Debian 2
とある企業のPerl もじゅーるかんり 3
注意 3年ちょい前に入社したのでそれ以前の ことは歴史書(git)からひもといている ので正確で無いです。 git (+ git-svn)の歴史に刻まれていな い、先史時代のことは分かりません。 4
おおまかな歴史 先史時代 丸ごとrsync期 Debian Package期 carton期 5
先史時代 知りません 2006年より前はさかのぼれません FreeBSDが使われていたようです 6
丸ごとrsync期 Debian 32bit Apache + mod_perl + Sledge system perl
Archer 7
丸ごとrsync期 cont.. CPANプロジェクトをrsync バイナリ含む 8
プロジェクト数が少ない 全て同じOS/arch 全サーバで同じモジュールを使える! 9
問題 ディストリビューションのメンテ切れ archの差異 64bit バージョン管理が煩雑 10
Debian Package期 Debian 32/64bit混在 Apache + mod_perl + (Sledge or
Splite) cpan-packagerでCPANモジュールをdeb化 arch / dist 毎に作る Archer => Watch2::Deployer 11
apt-localとapt-proxyサーバ xx-cpan-perlというパッケージの依存 パッケージに全perl deb packageを突っ 込む deploy時にapt-localのインデックス生 成 各サーバにssh =>
aptitude update && aptitude safe-upgrade 12
複数 dist/arch混在環境 バージョン管理ができるように 全プロジェクト同じモジュール!? 13
問題 カジュアルにパッケージ足しすぎ。カオス 依存関係地獄 全プロジェクトに影響 プロジェクト数が増えてきた 簡単にバージョン上げられない 古のモジュールがはびこることに。。 14
問題 cont.. OS自動インストール時に全モジュールを インストールしてるのでOSインストール に超時間かかる 全サーバに対してデプロイするので、台 数に比例してデプロイに時間がかかる system のdeb packageとかぶる
バージョンにepochを付与して回避(ダ ウングレード!) 15
問題 cont.. ディストリビューションをアップデー トするたびに検証作業が必要。。 特定のプロジェクトで新しいバージョ ンを使うことができない プロジェクト同居の可能性があるの でextlibに突っ込めない 16
carton期 Ubuntu Server 64bit carton (Upstart +) Server::Starter + Starlet
+ Amon2 OrePAN2::Server not system perl 独自ビルドしたdeb package 17
cpanfile(.snapshot)に依存モジュールを記 述 carton install —deployment プロジェクト毎に独自のモジュールが使える 社内モジュールはOrePAN2に上げる system perlに依存しない dist変えやすい
18
おおまかな歴史 先史時代 丸ごとrsync期 Debian Package期 carton期 <= イマココ 19
正しい歴史 先史時代 丸ごとrsync期 丸ごと(ry + Debian Package期 丸(ry+Deb(ry or carton期<=イマココ
20
CPANプロジェクトは最後の最後まで消 えなかった 更新が速い(設定系)モジュールが残り 続けた 社内モジュール置き場になった。 21
新しいプロジェクトじゃないとcarton 化しにくい Apache + mod_perlからの移行が。。 新規プロジェクトなら楽なので、そ こから 古(いにしえ)のモジュールの関係 というか実際依存関係ぶっ壊れてる 22
とはいえ、 どのスキームも当時のコンテキストに はあっていた。 レガシーなスキームが悪いのでは無く、 コンテキストが変わってしまったのに、 レガシーなスキームを使い続けるのが 悪。 23
なので、 すぐには全部変えられないけど、少し ずつ、時代に合わないものを消して行っ ている途中。 大事なのは、問題は問題と認識して解 決の方向に進めること。 エンジニアだもの文句じゃ無く技術で 解決しよう。 24
おしまい 25