Slide 1

Slide 1 text

Everyone can use, everyone can contribute! @tnir - 2019-02-21 - GitLab Women #2 @Osaki Kitchen, Oisix ra Daichi

Slide 2

Slide 2 text

@tnir Takuya Noguchi Tw: @tn961ir ● https://gitlab.com/tnir ● https://tnir.gitlab.io/

Slide 3

Slide 3 text

tnir ● Core Team, GitLab (アクティブ開発者。世界で6人) ● GitLab Tokyoオーガナイザー ● GitLab JP共同オーガナイザー ● Docker Tokyo共同オーガナイザー ● Cloud Native Ambassador, CNCF ● OSS contributors of ○ kubernetes/website, kubernetes-docs-ja ○ Django / django-ja ○ pandas, etc. ● ♡ multi-cloud providers

Slide 4

Slide 4 text

tnir (updated) ● 最近、GitLab EEUユーザになりました。 ● 1,188 USD/user/mo。 ● 正確にはGitLab.com Gold ● パブリックなら誰でも使えます。 ● 苦労しつつEEU新機能(DevOps)を楽しめます。 ● →仲間募集中! ● GitLab Meetup (Inc.からのスポンサー),

Slide 5

Slide 5 text

事前アンケート ● Git入門 ● GitLab入門 ● Git/GitLabの社内普及 ● Kubernetesクラスタ・アプリデプロイ

Slide 6

Slide 6 text

事前アンケート ● Git入門 → 湊川さんの書籍購入お願いします ● GitLab入門 ● Git/GitLabの社内普及 ● Kubernetesクラスタ・アプリデプロイ

Slide 7

Slide 7 text

事前アンケート ● Git入門 ● GitLab入門 → 北山さんの書籍購入お願いします ● Git/GitLabの社内普及 ● Kubernetesクラスタ・アプリデプロイ

Slide 8

Slide 8 text

事前アンケート ● Git入門 ● GitLab入門 → これから特徴を説明します ● Git/GitLabの社内普及 ● Kubernetesクラスタ・アプリデプロイ

Slide 9

Slide 9 text

伝えたいこと

Slide 10

Slide 10 text

Everyone can ○○ ● Everyone can use, everyone can contribute

Slide 11

Slide 11 text

Everyone can ○○ ● Everyone can use, everyone can contribute

Slide 12

Slide 12 text

Everyone can contribute ● GitLab Strategyの一つ ● OSS: 誰でもコントリビューションできる ○ GitLabアプリ(Ruby on Rails、Go) ○ フロントエンド(Vue.js、SCSS) ○ ドキュメンテーション( Markdown) ○ 翻訳(Crowdin) ○ CD(継続的デリバリ) (Helm chart) ● コントリビューター数は2,500人以上(推定) ● https://about.gitlab.com/company/strategy/

Slide 13

Slide 13 text

Everyone can ○○ ● Everyone can use, everyone can contribute

Slide 14

Slide 14 text

1. 入門する

Slide 15

Slide 15 text

誰でも入門できる ● GitLab.comがある。 ○ GitHub.comユーザも非ユーザも簡単にサインアップ可能。 ● プライベートでも無料!(⇔GitHub, Azure DevOps) ○ 招待人数無制限(4人以上での共同作業も可能) ○ グループ(GH: Organization相当)も無制限に作れる ○ 組織に合わせてネストもできる( GH: Team相当) ○ Pages(静的ホスティング)も独自ドメインで利用可能 ● GitLab Issues (タスク管理) / Wiki ○ Jira不要? Confluence不要? ○ タスク管理専用のGitLabプロジェクトの作り方 ○ Issue Boardも使ってカンバン回せる

Slide 16

Slide 16 text

2. 会社で使う

Slide 17

Slide 17 text

会社でも入門できる ● Self-hostingで自社インフラ基盤orイントラに配備可! ○ 無料で始められる。除インフラ費用(1万円/月) ○ Community EditionまたはEE Coreから始められる ○ (ただし運用担当者必要) ● Self-hostingしたくない場合もGitLab.comがある ○ サポートも利用可能(Bronze+) ○ 必要になったら、SSOもできる(Sliver+) ● Self-hostingの場合、最新版にアップグレード! ○ 1ヶ月遅れがオススメ(今月 11.8リリース→11.7.xに上げる)

Slide 18

Slide 18 text

3. 組織に普及させる

Slide 19

Slide 19 text

