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

Everyone can use, everyone can contribute!

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/

tnir

February 21, 2019
Tweet

More Decks by tnir

Other Decks in Technology

Transcript

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

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

    Gold • パブリックなら誰でも使えます。 • 苦労しつつEEU新機能(DevOps)を楽しめます。 • →仲間募集中! • GitLab Meetup (Inc.からのスポンサー),
  4. 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/
  5. 誰でも入門できる • GitLab.comがある。 ◦ GitHub.comユーザも非ユーザも簡単にサインアップ可能。 • プライベートでも無料!(⇔GitHub, Azure DevOps) ◦

    招待人数無制限(4人以上での共同作業も可能) ◦ グループ(GH: Organization相当)も無制限に作れる ◦ 組織に合わせてネストもできる( GH: Team相当) ◦ Pages(静的ホスティング)も独自ドメインで利用可能 • GitLab Issues (タスク管理) / Wiki ◦ Jira不要? Confluence不要? ◦ タスク管理専用のGitLabプロジェクトの作り方 ◦ Issue Boardも使ってカンバン回せる
  6. 会社でも入門できる • Self-hostingで自社インフラ基盤orイントラに配備可! ◦ 無料で始められる。除インフラ費用(1万円/月) ◦ Community EditionまたはEE Coreから始められる ◦

    (ただし運用担当者必要) • Self-hostingしたくない場合もGitLab.comがある ◦ サポートも利用可能(Bronze+) ◦ 必要になったら、SSOもできる(Sliver+) • Self-hostingの場合、最新版にアップグレード! ◦ 1ヶ月遅れがオススメ(今月 11.8リリース→11.7.xに上げる)
  7. 仲間を広める • 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での登壇・運営
  8. バージョン管理と継続的テスト • 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.)
  9. DevOps機能 • 「Plan・Create・Verifyのその先」 • 外部ツールの(稟議・)導入・連携不要 • Review Apps(MRの中身をデプロイして確認) • Package(Dockerイメージ、NPM、Helm

    chart) • Release(dpl、Kubernetes、Helm) • Configure(環境変数 cf. 12-factor app、機能フラグ) • Monitor(リリース直後のメトリクス監視)
  10. Auto DevOps • YAML設定なしにビルド〜テスト(各種)〜ビルド〜モニタリ ングしてくれる • Kubernetes必須、コンテナ前提 ◦ コンテナ知識は不要 ◦

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

    CLI, eksctl, az CLI, Rancher, Terraform, Ansible etc. • Managed applicationからHelm Tillerを入れる(任意) ◦ →Helm chartが気軽に使えます!!! • EKS,AKS, IKSのワンクリッククラスタ作成はこれから!!
  13. GitHubユーザとして使う • GitHub 公開repoをレジュメとして使うトレンド • コード(Git)はGitHub.comに置く • CI/CDをGitLab CI(.com)で行なう •

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