52
DEVELOPER INFRASTRUCTURE — Wantedly Culture —

Developer Infrastructure in Devlove Kansai

Embed Size (px)

Citation preview

Page 1: Developer Infrastructure in Devlove Kansai

DEVELOPER INFRASTRUCTURE

— Wantedly Culture —

Page 2: Developer Infrastructure in Devlove Kansai

About me

• Kodai Sakabe@koudaiii

• インフラチーム

• 2015 - Wantedly

• 2010 - 2015 TIS

Page 3: Developer Infrastructure in Devlove Kansai

http://qiita.com/koudaiii/items/bc89368e1279649f2498

Page 4: Developer Infrastructure in Devlove Kansai

WANTEDLY— シゴトでココロオドルひとをふやす—

Page 5: Developer Infrastructure in Devlove Kansai

自分の寿命が縮むことを願う人々

Page 6: Developer Infrastructure in Devlove Kansai

�� �����������

Page 7: Developer Infrastructure in Devlove Kansai

働くを面白くする ビジネスSNS

月間

60万 ユーザ

月間

70万 ユーザ

Page 8: Developer Infrastructure in Devlove Kansai

Wantedlyの提供するサービス

• プロフェッショナル・プロフィール

• 会社訪問・インターン探し

• ビジネス用の人脈管理

• グループメッセンジャーSync←New!

Page 9: Developer Infrastructure in Devlove Kansai

https://www.wantedly.com/users/310906

プロフェッショナル・プロフィール

Page 10: Developer Infrastructure in Devlove Kansai
Page 11: Developer Infrastructure in Devlove Kansai

(= )

Page 12: Developer Infrastructure in Devlove Kansai

Sync

Page 13: Developer Infrastructure in Devlove Kansai

利用社数約

10000社以上

利用社数約

13000社以上

Page 14: Developer Infrastructure in Devlove Kansai

http://jp.techcrunch.com/2015/11/09/wantedly-open-api/

http://japan.cnet.com/news/service/35073141/

Page 15: Developer Infrastructure in Devlove Kansai

Wantedly OpenAPI

https://www.wantedly.com/developers/

Page 16: Developer Infrastructure in Devlove Kansai

本日お話する内容 「現場のDiff = 文化の違い」

Wantedlyの文化 インフラチームの文化

Page 17: Developer Infrastructure in Devlove Kansai

Wantedly Value

Page 18: Developer Infrastructure in Devlove Kansai

Wantedly Value

• Owner Ship

• Leader Ship

• Wantedly Way

Page 19: Developer Infrastructure in Devlove Kansai

コップに水を貯めよう

• 空のコップがひとつあったとして、何かに失敗して、PDCAサイクルを一度回すと、失敗から学んだ分コップに水が溜まっていく

• 最終的に水があふれる時が成功

• その人の姿勢で水の入り具合は変わる

• 意思決定や経験値が高まると、コップも大きくなるし、水の量も変わる

• 誰もが Owner Ship と Leader Ship を発揮していこうとする文化

Owner Ship Leader Ship

Page 20: Developer Infrastructure in Devlove Kansai

Wantedly Way

Page 21: Developer Infrastructure in Devlove Kansai

Wantedly Way

• Code Wins Arguments

• User First

• Simple is Not Easy

Page 22: Developer Infrastructure in Devlove Kansai

Code Wins Arguments

• チームで1時間MTGするならcodeを書いて検証しよう

• エンジニアの場合

• 限られた情報で決断をして、前に進んでいるか

• 仮説をあれこれ考えるより、まずプロトタイプを作って早く学習しているか

• 爆速で動けているか

• 営業の場合

• 自分で良い機能が浮かんだからエンジニアに頼むのではなく

• 企画書を書いて会社を回って、5社程度を確約して、これなら行けると思ったらエンジニアに頼むことが出来るか

Page 23: Developer Infrastructure in Devlove Kansai

User First

• 「もっと速い馬車がほしい」というユーザの声を聞き続けるのではなく、「速く移動したい」というユーザの本質的な欲求に応える行為

