SlideShare uma empresa Scribd logo
1 de 18
Baixar para ler offline
【小技集】
CircleCIで最近困ったこと
とその対策あれこれ
嵯峨毅郎(ソフトバンク)
自己紹介
限界ミュージシャン 時々エンジニア
目次
• 弊チームのCircleCIの用途
• これまで困ったことと対策
クラウド事業をスケールさせるために
• ブランド力向上(知ってもらって案件を増やす)
✓認定取得(本題からそれるので省略)
• 業務をスケールさせる(増えた案件をさばく)
✓人力な作業を自動化・機械化
• 作業品質の向上
✓人力な作業を極力減らす
Infrastructure As Code(IaC)の導入
7
Copyright © SoftBank Corp. All rights reserved. Confidential
Azure環境
SB Azure運用基盤 用サブスクリプション
Azure環境
ユーザセルフ用サブスクリプション
マネージド(管理)用サブスクリプション
ITSMC Azure Monitor Azure Service Health
Log Analytics/OMS
MSPプロバイダ
(SB)
お客様
顧客環境
踏み
台
CMP用Azure運用基盤
顧客テナント
Partner Center
コスト情報取得
通知
監視
監視
通知
EAA
connecte
r
マネージド(サービス)用サブスクリプション ・・
・
・・
・
・・
・
・・
・
HCP
IaCの1コンポーネントとしてのCircleCI
ちゃっかり特許を取りました
https://www.j-platpat.inpit.go.jp/p0200
(57)【要約】 (修正有)
【課題】クラウドサービスのシステム要件及びアプリケーション要件が記載された
オーダーシートのコードへの変換、リソースのデプロイ及びリソースのテストを自動
化することにより、クラウドサービスを使用するまでに必要な時間を短縮化すること
ができる情報処理システム、プログラム及び情報処理方法を提供する。
【解決手段】情報処理システム100は、オーダーシートをコンピュータによって解
釈可能なコードに変換する変換部と、コードを格納部に格納する格納制御部と、コー
ドに基づいてクラウド上にリソースをデプロイさせ、リソースに対するテストを実行
させて、リソースの使用可否を判定するよう制御する判定制御部とを備える。
【選択図】図2
お待たせしましたが、ようやく
これまで困ったことと対策
• テスト/ビルド結果通知をしたい
Slack通知(Incoming Webhookサポート終了)
• ダブルチェックはしたい
• Executorに内包されたパッケージのバージョン
がある日突然変わって大事故
• GitHubとの疎通がたまに失敗する
• ビルドの実行権限管理
• コードが増えすぎた(対処中)
テスト/ビルド結果通知
• SlackのOrbを使っています
ビルド開始
ビルド成功
ビルド失敗
顧客環境へのデプロイ前の
ダブルチェックはしたい
SlackのOrbを使って承認依頼を飛ばしてます
Incoming WebhookはSlackにおいて
非推奨になりました
• Google Chatに逃げます。大体同じことができます。
ビルド結果通知(失敗)
ビルド結果通知(成功)
Incoming WebhookはSlackにおいて
非推奨になりました
• Google Chatに逃げます。大体同じことができます。
承認依頼
Executor内のパッケージのバージョンが
ある日突然変わって大事故
• CircleCIが準備しているWindowsのExecutorを利
用して商用サービスを展開していたが、突如全
サービスのビルドがほぼ動作しなくなった
• 調査した結果、Executor内にデフォルトでイン
ストールされていたパッケージのバージョンが
変わって実行するコードが動作しなくなったこ
とが判明
対策
・自分たちで作ったコンテナを利用する
・Executorを利用する場合は①既存のパッケージの
アンインストールをした後、②バージョンを指定して
パッケージをインストールする
GitHubとの疎通がたまに失敗して
ビルドエラーが発生する
• 顧客のインフラ情報を格納したGitHubリポジト
リはいくつかの共通機能を格納したGit Module
が接続されており、それらの最新化ビルドが
時々失敗する。
• 調査した結果、CircleCI(AWS)とGitHubリポジト
リの間の疎通がたまに不安定になっている「ぽ
い」ことが分かった。
対策
・Gitmoduleの最新化ビルドに複数回のリトライを入れること
で対処している。(CircleCIのインフラとGitHubの連携は
DirectConnectとかでやっているのでしょうか。内部の仕組み
が気になる。。)
ビルドの実行権限管理
• 顧客へのデプロイを承認できる人間を限定し、しか
るべき責任を持つものにクリックをさせる仕組みに
したい。
対策
・本番環境へアクセス可能
なシークレット情報などを
格納したContextにGitHub側
でで作成したグループを紐
づけることができる。
・シークレットにアクセス
できない人間が承認すると
Contextにアクセスできずビ
ルドが失敗する
グループ名はナイショ
コードが増えすぎた(対処中)
• ファイルを分割しているがそれでも行数が多い
対策
・Private Orbを使ってCommand内をすべてOrbに移行する
10月末からPrivate Orbを無限に作成できるようになりました
→本当にありがとうございます!!
最後に:CircleCIの良いところ
• 問い合わせのレスポンスが早いし丁寧
• Orbが便利
• ユーザの要望を積極的に取り入れてくれている
2020年8月に依頼したPrivateOrbが無限に使えるようになって
最高です。引き続きよろしくお願いいたします。

