$30 off During Our Annual Pro Sale. View Details »

どっちを選ぶ?Azure DevOpsとGitHub

どっちを選ぶ?Azure DevOpsとGitHub

Microsoft が提供するDevOpsソリューションとしてAzure DevOpsとGitHubがあります。これから始められる方はどちらを使えばいいのか悩む場合もあるでしょう。
そんな方向けにどちらを使えばいいのか判断材料となるお話です。

KAMEGAWA Kazushi

October 29, 2022
Tweet

More Decks by KAMEGAWA Kazushi

Other Decks in Programming

Transcript

  1. どっちを選ぶ?
    Azure DevOps と GitHub
    かめがわ かずし(kkamegawa)

    View Slide

  2. Who am I?
    personal:
    name: KAMEGAWA Kazushi(Last-First)
    alias: kkamegawa
    community:
    MVP: Microsoft MVP for Developer Technologies (2009-)
    Users Group: Team Foundation Server Users Group
    URL: https://dev.azure.com/tfsug/tfsuginfo
    Blog:
    URL: https://kkamegawa.hatenablog.jp
    devblog radio: https://devblog.connpass.com/

    View Slide

  3. This contents based on 2022/10/31

    View Slide

  4. 概要比較 – 無料でどこまで使える?
    GitHub Azure DevOps
    料金 無料(※1) / 4$(月) / 21$(月)
    Pricing · Plans for every developer
    (github.com)
    5人までBasicは無料 / 6人目以降は6$(月)
    Azure DevOps Services の価格 | Microsoft Azure
    CI / CD 月毎に2000分無料
    (Windows/Linux/macOS)
    月毎に1800分無料(事前申請式)
    (Windows/Linux/macOS)
    パッケージ 500MB 2GB(デバッグシンボルも登録可能)
    ソースコード 無制限のレポジトリ(Git)
    • レポジトリが1GB以上になると警告が出る
    • Push上限は100MB/ファイル
    • 無料版のPrivateレポジトリへの招待は3名まで
    無制限のレポジトリ(Git/TFVC)
    • Gitには250GBの上限あり(全体では無制限)
    • Push上限は5GB/ファイル
    Git limits - Azure Repos | Microsoft Learn
    その他 パブリックレポジトリでは上位機能が使用可能
    • シークレットスキャン
    • コードスキャン
    • DependabotによるPR作成…等
    ほとんどのSaaSでは高いプランを契約しないと使
    えないID/セキュリティ機能が提供(※2)
    • 個人用MSアカウント/GitHubアカウント/Azure ADと
    のSSOが可能
    • Azure ADとのテナントと関連付けやセキュリティ機能
    と統合可能
    • Dependabot / シークレットスキャンがプレビュー開始
    (価格は未公表)
    ※2 Azure ADで認証している場合に限る
    ※ 1 プライベートレポジトリは3人まで

    View Slide

  5. エンタープライズ向け – 主にオンプレミス
    GitHub Azure DevOps
    料金 Enterprise Cloud(※1)
    ($21/user/月)
    5人まで無料。6人目から$6/user/month
    テスト機能を使う場合$52/user/month(※2)
    AzureサブスクリプションかTFSCAL
    無償版のExpress Edition有
    オンプレミス GitHub Enterprise Server
    EOLはほぼ1年
    GitHub Enterprise Server releases - GitHub
    Enterprise Server 3.2 Docs
    Azure DevOps Server
    EOLは10年 / SQL Server Standard付
    Azure DevOps Server 2020 - Microsoft Lifecycle |
    Microsoft Learn
    オンプレミス
    アカウント
    • ビルトイン
    • Enterprise Cloud
    • LDAP/CAS/SAML
    オンプレミスActive Directoryアカウント /
    Windowsローカルアカウントで認証
    CI / CD オンプレミスにGitHub Action
    Runnerをインストール
    About self-hosted runners - GitHub Docs
    オンプレミスにAzure Pipelines Agentをイン
    ストール
    Azure Pipelines Agents - Azure Pipelines | Microsoft
    Learn
    ストレージ インストールするサーバーに依存 ← (※ Expressは10GBまで)
    ※1 Visual Studio Subscription with GitHub Enterpriseがある場合無償
    ※2 Visual Studio Enterprise契約がある場合無償

    View Slide

  6. GitHubとAzure DevOpsの構造の差
    Organization
    個人ID
    Team Project
    個人 / Organizationに
    リポジトリが関連づく
    レポジトリが多くなると
    Organizationと
    Projectで管理必須
    最初からProjectがあり、そ
    の配下にチケット、リポジトリ、
    パイプラインを作成する

    View Slide

  7. GitHub 初期画面
    自分の
    レポジトリ
    直近の作業
    参加チーム
    GitHubの
    更新
    おすすめアクティビティ

    View Slide

  8. GitHub Git Repository
    kkamegawa/bicepsamples: This repository samples for bicep (github.com)

    View Slide

  9. Azure DevOps 初期画面
    自分の
    organization
    アサイン作業、
    PR, お気に入りを
    切り替え
    上のタブで切り替えた
    内容表示

    View Slide

  10. Azure DevOpsのチーム初期画面

    View Slide

  11. CI / CD
    GitHub Azure DevOps(Pipelines)
    無料枠 月毎に2000分無料
    (Windows/Linux/macOS)
    パブリックレポジトリは10並列無制限
    月毎に1800分無料(事前申請式)
    (Windows/Linux/macOS)
    パブリックレポジトリは10並列無制限
    (簡単な審査あり)
    サポートOS 現行OSとそのひとつ前。
    二つ前のOSは非推奨になり、廃止される
    (特にVisual Studio / XcodeはOSと
    セットなので注意)

    パイプライン記述 YAML YAML / GUI(Classic)
    Oauthアプリ なし(ActionsはGitHubのみサポート) あり(GitHubでも使える)
    含まれるソフトウェア 実行されるOSによって変わる(※) ←
    Hosted Agent 2 vCore 8GB RAM 10GB ストレージ ←
    Large Agent あり(プレビュー)
    Using larger runners - GitHub Docs
    なし
    ※ actions/runner-images: GitHub Actions runner images

    View Slide

  12. YAMLの比較
    Workflow syntax for GitHub Actions - GitHub Docs YAML schema reference | Microsoft Learn

    View Slide

  13. YAMLの基本構造としてはどちらも同じ
    1. ジョブ起動定義
    2. ジョブ内で使用する値
    の定義など
    3. ステージ(左にはない)
    4. ジョブ(複数の手順の
    塊)
    逐次書いていくと長くなるので、適宜リファクタリング必要
    ※ 所定の手続きをまとめて外だしするテンプレートを使います

    View Slide

  14. GitHubにのみ存在する特徴的な機能
    §Discussionとissueの分離
    § 仕様の議論はDiscussion, バグはissueといった使い分けが可能(相互の変換もできる)
    §個人アカウントとEnterpriseでレポジトリの移行が可能
    § 個人で作ってOrganizationへ移管(逆)ということも可能
    §GraphQLサポート
    §GitHub Pages(有料)でレポジトリから静的Webを生成
    §GitHub Sponsorshipでマネタイズも可能(かも)
    §クラウド開発環境のCodespaces(有料)

    View Slide

  15. Azure DevOpsにのみ存在する特徴的な機能
    § プロジェクト計画からテストタスクまで一括管理するAzure Test Plans(有料)
    § 組織のAzure ADと連携したグループ管理
    § Azureサブスクリプションを使った費用管理
    § ビルド定義を外部レポジトリで管理可能
    § プロジェクト状況可視化用ウィジェット
    § プロジェクト状況が確認しやすいクエリ(WIQL) / Board / Dashboard / Delivery Plans
    § Excelでタスク状況閲覧、一括更新が可能
    § タスク進捗状況閲覧、パイプラインの承認するだけのStakeholderならライセンスがカウントさ
    れない

    View Slide

  16. GitHubの今後が知りたい!
    §正統進化的な機能改善はroadmapレポジトリで公開されてます
    §GitHub Universe(2022/11/9-10)では何が発表されるか?
    The GitHub Universe 2022 agenda is live | The GitHub Blog
    GitHub public roadmap

    View Slide

  17. Azure DevOpsの今後が知りたい!
    §今後の計画はAzure
    Boardsで公開されています
    §ほぼ三週間に一度のsprint
    単位で機能追加
    §大きな発表はBuild /
    Igniteでやっています
    Azure DevOps Roadmap | Microsoft Learn

    View Slide

  18. View Slide

  19. Azure DevOps GitHub
    どちらでもいいのですが、あえて
    § Visual Studioサブスクリプションの
    特典で統合管理したい
    § 非開発者向けの課金節約
    § Azureのセキュリティ機能が必要
    § 複数のプロジェクトを横断で管理した
    い(Boardsだけ導入でも可)
    § ネットワークが近い場所で使いたい
    ヨーロッパ / インド / 南米 / アジア
    ※ 残念ながら日本はなし
    §解説記事などが非常に豊富なので、
    困ったときの聞き先が多い
    §すでに個人使用で慣れている人が
    多いチームで
    §Codespacesで開発環境をクラ
    ウドに持っていきたい
    §シンプルに完結しているので個人
    オーナーの開発で

    View Slide

  20. View Slide