• 「言葉 < 行動」

• ユーザーテストで3人間違えるようだったりまごついたりしたら改善して、もう一回試してもらって違う人にも試してもらう

Page 24: Developer Infrastructure in Devlove Kansai

Bad(例: ユーザテスト)

• どうやって●●(機能名)探しますか??

• どうやって改善にしたらいいですか?

• 仮説がなくて、意見をひたすら聞きまくる

Page 25: Developer Infrastructure in Devlove Kansai

Good(例: ユーザテスト)

• 操作している状況をイメージさせる

• シチュエーション・シナリオを描く

• goalを明確に伝え、答え合わせポイントを明確に

• 考えてることを口に出してもらう

• 担当者が答えをいわない

• 困惑した部分をメモる

Page 26: Developer Infrastructure in Devlove Kansai

Simple is Not Easy

• 作る側が使う側の事を徹底的に考え抜いているか

• 足すよりも引いてフォーカスをしているか

• 上限10%も改善しないような施策をしない(KPIが取りにくいのと、その掛けた工数分でもっと有効な改善はなかったのか?)

• 仮説をたてて、その仮説のコアとなる部分だけにフォーカスできているか

Page 27: Developer Infrastructure in Devlove Kansai

Wantedlyのインフラチーム仕事の考え方と進め方

Page 28: Developer Infrastructure in Devlove Kansai

インフラチームが目指していること

Page 29: Developer Infrastructure in Devlove Kansai

スタート時

数年前までエンジニアが少なかった頃

開発チーム インフラチーム

タスク依頼 作業

Page 30: Developer Infrastructure in Devlove Kansai

時が経つと。。。。

エンジニアの増加、サービスの増加

開発チーム インフラチーム

タスク依頼 作業

Page 31: Developer Infrastructure in Devlove Kansai

課題

• 依頼タスクが増加

• 新たなサービスローンチ

• サービスの分割

• 気づいたらインフラチームの作業待ちがボトルネックに。。。

• インフラチームも日々追われる仕事ばかり自分たちのプロジェクトが進められない

Page 32: Developer Infrastructure in Devlove Kansai

どうする?• 一つは開発チームみたいに人を増やす

• もう一つはインフラチームの力をあげること

• 一人あたりどれくらいのサーバ、どれくらいの種類のアプリ、どれくらいのユーザ数を支えているか

• 例: 1万台のサーバを一万人で見ていたら結局1人1台の力しかない

• 1台のサーバー1人で見ていたものを、100台見れると力上がった

• 2011 年の時点で Facebook のインフラチームはわずか 5 人ほどで 10 万台を超えるサーバを管理

Wantedly は後者を目指す!!!!

Page 33: Developer Infrastructure in Devlove Kansai

WHY:何を実現するか?

• Code wins Arguments を可能にするインフラ

• 既存のアプリでも新規アプリでもどんどんデプロイできるように = 変化に強いインフラ

• 変化を避けるインフラではなく、むしろ変更を前提としたインフラ

• 議論や権力ではなく、まず出してみて結果を見る文化を可能にする

Page 34: Developer Infrastructure in Devlove Kansai

WHY:何を実現するか?

「スピード感ある組織にしていくために必要なものは何か」

”「文化とインフラだと思う。どんどん前に進もうとする文化と、それを可能にするインフラに投資をすること」” Mark Zuckerberg

Page 35: Developer Infrastructure in Devlove Kansai

HOW:どう実現するか?

• 自動化

• セルフサービス化

Page 36: Developer Infrastructure in Devlove Kansai

HOW:自動化/セルフサービス化

• インフラの自動化(Code化)

開発チーム インフラチーム

Pull request

インフラを操作できる APIやcode

Page 37: Developer Infrastructure in Devlove Kansai

HOW:自動化/セルフサービス化

• インフラを操作出来るAPIやCodeにする

• 開発チームが自分たちだけで進められる

• インフラチームも開発チームも自分たちの自分たちの仕事に集中出来る

Page 38: Developer Infrastructure in Devlove Kansai

計測方法

