SlideShare une entreprise Scribd logo
1  sur  30
Télécharger pour lire hors ligne
ビットバンクでのネイティブアプ
リケーション開発におけるCI/CD
環境
システム部門 App部 フロントエンドチーム
小林拓
© bitbank inc.
自己紹介
● 名前: 小林拓(こばやしたく)
● 経歴: 学生(生体認証の研究)→WEB開発→スマホ向けアプリ開
発→スマホ向けゲーム開発(バックエンド兼フロントエンド6年半)
→ビットバンク
● 趣味・趣向: 旅行・ハッカソンジャンキー・ゲーム・アニメ・ガジェヲタ
2
© bitbank inc.
元ネタ 3
ビットバンクでのネイティブアプリケーション開発におけるCI/CD環境
© bitbank inc.
結論(ネイティブアプリケーションの開発環境の構成) 4
用途 名前
ソースコードの管理 Gitlab
一部Github
CI/CD環境 Android: Gitlab CI/CD
iOS: Visual Studio App Center
(テスト向け)アプリケーション配信 Android: Visual Studio App Center
iOS: Visual Studio App Center
アプリケーション配信承認ワークフロー Gluegent Flow
© bitbank inc.
Bitbankのネイティブアプリ開発担当(Android/iOS)の人数 5
2人
(ちなみにCI/CD環境を構築した時は1人)
© bitbank inc.
絶賛募集中 6
https://www.wantedly.com/projects/698436
© bitbank inc.
なぜCI/CDの導入を推し進めたのか? 7
● 少ない人数でもネイティブアプリの開発・運用が捗るようにするため
→ 開発担当者の人数少ないから...
● リリースや緊急対応などを他の人でも行えるようにするため
→ そうしないと僕が気兼ねなく旅行に行けない...
● 責任の所在を明確にするため
→ (弊社ではそういうことはないですが)知らないうちにリリースしていたとかで怒られたくないなぁ...
● 人為的ミスを発生させないようにするため
→ やらかした時の精神的なダメージを負いたくないなぁ...
© bitbank inc.
そもそもCI/CDとはなんなのか? 8
簡単にいうと
● CI: Continuous integration(継続的インテグレーション )
● CD: Continuous delivery(継続的デリバリ)
● CD: Continuous Deployment(継続的開発)
ソフトウェア開発において自動化を取り入れることで顧客にアプリケーションを
提供する頻度を高める手法のことを CI/CD と言います。
© bitbank inc.
一般的なネイティブアプリの開発のワークフロー 9
繰り返しやる部分(ルーチンワーク)
は自動化して時短ができる
© bitbank inc.
● Android
○ ビルドしたときの成果物はapkファイル、また
はaabファイル
○ ビルドするには署名が必要
○ Debug用として標準に用意されている署名を
用いてビルドが行われる
○ ストアに配布するためには独自の署名を作成
して、その署名を用いてビルドする必要があ
る
○ Linux, Mac OS, WindowsいずれのOSでもビ
ルド可能
ネイティブアプリ開発における仕様 10
● iOS
○ ビルドしたときの成果物はipaファイル
○ 社内配布用の署名(AdHoc)とストア配布用の
署名がそれぞれ別々に必要
○ ビルドするために必要な署名はMacに紐づけ
られて使用される→iOS アプリをビルドするた
めにはMac OSのマシン(Xcode)が必要
→Mac OS以外のOSにはXcodeが存在しな
いためiOSアプリをビルドできない
© bitbank inc.
元々の環境と選定への思い 11
● 元々はソースコードの管理は Gitlabを使用(一部Githubを使用)
○ Gitlab CI/CDの利用で全て解決できるのならそれがいい
● 新たに使用するサービスはあまり増やしたくない
● サービス提供企業がマイナーだとセキュリティなどの観点から不安、懸念がある
● サービス利用費用が高すぎない
© bitbank inc.
CI/CDサービスの比較検討 12
名前 提供会社 価格 特徴
Gitlab CI/CD Gitlab 省略 + Git リポジトリと一体化
- iOS のビルドを行うためにはオンプレマシン
(Mac OS)が必要
Visual Studio App Center Microsoft Build 無制限: ¥4,480/月
UI テスト: ¥11,088/月
ターゲットテスト: ¥1,120/
月
Visual Studio App Center は Microsoft Azure の一部
+ アプリケーションの配布機能と一体化
(配布は無料)
+ Android / iOS ともにビルド可能
+ 機能が豊富
- Git リポジトリは外部から取得してくる必要あり
- 採用実績が少ない
Github Actions Microsoft Linux: 0.008 ドル/1 分
macOS: 0.08 ドル/1 分
+ Git リポジトリと一体化
+ Android / iOS ともにビルド可能
- 選定当時 β 版であったため動作と仕様が不安定な可能性があ
った
Bitrise bitrise 36 ドル〜270 ドル/月 + Android / iOS ともにビルド可能
+ 採用実績が多い
△ タスクの組み立てはGUI で行う
- Git リポジトリは外部から取得してくる必要あり
Circle CI Circle CI 30 ドル〜3000 ドル/月 + Android / iOS ともにビルド可能
+ 採用実績が多い
- Git リポジトリは外部から取得してくる必要あり
Travis CI Travis CI 63 ドル〜448 ドル/月 + Android / iOS ともにビルド可能
- Git リポジトリは外部から取得してくる必要あり
© bitbank inc.
サービスの比較検討 13
名前 提供会社 価格 特徴
Visual Studio App Center Microsoft Build 無制限: ¥4,480/月
UI テスト: ¥11,088/月
ターゲットテスト: ¥1,120/月
Visual Studio App Center は Microsoft
Azure の一部
+ CI/CD 機能と一体化
+ アプリケーションの配布は無料
+ 機能が豊富
- 採用実績が少ない
DeployGate デプロイゲート 月額 3,300 円/アカウント + 配布、管理が容易
+ CrashLog などの Log もトラッキングして収
集できる
+ 採用実績が多い
- 配布だけでその他の機能は少ない
Firebase App Distribution Google 無料 + 開発環境との親和性が高い
+ 無料
+ CrashLog などの Log もトラッキングして収
集できる
- 選定当時 β 版であったため動作と仕様面で
不安があった
- 採用実績が少ない
© bitbank inc.
サービスの比較検討 14
サービス 必須 ベター コスト
検討
サービス名 カテゴリ
GitLabトリ
ガー
自動ビルド 自動配布 SSO ストレージ SaaS 価格(円)
Gitlab CI CIのみ TRUE TRUE TRUE 0
Visual Studio App
Center
CI/CD TRUE TRUE TRUE TRUE TRUE TRUE 16688/month これにする
Github Actions CIのみ TRUE TRUE TRUE TRUE 1/min
Bitrise CIのみ TRUE TRUE TRUE 10000/month
Circle CI CIのみ TRUE TRUE TRUE TRUE 4000/month
Travis CI CIのみ TRUE TRUE TRUE 7000/month
DeployGate CDのみ TRUE TRUE TRUE TRUE 3300/month
Firebase App
Distribution
CDのみ TRUE TRUE TRUE TRUE TRUE 0
以降、長いのでAppCenterとよぶ
© bitbank inc.
ちなみに他の会社ではどうなのか? 15
Bitrise + DeployGate が一般的
● iOS で構築している CI の Workflow 紹介 (ZOZO テクノロジ)
● Sansan iOS アプリの CI / CD 事情 (Sansan)
© bitbank inc.
利用するサービスが決まったので... 16
開発~配信までのワークフロー
の構築について
© bitbank inc.
Android
開発~テスト配信までの(自動的にやっている)構図 17
© bitbank inc.
iOS
開発~テスト配信までの(自動的にやっている)構図 18
© bitbank inc.
Android
開発~ストアに配信するまでの(自動的にやっている)構図 19
© bitbank inc.
iOS
開発~ストアに配信するまでの(自動的にやっている)構図 20
© bitbank inc.
ワークフローの決定のいきさつ 21
● Android / iOSともにビルドした成果物のストアへのアップロードは手動
→ 自動化させることもできましたが、リスクの観点からここは手動で行う
● Gluegent Flow承認ワークフローに使ってリリースのワークフローを作るのが良さそ
う
→ たまたま稟議などのほかの用途で使用されていており、リリースにあたり各種承認のワークフローとしての親和性も高かったので
一緒に組み込むとよさそう
● テストの自動化(CI)は今回は導入しない
→ 2人なのでローカル環境で実行するので十分かなと当時は想定
→やっぱり自動化する必要性が出てきたので現在取り組み中
© bitbank inc.
開発からストア配信までの申請・承認のワークフロー 22
Android iOS
© bitbank inc.
AppCenter CLI 23
AndroidではGitlab CI/CDにてBuildが行われるので、AppCenterに成果物であるAPK
ファイルを配信する処理を組み込む必要がある
appcenter-cli なるライブラリがAppCenterにて提供されているのでこれを使う
AppCenterにおける配信までに行なっている様子
© bitbank inc.
AppCenter Console 24
iOSではAppCenterにてBuildが行われるので、AppCenter のコンソールよりBuild設定、
および配信の設定を行う(cliを使う必要なし、コンソールで十分。コンソール画面での設
定方法などは次のページにて)
© bitbank inc.
AppCenter Console 25
© bitbank inc.
完成 26
ちなみに
完成後持っていた各種リリースでき
る権限を委譲(放棄)しました
© bitbank inc.
AppCenterを使っていたら意外とよかったこと 27
● Webhook が使える!!
→ 配信やビルドが完了したら通知を受け取るなどの可能(現在まだあまり活用できていない)
● APIが豊富!!
→Build可能な権限を持っている以外の人でもBuildや配信を実行することが可能(現在まだあまり活用できていない)
© bitbank inc.
番外編 28
Github Actionsにて自動的にビルドする環境作成(Android編)
© bitbank inc.
今後の展望(追加) 29
● Firebase App DistributionへCI/CDから自動的に配信する方法
→ 現在記事を執筆中、近日公開予定??
● テストの自動化(CI)の方法について
→ 現在、導入調査中うまくいったら記事にします...
30
ビットコインの技術で
世界中にあらゆる価値を流通させる