Mais conteúdo relacionado

Mais procurados

SQLアンチパターン(インデックスショットガン)
SQLアンチパターン(インデックスショットガン)SQLアンチパターン(インデックスショットガン)
SQLアンチパターン(インデックスショットガン)
Tomoaki Uchida
 
「関心の分離」と「疎結合」 ソフトウェアアーキテクチャのひとかけら
「関心の分離」と「疎結合」   ソフトウェアアーキテクチャのひとかけら「関心の分離」と「疎結合」   ソフトウェアアーキテクチャのひとかけら
「関心の分離」と「疎結合」 ソフトウェアアーキテクチャのひとかけら
Atsushi Nakamura
 
Twitterのsnowflakeについて
TwitterのsnowflakeについてTwitterのsnowflakeについて
Twitterのsnowflakeについて
moai kids
 
言語資源と付き合う
言語資源と付き合う言語資源と付き合う
言語資源と付き合う
Yuya Unno
 

Mais procurados (20)

DeClang 誕生!Clang ベースのハッキング対策コンパイラ【DeNA TechCon 2020 ライブ配信】
DeClang 誕生!Clang ベースのハッキング対策コンパイラ【DeNA TechCon 2020 ライブ配信】DeClang 誕生!Clang ベースのハッキング対策コンパイラ【DeNA TechCon 2020 ライブ配信】
DeClang 誕生!Clang ベースのハッキング対策コンパイラ【DeNA TechCon 2020 ライブ配信】
 
[Cloud OnAir] BigQuery の仕組みからベストプラクティスまでのご紹介 2018年9月6日 放送
[Cloud OnAir] BigQuery の仕組みからベストプラクティスまでのご紹介 2018年9月6日 放送[Cloud OnAir] BigQuery の仕組みからベストプラクティスまでのご紹介 2018年9月6日 放送
[Cloud OnAir] BigQuery の仕組みからベストプラクティスまでのご紹介 2018年9月6日 放送
 
SQLアンチパターン(インデックスショットガン)
SQLアンチパターン(インデックスショットガン)SQLアンチパターン(インデックスショットガン)
SQLアンチパターン(インデックスショットガン)
 
Spannerに関する技術メモ
Spannerに関する技術メモSpannerに関する技術メモ
Spannerに関する技術メモ
 
新たなgitのブランチモデル「Git Feature Flow」!Git Flow,Git Hub Flow,Git Lab Flowを超えれるか?
新たなgitのブランチモデル「Git Feature Flow」!Git Flow,Git Hub Flow,Git Lab Flowを超えれるか?新たなgitのブランチモデル「Git Feature Flow」!Git Flow,Git Hub Flow,Git Lab Flowを超えれるか?
新たなgitのブランチモデル「Git Feature Flow」!Git Flow,Git Hub Flow,Git Lab Flowを超えれるか?
 
「自分のとこでは動くけど…」を無くす devcontainer
「自分のとこでは動くけど…」を無くす devcontainer「自分のとこでは動くけど…」を無くす devcontainer
「自分のとこでは動くけど…」を無くす devcontainer
 
CyberChefの使い方(HamaCTF2019 WriteUp編)
CyberChefの使い方(HamaCTF2019 WriteUp編)CyberChefの使い方(HamaCTF2019 WriteUp編)
CyberChefの使い方(HamaCTF2019 WriteUp編)
 
ドキュメントシステムはこれを使え2015年版
ドキュメントシステムはこれを使え2015年版ドキュメントシステムはこれを使え2015年版
ドキュメントシステムはこれを使え2015年版
 
Django REST Framework における API 実装プラクティス | PyCon JP 2018
Django REST Framework における API 実装プラクティス | PyCon JP 2018Django REST Framework における API 実装プラクティス | PyCon JP 2018
Django REST Framework における API 実装プラクティス | PyCon JP 2018
 
