Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up for free
ピクスタのエンジニアリングとCircleCI / Software Engineering with CircleCI at PIXTA
yasaichi
January 16, 2020
Technology
1
270
ピクスタのエンジニアリングとCircleCI / Software Engineering with CircleCI at PIXTA
CircleCI ユーザーコミュニティミートアップ#8(2020/01/16)
yasaichi
January 16, 2020
Tweet
Share
More Decks by yasaichi
See All by yasaichi
Active Recordから考える次の10年を見据えた技術選定 / Architecture decision for the next 10 years at PIXTA
yasaichi
46
17k
Active Recordから考える次世代のRuby on Railsの方向性 / Directions for the next generation of Ruby on Rails: From the viewpoint of its Active Record
yasaichi
36
16k
Ruby on Railsの正体と向き合い方 / What is Ruby on Rails and how to deal with it?
yasaichi
132
77k
SSR以後の世界へ / techcamp05
yasaichi
3
1.3k
サービス開発の現場からOSSを生み出す思考技術 / genbaweb04
yasaichi
3
830
Capybaraで変更に強いE2Eテストを書く / TokyuRubyKaigi12
yasaichi
5
1.5k
今更始めるGo言語 / techcamp04
yasaichi
0
2.8k
とある企業のモバイル対応 / Rails Developers Meetup 2017
yasaichi
1
3.4k
テスト駆動開発と私 / TechBookWalk TDD
yasaichi
3
1.7k
Other Decks in Technology
See All in Technology
API連携に伴う規制と対応 / Regulations and responses to API linkage
moneyforward
0
150
MarvelClient Upgrade 64bit クライアントへの自動アップグレード設定
mitsuru_katoh
0
110
SPA・SSGでSSRのようなOGP対応!
simo123
2
150
2年で10→70人へ! スタートアップの 情報セキュリティ課題と施策
miekobayashi
1
300
CUEとKubernetesカスタムオペレータを用いた新しいネットワークコントローラをつくってみた
hrk091
1
270
ラズパイとGASで加湿器の消し忘れをLINEでリマインド&操作
minako__ph
0
140
私見「UNIXの考え方」/20230124-kameda-unix-phylosophy
opelab
0
160
AWS re:Invent 2022で発表された新機能を試してみた ~Cloud OperationとSecurity~ / New Cloud Operation and Security Features Announced at AWS reInvent 2022
yuj1osm
1
180
創業1年目のスタートアップでAWSコストを抑えるために取り組んでいること / How to Keep AWS Costs Down at a Startup
yuj1osm
3
2k
2022年に起きたフロントエンドの変化
sakito
29
17k
IoTを始めたきっかけの話と個人でできるIoTの今後 / 新年LT会「私の愛するIoT 2023」
you
0
220
証明書って何だっけ? 〜AWSの中間CA移行に備える〜
minorun365
3
2.1k
Featured
See All Featured
Web Components: a chance to create the future
zenorocha
304
40k
Three Pipe Problems
jasonvnalue
89
8.9k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
44
14k
A Modern Web Designer's Workflow
chriscoyier
689
180k
Into the Great Unknown - MozCon
thekraken
2
280
Building Applications with DynamoDB
mza
85
5k
The Cult of Friendly URLs
andyhume
68
5.1k
Side Projects
sachag
451
37k
How to train your dragon (web standard)
notwaldorf
66
4.2k
The Straight Up "How To Draw Better" Workshop
denniskardys
226
130k
The MySQL Ecosystem @ GitHub 2015
samlambert
240
11k
Building Flexible Design Systems
yeseniaperezcruz
314
35k
Transcript
ピクスタのエンジニアリングとCircleCI Yuichi Goto (@_yasaichi) January 16, 2020 @ CircleCI ユーザーコミュニティミートアップ#8
self.inspect ! Yuichi Goto ! @_yasaichi " yasaichi " ピクスタ株式会社
執行役員CTO兼開発部長 2
コーポレートサイトトップ: https://pixta.co.jp 3 [PR] ピクスタはクリエイティブプラットフォームを創る会社です
Agenda 4 1. ピクスタにおける技術の位置づけ 2. ピクスタにおけるCircleCI活用事例 3. まとめ
目指すエンジニアリング組織像 • あるべき姿: 経営課題の達成に必要な要求に対して、質の高いアウトプットを速く継続 的に出せている状態 • ギャップを埋めるためのアプローチ: 仮説検証サイクルを高速化し、不確実性を乗りこなせる組織を作る 5
ソフトウェア技術の位置づけ • 位置づけ: 仮説検証サイクルのボトルネックを解消する手段のひとつ • KPI: • サイクルタイム(コードを書き始めてからデプロイ可能になるまで) • 開発者1人あたりの1日のデプロイ件数
• MTTR(Mean Time To Recovery、平均修復時間) 6 こう自分に言い聞かせないと好きに技術を使ってしまう…
CI/CDパイプラインへの期待 • 高速な自動テストの実行によりコードの誤りにすぐ気づけるようにし、手戻り (≒サイクルタイム)を減らしたい • デプロイ作業の自動化・高速化により、気軽にリリースできるようにしたい • 任意時点の本番環境にすぐ切り戻せるようにし、障害を最小限に抑えたい 7 CI/CDパイプラインの構築・改善は広範な問題を解決できる
Agenda 8 1. ピクスタにおける技術の位置づけ 2. ピクスタにおけるCircleCI活用事例 3. まとめ
https://pixta.jp 9 事例1: PIXTA(デジタル素材のマーケットプレイス)の場合
PIXTAにおける課題と解決策 • 課題: 10年近い歴史のある"本体"アプリケーションの自動テストの実行に マシン一台だと数時間かかり、CIの結果を待たずにデプロイされてしまう • 解決策: 1. RRRSpec(by Cookpad)の導入による自動テストの並列分散実行
2. ↑のEOLにより、当時トライアルだったPerformanceプランを採用して CircleCIに移行し、並列実行はそのままに運用負荷の低減を実現 10 明らかにボトルネックだったとわかる
https://fotowa.com 11 事例2:fotowa(出張撮影プラットフォーム)の場合
fotowaにおける課題と解決策 • 課題: Kubernetes導入に伴い、自動テストが通ったらDockerイメージを ビルドしてクラスタにデプロイしたい(もちろん全て自動で) • 解決策: 1. Workflowsを使ってビルドジョブの後に`setup_remote_docker`で Dockerイメージをビルドし、ECRにpush
2. pushをフックにしてCodePipelineが起動し、EKSクラスタにデプロイ 12
補足: その他のマネージドCI/CDサービスの採用事例 • CodeBuild: デプロイ自動化のみ必要な場合(例: CMS)に利用 • GitHub Actions: https://github.com/pixta-dev/repository-
mirroring-action を作り、GitHub → CodeCommitへのミラーに利用 13 CIは基本CircleCI、CD+αは各サービスで行う、という使い分け
Agenda 14 1. ピクスタにおける技術の位置づけ 2. ピクスタにおけるCircleCI活用事例 3. まとめ
まとめ • 速く継続的に経営課題を達成するために、エンジニアリング組織としては 仮説検証サイクルの高速化にフォーカスしている • 技術は仮説検証サイクルのボトルネックを解消する手段のひとつ • CI/CDパイプラインの構築・改善は広範な問題を解決でき、てこが効く • 用途に応じてCircleCIとその他マネージドサービスを使い分けている
15
ご清聴ありがとうございました 16