Contenu connexe

Tendances

pythonでemlファイルを扱う話
pythonでemlファイルを扱う話pythonでemlファイルを扱う話
pythonでemlファイルを扱う話Satoshi Yamada
 
NumPyが物足りない人へのCython入門
NumPyが物足りない人へのCython入門NumPyが物足りない人へのCython入門
NumPyが物足りない人へのCython入門Shiqiao Du
 
Pythonの処理系はどのように実装され,どのように動いているのか? 我々はその実態を調査すべくアマゾンへと飛んだ.
Pythonの処理系はどのように実装され,どのように動いているのか? 我々はその実態を調査すべくアマゾンへと飛んだ.Pythonの処理系はどのように実装され,どのように動いているのか? 我々はその実態を調査すべくアマゾンへと飛んだ.
Pythonの処理系はどのように実装され,どのように動いているのか? 我々はその実態を調査すべくアマゾンへと飛んだ.kiki utagawa
 
画像をテキストで検索したい!(OpenAI CLIP) - VRC-LT #15
画像をテキストで検索したい!(OpenAI CLIP) - VRC-LT #15画像をテキストで検索したい!(OpenAI CLIP) - VRC-LT #15
画像をテキストで検索したい!(OpenAI CLIP) - VRC-LT #15Shuyo Nakatani
 
ChatGPTをシステムに組み込むためのプロンプト技法 #chatgptjp
ChatGPTをシステムに組み込むためのプロンプト技法 #chatgptjpChatGPTをシステムに組み込むためのプロンプト技法 #chatgptjp
ChatGPTをシステムに組み込むためのプロンプト技法 #chatgptjpK Kinzal
 
マインドマップを使った 仕様分析&テスト設計
マインドマップを使った 仕様分析&テスト設計マインドマップを使った 仕様分析&テスト設計
マインドマップを使った 仕様分析&テスト設計Akira Ikeda
 
