<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: okash1n</title>
    <description>The latest articles on Forem by okash1n (@okash1n).</description>
    <link>https://forem.com/okash1n</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F94354%2F59a68b9c-1eb5-459f-ba6e-a152deccdf2e.png</url>
      <title>Forem: okash1n</title>
      <link>https://forem.com/okash1n</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/okash1n"/>
    <language>en</language>
    <item>
      <title>｢最新DevOps事例勉強会｣に行ってきました</title>
      <dc:creator>okash1n</dc:creator>
      <pubDate>Fri, 21 Sep 2018 16:15:08 +0000</pubDate>
      <link>https://forem.com/okash1n/devops-2gmm</link>
      <guid>https://forem.com/okash1n/devops-2gmm</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;元記事の方がスライドがembedされて見やすいです&lt;br&gt;
&lt;a href="https://okash1n.tech/2018/09/25/jddstudy-3-devops/"&gt;https://okash1n.tech/2018/09/25/jddstudy-3-devops/&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;JDDさんが主催された&lt;a href="https://techplay.jp/event/687946"&gt;JDDStudy #3 最新DevOps事例勉強会！スタートアップとグロースフェーズ それぞれの開発チームが取り組むDevOpsの今。&lt;/a&gt;に行ってきたのでレポ&lt;/p&gt;

&lt;h1&gt;
  
  
  概要
&lt;/h1&gt;

&lt;blockquote&gt;
&lt;p&gt;プロダクトのスタートアップでリーンに立ち上げるタイミング、マーケットフィットを経てグロースさせるタイミング、それぞれのフェーズで開発体制や運用体制、運用手法は異なってきます。&lt;br&gt;
なぜそのDevOpsになったのか？　　 &lt;br&gt;
DevOpsにこだわりをもつ3社をお招きして、ツール選定や意思決定の背景から、実際に活用してみた感想までをお伺いしていきます。開発をより効率的に！と考えている方、最新DevOps事例を聞きながら、一緒にディスカッションをしていきましょう！&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h1&gt;
  
  
  DevOps on Merpay Microservices - 株式会社メルペイ 高木 潤一郎さん
&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://twitter.com/tjun?ref_src=twsrc%5Etfw"&gt;Follow @tjun&lt;/a&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--lcUNE6JX--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://esa-upload.s3-ap-northeast-1.amazonaws.com/uploads/production/attachments/7996/2018/09/20/30651/55d67b4a-b52d-4c42-8df4-de40c57b9dd6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--lcUNE6JX--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://esa-upload.s3-ap-northeast-1.amazonaws.com/uploads/production/attachments/7996/2018/09/20/30651/55d67b4a-b52d-4c42-8df4-de40c57b9dd6.png" alt="image.png (3.8 MB)"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  スライド
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://speakerdeck.com/tjun/20180920-devops-on-merpay-microservices"&gt;20180920 DevOps on Merpay Microservices - Speaker Deck&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  SREってなんだっけ??
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://cloudplatform.googleblog.com/2018/05/SRE-vs-DevOps-competing-standards-or-close-friends.html"&gt;Google Cloud Platform Blog: SRE vs. DevOps: competing standards or close friends?&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://medium.com/@mattklein123/the-human-scalability-of-devops-e36c37d3db6a"&gt;The human scalability of “DevOps” – Matt Klein – Medium&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  メルペイのアーキテクチャ
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--0ASOufKE--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://esa-upload.s3-ap-northeast-1.amazonaws.com/uploads/production/attachments/7996/2018/09/20/30651/77b451cc-9f8e-4c90-b089-1e5673cf5d86.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--0ASOufKE--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://esa-upload.s3-ap-northeast-1.amazonaws.com/uploads/production/attachments/7996/2018/09/20/30651/77b451cc-9f8e-4c90-b089-1e5673cf5d86.png" alt="image.png (264.8 kB)"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;殆どはGoで書かれている

&lt;ul&gt;
&lt;li&gt;Go microservice templateのようなコードがある&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;li&gt;gRPCでやりとり&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Merpay API Gateway
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--O9GowhLu--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://esa-upload.s3-ap-northeast-1.amazonaws.com/uploads/production/attachments/7996/2018/09/20/30651/8b339a85-b941-45dc-b9d1-a0dc3066f930.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--O9GowhLu--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://esa-upload.s3-ap-northeast-1.amazonaws.com/uploads/production/attachments/7996/2018/09/20/30651/8b339a85-b941-45dc-b9d1-a0dc3066f930.png" alt="image.png (240.8 kB)"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;メルペイ側も改善する&lt;/li&gt;
&lt;li&gt;CI/CD CircleCI -&amp;gt; Container Registry -&amp;gt; Spinnakerで自動デプロイ&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  運用の仕組みの共通化
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--xNa0h2td--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://esa-upload.s3-ap-northeast-1.amazonaws.com/uploads/production/attachments/7996/2018/09/21/30651/48248bce-685c-44a8-a652-265ca878a92c.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--xNa0h2td--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://esa-upload.s3-ap-northeast-1.amazonaws.com/uploads/production/attachments/7996/2018/09/21/30651/48248bce-685c-44a8-a652-265ca878a92c.png" alt="image.png (277.5 kB)"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Microservicesでは各サービスのチームがOwnerとなって運用をすすめていく｡技術選定も自由｡&lt;/li&gt;
&lt;li&gt;とはいえ､SREや他のチームのメンバーがサポートするためには共通化が必要&lt;/li&gt;
&lt;li&gt;運用の仕組みの共通化がDevOpsでは大事

