SlideShare una empresa de Scribd logo
1 de 23
Descargar para leer sin conexión
自動化を支える
CI/CDツールの私の選択
〜 何をするためにCI/CDツールを選ぶか 〜
2017/03/07 リクルートライフスタイル
関根 康史
自己紹介
● 関根 康史 ( @AHA_oretama )
● リクルートライフスタイル
○ 2015/8 〜
● ブッキングテーブル → (SET 活動中)
What’s SET ?
The SET or Software Engineer in Test is also a developer role except their focus is on testability.
ミッション
プロダクト・サービスの品質向上⤴
エンジニアの開発生産性向上⤴
何をするか
サービスの品質を向上させる ために様々なボトルネックを解消していく
※ 社内にCET,SWATというチームがいるため、SET,SWET以外の名前を考えてます…
自動化を支えるCI/CDツール
非常に多くのツールが存在
ただし…
● どれを選べばいいか分からない
● 運用をどうするか
● (どのツールを選んでも)
テストが増えればCIが遅くなる
という問題が発生する
https://stackshare.io/search/q=continuous-integration
今日お話すること
● メインで解決したかったこと
● CI/CDツールの選定理由
● CI/CDツールの環境・構成
● CI/CDツール以外での対応
CI/CDツールは何が一番よいかというお話ではなく、
こういう理由でこうした、というお話です。
リクルートライフスタイルには多くのサービスがあるが、
(ServerSideを中心に)CI単体テストの実行に数時間かかるものも存在した
⇒ ✓ リリース効率・頻度のアップ
  ✓ 開発者への早期のフィードバックを行う
そのために、CI単体テストの実行時間を短時間にする!
メインで解決したかったこと
CI単体テストは速いほうがよい
⇒ 不具合は早く見つける方が対策費用を抑えられる
※一般にCIは10分以内に終わるのが良い、と言われている。
遅くとも20分以内に終わるのが望ましい。
逆に遅くなったときに起こりうることは?
● 別の人のコミットが混じりやすくなり、テストの失敗原因の特定に時間がかかる
● 作成者が作ったものを忘れる
● 作成者が自分の分のコミットでCIが回っているか忘れる
● エンジニアがテスト結果に興味がなくなる
● テストの失敗したまま放置されやすくなる
● テスト自体回さなくなってしまう
● リリース日にエラーしているとその日のリリースをとりやめなければならなくなる
● 緊急リリースを行う前にCIを回さず、デグレが本番で発生する
CI単体テストの速度の重要性
CI単体テストを速くするために
やったこと・やるつもりのこと
● CI/CDツールの選定
● 環境の移行・構成
● CI単体テストのよくある問題の解決
● プルリクエストのCI単体テスト時間の最適化(予定)
● 周辺ツールの整備(予定)
=今日お話すること(残り)
CI単体テストを速くするために
やったこと・やるつもりのこと
● CI/CDツールの選定
● 環境の移行・構成
● CI単体テストのよくある問題の解決
● プルリクエストのCI単体テスト時間の最適化(予定)
● 周辺ツールの整備(予定)
=今日お話すること(残り)
CI/CDツールにJenkinsを選んだ理由
候補として上がったのはJenkins,CircleCI
セキュリティ上の理由からオンプレ前提
Jennkins 2.X CircleCI
コスト 無料 $35 / User () per month with annual contract
運用 大変になりがち -
型 プラグイン型
ex.Jenkins内でカバレッジを可視化しつづける
特化型(CI/CDに特化)
ex. カバレッジを取りつづけるならCoveralls,Codecov
などと連携しなければならないが、オンプレで運用する
必要あり
環境 コンテナもサポートしているが、
各プロジェクトで環境を定義することが多い
コンテナ型
ビルド環境の独立性を確保
ジョブ定義 Pipelineの登場 yml
● Jenkins 2.Xからデフォルトインストールされる機能
● Pipeline as Code
○ 変更履歴を管理、rollback、レビュの実施
● (再起動後の)永続性
● 手動オペレーションとの融合
Scripted Pipeline
✓ Jenkins 2.Xの初期のデフォルトPipeline
✓ 柔軟な記述が可能な反面、記述が煩雑になりやすい
Declarative Pipeline (since 2017/02/03, Declarative Pipeline Syntax 1.0 is now available)
✓ シンプルに宣言的に扱える
✓ Declarative Pipelineの処理中にScripted Pipelineの構文を使うこともできる
Declarative Pipelineを主に使い、柔軟な表現部分が必要な部分にはScripted Pipelineを使うの
がよいと思う。
Jenkins 2.X Pipeline
pipeline {
agent any
stages {
stage('Example') {
steps {
echo 'Hello World'
}
}
}
post {
always {
echo 'I will always say Hello again!'
}
}
}
Jenkins 2.X Declarative Pipeline
Declarative Pipelineを
使うためpipelineで囲む
処理は
 stages -> stage -> steps