Pythonによる高位設計フレームワークPyCoRAMでFPGAシステムを開発してみよう
Pythonによる高位設計フレームワークPyCoRAMでFPGAシステムを開発してみようPythonによる高位設計フレームワークPyCoRAMでFPGAシステムを開発してみよう
Pythonによる高位設計フレームワークPyCoRAMでFPGAシステムを開発してみようShinya Takamaeda-Y
 
高速な倍精度指数関数expの実装
高速な倍精度指数関数expの実装高速な倍精度指数関数expの実装
高速な倍精度指数関数expの実装MITSUNARI Shigeo
 
async/await のしくみ
async/await のしくみasync/await のしくみ
async/await のしくみ信之 岩永
 
初めての Spanner 移行
初めての Spanner 移行初めての Spanner 移行
初めての Spanner 移行Igarashi Toru
 
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 3.4.0対応)
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 3.4.0対応)FIWARE Orion Context Broker コンテキスト情報管理 (Orion 3.4.0対応)
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 3.4.0対応)fisuda
 
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021Preferred Networks
 
オブジェクト指向の設計と実装の学び方のコツ
オブジェクト指向の設計と実装の学び方のコツオブジェクト指向の設計と実装の学び方のコツ
オブジェクト指向の設計と実装の学び方のコツ増田 亨
 
研究者のための Python による FPGA 入門
研究者のための Python による FPGA 入門研究者のための Python による FPGA 入門
研究者のための Python による FPGA 入門ryos36
 
DSIRNLP #3 LZ4 の速さの秘密に迫ってみる
DSIRNLP #3 LZ4 の速さの秘密に迫ってみるDSIRNLP #3 LZ4 の速さの秘密に迫ってみる
DSIRNLP #3 LZ4 の速さの秘密に迫ってみるAtsushi KOMIYA
 
ホワイトボックス・スイッチの期待と現実
ホワイトボックス・スイッチの期待と現実ホワイトボックス・スイッチの期待と現実
ホワイトボックス・スイッチの期待と現実IIJ
 
JJUGCCC2022spring_連続画像処理による位置情報計算を支えるマイクロサービスアーキテクチャ
JJUGCCC2022spring_連続画像処理による位置情報計算を支えるマイクロサービスアーキテクチャJJUGCCC2022spring_連続画像処理による位置情報計算を支えるマイクロサービスアーキテクチャ
JJUGCCC2022spring_連続画像処理による位置情報計算を支えるマイクロサービスアーキテクチャKaname Motoyama
 
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)Takuto Wada
 

Tendances (20)

pythonでemlファイルを扱う話
pythonでemlファイルを扱う話pythonでemlファイルを扱う話
pythonでemlファイルを扱う話
 
NumPyが物足りない人へのCython入門
NumPyが物足りない人へのCython入門NumPyが物足りない人へのCython入門
NumPyが物足りない人へのCython入門
 
At least onceってぶっちゃけ問題の先送りだったよね #kafkajp
At least onceってぶっちゃけ問題の先送りだったよね #kafkajpAt least onceってぶっちゃけ問題の先送りだったよね #kafkajp
At least onceってぶっちゃけ問題の先送りだったよね #kafkajp
 
Pythonの処理系はどのように実装され,どのように動いているのか? 我々はその実態を調査すべくアマゾンへと飛んだ.
Pythonの処理系はどのように実装され,どのように動いているのか? 我々はその実態を調査すべくアマゾンへと飛んだ.Pythonの処理系はどのように実装され,どのように動いているのか? 我々はその実態を調査すべくアマゾンへと飛んだ.
Pythonの処理系はどのように実装され,どのように動いているのか? 我々はその実態を調査すべくアマゾンへと飛んだ.
 
画像をテキストで検索したい!(OpenAI CLIP) - VRC-LT #15
画像をテキストで検索したい!(OpenAI CLIP) - VRC-LT #15画像をテキストで検索したい!(OpenAI CLIP) - VRC-LT #15
画像をテキストで検索したい!(OpenAI CLIP) - VRC-LT #15
 
オンプレML基盤on Kubernetes パネルディスカッション
オンプレML基盤on Kubernetes パネルディスカッションオンプレML基盤on Kubernetes パネルディスカッション
オンプレML基盤on Kubernetes パネルディスカッション
 
ChatGPTをシステムに組み込むためのプロンプト技法 #chatgptjp
ChatGPTをシステムに組み込むためのプロンプト技法 #chatgptjpChatGPTをシステムに組み込むためのプロンプト技法 #chatgptjp
ChatGPTをシステムに組み込むためのプロンプト技法 #chatgptjp
 
マインドマップを使った 仕様分析&テスト設計
マインドマップを使った 仕様分析&テスト設計マインドマップを使った 仕様分析&テスト設計
マインドマップを使った 仕様分析&テスト設計
 
Pythonによる高位設計フレームワークPyCoRAMでFPGAシステムを開発してみよう
Pythonによる高位設計フレームワークPyCoRAMでFPGAシステムを開発してみようPythonによる高位設計フレームワークPyCoRAMでFPGAシステムを開発してみよう
Pythonによる高位設計フレームワークPyCoRAMでFPGAシステムを開発してみよう
 
高速な倍精度指数関数expの実装
高速な倍精度指数関数expの実装高速な倍精度指数関数expの実装
高速な倍精度指数関数expの実装
 
async/await のしくみ
async/await のしくみasync/await のしくみ
async/await のしくみ
 
初めての Spanner 移行
初めての Spanner 移行初めての Spanner 移行
初めての Spanner 移行
 
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 3.4.0対応)
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 3.4.0対応)FIWARE Orion Context Broker コンテキスト情報管理 (Orion 3.4.0対応)
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 3.4.0対応)
 
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021
 
オブジェクト指向の設計と実装の学び方のコツ
オブジェクト指向の設計と実装の学び方のコツオブジェクト指向の設計と実装の学び方のコツ
オブジェクト指向の設計と実装の学び方のコツ
 