&lt;ul&gt;
&lt;li&gt;皆が好きに仕組み作るといざSREがサポートしようと思ってもできない&lt;/li&gt;
&lt;li&gt;モニタリングやロギングツールは共通化&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  ルールの共通化
&lt;/h3&gt;

&lt;p&gt;SLO(Service Level Objective)を決める&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;SLO: サービスが信頼できる状態かどうか判断するための指標

&lt;ul&gt;
&lt;li&gt;例: Gatewayで測定して､あるAPIのRequestの成功率が99.99%&lt;/li&gt;
&lt;li&gt;指標がないと､何を直すのか､いつ緊急対応するのかの判断ができない&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  ツールの共通化
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;ログ: StackDriver &amp;amp; BigQuery, メトリクス: Datadog, エラー通知: Sentry, 当番通知: Pagerduty&lt;/li&gt;
&lt;li&gt;Microservice starter-kitで自動で書くサービスのTeamやProjectなどが生成される&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  感想
&lt;/h2&gt;

&lt;p&gt;流石に日本でSREの先駆けとなったメルカリの関連会社だけあって､今日の発表の中では一番Googleの教科書に近いSREをやっている印象｡SREチームは開発者のDevOpsを助けるような存在を目指しているのが特徴的だと思いました｡｢共通化｣という言葉はビッグワードですが､メルペイさんの共通化というのはあくまで｢最低限｣の部分についてであって､何でもかんでも共通化するわけじゃないです｡じゃあ｢最低限｣ってなんなのか?&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;運用の仕組み&lt;/strong&gt;の共通化&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;サービスを作ってスケールさせていくということは､結局サービスを｢運用｣するということ｡必ず発生する｢運用｣について､ちゃんと見据えて各MicroserviceごとのDevOpsを円滑に回すための｢仕組み｣の部分をSREが担保していくというスタンスはこれから自分のチームでも取り入れていきたい｡&lt;/p&gt;

&lt;h1&gt;
  
  
  ITインフラにおける継続的改善の実践 - レッドハット 株式会社 中島 倫明さん
&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://twitter.com/irix_jp?ref_src=twsrc%5Etfw"&gt;Follow @irix_jp&lt;/a&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--JJJjQMzp--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://esa-upload.s3-ap-northeast-1.amazonaws.com/uploads/production/attachments/7996/2018/09/21/30651/4a36fbd9-67f2-4b6c-93dc-759ff1e4b04c.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--JJJjQMzp--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://esa-upload.s3-ap-northeast-1.amazonaws.com/uploads/production/attachments/7996/2018/09/21/30651/4a36fbd9-67f2-4b6c-93dc-759ff1e4b04c.png" alt="image.png (455.5 kB)"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--vTNmvH-g--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://esa-upload.s3-ap-northeast-1.amazonaws.com/uploads/production/attachments/7996/2018/09/21/30651/7c1bd487-ad3f-4b41-949a-10643f254424.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--vTNmvH-g--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://esa-upload.s3-ap-northeast-1.amazonaws.com/uploads/production/attachments/7996/2018/09/21/30651/7c1bd487-ad3f-4b41-949a-10643f254424.png" alt="image.png (399.0 kB)"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  ITインフラの自動化への関心
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;総論賛成

&lt;ul&gt;
&lt;li&gt;QCDが改善されて嫌な人はいない&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;li&gt;各論いろいろ

&lt;ul&gt;
&lt;li&gt;眼の前の作業を自動化したい人&lt;/li&gt;
&lt;li&gt;全体最適化を狙う人､部分最適を狙う人&lt;/li&gt;
&lt;li&gt;自動化されると仕事がなくなって嬉しい人､困る人&lt;/li&gt;
&lt;li&gt;今までのやり方を変えたい人､変えたくない人&lt;/li&gt;
&lt;li&gt;周辺も含めて考える人､ピンポイントに絞って考える人&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  ITインフラ効率化の三位一体
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--SDNV6RTo--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://esa-upload.s3-ap-northeast-1.amazonaws.com/uploads/production/attachments/7996/2018/09/21/30651/c99f1062-1f5e-438d-85e6-d50815ec7248.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--SDNV6RTo--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://esa-upload.s3-ap-northeast-1.amazonaws.com/uploads/production/attachments/7996/2018/09/21/30651/c99f1062-1f5e-438d-85e6-d50815ec7248.png" alt="image.png (292.6 kB)"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  自動化を進める時の悩み
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;眼の前の作業をAnsibleなどで自動化する