仲間を広める ● SubversionやMS TFSからのGit移行 ● Excel、Jira、BacklogからGitLab Issuesへ移行 ○ /gitlab-tokyo ← グループ(例) ■ /gitlab-tokyo  ← イシュー専用プロジェクト ■ /website  ← HTML/CSS/JSファイル ■ /store  ← Node.jsアプリケーション ● GitLab Tokyo, GitLab.JPへの参加・登壇 ● GitLab Womenでの登壇・運営

Slide 20

Slide 20 text

4. 開発を進める

Slide 21

Slide 21 text

バージョン管理と継続的テスト ● Merge Request (GH: PR相当) を使う ○ masterブランチだけ使わない ○ Protected branchesでmasterへの直接コミットを禁止する ○ GitLab Workflow、GitHub Workflow ● GitLab CIを活用する ○ Jenkinsからの移行 ○ テンプレートで始めよう( 主要な言語のテンプレート , デモ) ○ Job、Stage、条件(変数、ブランチ、タグ) ○ Runnerの準備(.comなら不要): Docker executorオススメ ○ Linterなどの活用(rubocop、golangci-lint etc.)

Slide 22

Slide 22 text

5. 運用を最適化する

Slide 23

Slide 23 text

DevOps機能 ● 「Plan・Create・Verifyのその先」 ● 外部ツールの(稟議・)導入・連携不要 ● Review Apps(MRの中身をデプロイして確認) ● Package(Dockerイメージ、NPM、Helm chart) ● Release(dpl、Kubernetes、Helm) ● Configure(環境変数 cf. 12-factor app、機能フラグ) ● Monitor(リリース直後のメトリクス監視)

Slide 24

Slide 24 text

Manage / Secure / Defend

Slide 25

Slide 25 text

Auto DevOps ● YAML設定なしにビルド〜テスト(各種)〜ビルド〜モニタリ ングしてくれる ● Kubernetes必須、コンテナ前提 ○ コンテナ知識は不要 ○ 12-factor app準拠のアプリケーションを書くだけ ○ まずはマネージドKubernetesで試そう ● カスタマイズ可能 ○ Web UI上の変数だけで設定可能 ○ アプリケーションへの変数引き渡しも可能に : K8S_SECRET_* ● https://about.gitlab.com/product/auto-devops/

Slide 26

Slide 26 text

カスタムRegistryを使う .gitlab-ci.yml: # .script - SOURCE=hello - REGISTRY=custom-registry.example.com - TARGET=${REGISTRY}/hello - docker login -u ${DOCKER_USER} -p ${DOCKER_PW} ${REGISTRY} - docker tag hello ${TARGET} - docker push $TARGET

Slide 27

Slide 27 text

Kubernetesクラスタ連携 ● GKEによりゼロベースでクラスタ作成&連携可能 ○ パラメータが設定できないので、実用には向かない( 11.7現在) ● 別の手法でKubernetesクラスタを用意して連携する ○ gcloud CLI, eksctl, az CLI, Rancher, Terraform, Ansible etc. ● Managed applicationからHelm Tillerを入れる(任意) ○ →Helm chartが気軽に使えます!!! ● EKS,AKS, IKSのワンクリッククラスタ作成はこれから!!

Slide 28

Slide 28 text

番外. GitHubで使う

Slide 29

Slide 29 text

GitHubユーザとして使う ● GitHub 公開repoをレジュメとして使うトレンド ● コード(Git)はGitHub.comに置く ● CI/CDをGitLab CI(.com)で行なう ● 100並列くらいで無制限にCI実行可能 ○ CircleCI (4)、Azure Pipelines (10) ● コンテナイメージビルド後もRegistry利用可能 ● Kubernetes連携すればデプロイ・リリースさえも可能 →仕事とプライベートどちらも同じインターフェイスで行ける!

Slide 30

Slide 30 text

GitLab Contribute 2019 gitlab.com/gitlabcontribute GitLab Summitsが名称変更 誰でも参加できます。 2019-05-08/05-14 // ニューオリンズ(USA) 参加費: 2,499 USD Photo: CC BY-SA 2.0 Pedro Szekely

Slide 31

Slide 31 text

最後に...

Slide 32

Slide 32 text

GitLabホスティング ● GitLab (self-hosting&SaaS) のコンサルティング・保守業 務やっています ● →懇親会でご相談ください Tw: @tn961ir

Slide 33

Slide 33 text

References ● https://about.gitlab.com/ ● https://about.gitlab.com/product/continuous-integration/ ● https://about.gitlab.com/product/auto-devops/