研究者のための Python による FPGA 入門
研究者のための Python による FPGA 入門研究者のための Python による FPGA 入門
研究者のための Python による FPGA 入門
 
DSIRNLP #3 LZ4 の速さの秘密に迫ってみる
DSIRNLP #3 LZ4 の速さの秘密に迫ってみるDSIRNLP #3 LZ4 の速さの秘密に迫ってみる
DSIRNLP #3 LZ4 の速さの秘密に迫ってみる
 
ホワイトボックス・スイッチの期待と現実
ホワイトボックス・スイッチの期待と現実ホワイトボックス・スイッチの期待と現実
ホワイトボックス・スイッチの期待と現実
 
JJUGCCC2022spring_連続画像処理による位置情報計算を支えるマイクロサービスアーキテクチャ
JJUGCCC2022spring_連続画像処理による位置情報計算を支えるマイクロサービスアーキテクチャJJUGCCC2022spring_連続画像処理による位置情報計算を支えるマイクロサービスアーキテクチャ
JJUGCCC2022spring_連続画像処理による位置情報計算を支えるマイクロサービスアーキテクチャ
 
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
 

Similaire à ビットバンクでのネイティブアプリケーション開発におけるCI_CD環境

2021/03/19 パブリッククラウドを活かす運用プロセス自動化
2021/03/19 パブリッククラウドを活かす運用プロセス自動化2021/03/19 パブリッククラウドを活かす運用プロセス自動化
2021/03/19 パブリッククラウドを活かす運用プロセス自動化Issei Hiraoka
 
Line Creators Studio Android With Kotlin
Line Creators Studio Android With KotlinLine Creators Studio Android With Kotlin
Line Creators Studio Android With KotlinLINE Corporation
 
AppPot製品概要
AppPot製品概要AppPot製品概要
AppPot製品概要Ryohei Sogo
 
Visual Studio App Centerで始めるCI/CD(iOS)
Visual Studio App Centerで始めるCI/CD(iOS)Visual Studio App Centerで始めるCI/CD(iOS)
Visual Studio App Centerで始めるCI/CD(iOS)Shinya Nakajima
 
マイクロソフトの AI プラットフォーム & Cognitive Services 概要 ~ Ignite 2020 Recap
マイクロソフトの AI プラットフォーム & Cognitive Services 概要 ~ Ignite 2020 Recapマイクロソフトの AI プラットフォーム & Cognitive Services 概要 ~ Ignite 2020 Recap
マイクロソフトの AI プラットフォーム & Cognitive Services 概要 ~ Ignite 2020 RecapAyako Omori
 
2017年のiOSアプリ開発におけるCI事情
2017年のiOSアプリ開発におけるCI事情2017年のiOSアプリ開発におけるCI事情
2017年のiOSアプリ開発におけるCI事情Toshiyuki Hirata
 
Enterprise agile dev ops-and-xr-techonology-adoption-for-fintech-20180324
Enterprise agile dev ops-and-xr-techonology-adoption-for-fintech-20180324Enterprise agile dev ops-and-xr-techonology-adoption-for-fintech-20180324
Enterprise agile dev ops-and-xr-techonology-adoption-for-fintech-20180324Shotaro Suzuki
 
Logic Apps/Flow Update Summary
Logic Apps/Flow Update SummaryLogic Apps/Flow Update Summary
Logic Apps/Flow Update SummaryTomoyuki Obi
 
決済システム内製化に向けたプラットフォーム構築 - PCF・BOSHによるオブザーバブルプラットフォーム
決済システム内製化に向けたプラットフォーム構築 - PCF・BOSHによるオブザーバブルプラットフォーム決済システム内製化に向けたプラットフォーム構築 - PCF・BOSHによるオブザーバブルプラットフォーム
決済システム内製化に向けたプラットフォーム構築 - PCF・BOSHによるオブザーバブルプラットフォームDaichiKimura3
 
熊本 HoloLens Meetup vol.0 「HoloLensアプリ開発コンテストビジネス部門で特別賞もらってきた」
熊本 HoloLens Meetup vol.0 「HoloLensアプリ開発コンテストビジネス部門で特別賞もらってきた」熊本 HoloLens Meetup vol.0 「HoloLensアプリ開発コンテストビジネス部門で特別賞もらってきた」
熊本 HoloLens Meetup vol.0 「HoloLensアプリ開発コンテストビジネス部門で特別賞もらってきた」Satoshi Fujimoto
 
チームから気軽に始めるピアボーナス
チームから気軽に始めるピアボーナスチームから気軽に始めるピアボーナス
チームから気軽に始めるピアボーナスRyo Shibayama
 
Visual Studio App Centerで始めるCI/CD(Android)
Visual Studio App Centerで始めるCI/CD(Android)Visual Studio App Centerで始めるCI/CD(Android)
Visual Studio App Centerで始めるCI/CD(Android)Shinya Nakajima
 
どっちの VS ショー / 伝統の Visual Studio 2019、人気の Visual Studio Code
どっちの VS ショー / 伝統の Visual Studio 2019、人気の Visual Studio Codeどっちの VS ショー / 伝統の Visual Studio 2019、人気の Visual Studio Code
どっちの VS ショー / 伝統の Visual Studio 2019、人気の Visual Studio CodeTakashi Okawa
 
【デブサミ2010】アジリティを向上させる開発ツールの進化
【デブサミ2010】アジリティを向上させる開発ツールの進化【デブサミ2010】アジリティを向上させる開発ツールの進化
【デブサミ2010】アジリティを向上させる開発ツールの進化智治 長沢
 
Open Hybrid Cloudを検討すべき理由.pdf
Open Hybrid Cloudを検討すべき理由.pdfOpen Hybrid Cloudを検討すべき理由.pdf
Open Hybrid Cloudを検討すべき理由.pdfMasahiko Umeno
 
Gitlab ci & ecsへのデプロイ
Gitlab ci & ecsへのデプロイGitlab ci & ecsへのデプロイ
Gitlab ci & ecsへのデプロイiwata jaws-ug
 