&lt;ul&gt;
&lt;li&gt;実はそんなに難しくない&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;li&gt;実際に取り組むと出てくる悩み

&lt;ul&gt;
&lt;li&gt;これってほんとに動く(意図した結果になっている)んだっけ?&lt;/li&gt;
&lt;li&gt;本番環境で実行して影響を与えないんだっけ?&lt;/li&gt;
&lt;li&gt;このPlaybookって､別の環境でも動くんだっけ?&lt;/li&gt;
&lt;li&gt;このPlaybook(半年前につくったやつ)って､今そのまま動かせるんだっけ?&lt;/li&gt;
&lt;li&gt;Ansibleをバージョンアップしたけどこれって動くの??&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;大半は自動化の実行､再利用､時間経過に伴う&lt;strong&gt;｢自動化の正しさ｣&lt;/strong&gt;に関する悩み&lt;/p&gt;

&lt;h2&gt;
  
  
  自動化の正しさとは
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--XjWRHAo2--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://esa-upload.s3-ap-northeast-1.amazonaws.com/uploads/production/attachments/7996/2018/09/21/30651/330b70dc-87fe-4451-b71c-da73c09f40f2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--XjWRHAo2--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://esa-upload.s3-ap-northeast-1.amazonaws.com/uploads/production/attachments/7996/2018/09/21/30651/330b70dc-87fe-4451-b71c-da73c09f40f2.png" alt="image.png (336.4 kB)"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;自動化の正しさに関する悩み&lt;/li&gt;
&lt;li&gt;手順書や仕様書は｢作業の前｣に検証･担保するためのもの

&lt;ul&gt;
&lt;li&gt;自動化しても設計工程についての疑問や課題がやればやるほど出てくる&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  TDD的なインフラへのアプローチ
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--xy1iq165--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://esa-upload.s3-ap-northeast-1.amazonaws.com/uploads/production/attachments/7996/2018/09/21/30651/d2b16a22-78b2-4edd-8de0-ff5326c7a502.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--xy1iq165--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://esa-upload.s3-ap-northeast-1.amazonaws.com/uploads/production/attachments/7996/2018/09/21/30651/d2b16a22-78b2-4edd-8de0-ff5326c7a502.png" alt="image.png (386.2 kB)"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  自動化の正しさが自動で検証できると
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;精度の高い変更計画と作業が可能

&lt;ul&gt;
&lt;li&gt;変更に伴う影響派にを早期に検証可能(テストが何件エラーなど)

&lt;ul&gt;
&lt;li&gt;やる､やらない､いつやる&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;ノウハウの蓄積とスケール

&lt;ul&gt;
&lt;li&gt;運用すればするほど&lt;strong&gt;人に依存せずに&lt;/strong&gt;品質が向上する

&lt;ul&gt;
&lt;li&gt;確実性の高い再発防止が&lt;strong&gt;コード&lt;/strong&gt;として積み上がる&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;li&gt;横展開を用意にする&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;｢変化｣への対応を安全で低コストに行えるようになる&lt;/p&gt;

&lt;h2&gt;
  
  
  変化への対応
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--uKHAuuL4--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://esa-upload.s3-ap-northeast-1.amazonaws.com/uploads/production/attachments/7996/2018/09/21/30651/010a81b3-be1f-41c3-b250-ba04038b4067.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--uKHAuuL4--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://esa-upload.s3-ap-northeast-1.amazonaws.com/uploads/production/attachments/7996/2018/09/21/30651/010a81b3-be1f-41c3-b250-ba04038b4067.png" alt="image.png (349.2 kB)"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;変化への対応を前提にシステム構築･運用した方が合理的&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  感想
&lt;/h2&gt;

&lt;p&gt;まず､第一に｢さすが教授｣という､大学で講義を受けているような気分になる発表でした｡(ま､私大学卒業してないんですけどね)&lt;br&gt;
高木さんの話と同様に､｢変化｣が起こることを前提に基盤作って行きましょう､という話ですが､TDD的なアプローチをIaCでやっていくことで､｢運用すればするほど品質が向上する｣ような｢仕組み｣を作るという部分はまさにSREやQAでやっていくべき部分だな､と改めて認識しました｡&lt;/p&gt;

&lt;p&gt;&lt;a href="http://amzn.asia/d/cKYtvQF"&gt;インフラCI実践ガイド Ansible/GitLabを使ったインフラ改善サイクルの実現 &lt;/a&gt;という本を最近発売されたそうです!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--LnQXDJGN--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://esa-upload.s3-ap-northeast-1.amazonaws.com/uploads/production/attachments/7996/2018/09/21/30651/7d02453c-a9d2-401f-a0d9-52c49b728225.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--LnQXDJGN--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://esa-upload.s3-ap-northeast-1.amazonaws.com/uploads/production/attachments/7996/2018/09/21/30651/7d02453c-a9d2-401f-a0d9-52c49b728225.png" alt="image.png (409.9 kB)"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  DevOps実装者としてのSREの存在と役割 - 株式会社スタディスト 北野 勝久さん
&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://twitter.com/katsuhisa__?ref_src=twsrc%5Etfw"&gt;Follow @katsuhisa__&lt;/a&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--opVKZKN7--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://esa-upload.s3-ap-northeast-1.amazonaws.com/uploads/production/attachments/7996/2018/09/21/30651/b18d232e-29b8-445c-8ac2-fec5a6a46597.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--opVKZKN7--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://esa-upload.s3-ap-northeast-1.amazonaws.com/uploads/production/attachments/7996/2018/09/21/30651/b18d232e-29b8-445c-8ac2-fec5a6a46597.png" alt="image.png (457.7 kB)"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  スライド
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://speakerdeck.com/katsuhisa91/class-sre-implements-devops"&gt;DevOps実装者としてのSREの存在と役割 / class SRE implements DevOps - Speaker Deck&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  感想
&lt;/h2&gt;

