Git
GitHub
OpenStreetMap
CircleCI
SideCI

GitHub Satellite Tokyo 2018 Day 2 参加レポート #GitHubSatelliteTokyo

はじめに

昨日の GitHub Satellite Tokyo 2018 Day 1 に引き続き、参加レポートです!

イベント概要

IMG_6949.JPG
タイムテーブル

基調講演:GitHub Enterpriseプロダクトビジョン

  • 登壇者: 公家 尊裕 (GitHub) ジェイソン・ワーナー (GitHub) ウェイン・ジン (GitHub)
  • 日本国内コグニティブ/AIシステム市場
    • 2017年: 274億円
    • 2022年: 2947億円
    • 2017-2022: 60.7% CAGR
  • 2030 年 IT 人材不足 79 万人
    • 海外のメンバーを巻き込んで開発していく必要がある
  • GitHub Enterprise 導入企業
    • Yahoo
    • LINE
    • DeNA
    • DMM
    • など
  • Every company is an software innovation company
  • GitHub の責任
    • データ侵害を防ぐ
    • コンプライアンスに準拠しつつイノベーションを促進させる
    • オープンソースコミュニティへのサポート
  • GitHub の 4 つの投資エリア
    • プラットフォーム
      • 多くのユーザーに愛されるソフトウェア開発プラットフォーム
    • データ
      • 依存関係管理を自動化する企業は、自動化しない企業と比べて、60%も脆弱性のリスクが低くなる
    • エコシステム
    • 開発者
      • ダッシュボード
      • プロファイル
      • エクスペリエンス

IMG_6951.JPG

ゲスト基調講演:DMM.comのGitHub EnterpriseとCircleCI Enterpriseの活用例

  • 登壇者: 唐沢 陽介 (株式会社DMM.comラボ)
    • GHE を中心としたツールの構築・運用利用者への技術支援などを担当
    • 最近は CircleCI のサポート多め
    • karakaram/alt-ime-ahk 作者
  • 今日お話すること
    • GHE と CircleCI をどのように活用するか
    • 導入して 1 年経って思うこと
  • GHE と bitbucket を利用
  • Why GHE?
    • まずは検証のために
    • 噂を聞いたチームが相乗りしてきた
    • プラットフォーム開発チームでも使いたいという話があり、エンタープライズに移行
  • 4サービスが稼働中
    • GitHub Enterprise: 先月 330 名
    • CircleCI: 先月 80 名
    • ZenHub Enterprise: 先月 30 名
      • Issue, Pull Request 管理
    • SideCI オンプレミス: 先月 20 名
      • レビュー支援
  • サービスはすべて AWS 上に構築
    • 開発環境と本番環境とでリージョンを分けている
    • 毎月 30 万円くらいかかっている
  • 運用ルール
    • リポは Public 推奨
      • アカウントなしでも Issue を閲覧できるように
  • おすすめ利用パターン
    • Git のブランチモデル
      • Git Flow
      • GitHub Flow
        • v1.1.0 形式のタグを打つことで本番環境にデプロイ
    • CircleCI: The Good Parts
      • ダウンロードしたファイルはキャッシュする
        • .circleci/config.yml
          • save_cache
          • restore_cache
      • テスト並列化
        • parallelism: 3
        • 3 並列で実行できる
      • Workflow を使った自動テストと静的解析の並列化
        • テストと静的解析を並列実行
      • Machine Executor は非推奨としている
        • ビルドのたびに裏で EC2 インスタンスが起動するので、クラウド版と比べてビルドの開始が遅い
      • すばやくフィードバックループを回す
      • 困ったら GHE で検索する jobs ruby filename:config.yml
    • ドキュメント・タスク管理
      • ドキュメントは GitHub Pages で
      • ZenHub Enterprise で進捗を可視化
  • 導入して 1 年
    • 新規サービスでは GHE と Circle CI の採用が進む
    • GHE と CircleCI が共存する世界
      • サーバやユーザの管理が不要で、すぐに CI を始められる
    • .circleci/config.yml の中にアプリケーションの動作要件がまとめられる
  • 困っていること
    • GitHub っぽいソーシャルコーディング感が出ない
      • 扱っている言語、環境、ゴールがチームごとに違う
    • Organization がいっぱいできてしまった
      • プロダクト単位で Organization が作られてしまう
      • 現在 80 個くらいある
      • 他の Organization で何をやっているか目に入らない