「関心の分離」と「疎結合」 ソフトウェアアーキテクチャのひとかけら
「関心の分離」と「疎結合」   ソフトウェアアーキテクチャのひとかけら「関心の分離」と「疎結合」   ソフトウェアアーキテクチャのひとかけら
「関心の分離」と「疎結合」 ソフトウェアアーキテクチャのひとかけら
 
Aws amplify studioが変えるフロントエンド開発の未来とは v2
Aws amplify studioが変えるフロントエンド開発の未来とは v2Aws amplify studioが変えるフロントエンド開発の未来とは v2
Aws amplify studioが変えるフロントエンド開発の未来とは v2
 
トランザクションスクリプトのすすめ
トランザクションスクリプトのすすめトランザクションスクリプトのすすめ
トランザクションスクリプトのすすめ
 
5分で出来る!イケてるconfluenceページ
5分で出来る!イケてるconfluenceページ5分で出来る!イケてるconfluenceページ
5分で出来る!イケてるconfluenceページ
 
クラウド環境でのセキュリティ監査自動化【DeNA TechCon 2020 ライブ配信】
クラウド環境でのセキュリティ監査自動化【DeNA TechCon 2020 ライブ配信】クラウド環境でのセキュリティ監査自動化【DeNA TechCon 2020 ライブ配信】
クラウド環境でのセキュリティ監査自動化【DeNA TechCon 2020 ライブ配信】
 
Twitterのsnowflakeについて
TwitterのsnowflakeについてTwitterのsnowflakeについて
Twitterのsnowflakeについて
 
Spring Security 5.0 解剖速報
Spring Security 5.0 解剖速報Spring Security 5.0 解剖速報
Spring Security 5.0 解剖速報
 
始めよう! ドメイン駆動設計&マイクロサービス開発 ~C# と Azure Service Fabric で最高の DDD 開発を~
始めよう! ドメイン駆動設計&マイクロサービス開発 ~C# と Azure Service Fabric で最高の DDD 開発を~始めよう! ドメイン駆動設計&マイクロサービス開発 ~C# と Azure Service Fabric で最高の DDD 開発を~
始めよう! ドメイン駆動設計&マイクロサービス開発 ~C# と Azure Service Fabric で最高の DDD 開発を~
 
グラフデータベースは如何に自然言語を理解するか?
グラフデータベースは如何に自然言語を理解するか?グラフデータベースは如何に自然言語を理解するか?
グラフデータベースは如何に自然言語を理解するか?
 
IoTと業務システムをつなぐgRPC/RESTサービスの開発と運用
IoTと業務システムをつなぐgRPC/RESTサービスの開発と運用IoTと業務システムをつなぐgRPC/RESTサービスの開発と運用
IoTと業務システムをつなぐgRPC/RESTサービスの開発と運用
 
言語資源と付き合う
言語資源と付き合う言語資源と付き合う
言語資源と付き合う
 

Semelhante a CircleCIで悩んだことピックアップ

JAWS-UG三都物語_企業でのAWS導入のエントリーポイント
JAWS-UG三都物語_企業でのAWS導入のエントリーポイントJAWS-UG三都物語_企業でのAWS導入のエントリーポイント
JAWS-UG三都物語_企業でのAWS導入のエントリーポイント
Toshiyuki Konparu
 
20140619 dbtechshowcase osaka_2014_couchbase_x_metawater
20140619 dbtechshowcase osaka_2014_couchbase_x_metawater20140619 dbtechshowcase osaka_2014_couchbase_x_metawater
20140619 dbtechshowcase osaka_2014_couchbase_x_metawater
Masahiro Tomisugi
 

Semelhante a CircleCIで悩んだことピックアップ (20)

オンプレでもクラウドでも データベースサーバの運用
オンプレでもクラウドでも データベースサーバの運用オンプレでもクラウドでも データベースサーバの運用
オンプレでもクラウドでも データベースサーバの運用
 
ヒーロー島 Visual Studio 2012
ヒーロー島 Visual Studio 2012ヒーロー島 Visual Studio 2012
ヒーロー島 Visual Studio 2012
 
ECSとGitLabでCI環境構築
ECSとGitLabでCI環境構築ECSとGitLabでCI環境構築
ECSとGitLabでCI環境構築
 
2014-10-27 #ssmjp 腹を割って話そう (運用xセキュリティ)
2014-10-27 #ssmjp 腹を割って話そう (運用xセキュリティ)2014-10-27 #ssmjp 腹を割って話そう (運用xセキュリティ)
2014-10-27 #ssmjp 腹を割って話そう (運用xセキュリティ)
 
