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
CIにどこまで任せるのか?
Search
valerauko
May 28, 2019
Programming
250
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
CIにどこまで任せるのか?
CircleCIを使ってサーバーへのデプロイをしてみた経験談。CIとCDの境目がどこにあるのか、どの時点で重要になるのかを考える。
valerauko
May 28, 2019
More Decks by valerauko
See All by valerauko
Reitit使ってみた
valerauko
0
410
分解に救われる
valerauko
0
110
Other Decks in Programming
See All in Programming
Deep dive into the select statement (GopherCon UK)
jespino
0
170
高専キャリア LT 発表内容
crysta1221
6
5.5k
初めての模倣学習とVLA
natsutan
0
480
AI時代に学ぶ 好きなルール 嫌いなルール Linter編
shorty5121
0
860
DroidKaigi 2026 「個人開発という実験場: Android エンジニアが手にする4つの自由」
slashnephy
0
220
Go を使い始めて 2 ヶ月の学び / My first two months with Go
contour_gara
0
420
Foundry Localでエージェント開発
seosoft
0
140
LL言語やWebフレームワークのPostgreSQL対応 〜DBの機能がユーザーに届くまで〜
kentaroutakeda
0
140
RSSとCodexを使ってX投稿自動化してみた
ochtum
0
100
私のClaude Code活用法 (個人開発編) - PHPerKaigi mini #4(2026/08/24)
panda_program
1
210
まだ間に合う!今年の夏こそSchemeのマクロ展開器を完全理解!
omasanori
0
630
「つくるAI」だけではバグは見つからない ~テストに必要な「見つけるAI」を分離させる戦略~
mfunaki
0
230
Featured
See All Featured
Stewardship and Sustainability of Urban and Community Forests
pwiseman
0
510
Heart Work Chapter 1 - Part 1
lfama
PRO
8
36k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
56k
Skip the Path - Find Your Career Trail
mkilby
1
220
GraphQLの誤解/rethinking-graphql
sonatard
75
12k
Context Engineering - Making Every Token Count
addyosmani
9
1.1k
So, you think you're a good person
axbom
PRO
2
2.1k
Efficient Content Optimization with Google Search Console & Apps Script
katarinadahlin
PRO
1
840
ラッコキーワード サービス紹介資料
rakko
1
4.8M
Odyssey Design
rkendrick25
PRO
2
800
Pawsitive SEO: Lessons from My Dog (and Many Mistakes) on Thriving as a Consultant in the Age of AI
davidcarrasco
0
240
My Coaching Mixtape
mlcsv
0
310
Transcript
CIにどこまで任せるのか? CI と CD の境目を探ってみたお話
introduction.yaml version: 2.1 executors: balint-erdos: environment: TECH: ["clojure", "kafka", "kubernetes"]
links: - https://balint.erdos.tech - https://github.com/valerauko tags: ["craft beer", "alpinism", "music"] working_directory: /tokyo jobs: studist: executor: balint-erdos environment: LANG: ["ruby", "javascript", "clojure"] steps: - tech lead enjin: executor: balint-erdos environment: LANG: ["ruby", "javascript", "go"] steps: - founding member
CircleCIとの出会い • スタディスト入社時( 2017 年) • ネイティブアプリのビルドに使用 • 当時ウェブの CI
がなかった • 開発環境を Vagrant から Docker に したい動きがあった
最初の試み: docker-composeそのままで • 開発環境を Docker に移住 • docker-compose.yml をそのままで CI
の環境として使う プラス • 自動テストができた マイナス • 遅い。とても。 • デプロイもやってもらいたい ... - run: name: Create test DB command: | docker-compose -f .circleci/compose.yml run teachme_web bundle exec rake db:create test docker-compose -f .circleci/compose.yml run teachme_web bundle exec rake db:migrate test docker-compose -f .circleci/compose.yml run teachme_web bundle exec rake db:seed test - run: name: Run rspec command: docker-compose -f .circleci/compose.yml run teachme_web bundle exec rspec
500倍 自動テストはいいぞ テストの量がまさかの
デプロイやってみよう • AWS の EC2 へデプロイ • CodeDeploy とかは備わってない プラス
• 自動デプロイできた! マイナス • ステージング 1 台のみ • すごく脆い 1. テスト走らせる 2. JS などのプリコンパイル走らせる 3. コミットして GitHub へ push 4. aws-cli でサーバーへ ssh 許可 5. ssh してサーバー上の deploy.sh 実行
とりあえずはやく! • docker-compose から CircleCI の設定に切り替え プラス • キャッシュが効く •
いくらでも平行できる マイナス • 設定の 2 重管理 主なポイント • YAML の alias をいっぱい使う • 並列化できる処理を全部 ◦ Rails のテスト ◦ Vue のテスト ◦ ドキュメントのコンパイル ◦ JS などのコンパイル • その中でもさらに並列 ◦ circleci tests glob ◦ circleci tests split
やってみたこと workspace で加速 • うまく行かず • 容量が大きすぎて結局インストー ルをそれぞれで走らせるよりも遅 くなったり executor
や command で共通化 • alias よりずっときれいになった
CIはイメージのビルドま でにしましょう
結論 デプロイは専用ツールに任せたい CircleCI から SSH でできるのは • 1 台のサーバー •
IP が決まっている やってもいいと思うのは • CD 入れるのもったいないぐら い小さなプロジェクト • とりあえずステージングの一台 だけでもやりたい時 CircleCD はいつかくるかな ... ?
仲間絶賛募集中! https://www.wantedly.com/companies/studist/ ご清聴ありがとうございました