IMG_6952.JPG
DMM での GHE 利用サービス

IMG_6955.JPG
ダウンロードしたファイルはキャッシュする

ゲスト基調講演/パネルディスカッション:ソフトウェア開発の変遷と、これから

  • 登壇者: 及川 卓也 (フリーランス技術アドバイザー) 大倉 香織 (株式会社サイバーエージェント) 小林 篤 (株式会社ディー・エヌ・エー) 松野 徳大 (LINE株式会社)
  • 10 年を振り返って
    • GitHub で開発時のコミュニケーションやレビューがしやすくなった
    • リモートワーク時などオフライン作業時に手元でコミットできるようになった
    • GitHub と Slack
    • DeNA: Perl のイメージだと思うが、最近は Ruby, Go を使うケースが多い。一部 Java も
    • サイバー: Java から Go への移行
  • 言語トレンドについて
    • LINE: 採用を意識して言語選択している。 Perl 率を下げている
    • DeNA: 採用を意識して Go を選択している
    • サイバー: 採用を意識して Go を選択
      • リードエンジニアの好みにもよる
  • クラウドの進化
  • AI, 機械学習
    • DeNA: 今力を入れている。ルールベースから機械学習ベースのアルゴリズムに変化している。不適切なコメントを検知するなど
    • NVIDIA がここまで AI 領域に食い込んでくるのは意外だった
      • GPU はグラフィックを処理するのが強いが、 AI の処理に使われている
  • 技術の意思決定について
    • CTO, リードエンジニアとかのポジションが確立され、技術に対する意識が変わってきた
  • DeNA: ITS の領域で日本は非常に遅れている
  • サイバー: RPA の導入。人事システムなど。
    • 今だとスクレイピングとか
  • 過去の xTech のサービスは API を公開していなかったり、Web フレンドリーではない
  • データについて
    • LINE: 広告システムに利用している
      • Hadoop 利用
      • データサイエンティストは Data Labs にて大量採用中
  • 人がプログラムを書くのは、どこまで?いつまで?インフラはどこまで見続けないといけない
    • 将来のコーディングは全く書かなくて良くなる by クリス・ワントラスさん
  • プログラミング必修化について
    • プログラミング必修化の記事に対して、識者が「プログラミングは 10 年後 AI が書くから必要なくなる」と言ってたが、それならそもそも英語学ぶ意味あるの?的な話
      • 自動化される時代が来ても、裏側の仕組みを理解することは大事
  • リモートワークの今後
    • DeNA: Slack を活用
      • 隣にいても Slack でコミュニケーションを取るようにしているから、リモートでも問題ない
        • 細かいニュアンスなどを伝えるときがあるときには face to face
    • LINE: LINE でやり取り
      • ビデオ会議だと細かいニュアンスが落ちるので、対面でやっていることもある
        • VR などの進歩に期待
    • GitHub の 65% の人はリモートワーク

IMG_6958.JPG

GitHubと共に学生を育てる方法

  • 登壇者: 古橋 大地 (青山学院大学)
  • Twitter: @mapconcierge
  • GitHub の地図を作っている
  • GeoJSON
  • GitHubを活用した、赤十字と国連のためのクライシスマッピング
  • 一億総伊能化
  • オープン = 商用利用可能
  • Tesla, Pokemon GO も OpenStreetMap を利用
  • 500 万人が地図データにコミットしている
  • https://github.com/mapbox/mapping
  • タスク管理は Issue
  • Markdown は共有フォーマット
  • Word 禁止令発動!
  • レポート提出は Issue で Markdown
  • 国土地理院の地理院地図を fork できる
  • GitHub Pages で jekyll を利用して Web サイトを作る
  • Git-it からはじめる
  • プレゼン資料は SpeakerDeck に上げる
  • User Profile が履歴書がわり
  • 外(社会)と中(大学)をつなぐ架け橋。それが GitHub

IMG_6960.JPG