&lt;p&gt;2010年3月創業の&lt;a href="https://studist.jp/company/"&gt;株式会社スタディスト&lt;/a&gt;さんは､2011年3月創業の弊社&lt;a href="https://www.asoview.co.jp/"&gt;アソビュー株式会社&lt;/a&gt;と同じく､グロースフェーズにSREをやり始めたということもあって､すでにある程度｢散らかってる｣サービスにテコ入れをしていったその過程を発表してくださったので､とても参考になりました｡&lt;/p&gt;

&lt;p&gt;そもそも私がこの勉強会に参加したのは､北野さんの書いた記事｢&lt;a href="https://codezine.jp/article/detail/11002"&gt;SREって何？ これまでのシステム運用やDevOpsとは何が違うの？&lt;/a&gt;｣を読んでからTwitterなどで連絡を取ってみたあと､彼のTweetで見たからでした｡今回のスライドよりもこの記事の方が詳しいのでそちらもぜひ｡全部読むには会員登録が必要なんですが､私はこの記事を読みたくて登録しましたw&lt;/p&gt;

&lt;h3&gt;
  
  
  class SRE implements DevOps - SREはDevOpsの実装
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;DevOps

&lt;ul&gt;
&lt;li&gt;Dev, Ops, その他チーム全体を巻き込み一体で仕事を進めるための文化運動であり方法&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;li&gt;SRE

&lt;ul&gt;
&lt;li&gt;ソフトウェアエンジニアがOpsを設計する際のプラクティスであり､DevOpsを実装する役割&lt;/li&gt;
&lt;li&gt;DevOpsほど文化的変化を前提としない&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  SREを含めたDevOpsを実装していくために
&lt;/h3&gt;

&lt;p&gt;SREにしろTDDにしろ､もっと各論でIaCだとか､Kubernetesだとか､分析基盤だとかエンジニアなら&lt;strong&gt;皆やりたい&lt;/strong&gt;ですよね? でもせっかく提案してもうまくいかないって人多いんじゃないでしょうか?&lt;br&gt;
その点についての一つの材料として､&lt;strong&gt;｢データや研究結果を示す｣&lt;/strong&gt;という話がありました｡&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--B4JVYuKm--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://esa-upload.s3-ap-northeast-1.amazonaws.com/uploads/production/attachments/7996/2018/09/22/30651/a8575b9c-4ace-4fe0-a731-2a663512b086.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--B4JVYuKm--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://esa-upload.s3-ap-northeast-1.amazonaws.com/uploads/production/attachments/7996/2018/09/22/30651/a8575b9c-4ace-4fe0-a731-2a663512b086.png" alt="image.png (1.5 MB)"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;私は前職の時から｢提案の仕方｣｢声の上げ方｣は下手な方で､ずっと考えてきたんですが､うまくいかなかった提案ってのは｢こんな困ってることがある｣｢こっちの方がいいじゃん｣ということだけをばら撒いてることが多かったことに最近気づいてきました｡逆に上手く行くときは､しっかりデータ出してる時だということも最近感じてたので｢カチッ｣っと音がした気がしました｡そして最近､DevOpsにさらにBizを足したような発想､つまり経営目線や他のチームや運用まで考えた提案をすることが何より大事であると考えるようになったのですが､それはまた近々ちゃんとまとめて記事書こうと思います｡&lt;br&gt;
ちなみにpuppetのwhitepaperは&lt;a href="https://puppet.com/resources/whitepaper"&gt;ここ&lt;/a&gt;で毎年出てるみたいです｡(発表で紹介されてたのは&lt;a href="https://puppet.com/resources/whitepaper/2014-state-devops-report/thank-you"&gt;2014 State of DevOps Report – Thank you | Puppet&lt;/a&gt;)&lt;/p&gt;

&lt;h3&gt;
  
  
  チームのスケールのために
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--kQj_vrJV--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://esa-upload.s3-ap-northeast-1.amazonaws.com/uploads/production/attachments/7996/2018/09/22/30651/906639d0-2a26-470b-8208-c8cc30b38484.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--kQj_vrJV--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://esa-upload.s3-ap-northeast-1.amazonaws.com/uploads/production/attachments/7996/2018/09/22/30651/906639d0-2a26-470b-8208-c8cc30b38484.png" alt="image.png (903.5 kB)"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;｢サービスがスケールするためにはチームも個々人もスケールしないといけない｣ので､そのために何をやるのか｡&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;社内勉強会や社外の勉強会のアウトプットをして&lt;strong&gt;ストック&lt;/strong&gt;する