Visual Studio App CenterでAndroid開発にCI/CDを導入しよう
Visual Studio App CenterでAndroid開発にCI/CDを導入しようVisual Studio App CenterでAndroid開発にCI/CDを導入しよう
Visual Studio App CenterでAndroid開発にCI/CDを導入しようShinya Nakajima
 
基調講演「データのグループウェア化」
基調講演「データのグループウェア化」基調講演「データのグループウェア化」
基調講演「データのグループウェア化」Cybozucommunity
 
ここが良かったDatadog
ここが良かったDatadogここが良かったDatadog
ここが良かったDatadogtyamane
 

Similaire à ビットバンクでのネイティブアプリケーション開発におけるCI_CD環境 (20)

2021/03/19 パブリッククラウドを活かす運用プロセス自動化
2021/03/19 パブリッククラウドを活かす運用プロセス自動化2021/03/19 パブリッククラウドを活かす運用プロセス自動化
2021/03/19 パブリッククラウドを活かす運用プロセス自動化
 
Line Creators Studio Android With Kotlin
Line Creators Studio Android With KotlinLine Creators Studio Android With Kotlin
Line Creators Studio Android With Kotlin
 
AppPot製品概要
AppPot製品概要AppPot製品概要
AppPot製品概要
 
Visual Studio App Centerで始めるCI/CD(iOS)
Visual Studio App Centerで始めるCI/CD(iOS)Visual Studio App Centerで始めるCI/CD(iOS)
Visual Studio App Centerで始めるCI/CD(iOS)
 
マイクロソフトの AI プラットフォーム & Cognitive Services 概要 ~ Ignite 2020 Recap
マイクロソフトの AI プラットフォーム & Cognitive Services 概要 ~ Ignite 2020 Recapマイクロソフトの AI プラットフォーム & Cognitive Services 概要 ~ Ignite 2020 Recap
マイクロソフトの AI プラットフォーム & Cognitive Services 概要 ~ Ignite 2020 Recap
 
2017年のiOSアプリ開発におけるCI事情
2017年のiOSアプリ開発におけるCI事情2017年のiOSアプリ開発におけるCI事情
2017年のiOSアプリ開発におけるCI事情
 
Enterprise agile dev ops-and-xr-techonology-adoption-for-fintech-20180324
Enterprise agile dev ops-and-xr-techonology-adoption-for-fintech-20180324Enterprise agile dev ops-and-xr-techonology-adoption-for-fintech-20180324
Enterprise agile dev ops-and-xr-techonology-adoption-for-fintech-20180324
 
Logic Apps/Flow Update Summary
Logic Apps/Flow Update SummaryLogic Apps/Flow Update Summary
Logic Apps/Flow Update Summary
 
決済システム内製化に向けたプラットフォーム構築 - PCF・BOSHによるオブザーバブルプラットフォーム
決済システム内製化に向けたプラットフォーム構築 - PCF・BOSHによるオブザーバブルプラットフォーム決済システム内製化に向けたプラットフォーム構築 - PCF・BOSHによるオブザーバブルプラットフォーム
決済システム内製化に向けたプラットフォーム構築 - PCF・BOSHによるオブザーバブルプラットフォーム
 
熊本 HoloLens Meetup vol.0 「HoloLensアプリ開発コンテストビジネス部門で特別賞もらってきた」
熊本 HoloLens Meetup vol.0 「HoloLensアプリ開発コンテストビジネス部門で特別賞もらってきた」熊本 HoloLens Meetup vol.0 「HoloLensアプリ開発コンテストビジネス部門で特別賞もらってきた」
熊本 HoloLens Meetup vol.0 「HoloLensアプリ開発コンテストビジネス部門で特別賞もらってきた」
 
チームから気軽に始めるピアボーナス
チームから気軽に始めるピアボーナスチームから気軽に始めるピアボーナス
チームから気軽に始めるピアボーナス
 
Visual Studio App Centerで始めるCI/CD(Android)
Visual Studio App Centerで始めるCI/CD(Android)Visual Studio App Centerで始めるCI/CD(Android)
Visual Studio App Centerで始めるCI/CD(Android)
 
どっちの VS ショー / 伝統の Visual Studio 2019、人気の Visual Studio Code
どっちの VS ショー / 伝統の Visual Studio 2019、人気の Visual Studio Codeどっちの VS ショー / 伝統の Visual Studio 2019、人気の Visual Studio Code
どっちの VS ショー / 伝統の Visual Studio 2019、人気の Visual Studio Code
 
【デブサミ2010】アジリティを向上させる開発ツールの進化
【デブサミ2010】アジリティを向上させる開発ツールの進化【デブサミ2010】アジリティを向上させる開発ツールの進化
【デブサミ2010】アジリティを向上させる開発ツールの進化
 
Open Hybrid Cloudを検討すべき理由.pdf
Open Hybrid Cloudを検討すべき理由.pdfOpen Hybrid Cloudを検討すべき理由.pdf
Open Hybrid Cloudを検討すべき理由.pdf
 
Gitlab ci & ecsへのデプロイ
Gitlab ci & ecsへのデプロイGitlab ci & ecsへのデプロイ
Gitlab ci & ecsへのデプロイ
 
Visual Studio App CenterでAndroid開発にCI/CDを導入しよう
Visual Studio App CenterでAndroid開発にCI/CDを導入しようVisual Studio App CenterでAndroid開発にCI/CDを導入しよう
Visual Studio App CenterでAndroid開発にCI/CDを導入しよう
 
基調講演「データのグループウェア化」
基調講演「データのグループウェア化」基調講演「データのグループウェア化」
基調講演「データのグループウェア化」
 
ここが良かったDatadog
ここが良かったDatadogここが良かったDatadog
ここが良かったDatadog
 
楽天エンジニアライフ
楽天エンジニアライフ楽天エンジニアライフ
楽天エンジニアライフ
 

Plus de bitbank, Inc. Tokyo, Japan

ビットバンクのデプロイ戦略について
ビットバンクのデプロイ戦略についてビットバンクのデプロイ戦略について
ビットバンクのデプロイ戦略についてbitbank, Inc. Tokyo, Japan
 
