Soumettre la recherche
Mettre en ligne
Scalaプロダクトのビルド高速化
•
3 j'aime
•
2,788 vues
kuro kuro
Suivre
CircleCI Meetup Tokyo #2で話す資料です
Lire moins
Lire la suite
Technologie
Signaler
Partager
Signaler
Partager
1 sur 25
Télécharger maintenant
Télécharger pour lire hors ligne
Recommandé
実践サーバレスアーキテクチャ
実践サーバレスアーキテクチャ
太郎 test
VRディープ座談会 introduction ojima
VRディープ座談会 introduction ojima
Hideki Ojima
AWS Step FunctionとLambdaでディープラーニングの訓練を全自動化する
AWS Step FunctionとLambdaでディープラーニングの訓練を全自動化する
mizugokoro
サーバーレスの今とこれから
サーバーレスの今とこれから
真吾 吉田
今なぜサーバーレスなのか
今なぜサーバーレスなのか
真吾 吉田
サーバーレスにおける開発プロセス戦略(パネルディスカッション用スライド)
サーバーレスにおける開発プロセス戦略(パネルディスカッション用スライド)
真吾 吉田
Serverless Framework 使ってる話(node.js)
Serverless Framework 使ってる話(node.js)
Naoto Teruya
Serverless Ninja Warriors [panel]
Serverless Ninja Warriors [panel]
真吾 吉田
Recommandé
実践サーバレスアーキテクチャ
実践サーバレスアーキテクチャ
太郎 test
VRディープ座談会 introduction ojima
VRディープ座談会 introduction ojima
Hideki Ojima
AWS Step FunctionとLambdaでディープラーニングの訓練を全自動化する
AWS Step FunctionとLambdaでディープラーニングの訓練を全自動化する
mizugokoro
サーバーレスの今とこれから
サーバーレスの今とこれから
真吾 吉田
今なぜサーバーレスなのか
今なぜサーバーレスなのか
真吾 吉田
サーバーレスにおける開発プロセス戦略(パネルディスカッション用スライド)
サーバーレスにおける開発プロセス戦略(パネルディスカッション用スライド)
真吾 吉田
Serverless Framework 使ってる話(node.js)
Serverless Framework 使ってる話(node.js)
Naoto Teruya
Serverless Ninja Warriors [panel]
Serverless Ninja Warriors [panel]
真吾 吉田
JAWS DAYS 2017 Mafia Talk
JAWS DAYS 2017 Mafia Talk
真吾 吉田
Anchors Aweigh!! - re:Invent報告@re:Port 2016 大阪
Anchors Aweigh!! - re:Invent報告@re:Port 2016 大阪
真吾 吉田
サーバーレスでシステムを開発する時に⼤切な事
サーバーレスでシステムを開発する時に⼤切な事
Hiroyuki Hiki
DevOpsとか言う前にAWSエンジニアに知ってほしいアプリケーションのこと
DevOpsとか言う前にAWSエンジニアに知ってほしいアプリケーションのこと
Terui Masashi
実務で活かせる AWSアーキテクチャ設計 〜AWS re:Invent 2016アップデート最新版〜
実務で活かせる AWSアーキテクチャ設計 〜AWS re:Invent 2016アップデート最新版〜
真吾 吉田
May the FaaS be with us!!
May the FaaS be with us!!
真吾 吉田
Serverless AWS構成でセキュアなSPAを目指す
Serverless AWS構成でセキュアなSPAを目指す
Masayuki Kato
Serverless Meetup Tokyo #2 オープニング
Serverless Meetup Tokyo #2 オープニング
真吾 吉田
Jaws days2017-ops jaws-2
Jaws days2017-ops jaws-2
Serverworks Co.,Ltd.
APIを叩くだけでない、Deep Learning on AWS で自分だけの学習モデルを作ろう! by JAWS-UG AI支部
APIを叩くだけでない、Deep Learning on AWS で自分だけの学習モデルを作ろう! by JAWS-UG AI支部
Daisuke Nagao
Single Command Deployのための gradle-aws-plugin講座
Single Command Deployのための gradle-aws-plugin講座
都元ダイスケ Miyamoto
サーバーレス・アーキテクチャ概要
サーバーレス・アーキテクチャ概要
真吾 吉田
AWS Serverless++
AWS Serverless++
真吾 吉田
Kubernetes on Alibaba Cloud
Kubernetes on Alibaba Cloud
真吾 吉田
ヘッドレスCMSとサーバーレス
ヘッドレスCMSとサーバーレス
真吾 吉田
AWS SAMで始めるサーバーレスアプリケーション開発
AWS SAMで始めるサーバーレスアプリケーション開発
真吾 吉田
Storylineでデザインする心地よい会話体験
Storylineでデザインする心地よい会話体験
真吾 吉田
サーバーレスで ガチ本番運用までやってるお話し
サーバーレスで ガチ本番運用までやってるお話し
Akira Nagata
サーバーレスの話
サーバーレスの話
真吾 吉田
2016/08/25 JAWS-UG 千葉支部 Vol.6 LT
2016/08/25 JAWS-UG 千葉支部 Vol.6 LT
晋也 古渡
アドテクを支える技術 〜1日40億リクエストを捌くには〜
アドテクを支える技術 〜1日40億リクエストを捌くには〜
MicroAd, Inc.(Engineer)
5分でわかる Capabilities と Privilege + KubeCon Recap
5分でわかる Capabilities と Privilege + KubeCon Recap
Masaya Aoyama
Contenu connexe
Tendances
JAWS DAYS 2017 Mafia Talk
JAWS DAYS 2017 Mafia Talk
真吾 吉田
Anchors Aweigh!! - re:Invent報告@re:Port 2016 大阪
Anchors Aweigh!! - re:Invent報告@re:Port 2016 大阪
真吾 吉田
サーバーレスでシステムを開発する時に⼤切な事
サーバーレスでシステムを開発する時に⼤切な事
Hiroyuki Hiki
DevOpsとか言う前にAWSエンジニアに知ってほしいアプリケーションのこと
DevOpsとか言う前にAWSエンジニアに知ってほしいアプリケーションのこと
Terui Masashi
実務で活かせる AWSアーキテクチャ設計 〜AWS re:Invent 2016アップデート最新版〜
実務で活かせる AWSアーキテクチャ設計 〜AWS re:Invent 2016アップデート最新版〜
真吾 吉田
May the FaaS be with us!!
May the FaaS be with us!!
真吾 吉田
Serverless AWS構成でセキュアなSPAを目指す
Serverless AWS構成でセキュアなSPAを目指す
Masayuki Kato
Serverless Meetup Tokyo #2 オープニング
Serverless Meetup Tokyo #2 オープニング
真吾 吉田
Jaws days2017-ops jaws-2
Jaws days2017-ops jaws-2
Serverworks Co.,Ltd.
APIを叩くだけでない、Deep Learning on AWS で自分だけの学習モデルを作ろう! by JAWS-UG AI支部
APIを叩くだけでない、Deep Learning on AWS で自分だけの学習モデルを作ろう! by JAWS-UG AI支部
Daisuke Nagao
Single Command Deployのための gradle-aws-plugin講座
Single Command Deployのための gradle-aws-plugin講座
都元ダイスケ Miyamoto
サーバーレス・アーキテクチャ概要
サーバーレス・アーキテクチャ概要
真吾 吉田
AWS Serverless++
AWS Serverless++
真吾 吉田
Kubernetes on Alibaba Cloud
Kubernetes on Alibaba Cloud
真吾 吉田
ヘッドレスCMSとサーバーレス
ヘッドレスCMSとサーバーレス
真吾 吉田
AWS SAMで始めるサーバーレスアプリケーション開発
AWS SAMで始めるサーバーレスアプリケーション開発
真吾 吉田
Storylineでデザインする心地よい会話体験
Storylineでデザインする心地よい会話体験
真吾 吉田
サーバーレスで ガチ本番運用までやってるお話し
サーバーレスで ガチ本番運用までやってるお話し
Akira Nagata
サーバーレスの話
サーバーレスの話
真吾 吉田
2016/08/25 JAWS-UG 千葉支部 Vol.6 LT
2016/08/25 JAWS-UG 千葉支部 Vol.6 LT
晋也 古渡
Tendances
(20)
JAWS DAYS 2017 Mafia Talk
JAWS DAYS 2017 Mafia Talk
Anchors Aweigh!! - re:Invent報告@re:Port 2016 大阪
Anchors Aweigh!! - re:Invent報告@re:Port 2016 大阪
サーバーレスでシステムを開発する時に⼤切な事
サーバーレスでシステムを開発する時に⼤切な事
DevOpsとか言う前にAWSエンジニアに知ってほしいアプリケーションのこと
DevOpsとか言う前にAWSエンジニアに知ってほしいアプリケーションのこと
実務で活かせる AWSアーキテクチャ設計 〜AWS re:Invent 2016アップデート最新版〜
実務で活かせる AWSアーキテクチャ設計 〜AWS re:Invent 2016アップデート最新版〜
May the FaaS be with us!!
May the FaaS be with us!!
Serverless AWS構成でセキュアなSPAを目指す
Serverless AWS構成でセキュアなSPAを目指す
Serverless Meetup Tokyo #2 オープニング
Serverless Meetup Tokyo #2 オープニング
Jaws days2017-ops jaws-2
Jaws days2017-ops jaws-2
APIを叩くだけでない、Deep Learning on AWS で自分だけの学習モデルを作ろう! by JAWS-UG AI支部
APIを叩くだけでない、Deep Learning on AWS で自分だけの学習モデルを作ろう! by JAWS-UG AI支部
Single Command Deployのための gradle-aws-plugin講座
Single Command Deployのための gradle-aws-plugin講座
サーバーレス・アーキテクチャ概要
サーバーレス・アーキテクチャ概要
AWS Serverless++
AWS Serverless++
Kubernetes on Alibaba Cloud
Kubernetes on Alibaba Cloud
ヘッドレスCMSとサーバーレス
ヘッドレスCMSとサーバーレス
AWS SAMで始めるサーバーレスアプリケーション開発
AWS SAMで始めるサーバーレスアプリケーション開発
Storylineでデザインする心地よい会話体験
Storylineでデザインする心地よい会話体験
サーバーレスで ガチ本番運用までやってるお話し
サーバーレスで ガチ本番運用までやってるお話し
サーバーレスの話
サーバーレスの話
2016/08/25 JAWS-UG 千葉支部 Vol.6 LT
2016/08/25 JAWS-UG 千葉支部 Vol.6 LT
Similaire à Scalaプロダクトのビルド高速化
アドテクを支える技術 〜1日40億リクエストを捌くには〜
アドテクを支える技術 〜1日40億リクエストを捌くには〜
MicroAd, Inc.(Engineer)
5分でわかる Capabilities と Privilege + KubeCon Recap
5分でわかる Capabilities と Privilege + KubeCon Recap
Masaya Aoyama
インターネット広告の概要とシステム設計
インターネット広告の概要とシステム設計
MicroAd, Inc.(Engineer)
IaC事始め Infrastructure as Code やってみる?
IaC事始め Infrastructure as Code やってみる?
大使 梶原
OSSのクラウド基盤 OpenStack / CloudStack
OSSのクラウド基盤 OpenStack / CloudStack
VirtualTech Japan Inc.
Scalaの現状と課題
Scalaの現状と課題
Kota Mizushima
G-Tech2015 Hadoop/Sparkを中核としたビッグデータ基盤_20151006
G-Tech2015 Hadoop/Sparkを中核としたビッグデータ基盤_20151006
Cloudera Japan
15.05.21_ビッグデータ分析基盤Sparkの最新動向とその活用-Spark SUMMIT EAST 2015-
15.05.21_ビッグデータ分析基盤Sparkの最新動向とその活用-Spark SUMMIT EAST 2015-
LINE Corp.
Scala Warrior and type-safe front-end development with Scala.js
Scala Warrior and type-safe front-end development with Scala.js
takezoe
GoldenGateテクニカルセミナー1「市場のトレンドと最新事例のご紹介」(2016/5/11)
GoldenGateテクニカルセミナー1「市場のトレンドと最新事例のご紹介」(2016/5/11)
オラクルエンジニア通信
20190620 aws summit_tokyo_2019
20190620 aws summit_tokyo_2019
PIXELAcorporation
20191015 beyondstudy oracle_nagahisa
20191015 beyondstudy oracle_nagahisa
beyond Co., Ltd.
9/16 Tokyo Apache Drill Meetup - drill vs sparksql
9/16 Tokyo Apache Drill Meetup - drill vs sparksql
Mitsutoshi Kiuchi
Optuna on Kubeflow Pipeline 分散ハイパラチューニング
Optuna on Kubeflow Pipeline 分散ハイパラチューニング
Takashi Suzuki
OpenStack最新動向と構築のポイント - EMC様セミナー 「あなたのビジネスを高速化! OpenStackが実現する戦略的なクラウドインフラ」
OpenStack最新動向と構築のポイント - EMC様セミナー 「あなたのビジネスを高速化! OpenStackが実現する戦略的なクラウドインフラ」
VirtualTech Japan Inc.
2015.6.5 EMC主催OpenStackセミナー - 日本仮想化技術様講演スライド
2015.6.5 EMC主催OpenStackセミナー - 日本仮想化技術様講演スライド
EMC Japan
ML Pipelineで実践機械学習
ML Pipelineで実践機械学習
Kazuki Taniguchi
BigDLでScala × DeepLearning に入門した話
BigDLでScala × DeepLearning に入門した話
hirotakanosato
ScalaCL in ScalaKaigi
ScalaCL in ScalaKaigi
Hideyuki Takeuchi
Struggle against cross-domain data complexity in Recruit group
Struggle against cross-domain data complexity in Recruit group
Recruit Technologies
Similaire à Scalaプロダクトのビルド高速化
(20)
アドテクを支える技術 〜1日40億リクエストを捌くには〜
アドテクを支える技術 〜1日40億リクエストを捌くには〜
5分でわかる Capabilities と Privilege + KubeCon Recap
5分でわかる Capabilities と Privilege + KubeCon Recap
インターネット広告の概要とシステム設計
インターネット広告の概要とシステム設計
IaC事始め Infrastructure as Code やってみる?
IaC事始め Infrastructure as Code やってみる?
OSSのクラウド基盤 OpenStack / CloudStack
OSSのクラウド基盤 OpenStack / CloudStack
Scalaの現状と課題
Scalaの現状と課題
G-Tech2015 Hadoop/Sparkを中核としたビッグデータ基盤_20151006
G-Tech2015 Hadoop/Sparkを中核としたビッグデータ基盤_20151006
15.05.21_ビッグデータ分析基盤Sparkの最新動向とその活用-Spark SUMMIT EAST 2015-
15.05.21_ビッグデータ分析基盤Sparkの最新動向とその活用-Spark SUMMIT EAST 2015-
Scala Warrior and type-safe front-end development with Scala.js
Scala Warrior and type-safe front-end development with Scala.js
GoldenGateテクニカルセミナー1「市場のトレンドと最新事例のご紹介」(2016/5/11)
GoldenGateテクニカルセミナー1「市場のトレンドと最新事例のご紹介」(2016/5/11)
20190620 aws summit_tokyo_2019
20190620 aws summit_tokyo_2019
20191015 beyondstudy oracle_nagahisa
20191015 beyondstudy oracle_nagahisa
9/16 Tokyo Apache Drill Meetup - drill vs sparksql
9/16 Tokyo Apache Drill Meetup - drill vs sparksql
Optuna on Kubeflow Pipeline 分散ハイパラチューニング
Optuna on Kubeflow Pipeline 分散ハイパラチューニング
OpenStack最新動向と構築のポイント - EMC様セミナー 「あなたのビジネスを高速化! OpenStackが実現する戦略的なクラウドインフラ」
OpenStack最新動向と構築のポイント - EMC様セミナー 「あなたのビジネスを高速化! OpenStackが実現する戦略的なクラウドインフラ」
2015.6.5 EMC主催OpenStackセミナー - 日本仮想化技術様講演スライド
2015.6.5 EMC主催OpenStackセミナー - 日本仮想化技術様講演スライド
ML Pipelineで実践機械学習
ML Pipelineで実践機械学習
BigDLでScala × DeepLearning に入門した話
BigDLでScala × DeepLearning に入門した話
ScalaCL in ScalaKaigi
ScalaCL in ScalaKaigi
Struggle against cross-domain data complexity in Recruit group
Struggle against cross-domain data complexity in Recruit group
Plus de kuro kuro
Maglev: A Fast and Reliable Software Network Load Balancer
Maglev: A Fast and Reliable Software Network Load Balancer
kuro kuro
Logback stackdriver-loggingを作った
Logback stackdriver-loggingを作った
kuro kuro
AWSで透過プロキシをやってみた
AWSで透過プロキシをやってみた
kuro kuro
さくらのシンプル監視でWi-Fiの死活監視をしてみた wakate2016w LT
さくらのシンプル監視でWi-Fiの死活監視をしてみた wakate2016w LT
kuro kuro
ICT Trouble Shooting Contest
ICT Trouble Shooting Contest
kuro kuro
holidaymakerを支える技術
holidaymakerを支える技術
kuro kuro
明大・日大交流会全体統括
明大・日大交流会全体統括
kuro kuro
CTFに参加してきました。
CTFに参加してきました。
kuro kuro
Plus de kuro kuro
(8)
Maglev: A Fast and Reliable Software Network Load Balancer
Maglev: A Fast and Reliable Software Network Load Balancer
Logback stackdriver-loggingを作った
Logback stackdriver-loggingを作った
AWSで透過プロキシをやってみた
AWSで透過プロキシをやってみた
さくらのシンプル監視でWi-Fiの死活監視をしてみた wakate2016w LT
さくらのシンプル監視でWi-Fiの死活監視をしてみた wakate2016w LT
ICT Trouble Shooting Contest
ICT Trouble Shooting Contest
holidaymakerを支える技術
holidaymakerを支える技術
明大・日大交流会全体統括
明大・日大交流会全体統括
CTFに参加してきました。
CTFに参加してきました。
Dernier
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
Atomu Hidaka
20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory
osamut
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
iPride Co., Ltd.
プレイマットのパターン生成支援ツールの評価
プレイマットのパターン生成支援ツールの評価
sugiuralab
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000
Shota Ito
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
iPride Co., Ltd.
プレイマットのパターン生成支援ツール
プレイマットのパターン生成支援ツール
sugiuralab
Dernier
(7)
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
プレイマットのパターン生成支援ツールの評価
プレイマットのパターン生成支援ツールの評価
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
プレイマットのパターン生成支援ツール
プレイマットのパターン生成支援ツール
Scalaプロダクトのビルド高速化
1.
CyberAgent, Inc. All
Rights Reserved Scalaプロダクトのビルド高速化 黒崎 優太 @kuro_m88
2.
黒崎 優太 @kuro_m88 ●
株式会社サイバーエージェント ○ AdTech Studio / Dynalyst エンジニア ● 新卒2年目 ● Scala, AWS, LXD 査読に参加しました 今書いています
3.
Scalaのコンパイルと言えば
4.
Scalaのコンパイルと言えば ● 大規模プロジェクトだと遅い ○ Dynalystの例: ■
100+ sub projects ■ 400K+ lines (Scala) ■ 18K+ builds (50 builds / day) ○ dotty(次世代コンパイラ)に期待 ● 先人の知見
5.
金の弾丸 出典: Scalaのコンパイル速度の話が聞きたいだろうし、するつもりだ https://www.slideshare.net/kiris60/scala-benchmarks
6.
AdTech StudioでのCircleCI ● CircleCI
Enterpriseを利用 ○ 物理 ○ 30+ Node ○ 100+ Build Container ○ Amebaのと合わせると国内最大規模 ○ コストパフォーマンス
7.
Dynalystでのビルド方法
8.
9.
Dynalystのビルド方法(高速化前) ● キャッシュを使ってビルド時間を短く ○ (sbtの機能により)差分コンパイルされる ○
※ すべてのコンテナで全部のプロジェクトをビルド ● コンテナをたくさん使ってテストは並列に ○ コンテナごとにテストするプロジェクトを変えて分散 ○ DBを使うテストは同一ホスト内で並列に走れない ○ 実際には12コンテナ使ってます ● それでも待たされる(20分くらい)ので改善したい
10.
①: CircleCI→CircleCI Enterprise ●
まぁまぁ速くなった ○ Enterprise採用ありがとうございます ○ CPU , Memory , Storage , Network ● 結果: 成功
11.
● コンテナたくさんあるんだし、 コンパイルするプロジェクトも コンテナごとに分けたら速くなるのでは ②: コンパイルを並列にする
12.
13.
②: コンパイルを並列にする ● 余計遅くなった… ●
Container #0しかキャッシュが保存されて いない模様 ● 差分コンパイルが効かないのが原因 ● 結果: 失敗
14.
● ビルド成果物を先頭コンテナにrsync すればキャッシュを保存してくれそう ③: 成果物をrsyncで先頭のコンテナに
15.
16.
③: 成果物をrsyncで先頭のコンテナに ● connection
timed out
17.
③: 成果物をrsyncで先頭のコンテナに ● 頻繁にコケてしまう… ○
帯域制限してみたり、色々やったけどうまくい かず… ● 結果: 失敗
18.
困ったので調べた 出典: Cache save/restore
algorithm - Build Environment - CircleCI Community Discussion https://discuss.circleci.com/t/cache-save-restore-algorithm/759
19.
困ったので調べた 出典: Cache save/restore
algorithm - Build Environment - CircleCI Community Discussion https://discuss.circleci.com/t/cache-save-restore-algorithm/759
20.
④: 自前でビルドキャッシュを保存 ● ビルドキャッシュをS3に自前でアップロード ●
ビルド時にキャッシュをダウンロードしてきて展開 ● circle.ymlにこれを行うシェルスクリプトを書いた ○ 代わりにCircleCIのビルドキャッシュ機能は 使わない
21.
22.
④: 自前でビルドキャッシュを保存 ● 結果:
23.
結果 ● PR Buildが20分→8分に ○
※差分の量によって時間は変わります
24.
改善点
25.
改善点 ● 並列ビルドをシェルスクリプトで書いてる ○ sbtでいい感じにしたい ●
コンテナごとにビルド時間が偏るときがある ○ 現状たまに手で再配置 ● S3以外の場所にキャッシュを保存する ○ DC内にストレージあったほうがコスト/速度的に よさそう ○ 標準でコンテナごとにキャッシュを保存してくれると嬉 しいな(要望)
Télécharger maintenant