「GitLabの実践的な運用」聴講レポート #gitlabjp

資料

qiita.com

自己紹介

  • @catatsuy
  • 会社のアドベントカレンダーで運用方法を公開した
  • Pixivで働いている

  • 個人的には、以前のJTF2015で登壇している印象が強いです。

nihonbuson.hatenadiary.jp

GitLabのインストール

  • インストールはそんなに難しくない

セットアップサーバについて

  • グローバルIPを持つサーバー上に立てることが前提
  • サーバーは1台であることが前提
  • 複数台構成は現実的ではない
    • DBは別IPでもOK

GitLab.comのバックアップ体制

  • 今回問題になったのはあくまでもGitLab.comの問題

GitLabの持っているデータ

  • Radisは最悪吹っ飛んでも問題ない
    • セッションとかキャッシュしか持ってない

GitLabのデータベース

RailsMySQL

  • MySQLの知見がない限りMySQLを使わないほうが良い
    • ハハパパ問題とか

GitLabのバックアップ

  • bundle exec rake gitlab:backup:createでバックアップできる
    • git db create はmysqldumpとかをしているだけ
    • git bumdle createを叩いて保存しているだけ
    • git upload create はファイルをコピーしてtarで固めているだけ
  • 最終的には1つのtarファイルに纏められる
  • 様々なサーバにバックアップファイルを送ることも可能
    • cronしたり
      • 環境変数でcron=1を設定するとエラーしていない場合にログ出力しないことが可能

MySQLのバックアップ

  • dump以外にも、停止してdata_dirをコピーしたりする手段がある
  • リストアも可能

バージョンアップ

  • バージョンアップにはDBのバックアップを録るように書かれている
  • GitLabのバージョンアップで関わるのはDBぐらい
  • 一気にVerUpを上げることも可能
  • 一部、特殊な作業が必要

無停止VerUp

  • ほぼ無理
  • master,slaveでも可能だが手間がかかる
  • アプリケーション起動中に行うことはできない
  • ある程度短くすることは可能だがrakeの時は停止する必要あり

最後に

  • ソースコードもシンプルなので動きを追うことは比較的容易
  • 昔はGHEと呼ばれた時代もあったが、ソースコード公開によるメリットが大きい