ビットバンク流 アジャイル開発の紹介.pdf
ビットバンク流 アジャイル開発の紹介.pdfビットバンク流 アジャイル開発の紹介.pdf
ビットバンク流 アジャイル開発の紹介.pdfbitbank, Inc. Tokyo, Japan
 
ビットバンクで求められるプロジェクトマネジメント
ビットバンクで求められるプロジェクトマネジメントビットバンクで求められるプロジェクトマネジメント
ビットバンクで求められるプロジェクトマネジメントbitbank, Inc. Tokyo, Japan
 
ビットバンクのマッチングエンジン.pdf
ビットバンクのマッチングエンジン.pdfビットバンクのマッチングエンジン.pdf
ビットバンクのマッチングエンジン.pdfbitbank, Inc. Tokyo, Japan
 
ビットバンクにおける少人数で支えるインフラチームの戦略
ビットバンクにおける少人数で支えるインフラチームの戦略ビットバンクにおける少人数で支えるインフラチームの戦略
ビットバンクにおける少人数で支えるインフラチームの戦略bitbank, Inc. Tokyo, Japan
 
持続的な運用開発のために社内基盤を整えている話 〜auditのCI組み込みやlintの社内PKG化〜
持続的な運用開発のために社内基盤を整えている話 〜auditのCI組み込みやlintの社内PKG化〜持続的な運用開発のために社内基盤を整えている話 〜auditのCI組み込みやlintの社内PKG化〜
持続的な運用開発のために社内基盤を整えている話 〜auditのCI組み込みやlintの社内PKG化〜bitbank, Inc. Tokyo, Japan
 
中規模Angularアプリケーションの再設計
中規模Angularアプリケーションの再設計中規模Angularアプリケーションの再設計
中規模Angularアプリケーションの再設計bitbank, Inc. Tokyo, Japan
 
仮想通貨取引所 bitbank の IaC の導入と実践
仮想通貨取引所 bitbank の IaC の導入と実践 仮想通貨取引所 bitbank の IaC の導入と実践
仮想通貨取引所 bitbank の IaC の導入と実践 bitbank, Inc. Tokyo, Japan
 
Introduction of bitbank frontend development environment
Introduction of bitbank frontend development environmentIntroduction of bitbank frontend development environment
Introduction of bitbank frontend development environmentbitbank, Inc. Tokyo, Japan
 
DeveloperSuccess として何を届けられるか、様々な分野を経た先として何ができるか
DeveloperSuccess として何を届けられるか、様々な分野を経た先として何ができるかDeveloperSuccess として何を届けられるか、様々な分野を経た先として何ができるか
DeveloperSuccess として何を届けられるか、様々な分野を経た先として何ができるかbitbank, Inc. Tokyo, Japan
 
ビットコインウォレットで手軽にパスワードレス認証が可能なbitidについての紹介
ビットコインウォレットで手軽にパスワードレス認証が可能なbitidについての紹介	ビットコインウォレットで手軽にパスワードレス認証が可能なbitidについての紹介
ビットコインウォレットで手軽にパスワードレス認証が可能なbitidについての紹介 bitbank, Inc. Tokyo, Japan
 
TypeScriptでライトニングネットワークを使ってみよう
TypeScriptでライトニングネットワークを使ってみようTypeScriptでライトニングネットワークを使ってみよう
TypeScriptでライトニングネットワークを使ってみようbitbank, Inc. Tokyo, Japan
 
Node.jsアプリの開発をモダン化するために取り組んできたこと
Node.jsアプリの開発をモダン化するために取り組んできたことNode.jsアプリの開発をモダン化するために取り組んできたこと
Node.jsアプリの開発をモダン化するために取り組んできたことbitbank, Inc. Tokyo, Japan
 

Plus de bitbank, Inc. Tokyo, Japan (20)

インフラチームの歴史とこれから
インフラチームの歴史とこれからインフラチームの歴史とこれから
インフラチームの歴史とこれから
 
ビットバンクのデプロイ戦略について
ビットバンクのデプロイ戦略についてビットバンクのデプロイ戦略について
ビットバンクのデプロイ戦略について
 
ビットバンク流 アジャイル開発の紹介.pdf
ビットバンク流 アジャイル開発の紹介.pdfビットバンク流 アジャイル開発の紹介.pdf
ビットバンク流 アジャイル開発の紹介.pdf
 
ビットバンクで求められるプロジェクトマネジメント
ビットバンクで求められるプロジェクトマネジメントビットバンクで求められるプロジェクトマネジメント
ビットバンクで求められるプロジェクトマネジメント
 
ビットバンクのマッチングエンジン.pdf
ビットバンクのマッチングエンジン.pdfビットバンクのマッチングエンジン.pdf
ビットバンクのマッチングエンジン.pdf
 
Lightning Network, Swap, Nloop
Lightning Network, Swap, NloopLightning Network, Swap, Nloop
Lightning Network, Swap, Nloop
 
ビットバンクにおける少人数で支えるインフラチームの戦略
ビットバンクにおける少人数で支えるインフラチームの戦略ビットバンクにおける少人数で支えるインフラチームの戦略
ビットバンクにおける少人数で支えるインフラチームの戦略
 
bitbank Corporate Information
bitbank Corporate Informationbitbank Corporate Information
bitbank Corporate Information
 
ng build --prod & Continuous Delivery
ng build --prod & Continuous Deliveryng build --prod & Continuous Delivery
ng build --prod & Continuous Delivery
 
マーブル図で怖くないRxJS
マーブル図で怖くないRxJSマーブル図で怖くないRxJS
マーブル図で怖くないRxJS
 
持続的な運用開発のために社内基盤を整えている話 〜auditのCI組み込みやlintの社内PKG化〜
持続的な運用開発のために社内基盤を整えている話 〜auditのCI組み込みやlintの社内PKG化〜持続的な運用開発のために社内基盤を整えている話 〜auditのCI組み込みやlintの社内PKG化〜
持続的な運用開発のために社内基盤を整えている話 〜auditのCI組み込みやlintの社内PKG化〜
 
