Pro Yearly is on sale from $80 to $50! »

Everyone can use, everyone can contribute!

8c5062689b241827e7532be41ff19e20?s=47 tnir
February 21, 2019

Everyone can use, everyone can contribute!

GitLab Women #2 (GitLab Meetup Tokyo #15)
2019-02-21 @ Osaki Kitchen, Oisix ra Daichi

https://gitlab-jp.connpass.com/event/111427/

8c5062689b241827e7532be41ff19e20?s=128

tnir

February 21, 2019
Tweet

Transcript

  1. Everyone can use, everyone can contribute! @tnir - 2019-02-21 -

    GitLab Women #2 @Osaki Kitchen, Oisix ra Daichi
  2. @tnir Takuya Noguchi Tw: @tn961ir • https://gitlab.com/tnir • https://tnir.gitlab.io/

  3. 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
  4. tnir (updated) • 最近、GitLab EEUユーザになりました。 • 1,188 USD/user/mo。 • 正確にはGitLab.com

    Gold • パブリックなら誰でも使えます。 • 苦労しつつEEU新機能(DevOps)を楽しめます。 • →仲間募集中! • GitLab Meetup (Inc.からのスポンサー),
  5. 事前アンケート • Git入門 • GitLab入門 • Git/GitLabの社内普及 • Kubernetesクラスタ・アプリデプロイ

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

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

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

  9. 伝えたいこと

  10. Everyone can ◦◦ • Everyone can use, everyone can contribute

  11. Everyone can ◦◦ • Everyone can use, everyone can contribute

  12. 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/
  13. Everyone can ◦◦ • Everyone can use, everyone can contribute

  14. 1. 入門する

  15. 誰でも入門できる • GitLab.comがある。 ◦ GitHub.comユーザも非ユーザも簡単にサインアップ可能。 • プライベートでも無料!(⇔GitHub, Azure DevOps) ◦

    招待人数無制限(4人以上での共同作業も可能) ◦ グループ(GH: Organization相当)も無制限に作れる ◦ 組織に合わせてネストもできる( GH: Team相当) ◦ Pages(静的ホスティング)も独自ドメインで利用可能 • GitLab Issues (タスク管理) / Wiki ◦ Jira不要? Confluence不要? ◦ タスク管理専用のGitLabプロジェクトの作り方 ◦ Issue Boardも使ってカンバン回せる
  16. 2. 会社で使う

  17. 会社でも入門できる • Self-hostingで自社インフラ基盤orイントラに配備可! ◦ 無料で始められる。除インフラ費用(1万円/月) ◦ Community EditionまたはEE Coreから始められる ◦

    (ただし運用担当者必要) • Self-hostingしたくない場合もGitLab.comがある ◦ サポートも利用可能(Bronze+) ◦ 必要になったら、SSOもできる(Sliver+) • Self-hostingの場合、最新版にアップグレード! ◦ 1ヶ月遅れがオススメ(今月 11.8リリース→11.7.xに上げる)
  18. 3. 組織に普及させる

  19. 仲間を広める • 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での登壇・運営
  20. 4. 開発を進める

  21. バージョン管理と継続的テスト • 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.)
  22. 5. 運用を最適化する

  23. DevOps機能 • 「Plan・Create・Verifyのその先」 • 外部ツールの(稟議・)導入・連携不要 • Review Apps(MRの中身をデプロイして確認) • Package(Dockerイメージ、NPM、Helm

    chart) • Release(dpl、Kubernetes、Helm) • Configure(環境変数 cf. 12-factor app、機能フラグ) • Monitor(リリース直後のメトリクス監視)
  24. Manage / Secure / Defend

  25. Auto DevOps • YAML設定なしにビルド〜テスト(各種)〜ビルド〜モニタリ ングしてくれる • Kubernetes必須、コンテナ前提 ◦ コンテナ知識は不要 ◦

    12-factor app準拠のアプリケーションを書くだけ ◦ まずはマネージドKubernetesで試そう • カスタマイズ可能 ◦ Web UI上の変数だけで設定可能 ◦ アプリケーションへの変数引き渡しも可能に : K8S_SECRET_* • https://about.gitlab.com/product/auto-devops/
  26. カスタム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
  27. Kubernetesクラスタ連携 • GKEによりゼロベースでクラスタ作成&連携可能 ◦ パラメータが設定できないので、実用には向かない( 11.7現在) • 別の手法でKubernetesクラスタを用意して連携する ◦ gcloud

    CLI, eksctl, az CLI, Rancher, Terraform, Ansible etc. • Managed applicationからHelm Tillerを入れる(任意) ◦ →Helm chartが気軽に使えます!!! • EKS,AKS, IKSのワンクリッククラスタ作成はこれから!!
  28. 番外. GitHubで使う

  29. GitHubユーザとして使う • GitHub 公開repoをレジュメとして使うトレンド • コード(Git)はGitHub.comに置く • CI/CDをGitLab CI(.com)で行なう •

    100並列くらいで無制限にCI実行可能 ◦ CircleCI (4)、Azure Pipelines (10) • コンテナイメージビルド後もRegistry利用可能 • Kubernetes連携すればデプロイ・リリースさえも可能 →仕事とプライベートどちらも同じインターフェイスで行ける!
  30. 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
  31. 最後に...

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

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