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
非コンテナ環境において宣言的Deploymentを手軽に実現する / Declarative ...
Search
linyows
December 13, 2024
Programming
580
1
Share
非コンテナ環境において宣言的Deploymentを手軽に実現する / Declarative deployment in non-container environments
社内イベント、バックエンド交流会LTで使った資料。
linyows
December 13, 2024
More Decks by linyows
See All by linyows
Kubernetesを使わない環境にもCloud Nativeなデプロイを実現する / Enabling Cloud Native deployments without the complexity of Kubernetes
linyows
3
600
Protocol Buffersの型を超えて拡張性を得る / Beyond Protocol Buffers Types Achieving Extensibility
linyows
0
250
研究開発と実装OSSと プロダクトの好循環 / A virtuous cycle of research and development implementation OSS and products
linyows
1
900
コードジェネレーターで 効率的な開発をする / Efficient development with code generators
linyows
0
470
研究を支える拡張性の高い ワークフローツールの提案 / Proposal of highly expandable workflow tools to support research
linyows
0
650
メール送信サーバの集約における透過型SMTP プロキシの定量評価 / Quantitative Evaluation of Transparent SMTP Proxy in Email Sending Server Aggregation
linyows
0
1.2k
透過型SMTPプロキシによる送信メールの可観測性向上: Update Edition / Improved observability of outgoing emails with transparent smtp proxy: Update edition
linyows
2
650
研究の再現性を高める 仕組みをGoでつくる / Creating a system to improve the reproducibility of research using go
linyows
1
370
奥が深いメールのシステム / The depth of Email system
linyows
4
810
Other Decks in Programming
See All in Programming
[KCD Czech] eBPF Meets the GPU: Future of AI Infra Observability
doniacld
0
120
LLM Plugin for Node-REDの利用方法と開発について
404background
0
140
Talking to terminals (and how they talk back) (KotlinConf 2026)
jakewharton
PRO
1
160
自動レビューエンジンの実装と運用 ~レビューのない世界へ~
kurukuru1999
2
290
ECR拡張スキャンでSBOMを収集して サプライチェーン攻撃の影響調査を 爆速で終わらせてみた
akihisaikeda
2
210
ふつうのFeature Flag実践入門
irof
7
3.3k
The Arts and Crafts of Work in the AI Era — Toward Mastery in Software Development
kuranuki
1
670
色即是空、空即是色、データサイエンス
kamoneggi
1
210
技術記事、AIに書かせるか、自分で書くか? 〜それでも私が自分の手で書く理由〜 / #QiitaConference
jnchito
2
1.2k
不変条件と整合性境界—ビジネスが決める設計判断と実現パターン / Invariants and Consistency Boundaries
nrslib
11
3k
RailsTokyo 2026#4: AI様があれば、 Hotwireの弱点は消えるか?
naofumi
5
1k
net-httpのHTTP/2対応について
naruse
0
340
Featured
See All Featured
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
55
3.4k
Claude Code どこまでも/ Claude Code Everywhere
nwiizo
65
55k
Darren the Foodie - Storyboard
khoart
PRO
3
3.4k
Money Talks: Using Revenue to Get Sh*t Done
nikkihalliwell
0
230
VelocityConf: Rendering Performance Case Studies
addyosmani
333
25k
Agile Actions for Facilitating Distributed Teams - ADO2019
mkilby
0
200
Building Applications with DynamoDB
mza
96
7.1k
Building the Perfect Custom Keyboard
takai
2
780
Neural Spatial Audio Processing for Sound Field Analysis and Control
skoyamalab
0
310
Kristin Tynski - Automating Marketing Tasks With AI
techseoconnect
PRO
0
260
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
1.2k
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
0
520
Transcript
非コンテナ環境において宣言的 Deploymentを手軽に実現する Tomohisa Oda / 社内バックエンド交流会 LT @2024-12-13
Tomohisa Oda @linyows • 研究所 所属(2023年11月入社) • 前職では部門の技術責任者 • メールの研究をしながらガバクラプロ
ジェクトのお手伝い • 筋トレとテニスが趣味 • Fukuoka.go オーガナイザ
前提:本番環境 • 諸事情によりコンテナ環境ではなくVM環境(2024年だぞ?) • アプリはGo • KubernetesのローリングデプロイメントやCI/CDエコシステムが使えない • アプリのdeploymentどうする問題がある •
人の手を介さない何かしらの仕組みが必要 • VMはHA構成なので状況に応じて数が変動する予定
Deploy手法の選択肢 1. VMを構築するAnsibleで、アプリの更新も合わせてやる 2. Scpやrsyncなどで素朴にアップロードする 3. VMにビルド環境を作っておきgit cloneしてビルドする 4. DeployツールのCapistranoをつかう
これらはGithub Actionsから行う想定
Deploy手法の選択肢1 1. VMを構築するAnsibleで、アプリの更新も合わせてやる 2. Scpやrsyncなどで素朴にアップロードする 3. VMにビルド環境を作っておきgit cloneしてビルドする 4. DeployツールのCapistranoをつかう
これらはGithub Actionsから行う想定 🙅 更新頻度や責務領域が異なり、アプリ以外の問題でdeployできないとか、エンジニアが異なるとか
Deploy手法の選択肢2 1. VMを構築するAnsibleで、アプリの更新も合わせてやる 2. Scpやrsyncなどで素朴にアップロードする 3. VMにビルド環境を作っておきgit cloneしてビルドする 4. DeployツールのCapistranoをつかう
これらはGithub Actionsから行う想定 🙅 更新頻度や責務領域が異なり、アプリ以外の問題でdeployできないとか、エンジニアが異なるとか 🙅 簡単に実現できるがそのうち機能が追加されたりして正しく動作する保証がないままコピペされる
Deploy手法の選択肢3 1. VMを構築するAnsibleで、アプリの更新も合わせてやる 2. Scpやrsyncなどで素朴にアップロードする 3. VMにビルド環境を作っておきgit cloneしてビルドする 4. DeployツールのCapistranoをつかう
これらはGithub Actionsから行う想定 🙅 簡単に実現できるがそのうち機能が追加されたりして正しく動作する保証がないままコピペされる 🙅 せっかくGoはワンバイナリでdeployできるのに… そしてwebhookを用意する必要があり実は面倒 🙅 更新頻度や責務領域が異なり、アプリ以外の問題でdeployできないとか、エンジニアが異なるとか
Deploy手法の選択肢4 1. VMを構築するAnsibleで、アプリの更新も合わせてやる 2. Scpやrsyncなどで素朴にアップロードする 3. VMにビルド環境を作っておきgit cloneしてビルドする 4. DeployツールのCapistranoをつかう
これらはGithub Actionsから行う想定 🙅 せっかくGoはワンバイナリでdeployできるのに… そしてwebhookを用意する必要があり実は面倒 🙅 専用のツールなので機能は申し分ないが、Go使っていてRubyかーという気持ち 🙅 更新頻度や責務領域が異なり、アプリ以外の問題でdeployできないとか、エンジニアが異なるとか 🙅 簡単に実現できるがそのうち機能が追加されたりして正しく動作する保証がないままコピペされる
怒り駆動開発!(2018)
Dewy !!!
DewyはPull型deployツール Dewyの振る舞い 1. アプリのSupervisor的に起動 2. Github ReleasesやS3をポーリング 3. 最新があればダウンロードして起動 4.
グレースフルリスタート 5. Slackに通知とオーディットログ作成 Application or Files v1.2.2 Application or Files v1.2.3 Artifact Registry Notify Cache ɾGithub Releases ɾAWS S3 ɾGoogle Cloud Storage ɾGRPC Server 1. Polling 5. Reporting 6. Send 2. Download 3. Storage 4. Deployment ɾFile system ɾMemory ɾHashicorp Consul ɾRedis ] ɾSlack ɾSMTP Dewy https://github.com/linyows/dewy
Demo: https://github.com/linyows/dewy-testapp