中規模Angularアプリケーションの再設計
中規模Angularアプリケーションの再設計中規模Angularアプリケーションの再設計
中規模Angularアプリケーションの再設計
 
仮想通貨取引所 bitbank の IaC の導入と実践
仮想通貨取引所 bitbank の IaC の導入と実践 仮想通貨取引所 bitbank の IaC の導入と実践
仮想通貨取引所 bitbank の IaC の導入と実践
 
Introduction of bitbank frontend development environment
Introduction of bitbank frontend development environmentIntroduction of bitbank frontend development environment
Introduction of bitbank frontend development environment
 
DeveloperSuccess として何を届けられるか、様々な分野を経た先として何ができるか
DeveloperSuccess として何を届けられるか、様々な分野を経た先として何ができるかDeveloperSuccess として何を届けられるか、様々な分野を経た先として何ができるか
DeveloperSuccess として何を届けられるか、様々な分野を経た先として何ができるか
 
ビットコインウォレットで手軽にパスワードレス認証が可能なbitidについての紹介
ビットコインウォレットで手軽にパスワードレス認証が可能なbitidについての紹介	ビットコインウォレットで手軽にパスワードレス認証が可能なbitidについての紹介
ビットコインウォレットで手軽にパスワードレス認証が可能なbitidについての紹介
 
Ethereumのシャーディング概論
Ethereumのシャーディング概論Ethereumのシャーディング概論
Ethereumのシャーディング概論
 
Daocasinoにおけるstate channel実装
Daocasinoにおけるstate channel実装Daocasinoにおけるstate channel実装
Daocasinoにおけるstate channel実装
 
TypeScriptでライトニングネットワークを使ってみよう
TypeScriptでライトニングネットワークを使ってみようTypeScriptでライトニングネットワークを使ってみよう
TypeScriptでライトニングネットワークを使ってみよう
 
Node.jsアプリの開発をモダン化するために取り組んできたこと
Node.jsアプリの開発をモダン化するために取り組んできたことNode.jsアプリの開発をモダン化するために取り組んできたこと
Node.jsアプリの開発をモダン化するために取り組んできたこと
 

Dernier

NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NTT DATA Technology & Innovation
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?akihisamiyanaga1
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineerYuki Kikuchi
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)UEHARA, Tetsutaro
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfFumieNakayama
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)Hiroshi Tomioka
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfFumieNakayama
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...博三 太田
 

Dernier (8)

NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
 

