分12あけましておめでとうございます。株式会社Ruby開発の佐藤です。近年,GitHubを利用したソーシャルコーディングが注目を集めています。GitHubを利用するとエンジニア同士の共同作業をスムーズに進められるため,ソフトウェア開発の生産性を向上させる効果が期待できます。そのため,オープンソースソフトウェア開発での利用にとどまらず,通常業務でGitHubを利用する企業が増えています。そこで本稿では,GitHubの競合として注目が高まっているGitLabについて紹介します。Rails製のGitホスティングソフトウェアです。Edition(以下EE)があります。CEのすべての機能に加えて,大規模組織向けの機能が追加されています。EEに大きな違いありません。EEのクラウドサービスであるGitLab.comを無料で提供しています。GitHubでは有料となるプライベートリポジトリの作成も,GitLabでは無料できます。そのため,ソースコードを公開したくない場合でも気軽に試すことができます。GitLabには継続的インテグレーションとコンテナレジストリの機能が統合されており,GitLab.comではすべてを無料で利用できます。α」という記事で,詳しい月額料金の比較を行っています。興味のある方はそちらもお読みください。GitHubとの違い以下ではGitLabとGitHubの相違点について述べますが,筆者の主観的な視点が含まれているので参考程度にしてください。Enterprise⁠)⁠」と呼ばれていたように,GitHubと比較するとかなり見劣りしていました。2014年にGitLabが法人化され,フルタイムでエンジニアを雇って開発が行われるようになり,現在では機能的にはGitHubと遜色のないレベルまで到達していると思います。クラウドサービスであるGitLab.comのパフォーマンスや安定性はGitHubと比べて大きく見劣りしています。GitLabのパフォーマンスは,GitHubと比較して全体的にもっさりしている感じがあります。GitLab.comでは,ソフトウェアアップデートやシステム障害による,サイトのダウンも比較的頻繁に発生しています。サイトのダウンは長くても一時間程度で復旧する印象ですが,実際の業務で利用するのは厳しいというのが筆者の感想です。この点については,GitLab社としても問題を認識していて,高い優先度で改善に取り組んでいるようです。そのため着実に改善されてきてはいますが,複雑な問題であるため,解決にはしばらく時間がかかりそうです。packageが用意されて,比較的簡単にインストールとアップデートができるようになっています。それでも自前でサーバーを運用するにはある程度の知識と経験が必要であり,できればサーバー運用は外部に任せたいというニーズも少なからずあるはずです。そのような場合は,GitLab社の提供するGitHost.ioが候補になります。GitHost.ioでは専有型のプライベートなGitLabサーバーを提供していて,GitLabのインストールやアップデートはGitLab社が行ってくれます。そのため,面倒なサーバーの運用はGitLab社に任せて,GitLabを快適に利用できます。GitHost.ioを利用した場合とGitHubのOrganizationプランを利用した場合で月額料金を比較すると,利用者数が増えるほどGitHost.ioの方がコストを低く抑えることができます。EEに分かれており,そのどちらもGitLab社によって開発が進められています。GitLabの開発はGitLab.comのプロジェクトとして公開して進められており,バグ報告や機能追加の要望は以下のプロジェクトのIssueで受け付けています。EEのプロジェクトこのIssueにはユーザーからのバグ報告や機能追加の要望以外に,GitLabのリリース計画など開発に関連するタスクがすべて登録されています。そのため,Issueを調べることでGitLabに追加される予定の機能をある程度は知ることができます。各リリースに含めるバグフィックスや機能追加はプロジェクトのMilestoneで管理されています。GitLabは毎月22日にメジャーアップデートをリリースするというサイクルが決まっています。そのため,Milestoneで管理するのは主に次回リリース予定のIssueに絞って運用されています。これは1ヶ月以上先の計画はブレる場合が多く,より正確な計画をユーザーに提示するためのようです。1ヶ月以上先にリリース予定のIssueは,MilestoneにBacklogという項目を作成して管理されています。EEのMilestoneです。EEのMilestoneGitLabはコミュニティーからのコントリビュートを非常に重視しており,コミュニティーからのマージリクエスト(GitHubでいうプルリクエスト)には,必ずGitLab社の社員が対応する体制を取っています。マージリクエストを投稿すると,GitLab社の社員がコードレビューでマージに必要な修正事項を指摘してくれるため,その指摘事項にしたがってコードを修正することで多くの場合はマージされるようです。筆者自身もGitLabにコントリビュートしており,この2ヶ月あまりで6件のマージリクエストを投稿していますが,リジェクトされたのは1件のみで残りの5件は無事にマージされました。8.15には,コニュニティーからのマージリクエストが68件もマージされており,コニュニティーからのコントリビュートがGitLabの改善に大きな役割を果たしていると言えます。GitHub著者プロフィール佐藤洋行(さとうひろゆき)株式会社Ruby開発所属。Railsを使用したWebサービスの受託開発に従事している。現在,GitLabの導入支援を会社のサービスとして提供できないか模索している。5.1のリリース時にはMVPにも選ばれた。2019」を開催しました。DAY1・DAY2の様子を注目セッションとともにお伝えします。LINEのエンジニア3名がイベントに先駆けて見どころを紹介します。コードの安全性・安定性を高める開発サイクル~テスト管理の効率を上げ,脆弱性診断を自動で行う~本連載では,連載「業務を改善する情報共有の仕掛け」を受けつつ,安全性・安定性を加えた開発サイクルについて考えていきます。若者世代から圧倒的な人気を誇るライブ配信&動画投稿コミュニティアプリ「MixChannel」(ミクチャ)の裏側(レコメンドシステムやサーバサイド開発など)について解説していきます。その他の連載CSS3アニメーションでつくるインターフェイス表現CSS3によるアニメーション表現を紹介していきます。その中でも,幅広い読者に応用してもらえるだろうインターフェイスを主なお題とします。MySQL道普請便り本連載では,MySQLを使ったアプリ開発・運用に関するノウハウをご紹介していきます。RecipeUbuntuの強力なデスクトップ機能を活用するための,いろいろなレシピをお届けします。JavaScriptセキュリティの基礎知識JavaScriptに関するセキュリティ上の問題はどこで発生し,どうすれば防ぐことができるのか?について解説していきます。〜システムをきちんと運用するための基礎知識システムは「作って終わり」ではなく,運用の中でさまざまな問題が発生します。問題の発生に備えて事前にどのような対応をしておくべきなのか,問題発生時に何をしなければならないのか,ポイントを解説していきます。きたみりゅうじの聞かせて珍プレーソフトウェア開発の現場で体験したトホホな失敗,思わずうなる珍プレーをきたみりゅうじ氏が四コママンガで紹介。Linuxのメンテナンスの傍ら,Linuxやオープンソースソフトと日々を過ごす著者が,その魅力とつきあい方を,エッセイ風味でお届けします。PRESS特別編集部員,さわやか笑顔のスーパーハカーはまちちゃんとネット大好き14歳わかばちゃんが,毎号,読者の皆さんから寄せられたおたよりを紹介します。皆さんの日頃の悩みにも答えちゃいますよ。]メールでのお知らせメールで次の案内をお送りしております。メールの配信を希望する方は,利用したい項目をチェックしてメールアドレスを入力し,[登録]ボタンをクリックしてください。UPDATES[ほぼ週間に1回]新刊メールマガジン[ほぼ週間に1回]電脳会議の各号案内[ほぼ1ヵ月半に1回]※変更する場合や停止する場合は,登録情報変更ページをご覧ください。※登録いただいたメールアドレスには,そのお知らせ以外,配信いたしません。Ltd.ページ内容の全部あるいは一部を無断で利用することを禁止します。個別にライセンスが設定されている記事等はそのライセンスに従います。