&lt;ul&gt;
&lt;li&gt;早速週明けに開発チームに共有します&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;li&gt;開発チームをまたいだ振り返りの実践

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://medium.com/studist-dev/kaizen-journey-c13c88cbef61"&gt;『カイゼン・ジャーニー』を読んで振り返り部をつくってみた – スタディスト開発ブログ – Medium&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;li&gt;ポストモーテム&lt;/li&gt;
&lt;li&gt;Twitterでの情報収集･発信

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Twitterは仕事&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;実際､TwitterやFacebookで北野さんに連絡取らなかったらこの勉強会にも参加しなかったし､後述する懇親会での情報交換における気付きも無かったと思います｡あ､北野さんは｢&lt;a href="https://sre-lounge.connpass.com/"&gt;SRE Lounge&lt;/a&gt;｣という勉強会も主催してるそうです｡今月はもう枠埋まってましたが､次回はぜひ行きたいと思います｡&lt;/p&gt;

&lt;h1&gt;
  
  
  CI/CD自動化とDevOpsの抽象化の試み - Japan Digital Design株式会社 Takuya Noguchiさん
&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://twitter.com/tn961ir?ref_src=twsrc%5Etfw"&gt;Follow @tn961ir&lt;/a&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--gloOEhcL--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://esa-upload.s3-ap-northeast-1.amazonaws.com/uploads/production/attachments/7996/2018/09/22/30651/79af7e66-b5ef-41cf-9940-508bf89eb89b.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--gloOEhcL--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://esa-upload.s3-ap-northeast-1.amazonaws.com/uploads/production/attachments/7996/2018/09/22/30651/79af7e66-b5ef-41cf-9940-508bf89eb89b.png" alt="image.png (555.5 kB)"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  スライド
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://speakerdeck.com/tnir/devops-in-jdd"&gt;DevOps in JDD - Speaker Deck&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;主催のJDDさんの野口さん｡｢どえらい人がやってきたなぁ｣という第一印象でした｡この方Gitlabのコアエンジニアだそうです(日本では一人)｡&lt;/p&gt;

&lt;h2&gt;
  
  
  DevOpsとは何か､について紹介されていたドキュメント
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://azure.microsoft.com/ja-jp/resources/effective-devops/"&gt;Effective DevOps—O’Reilly E-book | Microsoft Azure&lt;/a&gt;

&lt;ul&gt;
&lt;li&gt;MSから無料で落とせるよ&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.slideshare.net/jallspaw/10-deploys-per-day-dev-and-ops-cooperation-at-flickr"&gt;10+ Deploys Per Day: Dev and Ops Cooperation at Flickr&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  感想
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://www.japan-d2.com/"&gt;Japan Digital Design 株式会社&lt;/a&gt;さんはMUFGグループからFintech部分を切り出して､ダイバーシティを意識して積極的に外部や他業種から採用をしていってるそうです｡週に2､3日しか来なかったり､フルリモートだったり､勤務時間も全然違う人がいたりと非同期な働き方をしてる会社｡その中でDevOpsをやっていくにあたって､とにかくGUIポチポチを無くして､コード化することで後から他のメンバーが振りかえることが出来る状態を作っている話が印象的でした｡もちろんこれは非同期な働き方じゃなくても必要ですが､非同期な働き方だからこそなおさら必要なことなんだと思います｡&lt;/p&gt;

&lt;p&gt;ドキュメント化やコード化については最近思うところがあって､特に障害対応なんかはストックされるべきだと思うんですよね｡基本的にはサービスは一人で作るものじゃないし､｢運用｣や｢変化｣､｢障害｣が皆に等しく&lt;strong&gt;必ず&lt;/strong&gt;起こります｡今日の全ての発表に共通することですが､それらの｢必ずやってくるもの｣に備えた動きをすることがSREを含めたDevOpsには必須だということですね｡そしてそういうことを考えて行くと自ずと｢提案｣する際に必要なスタンスも見えてきそうな気がしました｡&lt;/p&gt;

&lt;h1&gt;
  
  
  懇親会
&lt;/h1&gt;