• deploy(変更)回数 / 日

• Container数 + ホスト数 + AWS Resources数 / インフラチーム

• 要件を満たしつつインフラコストを下げる

Page 39: Developer Infrastructure in Devlove Kansai
Page 40: Developer Infrastructure in Devlove Kansai

Default CoreOS

Page 41: Developer Infrastructure in Devlove Kansai

仕事の進め方

• 情熱プロジェクトと痛み分けタスク

• GitHub Issue Driven

• GitHub Flow

Page 42: Developer Infrastructure in Devlove Kansai

情熱プロジェクトと痛み分けタスク• インフラチームのタスクは大きく 2 種類

• やりたいと思っているプロジェクト

• 障害対応や開発チームからの依頼などアドホックに生まれるタスク

Page 43: Developer Infrastructure in Devlove Kansai

Issue Driven

• Issueタイトルは直感的なもの

• 説明には必ず「WHY」と「WHAT」を書く

Page 44: Developer Infrastructure in Devlove Kansai

なぜWHYとWHAT

• 自分以外の人とのコミュニケーションに用いているので他人が理解できなかったら Issue を立てる意味がないし、3ヶ月後の自分は他人。

• 集中して作業している同僚への配慮(非同期コミュニケーション+情報共有)

• コメントは粒度の細かい「報告」とも考えられる = マイクロマネジメネントも避けられる

• 突然別のタスクをすることになって、あとでその issue に戻ってきても思い出せる => 「なぜそうしたのか?」 意思決定を忘れずに書いておこう

• チームメンバー間で Issue のバトンタッチが可能になる

Page 45: Developer Infrastructure in Devlove Kansai

GitHub Flow

• シンプルで制約のあるプロセスは、完璧だけど複雑なプロセスに勝る

• RailsだけじゃなくてNginxの設定でも topic branch ->

PR -> merge -> deploy で進める

• 資料作成も基本的にこの方法に従う

• プロジェクトが別でも同じ開発フローなら join しやすい

Page 46: Developer Infrastructure in Devlove Kansai

Github FlowShellScript

Page 47: Developer Infrastructure in Devlove Kansai

インフラチームのWHY

• 創業者のWHYを実現するため、場(仕組みと文化)を新しく作ることに価値を置きます。

• FacebookやTwitter、Appleといった歴史を変えてきた企業には必ず他にはない新しい仕組みと文化となるHOWが支えています。

• より良い仕組みと文化がイノベーションやキャズムを越えることが出来ると信じています。

Page 48: Developer Infrastructure in Devlove Kansai

インフラチームのHOW

• 良い仕組みとは時流にあったシンプルでかつ美しくユーザーフレンドリーで生き生きできるもの。

• 文化は、普遍的な行動指針であり価値観です。組織として共有されていることで文化として表に出てきます

• 私たちは良い仕組みを模索し提供し続けること、大切にしている価値観・行動指針を伝え続けることが大事だと思っています。

Page 49: Developer Infrastructure in Devlove Kansai

インフラチームのWHAT

• 「情熱的に働く手助けをする」という理念は自分たち自身も例外ではなく自分たちが情熱的に働いてなければ周りの人の力になれるはずがありません

• インフラチームでは、各自情熱的に取り組めるプロジェクトを必ず 1 つ持ちます

• 同時に、事業に貢献する必要もあるため、そのプロジェクトは会社としてやるべきことと、やりたいことが重なる領域を選びます

Page 50: Developer Infrastructure in Devlove Kansai

最後に• インフラチームはより多くのユーザーに価値を届けられるよう挑戦しています

• Infrastructure as codeが世の中に定着していますが、そのほとんどが既にあるツールの利用したものが多いと感じています。

• Wantedlyのインフラチームでは、自分たちにとって必要なツールは何か?を考え、必要であればツールの開発行うことをしています

Page 51: Developer Infrastructure in Devlove Kansai

インフラチーム募集中https://www.wantedly.com/projects/33465

Page 52: Developer Infrastructure in Devlove Kansai

ご静聴ありがとうございました