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

Everyone can use, everyone can contribute!

Sponsored · Ship Features Fearlessly Turn features on and off without deploys. Used by thousands of Ruby developers.
Avatar for tnir 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/

Avatar for tnir

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連携すればデプロイ・リリースさえも可能 →仕事とプライベートどちらも同じインターフェイスで行ける!