&lt;p&gt;むちゃくちゃ元気の良いJDD副社長さんの乾杯で､懇親会も執り行われました&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--3au0t2ui--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://esa-upload.s3-ap-northeast-1.amazonaws.com/uploads/production/attachments/7996/2018/09/22/30651/6c4a75e3-7387-4961-9fbc-0513a4424ad9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--3au0t2ui--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://esa-upload.s3-ap-northeast-1.amazonaws.com/uploads/production/attachments/7996/2018/09/22/30651/6c4a75e3-7387-4961-9fbc-0513a4424ad9.png" alt="image.png (506.1 kB)"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;料理も美味しかったです｡&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--13ceTDqn--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://esa-upload.s3-ap-northeast-1.amazonaws.com/uploads/production/attachments/7996/2018/09/22/30651/a065bc15-3ca7-4d88-9479-06fa8095505f.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--13ceTDqn--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://esa-upload.s3-ap-northeast-1.amazonaws.com/uploads/production/attachments/7996/2018/09/22/30651/a065bc15-3ca7-4d88-9479-06fa8095505f.png" alt="image.png (497.0 kB)"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;これ､間違いなくSansanで毎月やってる社内懇親会と同じケータリング会社だと思うんですよね｡先月&lt;a href="https://omotesandorb.connpass.com/"&gt;表参道.rb&lt;/a&gt;に行った時も食べましたが､このおにぎり食べるとSansan思い出します｡(まだ辞めて2ヶ月くらいですが)&lt;/p&gt;

&lt;p&gt;懇親会では､野口さんや北野さん､JDDのエンジニアさんとも直接お話したり､他にもいろんな会社の人々と話せました｡&lt;/p&gt;

&lt;h2&gt;
  
  
  番外編｢懇親会での会話｣
&lt;/h2&gt;

&lt;p&gt;懇親会でメルカリの&lt;a href="https://twitter.com/ktykogm"&gt;@ktykogmさん&lt;/a&gt;とお話したんですが､その中でも特に参考になった点をいくつか｡&lt;/p&gt;

&lt;h3&gt;
  
  
  自動化の基準
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;とにかく毎日使うものは自動化したほうがいい

&lt;ul&gt;
&lt;li&gt;完全な自動化はまだ人類には早い&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;li&gt;バックオフィス的な業務もzapierなどで自動化しちゃう&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  ｢Open Door｣ - Zapierなどを非エンジニアに根付かせるにはどうしてるのか?
&lt;/h3&gt;

&lt;p&gt;｢Open Door｣という話が特に興味深かったです｡どういうことかと言うと､社内勉強会や意見交換会､フリーディスカッション､｢なんでも聞いて会｣などを時間と会場を決めてかっちりとやるのではなく､｢この時間ここにいるから､いつでも好きな時に来て帰っていいよ｣というスタンスで開くような会だそうです｡&lt;br&gt;
例えば､｢Zapierで定常業務などを自動化しましょう｣というのを非エンジニアにも教える時に､｢ゆるーく3時間くらい開いてるので5分くらいでもいいから聞きに来てね｣という感じで社内にアナウンスして､人が来るまで普通に仕事して､人が来たら手を止めて教えて上げるそうな｡これ､目的は｢心理的障壁を下げる｣ことで､新しいことを広めるのに心理的障壁があっては広まらないということだそうです｡なんとそういう勉強会をやったら2~3ヶ月で非エンジニアにもZapierでの日々の業務の自動化が広まったそうな｡(いくらポテンシャルの高いメルカリ社員とはいえ､すごすぎだろ｡)&lt;/p&gt;

&lt;p&gt;もちろんこれ､勉強会だけじゃなく開発業務や新機能､その他サービスに関わるようなこともエンジニア･非エンジニア問わず､｢いつでも来てね｣というような感じで開いている会がメルカリでは多いそうです｡最近弊社でも､いろんな部署巻き込んでの会話が増えてきてますが､｢Open Door｣を取り入れるとさらに加速していろんなコラボレーション生まれそう!と思ったので早速持ち帰りたいと思います｡&lt;/p&gt;

&lt;h3&gt;
  
  
  メルカリでのコミュニケーション
&lt;/h3&gt;

&lt;p&gt;｢心理的障壁を下げる｣というのはやっぱり大事らしく､メルカリではSlackなどで特にマネージャーなど位の高い人から率先して｢下らないこと｣などをSlackに投下したりしてるそうです｡確かに前職Sansanでも､Workplaceの個人グループとかで行われる半分雑談のような会話から生まれるコラボレーションやアイデアって多かったな､と｡&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;｢言っていいんだ｣という文化を作ることが大事&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;だそうです｡怖がってたら会社に来たくなくなりますからね｡ちなみに､これも｢研究で出てる｣そうです｡(やっぱデータ大事だー)&lt;/p&gt;

&lt;h1&gt;
  
  
  全体の感想
&lt;/h1&gt;

&lt;p&gt;いろんな発表や懇親会での会話､それぞれに共通点があったり､組み合わさることでより理解できたり､飯も美味いし総じて良い勉強会でした｡11月にもDevOps系のテーマでJDD Studyやるそうなのでまた行きたいと思います｡&lt;/p&gt;

</description>
      <category>sre</category>
      <category>devops</category>
    </item>
    <item>
      <title>発散ブレスト会</title>
      <dc:creator>okash1n</dc:creator>
      <pubDate>Wed, 19 Sep 2018 14:28:09 +0000</pubDate>
      <link>https://forem.com/okash1n/-5coi</link>
      <guid>https://forem.com/okash1n/-5coi</guid>
      <description>&lt;p&gt;弊社では最近業務時間中に集まって｢発散ブレスト会｣というのをやってます｡何をやってるかというと､エンジニアやデザイナーが集まって､プロダクトの方向性や技術選択､組織などの開発にかかわるよもやま話をダラダラ繰り広げる会で､そこにはちゃんとCTOを含めた役員も数人参加してます｡&lt;/p&gt;