テスト自動化の現場で困ること SI-Toolkitが解決すること
テスト自動化の現場で困ること SI-Toolkitが解決することテスト自動化の現場で困ること SI-Toolkitが解決すること
テスト自動化の現場で困ること SI-Toolkitが解決すること
 
【Japan Partner Conference 2019】Microsoft Azure ビジネスの賢い進めかた ~ SB C&S が御社の Azur...
【Japan Partner Conference 2019】Microsoft Azure ビジネスの賢い進めかた ~ SB C&S が御社の Azur...【Japan Partner Conference 2019】Microsoft Azure ビジネスの賢い進めかた ~ SB C&S が御社の Azur...
【Japan Partner Conference 2019】Microsoft Azure ビジネスの賢い進めかた ~ SB C&S が御社の Azur...
 
Microsoft MVP/Regional Director x Microsoft Japan Digital Days #MSDD2021
Microsoft MVP/Regional Director x Microsoft Japan Digital Days #MSDD2021Microsoft MVP/Regional Director x Microsoft Japan Digital Days #MSDD2021
Microsoft MVP/Regional Director x Microsoft Japan Digital Days #MSDD2021
 
クラウド & STAR-CCM+ を活用するための勘ドコロ
クラウド & STAR-CCM+ を活用するための勘ドコロクラウド & STAR-CCM+ を活用するための勘ドコロ
クラウド & STAR-CCM+ を活用するための勘ドコロ
 
なぜ「マイクロサービス“化”」が必要なのか
なぜ「マイクロサービス“化”」が必要なのかなぜ「マイクロサービス“化”」が必要なのか
なぜ「マイクロサービス“化”」が必要なのか
 
詳説!Azure AD 条件付きアクセス - 動作の仕組みを理解する編
詳説!Azure AD 条件付きアクセス - 動作の仕組みを理解する編詳説!Azure AD 条件付きアクセス - 動作の仕組みを理解する編
詳説!Azure AD 条件付きアクセス - 動作の仕組みを理解する編
 
SHOWROOMとDeNAで取り組んだライブ配信基盤刷新・超低遅延ライブ配信の裏側【DeNA TechCon 2020 ライブ配信】
SHOWROOMとDeNAで取り組んだライブ配信基盤刷新・超低遅延ライブ配信の裏側【DeNA TechCon 2020 ライブ配信】SHOWROOMとDeNAで取り組んだライブ配信基盤刷新・超低遅延ライブ配信の裏側【DeNA TechCon 2020 ライブ配信】
SHOWROOMとDeNAで取り組んだライブ配信基盤刷新・超低遅延ライブ配信の裏側【DeNA TechCon 2020 ライブ配信】
 
JAWS-UG三都物語_企業でのAWS導入のエントリーポイント
JAWS-UG三都物語_企業でのAWS導入のエントリーポイントJAWS-UG三都物語_企業でのAWS導入のエントリーポイント
JAWS-UG三都物語_企業でのAWS導入のエントリーポイント
 
Oracle設計
Oracle設計Oracle設計
Oracle設計
 
JaSST'12 Kansai
JaSST'12 KansaiJaSST'12 Kansai
JaSST'12 Kansai
 
Agile meets BABOK
Agile meets BABOKAgile meets BABOK
Agile meets BABOK
 
Code for Japan 勉強会 Vol.1 CKAN入門 プロジェクトのFork、デプロイ、CIまで
Code for Japan 勉強会 Vol.1 CKAN入門 プロジェクトのFork、デプロイ、CIまでCode for Japan 勉強会 Vol.1 CKAN入門 プロジェクトのFork、デプロイ、CIまで
Code for Japan 勉強会 Vol.1 CKAN入門 プロジェクトのFork、デプロイ、CIまで
 
新規事業を加速させる技術
新規事業を加速させる技術新規事業を加速させる技術
新規事業を加速させる技術
 
Serverless Meetup Tokyo #1 オープニング
Serverless Meetup Tokyo #1 オープニングServerless Meetup Tokyo #1 オープニング
Serverless Meetup Tokyo #1 オープニング
 
20140619 dbtechshowcase osaka_2014_couchbase_x_metawater
20140619 dbtechshowcase osaka_2014_couchbase_x_metawater20140619 dbtechshowcase osaka_2014_couchbase_x_metawater
20140619 dbtechshowcase osaka_2014_couchbase_x_metawater
 
これからの開発環境の話をしよう - 開発現場力を高める環境づくり #ost2013
これからの開発環境の話をしよう - 開発現場力を高める環境づくり #ost2013これからの開発環境の話をしよう - 開発現場力を高める環境づくり #ost2013
これからの開発環境の話をしよう - 開発現場力を高める環境づくり #ost2013
 

CircleCIで悩んだことピックアップ