【勉強会メモ】GitHubとクラスメソッドの勉強会〜GitHub x AWSの最新DevOps事情〜

参加した勉強会のメモです。


開催日：　2017年4月26日 
[GitHubとクラスメソッドの勉強会〜GitHub x AWSの最新DevOps事情〜](https://classmethod.connpass.com/event/54342/?utm_campaign=event_message_to_selected_participant&utm_source=notifications&utm_medium=email&utm_content=title_link)
ハッシュタグ: [#github_method](https://twitter.com/search?q=%23github_method)
## How we ship GitHub
### 発表者
GitHub 池田尚史さん(@ikeike443)
[チーム開発実践入門](http://amzn.to/2oKRvcA)、[GitHubツールビルディング](http://amzn.to/2oLbeJd)の著者
<a href="https://www.amazon.co.jp/%E3%83%81%E3%83%BC%E3%83%A0%E9%96%8B%E7%99%BA%E5%AE%9F%E8%B7%B5%E5%85%A5%E9%96%80-~%E5%85%B1%E5%90%8C%E4%BD%9C%E6%A5%AD%E3%82%92%E5%86%86%E6%BB%91%E3%81%AB%E8%A1%8C%E3%81%86%E3%83%84%E3%83%BC%E3%83%AB%E3%83%BB%E3%83%A1%E3%82%BD%E3%83%83%E3%83%89-WEB-PRESS-plus/dp/4774164283/ref=as_li_ss_il?ie=UTF8&linkCode=li1&tag=nesheep5-22&linkId=6b216a16a2f21fcc2950f66343ddc594" target="_blank"><img border="0" src="//ws-fe.amazon-adsystem.com/widgets/q?_encoding=UTF8&ASIN=4774164283&Format=_SL110_&ID=AsinImage&MarketPlace=JP&ServiceVersion=20070822&WS=1&tag=nesheep5-22" ></a><img src="https://ir-jp.amazon-adsystem.com/e/ir?t=nesheep5-22&l=li1&o=9&a=4774164283" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />　<a href="https://www.amazon.co.jp/dp/487311795X/ref=as_li_ss_il?ie=UTF8&linkCode=li1&tag=nesheep5-22&linkId=2423cc5b7ad223ed68cc592cef3b0de5" target="_blank"><img border="0" src="//ws-fe.amazon-adsystem.com/widgets/q?_encoding=UTF8&ASIN=487311795X&Format=_SL110_&ID=AsinImage&MarketPlace=JP&ServiceVersion=20070822&WS=1&tag=nesheep5-22" ></a><img src="https://ir-jp.amazon-adsystem.com/e/ir?t=nesheep5-22&l=li1&o=9&a=487311795X" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />

### 近年起きていること
* アジャイル：三角形は逆さまに
    * 従来はScope(やりたいこと)をFIXし、Time, Resourceをそれにあわせて決めていた
    * 近年は先にTime, ResourceをFIX, Scopeを柔軟に
* VCS：コラボレーションがやりやすくなった
    * Git,GItHubなどの分散リポジトリ
* 継続的デリバリー
    * GitHubは「継続的デプロイメント」を目指す
        * 本番リリースまで自動化

### GitHubはどうしているか
* 一日に数十回デプロイ
* リモートワークが盛ん
* GitHub Flow
* Hubot(ChatOps)

### GitHub Flow
* Masterを常にデプロイ可能な状態に保つ
* 必ずFeatureブランチを作り、その生存期間を短く保つ
* 溜め込まずすぐにPR、フィードバックをもらう
* デプロイして問題のないもののみMasterにマージ
* PRは議論の場

### Hubotの利用
#### なぜChatOpsなのか？
* shared console
* 誰がやっても同じ結果
* 他人がやっているのを見て学べる
* リモートワークに最適
* スマホでデプロイも可能に
* いつだれがどんな操作をしたかすべて残る

### 本番リリース
* **PRを本番にリリースしてからMasterブランチにマージ(※Masterにマージしてからデプロイではない)**
* 本番デプロイ依頼をキューイング(Hubotがキュー管理)
* DataDocを利用してグラフでチェック

### 様々なことをすべてチャットで
* 営業的な見積もり
* お遊びコマンド

## DevOpsとAWS
### 発表者
クラスメソッド 千葉淳さん(@iron_breaker)

### 資料
https://www.slideshare.net/ssuser8125c5/test-75422283?ref=http://dev.classmethod.jp/cloud/github-cm-study-aws-and-devops/

### 今日話すこと
* AWSにおけるDevOpsサービスの話

### DevOpsとは？
* 開発者と運用者が協力したフロー
* 安全に素早くたくさんリリースするための仕組み
    * 属人化の排除
        * デリバリの自動化
        * コードで管理
    * 開発の効率化
        * チームコラボレーション
        * ちいさくたくさんリリース
    * 安全なリリース
        * デプロイの自動化（B／Gデプロイメント、切り戻し）
        * フローの整備（承認とか）
    * モニタリング

### DevOpsの目的
* ビジネスに使う時間を増やす

### CI/CDとは？
#### CIとは？
* ビルド、テストの自動化
* リポジトリ→ビルド→Unitテスト

#### CDとは？
* CIに加えて、デプロイまで
* ステージング環境→統合テスト→本番環境


### AWSサービスの紹介
* たくさんあったので資料参照

### DevOps時の注意
* プロビジョニングとデプロイは別管理にする（ライフサイクルが違う）


## GitHub EnterpriseとAWSを組み合わせたCDP
### 発表者
クラスメソッド 中山幸治さん

### 資料
https://speakerdeck.com/knakayama/github-classmethod-study-20170426

※途中退席したためメモなし