おもしろき こともなき世を おもしろく

でぶおぷすアーキテクトのつぶやき

「GitLab実践ガイド」出版しました。

2018.02 このたび乗り鉄実践ガイド -世界の車窓から- 」を執筆いたしましたっ!!
ポエムをQiitaに書くのも微妙なので、数年前に作ったはてなブログアカウントを掘り起こしました。
と、いうことでこんにちはー。北山晋吾です。
書店で見ていただくのが一番早いのですが、改めてどういったものを執筆したのかを紹介します。

概要

GitLab POP

ImpressさんTopのPOPにしていただきましたっ!! .oO (ありがとうございます
ここに紹介頂いているとおりなのですが、DevOpsにおけるアプリケーション開発を、GitLabで行うための方法を紹介しています。   

↓ご購入はこちらから

目次

本書を分けているわけではないのですが、おおよそ2部構成のイメージで作っています。

【第1部】 GitLabの基礎 (1-3章)
1章から3章まではGitLabを利用する上で最低限知っておくべき利用方法です。 ここまでがいわゆるDevOpsにおけるVCS(Version Control System)のお話。

【第2部】 GitLabの実践 (4-7章)
4章から7章では、GitLabに付随されている機能をDevOpsのデプロイメントパイプラインに従って構成しています。つまり、DevOpsツールチェーンをGitLabで実現するお話です。

第1章 GitLab が目指す開発スタイル

まずはDevOpsにおけるGitLabの立ち位置と、GitLabが必要とされる根本的な理念についてです。

  • 1-1 DevOps とチーム開発
    • 1-1-1 組織のコラボレーション
    • 1-1-2 継続的改善を実現する開発ツール
  • 1-2 GitLab とは
    • 1-2-1 GitLab の歴史と開発コミュニティ
    • 1-2-2 GitLab Inc. のプロダクト
    • 1-2-3 GitLab CE の主な機能
    • 1-2-4 GitLab CE のメリット
    • 1-2-5 他のツールとの比較
    • 1-2-6 GitLab のユースケース
  • 1-3 まとめ

第2章 GitLab の導入

GitLabのインストールから管理までをざっと紹介です。GitLab運用者の方はココ必見!!のはず

  • 2-1 GitLab のアーキテクチャ
  • 2-2 GitLab CE のセットアップ
    • 2-2-1 インストールの準備
    • 2-2-2 本書の動作環境
    • 2-2-3 GitLab CE のインストール
    • 2-2-4 インストール中に起きる問題と対応
  • 2-3 GitLab CE の運用管理
    • 2-3-1 ディレクトリ構造と権限
    • 2-3-2 管理コマンドの利用
  • 2-4 まとめ

第3章 GitLab を使ってみよう

ここはGitLabというよりGitのお話です。Gitのローカルリポジトリとリモートリポジトリの関係性と、最低限のVCSの使い方が書いています。もちろんGitLabで行っていますが、個々の操作は基本的にはGitHubでも同じです。
この章の内容がつらつらと書いてある本と思われがちですが、ココを重視したいわけじゃないので、意外とさらっと書いてます。

  • 3-1 GitLab を利用する準備
    • 3-1-1 ユーザーの管理
    • 3-1-2 グループの管理
    • 3-1-3 プロジェクトの管理
  • 3-2 Git の基礎
    • 3-2-1 Git の概念
    • 3-2-2 Git クライアントのインストール
    • 3-2-3 Git の基本操作
  • 3-3 Git によるチーム開発
    • 3-3-1 ブランチの利用
    • 3-3-2 リモートリポジトリの活用
  • 3-4 まとめ

第4章 開発ワークフロー

チャットツールはSlackが有名ですが、実はオンプレ用に構築するチャットツールにMattermostというのがあります。それとGitLabを連携することにより、課題チケットをチャットから作ることが出来ます。いわゆるチャットOpsをGitLabでやっちゃうぜ-っていうお話です。

  • 4-1 アイデアの共有
    • 4-1-1 GitLab Mattermost
  • 4-2 課題の管理と開発計画
    • 4-2-1 Issue Tracker
    • 4-2-2 Issue Board
  • 4-3 開発フローとコード管理
    • 4-3-1 Merge Request
    • 4-3-2 GitLab Flow
  • 4-4 まとめ

第5章 継続的インテグレーション

いわゆるJenkins Jobです。密かにGitLabってCIツールがメインになってきてるんですよねー。

  • 5-1 継続的なビルドとテストの実施
    • 5-1-1 GitLab CI/CD Jobs
  • 5-2 まとめ

第6章 継続的デプロイ

もちろんCI出来たらCDできます。またDocker HubならぬContainer Registryが使えちゃいます。むりょうでっ!

  • 6-1 デプロイメントパイプラインの実現
    • 6-1-1 GitLab CI/CD Pipeline
    • 6-1-2 Review Apps
  • 6-2 コンテナイメージの管理
    • 6-2-1 GitLab Container Registry
  • 6-3 まとめ

第7章 フィードバック

何かと話題のPrometheusですね。Applicationパフォーマンスレビューは、もぅDevOpsに必須の連携になってきてますよー。終

  • 7-1 システムのパフォーマンス測定
    • 7-1-1 GitLab Prometheus
  • 7-2 アイデアからビジネスへ
    • 7-2-1 Cycle Analytics
    • 7-2-2 ConvDev Index
    • 7-2-3 Auto DevOps
  • 7-3 まとめ

ターゲット読者

Git初めてですという内容を掘り下げているわけではなく、チームでGitを使ってアプリケーション開発を行う方向けに解説をしています。
そのため、DockerやGitHubといったツールの概念は普通に出てくる感じです。

  • これからGitLabをチームに導入しようと検討している方
  • GitLabをGitのリモートリポジトリとしてしか利用できていない方
  • GitHubからGitLabに移行したいと考えている方
  • JenkinsからGitLab CI/CDに移行したいと考えている方
  • GitLabの古いバージョンを運用していて、最近の機能を知りたい方
    などなど

執筆の感想

編集者の土屋様を始め、いろいろな方々にレビューなどご協力いただきありがとうございました。この場をお借りして改めて、お礼申し上げます。

感想としては、GitLab機能大杉ww
書いている途中でも1ヶ月に一度バージョンアップが行われるので執筆した後の校正がつらたん…
とはいえ、本には事細かなバージョンに追随するのではなく、そのツールのあるべき姿。つまり、ツールのビジョンに沿った機能紹介を優先するものなので、細かな機能追加なのか、ビジョンと密接に関係する機能なのかを見極めることが重要なのかなと思います。
GitLabで言うなれば、

「誰しもがデジタルコンテンツを共有し、チームが協力しあってより良い成果を早く実装する」

ための機能を執筆するということ。そのため本書ではDevOpsツールチェーンと密接に関わる機能を、今回は重視して取り上げています。
GitLabといえばGitのWebインターフェイスでありGitHubOSSオンプレ版くらいだと思われがちですが…GitLabは現在こんなに変わってますよっ。という点を意識して今回執筆を行いました。

販促

今回出版社の方々にご無理をお願いして、1章無料公開をしていただきましたー。
とりあえず今のGitLabの面白さを知っていただき、DevOpsにおけるGitLabの位置づけやGitHubとの違いなどをみて、興味を持っていただければと思います。
impress.tameshiyo.me

もしGitLabについて興味があれば、社内外の勉強会やら、イベントなどでお話しますのでお気軽に呼んでくださーい。(twitter DMなど…

最後に

テレフォンショッピングならここから押し売り商法が始まるのですが、実際は業務で利用している方やこれから利用したいと思っている方が必要になるので、バンバン買ってください!!というよりも、少しでもDevOpsやCI/CDが世の中に浸透していくためのコンテンツになれば嬉しい限りです。
DevOpsを社内にも導入したいんだけどツールが多すぎて、どの組合せが最適なのかとお悩みの方は、是非一度GitLabの導入を試してみてはいかがでしょー。

ではー。