Enviar búsqueda
Cargar
Fuelphpのテストをdocker-composeとJenkinsで実行
•
0 recomendaciones
•
1,349 vistas
gree_tech
Seguir
「第139回 PHP勉強会@東京」で発表された資料です。 https://phpstudy.doorkeeper.jp/events/93038
Leer menos
Leer más
Ingeniería
Denunciar
Compartir
Denunciar
Compartir
1 de 14
Descargar ahora
Descargar para leer sin conexión
Recomendados
gRPCを使ったメディアサービス
gRPCを使ったメディアサービス
gree_tech
Firestoreを使ってメディアアプリを作ってみた
Firestoreを使ってメディアアプリを作ってみた
gree_tech
DCL15秒の見れないサイトを3秒まで改善した話。改善継続中
DCL15秒の見れないサイトを3秒まで改善した話。改善継続中
gree_tech
RecommendWidgetを作った話
RecommendWidgetを作った話
gree_tech
LIMIAでのBigQuery活用事例
LIMIAでのBigQuery活用事例
gree_tech
メディアアプリLIMIAにおけるプッシュ通知配信システム
メディアアプリLIMIAにおけるプッシュ通知配信システム
gree_tech
機械学習輪講会資料
機械学習輪講会資料
gree_tech
PHPからgoへの移行で分かったこと
PHPからgoへの移行で分かったこと
gree_tech
Recomendados
gRPCを使ったメディアサービス
gRPCを使ったメディアサービス
gree_tech
Firestoreを使ってメディアアプリを作ってみた
Firestoreを使ってメディアアプリを作ってみた
gree_tech
DCL15秒の見れないサイトを3秒まで改善した話。改善継続中
DCL15秒の見れないサイトを3秒まで改善した話。改善継続中
gree_tech
RecommendWidgetを作った話
RecommendWidgetを作った話
gree_tech
LIMIAでのBigQuery活用事例
LIMIAでのBigQuery活用事例
gree_tech
メディアアプリLIMIAにおけるプッシュ通知配信システム
メディアアプリLIMIAにおけるプッシュ通知配信システム
gree_tech
機械学習輪講会資料
機械学習輪講会資料
gree_tech
PHPからgoへの移行で分かったこと
PHPからgoへの移行で分かったこと
gree_tech
LIMIAアプリにおける行動履歴を用いたコンテンツ配信の最適化
LIMIAアプリにおける行動履歴を用いたコンテンツ配信の最適化
gree_tech
公式部活動技術書典部の活動紹介
公式部活動技術書典部の活動紹介
gree_tech
#インスタサミット 「アカウント運用の基礎」アライドアーキテクツ株式会社 藤田さま
#インスタサミット 「アカウント運用の基礎」アライドアーキテクツ株式会社 藤田さま
Daiki Hirozawa
[社内向け]Titanium勉強会
[社内向け]Titanium勉強会
Rei Matsushita
Realtime database、Clean Architectureを組み合わせた導入事例
Realtime database、Clean Architectureを組み合わせた導入事例
Tatsuya Kikuchi
【サンプル】 Instagram開設マニュアルサービス資料
【サンプル】 Instagram開設マニュアルサービス資料
AAsolution
20171109_Mobile Center を使ったモバイルアプリ開発ライフサイクル自動化【Mobile DevOps】
20171109_Mobile Center を使ったモバイルアプリ開発ライフサイクル自動化【Mobile DevOps】
Madoka Chiyoda
Matcherの紹介@ITリーダー育成キャンプ
Matcherの紹介@ITリーダー育成キャンプ
noriyaz
Ruby会議08 倉貫発表資料
Ruby会議08 倉貫発表資料
Yoshihito Kuranuki
How are AsakusaSatellite growing with mzp
How are AsakusaSatellite growing with mzp
Ryo Suetsugu
マルチテナントに対応したシラサギグループウェアのご紹介
マルチテナントに対応したシラサギグループウェアのご紹介
Shinji Tanimoto
月間6アプリリリースの開発現場でのQiita:Team活用法
月間6アプリリリースの開発現場でのQiita:Team活用法
Naoya Mouri
生涯エンジニアというマインドを活かしてYahoo!天気アプリを成長させたPM手法 #devsumi
生涯エンジニアというマインドを活かしてYahoo!天気アプリを成長させたPM手法 #devsumi
Yahoo!デベロッパーネットワーク
ビッグデータを活用したSEO対策:検索エンジン最適化とは
ビッグデータを活用したSEO対策:検索エンジン最適化とは
新潟コンサルタント横田秀珠
Bot Builder V4 SDK + QnA Maker / LUIS
Bot Builder V4 SDK + QnA Maker / LUIS
Yoshitaka Seo
アナザーエデンPC版リリースへの道のり 〜WFSにおけるマルチプラットフォーム対応の取り組み〜
アナザーエデンPC版リリースへの道のり 〜WFSにおけるマルチプラットフォーム対応の取り組み〜
gree_tech
GREE VR Studio Laboratory「XR-UX Devプロジェクト」の成果紹介
GREE VR Studio Laboratory「XR-UX Devプロジェクト」の成果紹介
gree_tech
REALITYアバターを様々なメタバースで活躍させてみた - GREE VR Studio Laboratory インターン研究成果発表
REALITYアバターを様々なメタバースで活躍させてみた - GREE VR Studio Laboratory インターン研究成果発表
gree_tech
アプリ起動時間高速化 ~推測するな、計測せよ~
アプリ起動時間高速化 ~推測するな、計測せよ~
gree_tech
長寿なゲーム事業におけるアプリビルドの効率化
長寿なゲーム事業におけるアプリビルドの効率化
gree_tech
Cloud Spanner をより便利にする運用支援ツールの紹介
Cloud Spanner をより便利にする運用支援ツールの紹介
gree_tech
WFSにおけるCloud SpannerとGKEを中心としたGCP導入事例の紹介
WFSにおけるCloud SpannerとGKEを中心としたGCP導入事例の紹介
gree_tech
Más contenido relacionado
La actualidad más candente
LIMIAアプリにおける行動履歴を用いたコンテンツ配信の最適化
LIMIAアプリにおける行動履歴を用いたコンテンツ配信の最適化
gree_tech
公式部活動技術書典部の活動紹介
公式部活動技術書典部の活動紹介
gree_tech
#インスタサミット 「アカウント運用の基礎」アライドアーキテクツ株式会社 藤田さま
#インスタサミット 「アカウント運用の基礎」アライドアーキテクツ株式会社 藤田さま
Daiki Hirozawa
[社内向け]Titanium勉強会
[社内向け]Titanium勉強会
Rei Matsushita
Realtime database、Clean Architectureを組み合わせた導入事例
Realtime database、Clean Architectureを組み合わせた導入事例
Tatsuya Kikuchi
【サンプル】 Instagram開設マニュアルサービス資料
【サンプル】 Instagram開設マニュアルサービス資料
AAsolution
20171109_Mobile Center を使ったモバイルアプリ開発ライフサイクル自動化【Mobile DevOps】
20171109_Mobile Center を使ったモバイルアプリ開発ライフサイクル自動化【Mobile DevOps】
Madoka Chiyoda
Matcherの紹介@ITリーダー育成キャンプ
Matcherの紹介@ITリーダー育成キャンプ
noriyaz
Ruby会議08 倉貫発表資料
Ruby会議08 倉貫発表資料
Yoshihito Kuranuki
How are AsakusaSatellite growing with mzp
How are AsakusaSatellite growing with mzp
Ryo Suetsugu
マルチテナントに対応したシラサギグループウェアのご紹介
マルチテナントに対応したシラサギグループウェアのご紹介
Shinji Tanimoto
月間6アプリリリースの開発現場でのQiita:Team活用法
月間6アプリリリースの開発現場でのQiita:Team活用法
Naoya Mouri
生涯エンジニアというマインドを活かしてYahoo!天気アプリを成長させたPM手法 #devsumi
生涯エンジニアというマインドを活かしてYahoo!天気アプリを成長させたPM手法 #devsumi
Yahoo!デベロッパーネットワーク
ビッグデータを活用したSEO対策:検索エンジン最適化とは
ビッグデータを活用したSEO対策:検索エンジン最適化とは
新潟コンサルタント横田秀珠
Bot Builder V4 SDK + QnA Maker / LUIS
Bot Builder V4 SDK + QnA Maker / LUIS
Yoshitaka Seo
La actualidad más candente
(15)
LIMIAアプリにおける行動履歴を用いたコンテンツ配信の最適化
LIMIAアプリにおける行動履歴を用いたコンテンツ配信の最適化
公式部活動技術書典部の活動紹介
公式部活動技術書典部の活動紹介
#インスタサミット 「アカウント運用の基礎」アライドアーキテクツ株式会社 藤田さま
#インスタサミット 「アカウント運用の基礎」アライドアーキテクツ株式会社 藤田さま
[社内向け]Titanium勉強会
[社内向け]Titanium勉強会
Realtime database、Clean Architectureを組み合わせた導入事例
Realtime database、Clean Architectureを組み合わせた導入事例
【サンプル】 Instagram開設マニュアルサービス資料
【サンプル】 Instagram開設マニュアルサービス資料
20171109_Mobile Center を使ったモバイルアプリ開発ライフサイクル自動化【Mobile DevOps】
20171109_Mobile Center を使ったモバイルアプリ開発ライフサイクル自動化【Mobile DevOps】
Matcherの紹介@ITリーダー育成キャンプ
Matcherの紹介@ITリーダー育成キャンプ
Ruby会議08 倉貫発表資料
Ruby会議08 倉貫発表資料
How are AsakusaSatellite growing with mzp
How are AsakusaSatellite growing with mzp
マルチテナントに対応したシラサギグループウェアのご紹介
マルチテナントに対応したシラサギグループウェアのご紹介
月間6アプリリリースの開発現場でのQiita:Team活用法
月間6アプリリリースの開発現場でのQiita:Team活用法
生涯エンジニアというマインドを活かしてYahoo!天気アプリを成長させたPM手法 #devsumi
生涯エンジニアというマインドを活かしてYahoo!天気アプリを成長させたPM手法 #devsumi
ビッグデータを活用したSEO対策:検索エンジン最適化とは
ビッグデータを活用したSEO対策:検索エンジン最適化とは
Bot Builder V4 SDK + QnA Maker / LUIS
Bot Builder V4 SDK + QnA Maker / LUIS
Más de gree_tech
アナザーエデンPC版リリースへの道のり 〜WFSにおけるマルチプラットフォーム対応の取り組み〜
アナザーエデンPC版リリースへの道のり 〜WFSにおけるマルチプラットフォーム対応の取り組み〜
gree_tech
GREE VR Studio Laboratory「XR-UX Devプロジェクト」の成果紹介
GREE VR Studio Laboratory「XR-UX Devプロジェクト」の成果紹介
gree_tech
REALITYアバターを様々なメタバースで活躍させてみた - GREE VR Studio Laboratory インターン研究成果発表
REALITYアバターを様々なメタバースで活躍させてみた - GREE VR Studio Laboratory インターン研究成果発表
gree_tech
アプリ起動時間高速化 ~推測するな、計測せよ~
アプリ起動時間高速化 ~推測するな、計測せよ~
gree_tech
長寿なゲーム事業におけるアプリビルドの効率化
長寿なゲーム事業におけるアプリビルドの効率化
gree_tech
Cloud Spanner をより便利にする運用支援ツールの紹介
Cloud Spanner をより便利にする運用支援ツールの紹介
gree_tech
WFSにおけるCloud SpannerとGKEを中心としたGCP導入事例の紹介
WFSにおけるCloud SpannerとGKEを中心としたGCP導入事例の紹介
gree_tech
SINoALICE -シノアリス- Google Cloud Firestoreを用いた観戦機能の実現について
SINoALICE -シノアリス- Google Cloud Firestoreを用いた観戦機能の実現について
gree_tech
海外展開と負荷試験
海外展開と負荷試験
gree_tech
翻訳QAでのテスト自動化の取り組み
翻訳QAでのテスト自動化の取り組み
gree_tech
組み込み開発のテストとゲーム開発のテストの違い
組み込み開発のテストとゲーム開発のテストの違い
gree_tech
サーバーフレームワークに潜んでる脆弱性検知ツール紹介
サーバーフレームワークに潜んでる脆弱性検知ツール紹介
gree_tech
データエンジニアとアナリストチーム兼務になった件について
データエンジニアとアナリストチーム兼務になった件について
gree_tech
シェアドサービスとしてのデータテクノロジー
シェアドサービスとしてのデータテクノロジー
gree_tech
「ドキュメント見つからない問題」をなんとかしたい - 横断検索エンジン導入の取り組みについて-
「ドキュメント見つからない問題」をなんとかしたい - 横断検索エンジン導入の取り組みについて-
gree_tech
「Atomic Design × Nuxt.js」コンポーネント毎に責務の範囲を明確にしたら幸せになった話
「Atomic Design × Nuxt.js」コンポーネント毎に責務の範囲を明確にしたら幸せになった話
gree_tech
比較サイトの検索改善(SPA から SSR に変換)
比較サイトの検索改善(SPA から SSR に変換)
gree_tech
コードの自動修正によって実現する、機能開発を止めないフレームワーク移行
コードの自動修正によって実現する、機能開発を止めないフレームワーク移行
gree_tech
「やんちゃ、足りてる?」〜ヤンマガWebで挑戦を続ける新入りエンジニア〜
「やんちゃ、足りてる?」〜ヤンマガWebで挑戦を続ける新入りエンジニア〜
gree_tech
法人向けメタバースプラットフォームの開発の裏側をのぞいてみた(仮)
法人向けメタバースプラットフォームの開発の裏側をのぞいてみた(仮)
gree_tech
Más de gree_tech
(20)
アナザーエデンPC版リリースへの道のり 〜WFSにおけるマルチプラットフォーム対応の取り組み〜
アナザーエデンPC版リリースへの道のり 〜WFSにおけるマルチプラットフォーム対応の取り組み〜
GREE VR Studio Laboratory「XR-UX Devプロジェクト」の成果紹介
GREE VR Studio Laboratory「XR-UX Devプロジェクト」の成果紹介
REALITYアバターを様々なメタバースで活躍させてみた - GREE VR Studio Laboratory インターン研究成果発表
REALITYアバターを様々なメタバースで活躍させてみた - GREE VR Studio Laboratory インターン研究成果発表
アプリ起動時間高速化 ~推測するな、計測せよ~
アプリ起動時間高速化 ~推測するな、計測せよ~
長寿なゲーム事業におけるアプリビルドの効率化
長寿なゲーム事業におけるアプリビルドの効率化
Cloud Spanner をより便利にする運用支援ツールの紹介
Cloud Spanner をより便利にする運用支援ツールの紹介
WFSにおけるCloud SpannerとGKEを中心としたGCP導入事例の紹介
WFSにおけるCloud SpannerとGKEを中心としたGCP導入事例の紹介
SINoALICE -シノアリス- Google Cloud Firestoreを用いた観戦機能の実現について
SINoALICE -シノアリス- Google Cloud Firestoreを用いた観戦機能の実現について
海外展開と負荷試験
海外展開と負荷試験
翻訳QAでのテスト自動化の取り組み
翻訳QAでのテスト自動化の取り組み
組み込み開発のテストとゲーム開発のテストの違い
組み込み開発のテストとゲーム開発のテストの違い
サーバーフレームワークに潜んでる脆弱性検知ツール紹介
サーバーフレームワークに潜んでる脆弱性検知ツール紹介
データエンジニアとアナリストチーム兼務になった件について
データエンジニアとアナリストチーム兼務になった件について
シェアドサービスとしてのデータテクノロジー
シェアドサービスとしてのデータテクノロジー
「ドキュメント見つからない問題」をなんとかしたい - 横断検索エンジン導入の取り組みについて-
「ドキュメント見つからない問題」をなんとかしたい - 横断検索エンジン導入の取り組みについて-
「Atomic Design × Nuxt.js」コンポーネント毎に責務の範囲を明確にしたら幸せになった話
「Atomic Design × Nuxt.js」コンポーネント毎に責務の範囲を明確にしたら幸せになった話
比較サイトの検索改善(SPA から SSR に変換)
比較サイトの検索改善(SPA から SSR に変換)
コードの自動修正によって実現する、機能開発を止めないフレームワーク移行
コードの自動修正によって実現する、機能開発を止めないフレームワーク移行
「やんちゃ、足りてる?」〜ヤンマガWebで挑戦を続ける新入りエンジニア〜
「やんちゃ、足りてる?」〜ヤンマガWebで挑戦を続ける新入りエンジニア〜
法人向けメタバースプラットフォームの開発の裏側をのぞいてみた(仮)
法人向けメタバースプラットフォームの開発の裏側をのぞいてみた(仮)
Fuelphpのテストをdocker-composeとJenkinsで実行
1.
FuelphpのテストをJenkinsと docker-composeで実行
2.
Masahiro Higuchi /
樋口雅拓 ● グリーグループのリミア株式会社で、LIMIA という住まい領域のメディアを 作っています。ゲーム会社ですが、最近はメディアに力を入れています。 ● 機械学習のエンジニアですが、iOS, Android,JSなどもやっている何でも屋 です。4歳の娘のパパ。twitter: @mahiguch1 ● https://limia.jp/ ● https://arine.jp/ ● https://aumo.jp/ ● https://www.mine-3m.com/mine/
3.
LIMIAとは? ● メディアサービス ● Android,
iOS, Web ● 記事一覧を表示し、タップすると記事 詳細を閲覧できる。 ● AWS:90%、GCP:10%。 ● PHP/EC2 → Go/ECS移行中
4.
Fuelphpが。。。 ● 最近バージョンアップの話を聞かない ● Githubを確認すると、最後のcommitが2018年5月 ●
Laravelに行く? いや、コンテナ考えたらgolangでしょ! —> golangに移行開始したばかりですが、さっそくJenkinsでハマったことに ついて話します。
5.
移行したシステムについて
6.
開発環境 ● まず、他との繋がりが薄いRecommendEngineをgolangで書いてコンテナ を作った。 ● php,
MySQL, memcached, DynamoDB Local, elasticmqもコンテナにし て、開発環境をdocker-composeで作った。 ● 本番環境はgolangのみECSで動かし、phpはEC2で。
7.
本番環境 ユーザが記事の一覧表示をしようとすると、EC2で動く fuel PHP ApplicationにHTTPリクエストが飛ぶ。PHP Appは、ECSで動くgolang
Serviceにgrpcで問い合わ せる。PHP Appはgolangからの応答に後処理を行 なってユーザに返す。
8.
APIの結合テスト
9.
テストについて ● UnitTestだけでなく、APIの結合テストもFuel phpのテストを書いていた。 ●
レスポンスのIFをかなり網羅していたので、リファクタのときには重要。 ● GitのDevelop branchにmergeされるとJenkinsでテストが走り、成功したら結合テスト環境に配布してい た。 —> 実装完了してmergeしたらテストが失敗。何故!?
10.
テストが失敗した理由 ● Jenkins Slaveは、EC2にphpをインストールしてテストを実行していた。 ●
当然だがgolangコンテナが無いので、接続失敗でテストがコケる。 ● Jenkins Slave専用にECS Service建てるのは、もったいないよねー。 —> 開発環境用に作ったdocker-composeをJenkins Slaveの中に立ててしまおう!
11.
第1の関門: git tokenの渡し方 Repository構成 ●
docker: docker-compose.ymlなど ● app: PHPで書かれた本体 ● api: golangで書かれたマイクロサービス これまでは、Jenkinsにgithubのtokenとrepository pathを登録しておくと、手元に展開されていた。 Repositoryが3つだとScriptの所でgit cloneを3行書く。—> Permission Denied... あれ? どうやってtoken渡そう。—> .netrcに書くことで解決!
12.
第2の関門: コンテナの建て方 ● 1つ目のテストは成功したが、別のテストで失敗。 ●
コンテナが立てっぱなしだったので、ポートを取れなかった。 ● 80/tcp —> 8080/tcp(dockerのNginxが動くport)に透過させていたのが原因。 —> テストの開始時にdocker-compose up、終了時にdocker-compose downすることで解決。
13.
第3の関門: コンテナの更新 ● しばらくうまく動いていたが、突然テストが失敗するように。 ●
Jenkins Slaveでコンテナの更新を行なっていなかった。 ● テスト開始前にdocker-compose pullしたが上手くいかない。あれ? —> ecr loginしてなかったので、docker repos.にアクセスできていなかった。loginすることで解決。
14.
まとめ ● 一部のサービスをgolangで書き直してみた。 ● 今後PHPの部分はBFFっぽくなっていく予定。 ●
PHPをコンテナ化する必要があるが、知見が無いので、もし経験があれば教えて欲しい。 ありがとうございました。懇親会でぜひ声をかけてください!
Descargar ahora