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

gree-techtalk-0123-TakumaYoshida.pdf

Takuma Yoshida
January 24, 2013
1.6k

 gree-techtalk-0123-TakumaYoshida.pdf

Takuma Yoshida

January 24, 2013
Tweet

Transcript

  1. Copyright  (C)  2013  DeNA  Co.,Ltd.  All  Rights  Reserved.  
    GitHub:e運⽤用錬⾦金金術!?  
    GREE  Tech  Talk:  
                 GitHub:E  Casual  Talk  
    Jan  23,  2013  
    Name  :  Takuma  Yoshida  
    Network&SecurityGr,  IT  PlaBorm  Dept  
    DeNA  Co.,  Ltd.    

    View Slide

  2. Copyright  (C)  2013  DeNA  Co.,Ltd.  All  Rights  Reserved.  
    2  
    ⾃自⼰己紹介  
    w Takuma  Yoshida  
    r %F/" *OGSB&OHJOFFS

    r 新卒⼊入社
    w 1BZHFOU
    w +*3"$POqVFODF
    w (JU)VC&
      〜~現在
        導⼊入・運⽤用(インフラ、アプリ)を担当

    View Slide

  3. Copyright  (C)  2013  DeNA  Co.,Ltd.  All  Rights  Reserved.  
    3  
    GitHubとは?  便便利利な使い⽅方は?  
    (JU)VCの使い⽅方の話は触れませんN @@
    N
    ごめんなさい

    View Slide

  4. Copyright  (C)  2013  DeNA  Co.,Ltd.  All  Rights  Reserved.  
    4  
      (JU)VC&を導⼊入するまでは%F/"での
    ソースコード管理理はこのような感じでした

    View Slide

  5. Copyright  (C)  2013  DeNA  Co.,Ltd.  All  Rights  Reserved.  
    5  
    GitHub:E  導⼊入前  

    View Slide

  6. Copyright  (C)  2013  DeNA  Co.,Ltd.  All  Rights  Reserved.  
    6  
      (JU)VC&を導⼊入してみると・・・

    View Slide

  7. Copyright  (C)  2013  DeNA  Co.,Ltd.  All  Rights  Reserved.  
    7  
    GitHub:E  導⼊入後  

    View Slide

  8. Copyright  (C)  2013  DeNA  Co.,Ltd.  All  Rights  Reserved.  
    8  
    (JU)VC&を中⼼心とした
    • アプリ開発リリース障害対応
    • プロジェクト管理理
    • エンジニア間コミュニケーション
        が、いつの間にか出来てしまった・・・

    View Slide

  9. Copyright  (C)  2013  DeNA  Co.,Ltd.  All  Rights  Reserved.  
    9  
    これは凄く快適な開発体系のつでは?
    と思ってます・・・

    View Slide

  10. Copyright  (C)  2013  DeNA  Co.,Ltd.  All  Rights  Reserved.  
    10  
    しかし!!
    裏裏を返すと、(JU)VC&に障害がおきると・・・

    View Slide

  11. Copyright  (C)  2013  DeNA  Co.,Ltd.  All  Rights  Reserved.  
    11  
    致命的!!

    View Slide

  12. Copyright  (C)  2013  DeNA  Co.,Ltd.  All  Rights  Reserved.  
    12  
    だからこそ・・・
    • ⼤大規模で(JU)VC&を運⽤用するコツは?
    • バックアップどうするの?
    • セキュリティは?
    ・・・ちゃんと運⽤用するなら⼤大事ですよね?

    View Slide

  13. Copyright  (C)  2013  DeNA  Co.,Ltd.  All  Rights  Reserved.  
    13  
    そこで本題・・・
    (JU)VC&  運⽤用錬⾦金金術!?

    View Slide

  14. Copyright  (C)  2013  DeNA  Co.,Ltd.  All  Rights  Reserved.  
    14  
    GitHub:E  の中⾝身  
    MySQL Redis Memcached
    Nginx
    Unicorn
    git
    Thin  
    Service  Hook
    Solr  
    Search
    Chef  
    Server  SeLng,  
    upgrader
    /data/repositories  
    Sorce  data  
    Ubuntu  
    OVAϑΝΠϧ
    ͱͯ͠
    VMwareϗε
    τʹσϓϩ
    Π

    View Slide

  15. Copyright  (C)  2013  DeNA  Co.,Ltd.  All  Rights  Reserved.  
    15  
    GitHub:E  in  DeNA  
    インスタンス構成  
    • "DUJWFr$PMETUBOECZ構成(%3)  
    • 7.XBSF&49J()&  

    View Slide

  16. Copyright  (C)  2013  DeNA  Co.,Ltd.  All  Rights  Reserved.  
    16  
    GitHub:EをDeNAで運⽤用して思ったこと  
    4FSWFSの負荷はそれほど気にならない  
    • メモリは(あれば0,
    • %JTLJPもネックにはならない L4"4

    • *"4FSWFS台で運⽤用可能  
    /8的な負荷もそれほど気にならない    
    • 激しい利利⽤用帯でも/8的に帯域圧迫はない  
    • (#単位のCJOBSZ動画などは他ツール推奨  

    View Slide

  17. Copyright  (C)  2013  DeNA  Co.,Ltd.  All  Rights  Reserved.  
    17  
    課題  
    冗⻑⾧長構成が取りにくい  
    • 07"パッケージとして提供されるので、
    ()&の中⾝身をカスタマイズできない  
    • (JU)VC社は7.XBSF)"を推奨している
    が、⾼高い 5P5
    &()&⾃自体の冗⻑⾧長にはなら
    ないのであまり意味がない  
    • 3PPU権限と気合があればできるかも?
      (が、(JU)VC社に怒怒られるので⾃自⼰己責任で・・・)

    View Slide

  18. Copyright  (C)  2013  DeNA  Co.,Ltd.  All  Rights  Reserved.  
    18  
    GitHub:Eを安定運⽤用する第⼀一歩  
    "ENJOユーザでTTIログイン(すべてはここか
    ら)  
    • %FGBVMUでは仮想マシンにTTIログイン不不可  
    • (JU)VC&では"ENJO権限で様々なオペ
    レーションコマンドが提供されている  
    • Version  11.10.260まではこれができず、
    魔術師的運⽤用で寝れない⽇日々・・・・
    まさしく⿊黒歴史 ;Т;`
     

    View Slide

  19. Copyright  (C)  2013  DeNA  Co.,Ltd.  All  Rights  Reserved.  
    19  
    設定は.BOBHFNFOU$POTPMFから簡単にできる
    IUUQTTVQQPSUFOUFSQSJTFHJUIVCDPNFOUSJFTTTI
    BDDFTT

    View Slide

  20. Copyright  (C)  2013  DeNA  Co.,Ltd.  All  Rights  Reserved.  
    20  
    でも欲を出すと・・・  
    3■▲★権限欲しい・・・  

    View Slide

  21. Copyright  (C)  2013  DeNA  Co.,Ltd.  All  Rights  Reserved.  
    21  
    SSHが使えるようになったら  
    Comand-­‐line  UOliOes  を使い倒す
    hPps://support.enterprise.github.com/entries/21254402-­‐command-­‐line-­‐uOliOes  

    View Slide

  22. Copyright  (C)  2013  DeNA  Co.,Ltd.  All  Rights  Reserved.  
    22  
    Comand-­‐line  UOliOesが使えるようになったら  
    領領域をまず拡張しましょう  
    • %FGBVMU(#  
    • SFTRVFMPH(クエリログ)
        アクセス増で爆発  領領域すぐ枯渇
                    死亡  
    • ghe-­‐grow-­‐root  コマンドでオンライン拡張  
    • VMware  ClientでGHE仮想マシンに割り当て
    たDisk容量量分⽬目⼀一杯拡張してくれる  

    View Slide

  23. Copyright  (C)  2013  DeNA  Co.,Ltd.  All  Rights  Reserved.  
    23  
    他にもこれは知ってほしい  
    ログを⾒見見る  
    • ghe-­‐logs-­‐tail  
    • オプションでアプリ、認証、DB、Chef、
    systemログなどを個別に参照できる  
    • トラブル時に必須  

    View Slide

  24. Copyright  (C)  2013  DeNA  Co.,Ltd.  All  Rights  Reserved.  
    24  
    ではバックアップはどうするの?  

    View Slide

  25. Copyright  (C)  2013  DeNA  Co.,Ltd.  All  Rights  Reserved.  
    25  
    バックアップ⽅方法1  
    7.XBSF4OBQTIPU  
    • おすすめしない  
    • ⾃自動化⼤大変  
    • 負荷的に厳しい:snapshot時,load15  ぐらい  
    • ディスク枯渇の原因になりうる
    ⼀一度度Snapshotで静⽌止点を取るとVmwareホストマシン上に
    ***.delta.vmdkファイル(静⽌止点からの差分データ)が作成さ
    れ、次第に肥⼤大し、放おっておくと死滅する  

    View Slide

  26. Copyright  (C)  2013  DeNA  Co.,Ltd.  All  Rights  Reserved.  
    26  
    バックアップ⽅方法2  
    Comand-­‐line  UOliOesを使う  
    • おすすめ(以下6種のコマンドでOK)  
    • ghe-­‐export-­‐mysql  &  ghe-­‐import-­‐mysql  
    • ghe-­‐export-­‐redis  &  ghe-­‐import-­‐redis  
    • ghe-­‐export-­‐repositories    
                                                               &  ghe-­‐import-­‐repositories  
     (使い⽅方はDocumentを参照して下さい)  

    View Slide

  27. Copyright  (C)  2013  DeNA  Co.,Ltd.  All  Rights  Reserved.  
    27  
    ただし、、、これらのコマンドにも罠はある  
            コマンドの中⾝身を⾒見見てみると・・・  

    View Slide

  28. Copyright  (C)  2013  DeNA  Co.,Ltd.  All  Rights  Reserved.  
    28  
    ghe-­‐export-­‐mysql  
    mysqldump  \  
       -­‐u  root  \  
       -­‐-­‐hex-­‐blob  \  
       github_enterprise  

    View Slide

  29. Copyright  (C)  2013  DeNA  Co.,Ltd.  All  Rights  Reserved.  
    29  
    このままだとバッチ回すたびに5BCMFMPDL
    8FC閲覧時にVOJDPSOがUJNFPVUする

                ではどうしたらいいのか・・・  

    View Slide

  30. Copyright  (C)  2013  DeNA  Co.,Ltd.  All  Rights  Reserved.  
    30  
    new-­‐ghe-­‐export-­‐mysql  
    mysqldump  \  
       -­‐u  root  \  
       -­‐-­‐hex-­‐blob  \  
     -­‐-­‐single-­‐transac]on  \  
       github_enterprise  

    View Slide

  31. Copyright  (C)  2013  DeNA  Co.,Ltd.  All  Rights  Reserved.  
    31  
    ghe-­‐export-­‐repositories
    tar  \  
       -­‐cf  -­‐  \  
       -­‐C  /data  \  
       repositories  
    w レポジトリディレクトリをUBSで固めてるだけ  
    w TDQとかで転送すると時間掛かり過ぎる 5P5

    w なので、これは使ってません
    (STZODしてます。S˒˙˕権限必要です。汗)  

    View Slide

  32. Copyright  (C)  2013  DeNA  Co.,Ltd.  All  Rights  Reserved.  
    32  
    ではセキュリティはどうするの?  

    View Slide

  33. Copyright  (C)  2013  DeNA  Co.,Ltd.  All  Rights  Reserved.  
    33  
    いつ誰がpull/push/cloneしたか
    w HIFMPHTUBJMrB
    w いつ誰がどこから、どのリポジトリにQVMM
    QVTIDMPOFしているか監視できる
    w HIFTVQQPSUCVOEMF
    w ログ周り⼀一式を圧縮保存できる
    w (JU)VC&のログは⽇日間でローテーションされ
    るので、外部4FSWFSからバッチで定期取得して
    ます  

    View Slide

  34. Copyright  (C)  2013  DeNA  Co.,Ltd.  All  Rights  Reserved.  
    34  
    ユーザー退職時の処理
    • ghe-­‐user-­‐suspend  
    • 特定ユーザを利利⽤用停⽌止にすることが可能  
    • 社内系のLDAP(Ac]ve  Directory)と連携さ
    せれば、退職時に⾃自動的にGitHub:Eへの
    Accessを拒否出来て、セキュリティ的にも
    Good  

    View Slide

  35. Copyright  (C)  2013  DeNA  Co.,Ltd.  All  Rights  Reserved.  
    35  
    まとめ  

    View Slide

  36. Copyright  (C)  2013  DeNA  Co.,Ltd.  All  Rights  Reserved.  
    36  
    GitHub:Eを安定運用するには
    w (JU)VC&の仕組みを⾒見見る
    w $PNNBOEMJOF6UJMJUJFTを使い倒す
      (中⾝身も把握する)
    w 0DUPDBUを愛でる  

    View Slide

  37. Copyright  (C)  2013  DeNA  Co.,Ltd.  All  Rights  Reserved.  
    37  
    &/%

    View Slide