&lt;h1&gt;
  
  
  実際やってみてどうか
&lt;/h1&gt;

&lt;p&gt;この取組は始まったばかりで､今日が二回目でした｡前回のテーマは｢ウォーターフォール開発とアジャイル開発｣でした｡様々なバックグラウンドのメンバーがいるので､Sier出身の人はSier時代の案件の話や､弊社が成長していく中でウォーターフォールで成功してた時期や､アジャイルで成功していた時期､または逆に失敗だったことなどを話しました｡ともするとスタートアップは目下のビジネス要件をただただ満たす為だけの｢ウォーターフォール型アジャイル開発｣になりがちだよね､という話なんかは結構みんなうなずいてた｡こういった話って､マネージャー層以外のメンバーでは割とマイナスな方向に盛り上がりやすいって思ってるんですが､弊社でのブレスト会では経営層まで含めてビジネスサイドの話と開発サイドの話を同時に出来るのが良いなと思ってます｡&lt;/p&gt;

&lt;h1&gt;
  
  
  今日やったこと
&lt;/h1&gt;

&lt;p&gt;今日は､弊社のサービスを今後伸ばしていくために､ベンチマークとなるような｢イケてるテック企業を定めてみよう｣という会で､私の前職のSansanやNetflix, Amazon, Google, freee, メルカリなんかが上がりました｡共通してる性質として｢データドリブンであること｣､｢ビジネスに技術が直結してること｣などがあがり､結構白熱した意見交換が出来ました｡&lt;/p&gt;

&lt;h1&gt;
  
  
  次回やること
&lt;/h1&gt;

&lt;p&gt;今日の話の中で次回以降のテーマがいくつか出てきたので紹介します｡&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;社員の中でユーザーと見立てた人を一人立てて､その人が画面を操作しながら実際に使ってみてる様子を眺めながらサービスの改善点をみんなで議論する

&lt;ul&gt;
&lt;li&gt;いわゆる｢ユーザーインタビュー｣に近いものを､モブプロ的にやってみようという会&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;li&gt;サービスのデータベースのカラムをざっくりなめてみよう会

&lt;ul&gt;
&lt;li&gt;どんなデータが取れているのか､取れていないのかを把握して､サービスの改善に活かすようなデータベースづくりの足がかりとする&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  後記
&lt;/h1&gt;

&lt;p&gt;実は昔､あらゆることを書く雑多なブログをやっていて､ひどいときは一日に20件ほども更新するような時期が私にはありました｡最近思うところがあって､その頃のように｢クオリティの低さ｣を恐れずにどんどんアウトプットしていこうという気がまたわいてきたので､こういった適当な記事もどんどん書いていきたいと思います｡&lt;/p&gt;

</description>
      <category>startup</category>
      <category>culture</category>
      <category>productivity</category>
    </item>
    <item>
      <title>Github Flowの覚書</title>
      <dc:creator>okash1n</dc:creator>
      <pubDate>Tue, 04 Sep 2018 07:35:26 +0000</pubDate>
      <link>https://forem.com/okash1n/test-356c</link>
      <guid>https://forem.com/okash1n/test-356c</guid>
      <description>&lt;p&gt;最近はRailsチュートリアルやProgateのRails講座をやっています｡お恥ずかしながら､あまり仕事で&lt;code&gt;git&lt;/code&gt;を使うことが無かったので､Github Flowなどもよく理解していません｡というわけでProgateのRails講座をブラウザでやりながら､ローカルでもRails立ち上げて､1問ごとにブランチ切って自分でプルリク出して開発してみることにしました｡&lt;br&gt;
やっていく中で結構覚えてきたので､メモとして残しておこうと思います｡&lt;/p&gt;

&lt;h1&gt;
  
  
  Github Flowの大まかな流れ
&lt;/h1&gt;

&lt;p&gt;大まかには下記のような流れです｡&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;masterブランチから新しくブランチを切る&lt;/li&gt;
&lt;li&gt;変更を加える&lt;/li&gt;
&lt;li&gt;commitする&lt;/li&gt;
&lt;li&gt;pushする&lt;/li&gt;
&lt;li&gt;プルリクエストを出す&lt;/li&gt;
&lt;li&gt;レビューしてもらう&lt;/li&gt;
&lt;li&gt;問題なければマージする(してもらう)&lt;/li&gt;
&lt;li&gt;リモートブランチを削除する&lt;/li&gt;
&lt;/ol&gt;

&lt;h1&gt;
  
  
  詳細な手順
&lt;/h1&gt;

&lt;p&gt;ここでは､プルリクエストの部分以外はローカルからコマンドでやる方法を記載します｡&lt;br&gt;
新しい機能(new-feature)を追加します｡コマンドは全てプロジェクトのルートディレクトリで実行しているものとします｡&lt;/p&gt;