ビットバンクでのネイティブアプリケーション開発におけるCI_CD環境

  • 2. © bitbank inc. 自己紹介 ● 名前: 小林拓(こばやしたく) ● 経歴: 学生(生体認証の研究)→WEB開発→スマホ向けアプリ開 発→スマホ向けゲーム開発(バックエンド兼フロントエンド6年半) →ビットバンク ● 趣味・趣向: 旅行・ハッカソンジャンキー・ゲーム・アニメ・ガジェヲタ 2
  • 3. © bitbank inc. 元ネタ 3 ビットバンクでのネイティブアプリケーション開発におけるCI/CD環境
  • 4. © bitbank inc. 結論(ネイティブアプリケーションの開発環境の構成) 4 用途 名前 ソースコードの管理 Gitlab 一部Github CI/CD環境 Android: Gitlab CI/CD iOS: Visual Studio App Center (テスト向け)アプリケーション配信 Android: Visual Studio App Center iOS: Visual Studio App Center アプリケーション配信承認ワークフロー Gluegent Flow
  • 5. © bitbank inc. Bitbankのネイティブアプリ開発担当(Android/iOS)の人数 5 2人 (ちなみにCI/CD環境を構築した時は1人)
  • 6. © bitbank inc. 絶賛募集中 6 https://www.wantedly.com/projects/698436
  • 7. © bitbank inc. なぜCI/CDの導入を推し進めたのか? 7 ● 少ない人数でもネイティブアプリの開発・運用が捗るようにするため → 開発担当者の人数少ないから... ● リリースや緊急対応などを他の人でも行えるようにするため → そうしないと僕が気兼ねなく旅行に行けない... ● 責任の所在を明確にするため → (弊社ではそういうことはないですが)知らないうちにリリースしていたとかで怒られたくないなぁ... ● 人為的ミスを発生させないようにするため → やらかした時の精神的なダメージを負いたくないなぁ...
  • 8. © bitbank inc. そもそもCI/CDとはなんなのか? 8 簡単にいうと ● CI: Continuous integration(継続的インテグレーション ) ● CD: Continuous delivery(継続的デリバリ) ● CD: Continuous Deployment(継続的開発) ソフトウェア開発において自動化を取り入れることで顧客にアプリケーションを 提供する頻度を高める手法のことを CI/CD と言います。
  • 9. © bitbank inc. 一般的なネイティブアプリの開発のワークフロー 9 繰り返しやる部分(ルーチンワーク) は自動化して時短ができる
  • 10. © bitbank inc. ● Android ○ ビルドしたときの成果物はapkファイル、また はaabファイル ○ ビルドするには署名が必要 ○ Debug用として標準に用意されている署名を 用いてビルドが行われる ○ ストアに配布するためには独自の署名を作成 して、その署名を用いてビルドする必要があ る ○ Linux, Mac OS, WindowsいずれのOSでもビ ルド可能 ネイティブアプリ開発における仕様 10 ● iOS ○ ビルドしたときの成果物はipaファイル ○ 社内配布用の署名(AdHoc)とストア配布用の 署名がそれぞれ別々に必要 ○ ビルドするために必要な署名はMacに紐づけ られて使用される→iOS アプリをビルドするた めにはMac OSのマシン(Xcode)が必要 →Mac OS以外のOSにはXcodeが存在しな いためiOSアプリをビルドできない
  • 11. © bitbank inc. 元々の環境と選定への思い 11 ● 元々はソースコードの管理は Gitlabを使用(一部Githubを使用) ○ Gitlab CI/CDの利用で全て解決できるのならそれがいい ● 新たに使用するサービスはあまり増やしたくない ● サービス提供企業がマイナーだとセキュリティなどの観点から不安、懸念がある ● サービス利用費用が高すぎない
  • 12. © bitbank inc. CI/CDサービスの比較検討 12 名前 提供会社 価格 特徴 Gitlab CI/CD Gitlab 省略 + Git リポジトリと一体化 - iOS のビルドを行うためにはオンプレマシン (Mac OS)が必要 Visual Studio App Center Microsoft Build 無制限: ¥4,480/月 UI テスト: ¥11,088/月 ターゲットテスト: ¥1,120/ 月 Visual Studio App Center は Microsoft Azure の一部 + アプリケーションの配布機能と一体化 (配布は無料) + Android / iOS ともにビルド可能 + 機能が豊富 - Git リポジトリは外部から取得してくる必要あり - 採用実績が少ない Github Actions Microsoft Linux: 0.008 ドル/1 分 macOS: 0.08 ドル/1 分 + Git リポジトリと一体化 + Android / iOS ともにビルド可能 - 選定当時 β 版であったため動作と仕様が不安定な可能性があ った Bitrise bitrise 36 ドル〜270 ドル/月 + Android / iOS ともにビルド可能 + 採用実績が多い △ タスクの組み立てはGUI で行う - Git リポジトリは外部から取得してくる必要あり Circle CI Circle CI 30 ドル〜3000 ドル/月 + Android / iOS ともにビルド可能 + 採用実績が多い - Git リポジトリは外部から取得してくる必要あり Travis CI Travis CI 63 ドル〜448 ドル/月 + Android / iOS ともにビルド可能 - Git リポジトリは外部から取得してくる必要あり
  • 13. © bitbank inc. サービスの比較検討 13 名前 提供会社 価格 特徴 Visual Studio App Center Microsoft Build 無制限: ¥4,480/月 UI テスト: ¥11,088/月 ターゲットテスト: ¥1,120/月 Visual Studio App Center は Microsoft Azure の一部 + CI/CD 機能と一体化 + アプリケーションの配布は無料 + 機能が豊富 - 採用実績が少ない DeployGate デプロイゲート 月額 3,300 円/アカウント + 配布、管理が容易 + CrashLog などの Log もトラッキングして収 集できる + 採用実績が多い - 配布だけでその他の機能は少ない Firebase App Distribution Google 無料 + 開発環境との親和性が高い + 無料 + CrashLog などの Log もトラッキングして収 集できる - 選定当時 β 版であったため動作と仕様面で 不安があった - 採用実績が少ない
  • 14. © bitbank inc. サービスの比較検討 14 サービス 必須 ベター コスト 検討 サービス名 カテゴリ GitLabトリ ガー 自動ビルド 自動配布 SSO ストレージ SaaS 価格(円) Gitlab CI CIのみ TRUE TRUE TRUE 0 Visual Studio App Center CI/CD TRUE TRUE TRUE TRUE TRUE TRUE 16688/month これにする Github Actions CIのみ TRUE TRUE TRUE TRUE 1/min Bitrise CIのみ TRUE TRUE TRUE 10000/month Circle CI CIのみ TRUE TRUE TRUE TRUE 4000/month Travis CI CIのみ TRUE TRUE TRUE 7000/month DeployGate CDのみ TRUE TRUE TRUE TRUE 3300/month Firebase App Distribution CDのみ TRUE TRUE TRUE TRUE TRUE 0 以降、長いのでAppCenterとよぶ
  • 15. © bitbank inc. ちなみに他の会社ではどうなのか? 15 Bitrise + DeployGate が一般的 ● iOS で構築している CI の Workflow 紹介 (ZOZO テクノロジ) ● Sansan iOS アプリの CI / CD 事情 (Sansan)
  • 16. © bitbank inc. 利用するサービスが決まったので... 16 開発~配信までのワークフロー の構築について
  • 21. © bitbank inc. ワークフローの決定のいきさつ 21 ● Android / iOSともにビルドした成果物のストアへのアップロードは手動 → 自動化させることもできましたが、リスクの観点からここは手動で行う ● Gluegent Flow承認ワークフローに使ってリリースのワークフローを作るのが良さそ う → たまたま稟議などのほかの用途で使用されていており、リリースにあたり各種承認のワークフローとしての親和性も高かったので 一緒に組み込むとよさそう ● テストの自動化(CI)は今回は導入しない → 2人なのでローカル環境で実行するので十分かなと当時は想定 →やっぱり自動化する必要性が出てきたので現在取り組み中
  • 23. © bitbank inc. AppCenter CLI 23 AndroidではGitlab CI/CDにてBuildが行われるので、AppCenterに成果物であるAPK ファイルを配信する処理を組み込む必要がある appcenter-cli なるライブラリがAppCenterにて提供されているのでこれを使う AppCenterにおける配信までに行なっている様子
  • 24. © bitbank inc. AppCenter Console 24 iOSではAppCenterにてBuildが行われるので、AppCenter のコンソールよりBuild設定、 および配信の設定を行う(cliを使う必要なし、コンソールで十分。コンソール画面での設 定方法などは次のページにて)
  • 26. © bitbank inc. 完成 26 ちなみに 完成後持っていた各種リリースでき る権限を委譲(放棄)しました
  • 27. © bitbank inc. AppCenterを使っていたら意外とよかったこと 27 ● Webhook が使える!! → 配信やビルドが完了したら通知を受け取るなどの可能(現在まだあまり活用できていない) ● APIが豊富!! →Build可能な権限を持っている以外の人でもBuildや配信を実行することが可能(現在まだあまり活用できていない)
  • 28. © bitbank inc. 番外編 28 Github Actionsにて自動的にビルドする環境作成(Android編)
  • 29. © bitbank inc. 今後の展望(追加) 29 ● Firebase App DistributionへCI/CDから自動的に配信する方法 → 現在記事を執筆中、近日公開予定?? ● テストの自動化(CI)の方法について → 現在、導入調査中うまくいったら記事にします...