Upgrade to Pro — share decks privately, control downloads, hide ads and more …

GAE FEのdeployストレスを軽減する10の方法

GAE FEのdeployストレスを軽減する10の方法

「やっぱり AppEngine ja night #2」のLTで発表した資料です。

Tomoya Amachi

October 26, 2017
Tweet

More Decks by Tomoya Amachi

Other Decks in Programming

Transcript

  1. 自己紹介 天地 知也 ( あまち ともや) 略歴 看護師 ネイティブゲー ムのプロダクトマネー

    ジャ ネット広告の運用マネー ジャ システムエンジニアリングをさせてもらえないので 会社をつくり、 フリー のシステム屋
  2. デプロイプロセスを分解 g c l o u d a p p

    d e p l o y のプロセスをまず確認 1. ひもづくservice などをチェック ( 詳しくは知らない) 2. CloudBuilder にファイルを送る 3. CloudBuilder でimage をビルド i. ファイルをコンテナ内にCOPY ii. 管理されているパッケー ジを取得 4. ContainerResistory にimage をPush 5. Service を更新 ( 詳しくは知らない) 6. 安全に向き先を切り替え
  3. ビルドを速くする対策 1. GCE サー バでビルドしGCR へPUSH イメー ジを指定し、 直接デプロイ GCR

    への距離を短く CPU, メモリは環境ごとに要調整 2. 依存しているライブラリごとビルド ライブラリの初期インストー ルをなくす composer.json requires.txt etc...
  4. Makefile の一部 PHP の場合 d e p l o y

    : $ { E N V } c p - f $ ( T A R G E T _ D I R ) c o m p o s e r . j s o n $ ( T A R G E T _ D I R ) / c o m p o s e r c p - f $ ( T A R G E T _ D I R ) / c o m p o s e r . g a e . j s o n $ ( T A R G E T _ D I R ) # # # デプロイコマンド # # # c p - f $ ( T A R G E T _ D I R ) / c o m p o s e r . l o c a l . j s o n $ ( T A R G E T _ D I R ) p r o j e c t | - s e r v i c e 1 | | - c o m p o s e r . l o c a l . j s o n | | - c o m p o s e r . g a e . j s o n | | - / v a r / c o m p o s e r / v e n d o r / { 常に利用するライブラリ} | | - / v e n d o r / { G A E だけで必要なライブラリ} e x t - r e d i s , e x t - m b s t r i n g | - s e r v i c e 2 | . . . ( 同じ構成)
  5. Makefile d e p l o y : $ {

    E N V } V E R S I O N = $ $ ( ( \ $ $ ( g c l o u d a p p v e r s i o n s l i s t - - s e r v i c e $ { S E R V I C E } - - p r o j e c | t a i l - 1 | a w k ' { p r i n t $ $ 2 } ' ) + 1 \ ) ) g c l o u d a p p d e p l o y a p p - $ { S E R V I C E } - $ { E N V } . y a m l \ - - q u i e t - - v e r s i o n $ { V E R S I O N } - - s e r v i c e $ { S E R V I C E } \ - - p r o j e c t p r o j - $ { E N V } p r o d : D o c k e r f i l e . p r o d c p - f $ ( P R O J E C T _ D I R ) / $ ( S E R V I C E _ D I R ) / D o c k e r f i l e . p r o d \ $ ( P R O J E C T _ D I R ) / $ ( S E R V I C E _ D I R ) / D o c k e r f i l e s t g : D o c k e r f i l e . s t g c p - f $ ( P R O J E C T _ D I R ) / $ ( S E R V I C E _ D I R ) / D o c k e r f i l e . s t g \ $ ( P R O J E C T _ D I R ) / $ ( S E R V I C E _ D I R ) / D o c k e r f i l e d e v : D o c k e r f i l e . d e v c p - f $ ( P R O J E C T _ D I R ) / $ ( S E R V I C E _ D I R ) / D o c k e r f i l e . d e v \ $ ( P R O J E C T _ D I R ) / $ ( S E R V I C E _ D I R ) / D o c k e r f i l e
  6. その他のストレス対策 9. 過去のバー ジョンを自動で消すように( お金節約対策) d e p l o

    y : $ { E N V } g c l o u d a p p v e r s i o n s d e l e t e - - q u i e t \ $ $ ( g c l o u d a p p v e r s i o n s l i s t - - p r o j e c t p r o j - $ { E N V } \ - - s e r v i c e $ { S E R V I C E } \ - - f i l t e r = S E R V I N G _ S T A T U S : S T O P P E D | a w k ' { p r i n t $ $ 2 } ' ) \ - - s e r v i c e $ { S E R V I C E } - - p r o j e c t b i z s h i f t - $ { E N V }
  7. その他のストレス対策 10. デプロイ開始と終了時にSlack に通知( デプロイまだ ですか? 対策) c u r

    l - X P O S T - - d a t a - u r l e n c o d e " p a y l o a d j s o n d a t a " \ h t t p s : / / h o o k s . s l a c k . c o m / s e r v i c e s / x x x x x x x x