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

GCPUG 仙台

Senoue
March 26, 2019

GCPUG 仙台

Senoue

March 26, 2019
Tweet

More Decks by Senoue

Other Decks in Technology

Transcript

  1. GAE/Goで
    1. 11 にしたら、
    ローカルコンパイル
    スピードが
    100倍になった話
    瀬上 祐匡

    View full-size slide

  2. 自己紹介
    瀬上 祐匡(せのうえ ひろまさ) びでおまーけっと
    サーバサイドエンジニア
    Go、Python、js、PHPとかを、
    程よく触っています。
    中学校のPTA会長(2期目)やったり、
    ハリネズミ飼ってたり、モノノフだったりします
    2

    View full-size slide

  3. 本題
    何が起きたのか
    昨年11月くらいから、GoでAPI開発をスタート
    Goは、改修程度で触ったことがあるくらい
    GAEは、遊び程度の知識
    GCPは、この直前の業務で、
    BigQuery、CloudFunctionで
    DWHをつくったりしてました。
    3

    View full-size slide

  4. 試行錯誤しつつも
    環境の構築
    環境
    ● docker (CentOS7)
    ● GAE/Go1.9
    ● Gin/Gorm
    ● CloudSQL 5.7

    View full-size slide

  5. 順調に開発が進んで、
    12月ころから
    ● ローカルのコンパイルが遅い
    ● PCのファンがドローンのように唸っている
      (飛び上がる危険性)
    ● 日々大きくなるソース・・・
    この頃から、PCは
    悲鳴をあげ、コンパイルに、
    時間がかかるように...
    5

    View full-size slide

  6. とりあえず、
    このままで...
    そっとしておこう。。。
    6

    View full-size slide

  7. ある日、
    こんな会話が・・・
    7
    コンパイルおそくね?
    そうなんす、日に日に・・
    なんでだろ?
    ファイル数なんすかね?

    View full-size slide


  8. 8
    第8話バージョンアップは
    突然に
    8
    やっておきまー
    おっけー、ついでに、
    Go1.11にしよう
    基本動作はほぼできたんで、
    リファクタしますね

    View full-size slide

  9. バージョンアップでやっ
    たこと
    ● ローカル環境も、Go.1.11.5にVUP
    ● dep→Modulesに
    ● Ciでの、deploy
    ● Yamlファイルの書き直し
    ● 若干のリファクタ
    サクッとVUPを完了し、
    環境を実行...
    9

    View full-size slide

  10. あれ、コンパイル早く
    ね????
    一体何が、、、
    10

    View full-size slide

  11. 00:09:98sec
    これが本来のスピード
    でも、
    100倍は言いすぎだよね?
    言い過ぎました・・・
    11

    View full-size slide

  12. 12月時の
    コンパイルスピード
    12
    1


    ド修


    5分
    2












    5分
    3











    5分
    合計約15分
    約900秒ロス
    9sec×100 = 900sec

    View full-size slide

  13. というわけで
    GAEでGoはいいぞ
    GAE
    ● 思ってたより安い
    ● SSLがついてる
    ● 独自ドメイン設定も
    すごく簡単
    ● F/Wがすごく便利
    ● Stackdriverも便利
    14
    Go
    ● 想像以上に、作りやすい
    ● すげー早い
    ● ドキュメントが少ない
    ● やってる人もまだ少ない
    ● 1.10〜キャッシュビルドが使えるように
    なった

    View full-size slide

  14. デモ
    します
    15
    コード総数
     12,000行
    ファイル数
     80ファイル
    実際の画面

    View full-size slide

  15. Thanks!
    ご清聴ありがとうございました
    You can find me at:
    ● @senoue
    ● @hiromasa.senoue
    ● https://github.com/Senoue/vm-titles
    Go1.11とG01.9の環境を公開してます
    16

    View full-size slide