&lt;h2&gt;
  
  
  ブランチの作成
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;ブランチを切ってそのブランチに移動する

&lt;ul&gt;
&lt;li&gt;ブランチ名はチームのルールに従って､追加する変更がわかりやすい名前にする(Jiraなどのタスクナンバーにする場合も)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;git checkout -b new-feature&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;gt; git branch -a
  master #ローカルのマスター
* new-feature #現在のブランチ
  remotes/master #リモートのマスター
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  変更からプルリクまで
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;変更を加える&lt;/li&gt;
&lt;li&gt;commitする

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;git add .&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;git commit -m "新しい機能を追加"&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;li&gt;リモートブランチにpushする

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;git push origin new-feature&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;gt; git branch -a
  master
* new-feature #現在のブランチ
  remotes/new-feature #リモートに同名のブランチが作成された
  remotes/master
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;プルリクエストを出す

&lt;ul&gt;
&lt;li&gt;ブラウザでリポジトリを開き､リモートブランチ(new-feature)に対しプルリクエストを出す&lt;/li&gt;
&lt;li&gt;pushした直後であればリポジトリのトップ画面に&lt;code&gt;Compare &amp;amp; pull request&lt;/code&gt;というボタンが出ている
&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--zEAhFxIs--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://esa-upload.s3-ap-northeast-1.amazonaws.com/uploads/production/attachments/7996/2018/07/22/30651/c8d95b28-59bb-457e-b20c-5ae1ffa18b97.png" alt="Screenshot from 2018-07-22 23-03-34.png (49.9 kB)"&gt;
&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;li&gt;レビュアーにレビューしてもらう&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  変更の取り込み
&lt;/h2&gt;

&lt;p&gt;自身でマージする場合は【自分でマージする場合】まで飛ばしてください&lt;/p&gt;

&lt;h3&gt;
  
  
  他の人(レビュアーなど)がマージする場合
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;gt; git branch -a
* master
  remotes/master
  remotes/new-feature # プルリクのコミット
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;ローカルの&lt;code&gt;origin/master&lt;/code&gt;を更新する

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;git fetch origin&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;参考&lt;br&gt;
&lt;a href="https://qiita.com/osamu1203/items/cb94ef9da02e1ec3e921"&gt;git fetchの理解からgit mergeとpullの役割&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;ul&gt;
&lt;li&gt;ローカルにプルリクのブランチを持ってくる(リモートブランチからブランチを作成)

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;git checkout -b new-feature origin/new-feature&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;gt; git branch -a
  master
* new-feature
  remotes/master
  remotes/new-feature
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;ローカルの&lt;code&gt;origin/master&lt;/code&gt;を&lt;code&gt;master&lt;/code&gt;にマージ

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;git merge master&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;li&gt;
【自分でマージする場合】に進む&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  自分でマージする場合
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;masterに移動

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;git branch master&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;gt; git branch -a
* master #現在のブランチ
  new-feature
  remotes/master
  remotes/new-feature
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;変更(new-feature)を&lt;strong&gt;ローカルのmaster&lt;/strong&gt;にマージする

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;git merge --no-ff new-feature&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;gt; git branch -a
* master  #同じコミット
  new-feature #同じコミット
  remotes/master #一つ前のコミット
  remotes/new-feature #同じコミット
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;&lt;code&gt;--no-ff&lt;/code&gt;などのマージオプションは下記が詳しかったです｡&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="http://d.hatena.ne.jp/sinsoku/20111025/1319497900"&gt;図で分かるgit-mergeの--ff, --no-ff, --squashの違い - アジャイルSEを目指すブログ&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://qiita.com/nog/items/c79469afbf3e632f10a1"&gt;gitのmerge --no-ff のススメ&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;

&lt;ul&gt;
&lt;li&gt;ローカルのmasterをリモートにpushする

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;git push origin master&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;gt; git branch -a
* master  #同じコミット
  new-feature #同じコミット
  remotes/master #同じコミット
  remotes/new-feature #同じコミット
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  ブランチの削除
&lt;/h2&gt;

&lt;p&gt;Github Flowに則るのであれば､リモートのmasterブランチは常にデプロイ出来る状態なので､この時点でCircleCIなどでビルドが走ってデプロイされるケースがあるかもしれません｡リモートとローカルのnew-featureブランチは不要になるので削除しておきましょう｡&lt;/p&gt;

&lt;h3&gt;
  
  
  ローカルのブランチ削除
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;git branch -d new-feature&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;gt; git branch -a
* master
  remotes/master
  remotes/new-feature
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  リモートのブランチ削除
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;git push --delete origin new-feature&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;gt; git branch -a
* master
  remotes/master
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;以上です｡実際に業務で使ったわけではないので､おかしな部分があるかもしれません｡(特にレビュアーの立場のところは実際にやってないので｡｡)&lt;br&gt;
おかしな部分があればご指摘ください｡&lt;/p&gt;

</description>
      <category>github</category>
    </item>
  </channel>
</rss>
