2022年3月18日

DevOps

Harness Source Code Manager(SCM)

この記事では、Source Code Manager(SCM)について、SCMの重要性、DevOpsでの使い方、そしてHarnessが開発者の仕事を楽にするためGitHubとBitbucketを活用していることについて説明します。

Harness source code manager scm.webp

この記事では、DevOpsにおけるソースコード管理(SCM)と、Harnessがどのようにそれを支援するかについて説明します。

SCMとは?

SCMは、アイデア/構想から本番稼働、リタイアメントまで正確な変更を行うことができるように、人と物を調整するためにチームを促進することができます。しかも、この全てが、プロセスの中で混乱することなく行われます。SCMは、生産時だけでなく、開発中も何があるのかを正確に把握できるようにします。SCMは、チームが必要とする全てのセーフティーネットを提供します。

 

これは、コアなソフトウェア開発者の日々のワークフローです。従って、あらゆるDevOpsパイプラインの重要な構成要素です。開発者がコードベースに加えるコード変更は、全てSCMで追跡されます。

なぜDevOpsでSCMなのか?

DevOpsは、システム変更をコミットしてから通常の運用に入るまでの時間を短縮しつつ高い品質を維持するためのプロセスの集合体です。

 

作業成果のアーカイブと共有は、オープンソースとDevOpsの文化にとって重要な側面です。SCMは、全てのチームメンバーがソースコードと関連ファイルの変更を認識できることを保証します。これは、さまざまな機能の同時開発を調整したり、ソフトウェアリリースのためにそれらを統合したりするためにも重要です。さらに、SCMはソースコードだけでなく、設定ファイルを扱うために使われることもよくあります。

 

SCMなしで(成功裏に)プロジェクトを進めることはできません。従って、CI/CDパイプライン開始前にまずはSCMを配置します。

 

DevOpsパイプラインの全てのパーツは、SCMシステムと相互作用する必要があります。SCMは、プログラムに対して行われたバージョン(リビジョン)の記録を保持します。各バージョンには、タイムスタンプと変更を行った人物のマーカーがあります。また、これらのバージョンは比較やマージが可能です。

 

CIサーバーがコードをビルドする準備ができたら、SCMとやり取りしてコードのコピーを取得します。SCMは、他のプロセスを自動化するためにも使用できます。従って、コードの更新をビルドする必要がある場合、SCMサーバーはCIサーバーに警告を発します。

SCMのためのヒント

システムを持つことと、それを効果的に管理することは異なります。

 

以下は、覚えておくべきいくつかのヒントです。

 

  1. 適切なシステムを選択する。
  2. コードのコピーをシステムに保存する。
  3. 最新バージョンのコードをプルする。
  4. 頻繁にコードをコミットする(そしてメモを残す)。
  5. ブランチを使用して、並行して操作する。

正しいシステムを選択することは非常に重要です。だからこそ、これが最初のベストプラクティスなのです。

 

とはいえ、ほとんどの人は、SCMツールがそれだけでSCMの難題を全て解決したり、プロジェクトのSCM要件を満たしてくれると思い込んでいます。はっきり言ってしまえば、問題を解決するのはツールそのものではなく、むしろツールの適用方法なのです。SCMツールを開発環境にどのように適用するかは、使用モデル、あるいはSCMプロセスと呼ばれます。SCMの問題に適切に対処できるのは、このモデルによるところも大きいでしょう。

 

SCMツールは複数の開発者の努力を左右する、必要不可欠なものです。さらに、同じような機能に対する並行作業を調整し、それらを統合して最終的な製品に仕上げるのです。実際のソースコードだけでなく、設定ファイルも管理します。クラウドサービスの設定がバージョン管理下にあれば、アプリケーションのデプロイを容易にすることができます。

Harnessはどのように役立つのか

HarnessのSCMには、GitHubやBitBucketなどのGitプロバイダーの個人アカウント情報が含まれています。プロバイダーごとに1つのSCMをアカウントに追加することができます。

 

Harness Git Experienceをプロジェクトで有効にすると、HarnessはあなたのSCMアカウント情報を使って、あなたがHarnessに対して行ったコミットやHarnessから行ったコミットを特定します。SCMは、プロジェクトとそのパイプライン、コネクターなどに変更を加えた人を監査する際に役立ちます。

 

Harnessは、GitリポジトリーにあるHarness Entityのクローンや複製を簡単に作成できます。クローンしたEntityは、Harnessプラットフォームで表示されます。このセクションでは、HarnessがSCMで提供するオプションについて見ていきます。ツール自体の説明と同時に、ツールが提供する利点も調査します。それでは、各ツールとその利点について見ていきましょう。

GitHub

多くの開発者はGitHubを使いこなしていますが、それが一体何のためにあるのか不明な人々にとっては苛立ちの元です。GitHubは、チームが既存のコードに持ち込むコード変更に関する問題を解決するためにコラボレーションを支援する、素晴らしいSCMツールです。

 

GitHubは、簡単にコラボレーションできるDevOpsツールの主流であり続けています。開発者はコードに対して迅速なイテレーションを行うことができ、その通知は他のチームメンバーに即座に送信されます。エラーやフォールアウトが発生した場合、数秒以内に前のバージョンに即座にロールバックすることができます。これは、ツール内に連続的に保存される、分岐した変更履歴のおかげです。互いに学び合いながら、アイデアを前進させることができるのです。GitHubは素晴らしいSCMツールであり、コードを共有するための最良の場所でもあるのです。

Harness source code manager scm - 1.png

GitHubの主な機能

  • オープンソースプロジェクトへの貢献を容易にします。
  • バージョン間のコードの変更を追跡します。
  • ウェブインターフェイスでフォルダーを作成できます。
  • コードからクラウドまでの自動化をします。
  • 世界最大のソースコードホストであり続けています。

Bitbucket

GitHubと同様に、Bitbucketもソフトウェア開発サイクルを通じてプロジェクトのコードを管理するのに役立ちます。GitHubは依然としてトップのリポジトリーとして君臨していますが、Bitbucketに移行する人が増えているのは、安価で済むことと、プライベートリポジトリー(GitHubの有料版でのみ利用可能な機能)があるためです。Bitbucketの中核機能はGitHubと似ていますが、JiraやTrelloとの簡単な統合やCI/CD機能など、Atlassianのこのツールに優位性があるように思われます。

 

Bitbucketの主な特徴

  • ユーザー間のコラボレーションを容易にし、大規模なスケーリングを可能にする分散制御システムを提供します。
  • 無制限のプライベートリポジトリーとパブリックリポジトリーを提供します。
  • きめ細かいパーミッションを提供します。そのため、ワークフロー機能は非常に安全です。
  • Bamboo、JIRA、HipChatなどの主要なビジネスアプリケーションとの統合を提供します。これはまた、ユーザーが効率的かつ生産的に作業するのに役立ちます。

結論

優れたDevOpsの要は、ソフトウェアリリースのために複数の機能を同時に開発し、それらを統合することです。Harness Git Experienceを活用すれば、バージョン管理下に置かれたソースコードや設定ファイルにアクセスして、ビルド、テスト、デプロイを自動化することができます。

 

Harnessがどのように役立つか、もっと知りたいですか?Harness SCMHarness Git Experienceをご覧ください。

 

出荷を完了させましょう!


この記事はHarness社のウェブサイトで公開されているものをDigital Stacksが日本語に訳したものです。無断複製を禁じます。原文はこちらです。

Harnessに関するお問い合わせはお気軽にお寄せください。

お問い合わせ