事例

株式会社はてな & GitHub

  • エンジニアの日々の作業が効率化
  • GitHub Actions導入によりCI/CDの一元化と開発ワークフロー統合を実現
  • ソースコードと連携するツール群とともに業務システムの一部として浸透

サーバ版とクラウド版の併用を実践

株式会社はてな(以下、はてな)は、日本のインターネット普及期から多彩でユニークなサービスを提供し続け、人々の“インターネットがある生活”をより身近に、より豊かなものにしてきた。現在は、「はてなブログ」や「はてなブックマーク」、「人力検索はてな」など人気のサービスを提供する「コンテンツプラットフォームサービス」で培った技術・ノウハウをベースに、企業のコンテンツ発信を通したマーケティングを支援する「コンテンツマーケティングサービス」、SaaS型サーバー監視サービス 「Mackerel」やマンガサービス向けビューワ「GigaViewer」、Webサービスおよびアプリの共同開発など同社の技術とノウハウを他企業に展開する「テクノロジーソリューションサービス」の3本柱でビジネスを加速させている。

そうした同社独自の技術・サービス開発を長年支えてきたのが「GitHub」だった。2000年代から「GitHub.com」をオフィシャルに活用し、OSS(オープンソース)やインターン向けのはてな研修用教科書の公開などにGitHubを活用。現在では、オンプレミス版とクラウド版の両方が使える、GitHub Enterpriseを活用している。

同社は以前からGitHub Enterpriseのオンプレミス版を利用していたが、GitHubによるライセンス体系の変更で追加料金の発生なしにクラウド版も利用できるようなったため、2019年夏頃からオンプレミス版とクラウド版の併用を本格的に開始した。はてな 技術グループ チーフエンジニア 渡辺 起氏は、「以前から GitHub.com は一部で利用していましたが、GitHub Enterpriseのオンプレミス版がリリースされた際に、機密情報保護の観点からオンプレミス版の活用をはじめました。一方で、近年の開発環境がクラウドシフトしており、外部サービスとの連携などを考えると、今後はクラウド版に集約していくと思います。クラウド版との併用に合わせて、権限やアカウント管理のコード化など運用を整備しています。」と話す。

CI/CDはGitHub Actionsが主流に | 様々な開発ワークフローを統合し業務改善

GitHub Enterpriseが社内に定着することによる変化も起きているという。例えば、コードを書く、Issueを管理するといったことのみならず、IaC(Infrastructure as Code)によるコードでインフラの設定を記載しておき、それを実行することで自動的にITインフラを構築するという活動も非常に活発に行われるようになった。

そうしたはてなのGitHub Enterprise運用の中でも、注目すべきは「GitHub Actions」の活用が活発な点だ。これまでCI/CD(継続的インテグレーション/継続的デリバリ)の自動化においては「Jenkins」が主流だったが、サーバーの管理や運用が継承されずに失われてしまったり、複雑化するのを嫌って利用を控える動きもあった。IaCのために強い権限の認証情報を外部サーバに保存しなければいけないのも不満だった。GitHub Actionsがりリースされたことで急速に置き換えが進んでいるという。はてなで社内のクラウドインフラ基盤の契約関係や推進・運用を担う、システムプラットフォーム部 部長 松坂 高嗣氏は、「GitHub Actionsはテストを実行したりアプリケーションをデリバリするだけではなく、様々な開発ワークフローを統合するツールとして日常的に使われています。ディスカッションやタスク管理をGitHub上で行う場合のオートメーションなどにも活躍しています。」と語る。少数のサーバーを運用していた時代はその場で簡単なプログラムを作成して、動かしたら定期処理に登録する、というようなことができたが、サーバーレス化によってそれが少しハードルが高くなった。GitHub Actionsは小規模のプログラムを定期的に実行したり、気軽にチームで管理したりするニーズに対応できるので、クラウド環境下で失われつつあった手軽なcronサーバのより良い代替としても重宝されているという。

また、様々な開発支援ツールと連携させ、業務を改善しているのもポイントだ。例えば、「Renovate」(プロジェクトが依存する外部ライブラリの更新を自動化するツール)や「Sentry」(エラー検知・監視ツール)などをGitHub と連動させ、定期的なセキュリティやサービス品質の向上に役立てている。さらにプロジェクト管理においては、チームごとに「GitHub Projects」(カンバン式のタスク管理を可能にするツール)や「Asana」(ワークマネジメントツール)、「ZenHub」(GitHub Issueをカンバン方式で進捗管理できるプロジェクト管理ツール)からそれぞれ適したツールを選び GitHubと連携して使っている。松坂氏は、「GitHub Enterpriseを要に連携ツールがつながることで、より業務に根付いた使い方になるよう開発環境を育てることができるのが最大のメリットだと感じています」と述べる。

開発プロセスに留まらず | 業務システムの一部として社内に浸透

「弊社の場合、GitHub Enterpriseを開発者のみならず全職種で使っているのも特徴です。プランナー、ディレクター、デザイナー、マネジャー、営業などの非エンジニアの社員も、Issueを利用してコメントしたりしています。皆の業務を回す中心的ツールのひとつだと思っています」と渡辺氏は説明する。松坂氏もそれに同意し、「はてなは開発セントリックな会社なので、ソースコードを中心にビジネスが機能しています。GitHub Enterpriseは開発のためのツールと表現するのはもはや不自然に感じます。ソースコードと連携するツール群とともに業務システムの一部として浸透しており、そのエコシステムの中心にGitHub Enterpriseが自然にあるというイメージです。弊社の仕事にぴったりマッチしているのでしょう」と表現する。

はてなは今後、GitHub Enterprise のクラウド環境での運用整備をさらに進めていくという。既にパブリックリポジトリはメンバーが作れないようにするなど、安全に運用するためのルール設計をしてきた。アカウント管理ではチームをTerraformで管理し、社内の認証基盤とSSOする構成に揃えていくなど、企業として安全に活用するための導入・運用ルールを改善していく考えだ。

また、GitHub Enterpriseクラウド番の監査ログ(Audit Log)を取得するための「GHEC Audit Log CLI 」や、クラウドでコンテナとしてホストされたカスタマイズ可能な開発環境を提供し、Visual Studio Codeからの接続も可能な「GitHub Codespaces」、コードベースと環境の脆弱性を可視化・特定して改善を自動化する「GitHub Advanced Security」の活用も視野に検討していくという。

渡辺氏は現在Mackerelのプロダクトマネジャーとして活躍中だ。「GitHub Enterpriseには満足しており、今後もユーザの立場として積極的に活用していくつもりです」と話す。松坂氏も、「今やGitHub Enterpriseはサービス運用の実行系基盤として社内に浸透しています。そのため、ギットハブ・ジャパンにはこれからも適切なテクニカルサポートの提案や利用レポート拡充などを期待しています」と語る。

  • 業種

    ITサービス

  • 企業規模

    100+

GitHubを企業で活用する

柔軟なホスティングオプションやビッグデータに裏付けされたセキュリティが、企業におけるソフトウェア開発をサポートします。

What will your story be?

Start collaborating with your team on GitHub

Free

GitHub
のコア機能

$ 0 /月

Team

Advanced collaboration for individuals and organizations

$ 4 ユーザー/月

Enterprise

企業ニーズを満たすセキュリティ、コンプライアンス、柔軟なデプロイメント

$ 21 ユーザー/月

Want to use GitHub on your own? Check out our plans for individuals