SlerがGitHub Enterpriseを使ったら

  • 登壇者: 原口 猛 (株式会社セゾン情報システムズ)
  • GHE 導入編〜SIer でも GHE が使いたい〜
    • モダン開発推進チームが発足
    • 事業部・開発製品・サービス毎にソースコード管理ツールが乱立
    • 全社的なツールの統一を目指す
    • 顧客のソースコードは対象外とした
    • いざ導入
      • very easy!
        • ドキュメントや事例が充実
      • 段階的導入
        • インフルエンサーを選定してまずは使ってもらう
      • GitHub の引力
        • 試したいという声が多数上がった
  • GHE 運用編
    • 2年間運用してトラブル 0 件
    • 運用で必要なのは、モジュールのアップグレードのみ
  • 導入効果編
    • Before
      • ウォーターフォール
      • テスト前に一斉コミット
      • レビューは有識者に教えてもらう場
    • After
      • ウォーターフォール(そのまま)
      • デイリーコミット
      • 相互学習するための場
      • コードをチームで所有し、成長させる場
    • 戻り工数大幅削減
    • コードの共同所有の有用性を体験
      • 有識者からアドバイスを貰う
    • 注意点
      • どんなツールを使う場合も Face to Face は大事
      • 2 回で伝わらなければ F2F
      • レビューコストを書けすぎない
        • ツールを最大限活用
  • まとめ
    • 推進担当として
      • GHE はただのツールではなくプラットフォーム
        • 文化を変えるためのプラットフォーム、豊富なプラクティス
      • 導入ではなく定着がゴール
  • 運用事例
    • 事例1. ペア&モブプロによるシングルブランチ運用
      • master のみを利用。以下画像参照
    • 事例2. 開発以外での利用例(ポータルサイト)
      • GitHub Pages
      • システム構成図は以下画像参照

IMG_6962.JPG

IMG_6963.JPG
事例1. ペア&モブプロによるシングルブランチ運用

IMG_6963.JPG
事例2. 開発以外での利用例(ポータルサイト)

GitHub Marketplaceと、開発生産性を向上させる幾つかのSaaSのご紹介

  • 登壇者: 角 幸一郎 (SideCI株式会社)
  • What is GitHub Marketplace?
    • https://github.com/marketplace
    • GitHub 連携サービスを簡単に購入、導入できる
    • 様々なカテゴリ
    • 購入は GitHub 上で完結。決済も統合
      • 新しくクレカ登録する必要がない
      • 請求書、領収書がまとまる
      • 稟議問題
  • Useful marketplace apps
    • Coveralls
      • Code quality
      • テストカバレッジの可視化
        • 行ごと
        • ファイルごと
        • 時系列
        • など
    • SideCI
      • コードレビューの支援サービス
      • RuboCop や Checkstyle などの解析器を使って、コードレビューを支援
      • GitHub Pull Request と連動
    • CircleCI
      • Continuous integration
    • Dependabot
      • Dependency management
      • Gemfile.lock や package-lock.json を元にライブラリを自動アップデート
      • GitHub Pull Request を自動で生成
        • 新しいライブラリ入れると CI が落ちるなど、事前に検知できる
    • Rollbar
      • Monitoring
      • Slack 通知
      • 例外検知サービス
      • スタックトレースが見られる
    • ZenHub
      • Project Management
      • GitHub Issues をボードで表示
      • プロジェクト管理に必要な機能を包括的に用意
      • ベロシティ計測、リリース可能日予測
  • About Github Marketplace
    • 2017 年 11 月に GitHub Marketplace にローンチ
    • 平均 2000 人が毎月 Marketplace から流入
    • 世界各国から流入
    • Marketplace 経由の売上はローンチ 4 ヶ月で 10 倍に
  • Announcement
    • 本日 2018 年 6 月 13 日より、 SideCI は Sider に製品名を変更します。

感想、その他

社内にツールを普及させようとした時に、「自分も試したい!自分も!」となるサービスは強いですね。今日のセッションで 2 回同じような話だったので、GitHub がいかに個人利用が進んでいて、愛されているかわかる内容でした。 Marketplace は初見だったので、試しになにか作って上げてみると楽しそう。今後どれくらい Marketplace が盛り上がるかは気になります。

早上がりで残りのセッションレポートできませんがすみません。よければ皆さん残りのセッションのレポートを編集リクエストしてください :bow: