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

    View full-size slide

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

    View full-size slide

  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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  9. 伝えたいこと

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  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/

    View full-size slide

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

    View full-size slide

  14. 1. 入門する

    View full-size slide

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

    View full-size slide

  16. 2. 会社で使う

    View full-size slide

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

    View full-size slide

  18. 3. 組織に普及させる

    View full-size slide

  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での登壇・運営

    View full-size slide

  20. 4. 開発を進める

    View full-size slide

  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.)

    View full-size slide

  22. 5. 運用を最適化する

    View full-size slide

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

    View full-size slide

  24. Manage / Secure / Defend

    View full-size slide

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

    View full-size slide

  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

    View full-size slide

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

    View full-size slide

  28. 番外. GitHubで使う

    View full-size slide

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

    View full-size slide

  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

    View full-size slide

  31. 最後に...

    View full-size slide

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

    View full-size slide

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

    View full-size slide