【新規受付は終了しました】ソフトウェア開発をより便利に!-Backlog Git専用のCI/CDサービス「QuickOps」-
突然ですが、みなさんはプロジェクト管理ツールの「Backlog」を使って、プロジェクトの進捗状況の管理をしていますか?
Backlogを使って進捗状況の管理をする時に、BacklogのGit機能は使っていますか? そのとき、CI/CDどうしてますか?
弊社では、「Backlog」及び「 Backlog Git」をつかったソフトウェア開発をより便利にするため、「QuickOps」というサービスの開発を進めています!
この記事では、現在鋭意開発中の「QuickOps」について、ざっくり簡単にご紹介させていただきます。
BacklogのGit機能、活用してますか?
そもそも、BacklogにGit機能がある事を知っていますか?
※ Gitとは分散型バージョン管理システムで、ざっくりいうとソフトウェアのソースコードなどのファイルを管理する際、バージョン管理や複数人での変更などの作業を簡単におこなえるようにするツールです。
Backlogのユーザーなら誰でも利用できる付属機能で、「プロジェクト設定」 > 「Gitの設定」で、設定を有効化することで利用できます。
プロジェクト単位で有効化でき、一つのプロジェクト内にいくつもリポジトリを追加することができます。
※ 1リポジトリにつき最大10GBまでなどの制限があります 。
ここで、弊社がBacklog Gitを利用するなかで感じているメリットとデメリットについてご紹介します。
Backlog Gitの利点1 【リポジトリのアカウント共有問題を消し飛ばす】
受託開発や協力会社との開発案件で、他社にどうやってGitリポジトリのアカウントを共有するか悩んだ事はありませんか?
例えば、クライアント企業内の社内ポリシーでGithubのアカウントが持てないとか、相手先がGitlabでソース管理していてIP制限かけているからアクセスできないとか、、、弊社もこれまで色々な理由でリポジトリの共有ができないケースがありました。
一方、ほとんどの企業では(なぜか)Backlog自体は利用可能で、Backlogでプロジェクト管理する例が多い印象です。複数社が関わる案件のプロジェクト管理にBacklogを利用されている方も多いのではないでしょうか?
こんなとき、Backlog Gitをつかってソースコードを管理するとアカウント問題が一瞬で解決します。というよりも、Backlogでプロジェクト管理しているのであれば、Backlog Gitを使うことでアカウント問題が霧散します。
社内ポリシーがガチガチでソースコード共有がし辛いクライアントと仕事する際は、Backlog Gitの利用が超オススメです。
Backlog Gitの利点2 【コミットメッセージと課題チケットを紐づけ】
GitのコミットメッセージにBacklogの課題キーをいれると、Backlogのコメント内にコミット履歴へのリンクが貼られ、Backlogの課題チケット上で該当のコミットを確認することができます。
Backlogの課題管理と、実際のソースコード上の変更を簡単に紐付けることができるため、課題の進捗管理やトラッキングが非常に便利になります。
開発者・PM目線ではこの機能が非常に便利で、Backlog Git以外のリポジトリ(Githubなど)を利用していても、力技でコミットメッセージと課題チケットの紐づけを実施することができます。
Backlog Gitの欠点 【CI/CDがない外部…CI/CDの連携もしづらい】
個人的に思う、Backlog Gitの最大の欠点がCI/CDまわりです…
静的なHTML/CSSサイトならまだしも、少しロジックのあるようなソフトウェア開発なら、もはやCI/CDが必須ですよね。
ただBacklog Gitにはすぐに利用できるCI/CDがなく、
Jenkins立てる(Nulab推奨。ただJenkinsの運用つらい。。)
AWS CodeCommit, Buildを使う (都度Lambdaとか作るのがだるい。。)
リモートリポジトリにGithub追加して、GithubAction使う(お金かからなくていいけど、どちらかにPushし忘れてコードの乖離がおきるリスク。。)
CICD諦めてコード置き場・共有専用リポジトリにする
などなど、色々な手段をつかってなんとかCI/CDを回すか、諦めるか。
いずれにせよ、本格的なソフトウエア開発に使うには、無視できない課題です。
QuickOpsとは?
そんなBacklog Gitをつかったソフトウェア開発体験をより便利にするべく、弊社で開発を進めているサービスがあります。
それが、Backlog Git専用のCI/CDサービス「QuickOps」です!
現在クローズドβで一部のユーザー様に利用頂きながら、鋭意開発を進めています。
YAMLファイルでCI/CDジョブを定義
現状のQuickOpsは、CircleCIやGithubActionと同様に、YAMLファイルにCI/CDジョブを定義する事で自動化を実行します。
例えば、フロントエンドのテストと、ビルドしてS3へデプロイするようなCI/CDジョブの場合、以下のようなYAMLファイルを定義します。
version: 1
jobs:
test:
env:
- BUILD_ENV=test
steps:
- cmd: npm ci
- cmd: npm run test
deploy:
steps:
- cmd: rm -rf node_modules
if:
- directory:
exists: ./node_modules
- cmd: npm ci
- cmd: npm run build
- cmd: aws s3 sync ./out/ s3://<S3バケット>/
最大のウリ 【Backlogと超簡単に連携】
Backlog Git専用のCI/CDと謳っているだけに、Backlogとの連携はすごく簡単です。
まず、QuickOpsのログインはBacklogのアカウントをつかってシングルサインオンで実施できます。
Backlog側の情報はBacklog API経由で取得するため、QuickOpsへのリポジトリ登録も選択肢から管理したいプロジェクトを選択するだけでOKです。
最後に、BacklogにWebhookを追加しますが、ここも画面操作で簡単に実施できます。最後にコミットイベントに応じて実施したいアクションを登録すると完了です。
ここまでの操作でBacklog Gitに対してQuickOpsの連携が完了です。
いかがでしょうか、とても簡単な操作だと思いませんか?
デプロイやテストが完了したら、特定のBacklog課題にコメントしたり、状態を変更できるような機能も開発していますので、Backlogをつかったソフトウェア開発がより便利になると思います!
CI/CDツールとしての様々な機能たち
勿論、QuickOpsはCI/CDツールのため、CI/CDをまわすために必要な様々な機能を備えています。