で定義
pipelineの最後に行う処理。
条件は変更可能
(alwaysは必ず実行)
pipeline {
agent {
docker {
image 'maven:3-alpine'
label 'my-defined-label'
args '-v /tmp:/tmp' // dockerに渡る引数
}
}
stages {
stage('Example Build') {
steps {
echo 'Hello, Docker'
}
}
}
}
Jenkins 2.X Declarative Pipeline
agentにDockerも指定可能
pipeline {
agent any
tools {
maven ‘apache-maven-3.0.1’
}
trigges {
cron(‘H 4/* 0 0 1-5’)
}
stages {
stage('Example Build') {
steps {
sh 'mvn -B clean verify'
// toolsで指定したツールが PATHに登録され、ツールを実行できるようになる
}
}
}
}
Jenkins 2.X Declarative Pipeline
AutoInstallしたツールを使用できる
● maven
● jdk
● gradle のみ
ジョブの起動トリガー
● cron
● pollScm のみ
pipeline {
agent any
stages {
stage('Example Deploy') {
when {
branch 'production'
}
echo 'Deploying'
script {
def browsers = ['chrome', 'firefox']
for (int i = 0; i < browsers.size(); ++i) {
echo "Testing the ${browsers[i]} browser"
}
}
}
}
}
Jenkins 2.X Declarative Pipeline
ブランチがproduction以外は
このstageを実行しない
Scriptブロック内では
Scripted Pipelineを使用できる
CI単体テストを速くするために
やったこと・やるつもりのこと
● CI/CDツールの選定
● 環境の移行・構成
● CI単体テストのよくある問題の解決
● プルリクエストのCI単体テスト時間の最適化(予定)
● 周辺ツールの整備(予定)
=今日お話すること(残り)
環境の移行・Jenkinsの構成
Oracle
社内サーバ Slave
Slave
● 性能が良くない社内サーバから AWSへ(性能&安定性UP)
● ジョブ数に応じて、AMIからSlaveを自動生成するようにして自動でスケール
● RDS内部でスキーマを切り、 Slaveごとに別の仮想DBを用意
● Slave構成にすることでテストの並列実行が可能に
Jenkins Slave EC2 vs ECS
EC2 Slave ECS(EC2 Container Service)
タイプ インスタンス Docker
ベース AMIからインスタンス起動 Docker Imageから起動
スレーブ管理者 主にインフラ 主に開発者
スケール ジョブが滞留したらスケールする ECS Auto Scaling に対応
メリット 同じ環境のプロジェクトで使いやすい
簡単に始められる
環境がクリーン
起動が早い
デメリット 起動に若干時間がかかる
環境がカオティックになりやすい
イメージ作成・管理が必要
現時点ではEC2 Slaveを採用。
● 既存プロジェクトがDocker未使用のところが多い
● Jenkinsはプロジェクト単位で立てているため、あまり環境がカオティックにならない
CI単体テストを速くするために
やったこと・やるつもりのこと
● CI/CDツールの選定
● 環境の移行・構成
● CI単体テストのよくある問題の解決
● プルリクエストのCI単体テスト時間の最適化(予定)
● 周辺ツールの整備(予定)
=今日お話すること(残り)
CI単体テストのよくある問題の解決
問題 解決
10000件のデータ登録でエラーになるテストケースで、
10000件のデータを登録しようとしている。
上限をテスト内で変更し、
大量データをいれないようにする。
Debugレベルのログが大量に出力されてしまい、
ログファイルも開けない。CI単体テストも遅くなる。
適切なログレベル(Error またはWarn以上)に設定
する。
本番環境でしかつながらないサーバに対して、
通信を行って通信エラーになるまで数秒間待機してしまう。
テスト用の通信しないクラスを作成して、
上書きする
1クラスのテストに対してWEBアプリケーションを
起動してしまう。(主にSpring-Bootで)
テスト範囲に応じて、
テスト対象外のクラスはモック化する
実際にあった1例です。
● CI/CDツールの選定
● 環境の移行・構成
● CI単体テストのよくある問題の解決
● プルリクエストのCI単体テスト時間の最適化(予定)
● 周辺ツールの整備(予定)
CI単体テストを速くするために
やったこと・やるつもりのこと
=今日お話すること(残り)
今後やりたいこと
開発者により速く、そしてもっと情報をフィードバックするために
● プルリクエストのCI単体テスト時間の最適化
○ テストサイズの導入
○ 変更されたファイルからパッケージやファイル名などによるテスト対象の絞込
● 周辺ツールの整備
○ 静的解析
○ SonarQube
○ SideCI
まとめ
● メインで解決したかったこと
→ CI単体テストを速くするために
● CI/CDツールの選定理由
→ Jenkinsを選び
● CI/CDツールの環境・構成
→ 並列テスト・スケールできる環境を作り
● CI/CDツール以外での対応
→ 単体テストのよくある問題を解決し、
  これから周辺ツールなどを整備していく。

Más contenido relacionado

La actualidad más candente

Boto3からの解放。python3の標準ライブラリのみでawsサービスを取り扱うには
Boto3からの解放。python3の標準ライブラリのみでawsサービスを取り扱うにはBoto3からの解放。python3の標準ライブラリのみでawsサービスを取り扱うには
Boto3からの解放。python3の標準ライブラリのみでawsサービスを取り扱うには
Koitabashi Yoshitaka
 

La actualidad más candente (20)

DockerコンテナでGitを使う
DockerコンテナでGitを使うDockerコンテナでGitを使う
DockerコンテナでGitを使う
 
マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!
 
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptx
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptxネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptx
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptx
 
Docker Compose 徹底解説
Docker Compose 徹底解説Docker Compose 徹底解説
Docker Compose 徹底解説
 
BuildKitによる高速でセキュアなイメージビルド
BuildKitによる高速でセキュアなイメージビルドBuildKitによる高速でセキュアなイメージビルド
BuildKitによる高速でセキュアなイメージビルド
 
チャットコミュニケーションの問題と心理的安全性の課題 #EOF2019
チャットコミュニケーションの問題と心理的安全性の課題 #EOF2019チャットコミュニケーションの問題と心理的安全性の課題 #EOF2019
チャットコミュニケーションの問題と心理的安全性の課題 #EOF2019
 
Serverless時代のJavaについて
Serverless時代のJavaについてServerless時代のJavaについて
Serverless時代のJavaについて
 
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
 
SageMakerでもAUTOMATIC1111したい
SageMakerでもAUTOMATIC1111したいSageMakerでもAUTOMATIC1111したい
SageMakerでもAUTOMATIC1111したい
 
Boto3からの解放。python3の標準ライブラリのみでawsサービスを取り扱うには
Boto3からの解放。python3の標準ライブラリのみでawsサービスを取り扱うにはBoto3からの解放。python3の標準ライブラリのみでawsサービスを取り扱うには
Boto3からの解放。python3の標準ライブラリのみでawsサービスを取り扱うには
 
At least onceってぶっちゃけ問題の先送りだったよね #kafkajp
At least onceってぶっちゃけ問題の先送りだったよね #kafkajpAt least onceってぶっちゃけ問題の先送りだったよね #kafkajp
At least onceってぶっちゃけ問題の先送りだったよね #kafkajp
 
45分間で「ユーザー中心のものづくり」ができるまで詰め込む
45分間で「ユーザー中心のものづくり」ができるまで詰め込む45分間で「ユーザー中心のものづくり」ができるまで詰め込む
45分間で「ユーザー中心のものづくり」ができるまで詰め込む
 
わたくし、やっぱりCDKを使いたいですわ〜CDK import編〜.pdf
わたくし、やっぱりCDKを使いたいですわ〜CDK import編〜.pdfわたくし、やっぱりCDKを使いたいですわ〜CDK import編〜.pdf
わたくし、やっぱりCDKを使いたいですわ〜CDK import編〜.pdf
 
Linux女子部 systemd徹底入門
Linux女子部 systemd徹底入門Linux女子部 systemd徹底入門
Linux女子部 systemd徹底入門
 
実運用して分かったRabbit MQの良いところ・気をつけること #jjug
実運用して分かったRabbit MQの良いところ・気をつけること #jjug実運用して分かったRabbit MQの良いところ・気をつけること #jjug
実運用して分かったRabbit MQの良いところ・気をつけること #jjug
 
Docker Tokyo
Docker TokyoDocker Tokyo
Docker Tokyo
 
本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話
 
フロー効率性とリソース効率性について #xpjug
フロー効率性とリソース効率性について #xpjugフロー効率性とリソース効率性について #xpjug
フロー効率性とリソース効率性について #xpjug
 
開発速度が速い #とは(LayerX社内資料)
開発速度が速い #とは(LayerX社内資料)開発速度が速い #とは(LayerX社内資料)
開発速度が速い #とは(LayerX社内資料)
 
分散システムについて語らせてくれ
分散システムについて語らせてくれ分散システムについて語らせてくれ
分散システムについて語らせてくれ
 

Similar a 自動化を支えるCI/CDツールの私の選択 ~何をするためにCI/CDツールを選ぶか~

Getting Started with Testing using PHPUnit
Getting Started with Testing using PHPUnitGetting Started with Testing using PHPUnit
Getting Started with Testing using PHPUnit
Atsuhiro Kubo
 
13016 n分で作るtype scriptでnodejs
13016 n分で作るtype scriptでnodejs13016 n分で作るtype scriptでnodejs
13016 n分で作るtype scriptでnodejs
Takayoshi Tanaka
 
Introduction to Continuous Test Runner MakeGood
Introduction to Continuous Test Runner MakeGoodIntroduction to Continuous Test Runner MakeGood
Introduction to Continuous Test Runner MakeGood
Atsuhiro Kubo
 
継続的インテグレーション3分クッキング
継続的インテグレーション3分クッキング継続的インテグレーション3分クッキング
継続的インテグレーション3分クッキング
Takayuki Kondou
 
Aizu.LT::Tokyo #4
Aizu.LT::Tokyo #4Aizu.LT::Tokyo #4
Aizu.LT::Tokyo #4
Taku Unno
 
Personal Cloud Automation
Personal Cloud AutomationPersonal Cloud Automation
Personal Cloud Automation
Etsuji Nakai
 

Similar a 自動化を支えるCI/CDツールの私の選択 ~何をするためにCI/CDツールを選ぶか~ (20)

もろもろの AI ツールを Windows のローカル環境にインストールする手順
もろもろの AI ツールを Windows のローカル環境にインストールする手順もろもろの AI ツールを Windows のローカル環境にインストールする手順
もろもろの AI ツールを Windows のローカル環境にインストールする手順
 
OpenAI の音声認識 AI「Whisper」をテストしてみた
OpenAI の音声認識 AI「Whisper」をテストしてみたOpenAI の音声認識 AI「Whisper」をテストしてみた
OpenAI の音声認識 AI「Whisper」をテストしてみた
 
Getting Started with Testing using PHPUnit
Getting Started with Testing using PHPUnitGetting Started with Testing using PHPUnit
Getting Started with Testing using PHPUnit
 
13016 n分で作るtype scriptでnodejs
13016 n分で作るtype scriptでnodejs13016 n分で作るtype scriptでnodejs
13016 n分で作るtype scriptでnodejs
 
あなたの安心を高速に守る Container-based CI
あなたの安心を高速に守る Container-based CIあなたの安心を高速に守る Container-based CI
あなたの安心を高速に守る Container-based CI
 
はてなにおける継続的デプロイメントの現状と Docker の導入
はてなにおける継続的デプロイメントの現状と Docker の導入はてなにおける継続的デプロイメントの現状と Docker の導入
はてなにおける継続的デプロイメントの現状と Docker の導入
 
Visual studio de debug
Visual studio de debugVisual studio de debug
Visual studio de debug
 
開発エンジニアがChefで テスト駆動サーバー設定してみた #biglobetechtalk
開発エンジニアがChefで テスト駆動サーバー設定してみた #biglobetechtalk開発エンジニアがChefで テスト駆動サーバー設定してみた #biglobetechtalk
開発エンジニアがChefで テスト駆動サーバー設定してみた #biglobetechtalk
 
TDD勉強会キックオフ for Java
TDD勉強会キックオフ for JavaTDD勉強会キックオフ for Java
TDD勉強会キックオフ for Java
 
Introduction to Continuous Test Runner MakeGood
Introduction to Continuous Test Runner MakeGoodIntroduction to Continuous Test Runner MakeGood
Introduction to Continuous Test Runner MakeGood
 
継続的インテグレーション3分クッキング
継続的インテグレーション3分クッキング継続的インテグレーション3分クッキング
継続的インテグレーション3分クッキング
 
CruiseControl.NET設置
CruiseControl.NET設置CruiseControl.NET設置
CruiseControl.NET設置
 
.NET アプリを改善して実践する継続的インテグレーション
.NET アプリを改善して実践する継続的インテグレーション.NET アプリを改善して実践する継続的インテグレーション
.NET アプリを改善して実践する継続的インテグレーション
 
Aizu.LT::Tokyo #4
Aizu.LT::Tokyo #4Aizu.LT::Tokyo #4
Aizu.LT::Tokyo #4
 
XPFes2023_DevOps business-briefing_Hasegawa
XPFes2023_DevOps business-briefing_HasegawaXPFes2023_DevOps business-briefing_Hasegawa
XPFes2023_DevOps business-briefing_Hasegawa
 
Personal Cloud Automation
Personal Cloud AutomationPersonal Cloud Automation
Personal Cloud Automation
 
アジャイル開発&TFS導入
アジャイル開発&TFS導入アジャイル開発&TFS導入
アジャイル開発&TFS導入
 
Code igniterでテスト駆動開発 資料作成中
Code igniterでテスト駆動開発 資料作成中Code igniterでテスト駆動開発 資料作成中
Code igniterでテスト駆動開発 資料作成中
 
PyQtではじめるGUIプログラミング
PyQtではじめるGUIプログラミングPyQtではじめるGUIプログラミング
PyQtではじめるGUIプログラミング
 
Jenkins x Kubernetesが簡単だと思ったら大変だった話
Jenkins x Kubernetesが簡単だと思ったら大変だった話Jenkins x Kubernetesが簡単だと思ったら大変だった話
Jenkins x Kubernetesが簡単だと思ったら大変だった話
 

Más de Recruit Lifestyle Co., Ltd.

Más de Recruit Lifestyle Co., Ltd. (20)

業務と消費者の体験を同時にデザインするリクルートの価値検証のリアル ー 「Airレジ ハンディ」セルフオーダーのブレない「価値」の確かめ方 ー
業務と消費者の体験を同時にデザインするリクルートの価値検証のリアル ー 「Airレジ ハンディ」セルフオーダーのブレない「価値」の確かめ方 ー業務と消費者の体験を同時にデザインするリクルートの価値検証のリアル ー 「Airレジ ハンディ」セルフオーダーのブレない「価値」の確かめ方 ー
業務と消費者の体験を同時にデザインするリクルートの価値検証のリアル ー 「Airレジ ハンディ」セルフオーダーのブレない「価値」の確かめ方 ー
 
分散トレーシングAWS:X-Rayとの上手い付き合い方
分散トレーシングAWS:X-Rayとの上手い付き合い方分散トレーシングAWS:X-Rayとの上手い付き合い方
分散トレーシングAWS:X-Rayとの上手い付き合い方
 
OOUIを実践してわかった、9つの大切なこと
OOUIを実践してわかった、9つの大切なことOOUIを実践してわかった、9つの大切なこと
OOUIを実践してわかった、9つの大切なこと
 
Flutter移行の苦労と、乗り越えた先に得られたもの
Flutter移行の苦労と、乗り越えた先に得られたものFlutter移行の苦労と、乗り越えた先に得られたもの
Flutter移行の苦労と、乗り越えた先に得られたもの
 
CTIサービスを支える裏側 〜物理デバイスとの戦い〜 | iOSDC Japan 2020
CTIサービスを支える裏側 〜物理デバイスとの戦い〜 | iOSDC Japan 2020CTIサービスを支える裏側 〜物理デバイスとの戦い〜 | iOSDC Japan 2020
CTIサービスを支える裏側 〜物理デバイスとの戦い〜 | iOSDC Japan 2020
 
「進化し続けるインフラ」のためのマルチアカウント管理
「進化し続けるインフラ」のためのマルチアカウント管理「進化し続けるインフラ」のためのマルチアカウント管理
「進化し続けるインフラ」のためのマルチアカウント管理
 
Air事業のデザイン組織とデザイナー
Air事業のデザイン組織とデザイナーAir事業のデザイン組織とデザイナー
Air事業のデザイン組織とデザイナー
 
リクルートライフスタイル AirシリーズでのUXリサーチ
リクルートライフスタイル AirシリーズでのUXリサーチリクルートライフスタイル AirシリーズでのUXリサーチ
リクルートライフスタイル AirシリーズでのUXリサーチ
 
ホットペッパービューティーにおけるモバイルアプリ向けAPIのBFF/Backend分割
ホットペッパービューティーにおけるモバイルアプリ向けAPIのBFF/Backend分割ホットペッパービューティーにおけるモバイルアプリ向けAPIのBFF/Backend分割
ホットペッパービューティーにおけるモバイルアプリ向けAPIのBFF/Backend分割
 
データサイエンティストが力を発揮できるアジャイルデータ活用基盤
データサイエンティストが力を発揮できるアジャイルデータ活用基盤データサイエンティストが力を発揮できるアジャイルデータ活用基盤
データサイエンティストが力を発揮できるアジャイルデータ活用基盤
 
Real-time personalized recommendation using embedding
Real-time personalized recommendation using embeddingReal-time personalized recommendation using embedding
Real-time personalized recommendation using embedding
 
データから価値を生み続けるには
データから価値を生み続けるにはデータから価値を生み続けるには
データから価値を生み続けるには
 
データプロダクト開発を成功に導くには
データプロダクト開発を成功に導くにはデータプロダクト開発を成功に導くには
データプロダクト開発を成功に導くには
 
Jupyter だけで機械学習を実サービス展開できる基盤
Jupyter だけで機械学習を実サービス展開できる基盤Jupyter だけで機械学習を実サービス展開できる基盤
Jupyter だけで機械学習を実サービス展開できる基盤
 
SQLを書くだけでAPIが作れる基盤
SQLを書くだけでAPIが作れる基盤SQLを書くだけでAPIが作れる基盤
SQLを書くだけでAPIが作れる基盤
 
BtoBサービスならではの顧客目線の取り入れ方
BtoBサービスならではの顧客目線の取り入れ方BtoBサービスならではの顧客目線の取り入れ方
BtoBサービスならではの顧客目線の取り入れ方
 
The Design for Serverless ETL Pipeline データ分析基盤のレガシーなデータロードをサーバレスでフルリプレースするまで道のり
The Design for Serverless ETL Pipeline データ分析基盤のレガシーなデータロードをサーバレスでフルリプレースするまで道のりThe Design for Serverless ETL Pipeline データ分析基盤のレガシーなデータロードをサーバレスでフルリプレースするまで道のり
The Design for Serverless ETL Pipeline データ分析基盤のレガシーなデータロードをサーバレスでフルリプレースするまで道のり
 
リクルートライフスタイルにおける深層学習の活用とGCPでの実現方法
リクルートライフスタイルにおける深層学習の活用とGCPでの実現方法リクルートライフスタイルにおける深層学習の活用とGCPでの実現方法
リクルートライフスタイルにおける深層学習の活用とGCPでの実現方法
 
ビックデータ分析基盤の成⻑の軌跡
ビックデータ分析基盤の成⻑の軌跡ビックデータ分析基盤の成⻑の軌跡
ビックデータ分析基盤の成⻑の軌跡
 
Refactoring point of Kotlin application
Refactoring point of Kotlin applicationRefactoring point of Kotlin application
Refactoring point of Kotlin application
 

Último

Último (7)

NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 

自動化を支えるCI/CDツールの私の選択 ~何をするためにCI/CDツールを選ぶか~