Slide 1

Slide 1 text

Copyright © GREE, Inc. All Rights Reserved. Confidential ネットワークエンジニアが Web 開発をやってみて思ったこと グリー株式会社 インフラストラクチャ部 吉浜 丈広

Slide 2

Slide 2 text

Copyright © GREE, Inc. All Rights Reserved. Confidential 自己紹介 ● 吉浜 丈広(よしはま たけひろ) ● 主担当はオンプレミス環境の ネットワーク管理・運用 ● 最近 Web 開発にも参加 ● 趣味: 旅行、ボルダリング、 コミュニティ活動

Slide 3

Slide 3 text

Copyright © GREE, Inc. All Rights Reserved. Confidential • 元々はオンプレミス環境のみでサービス提供 • キャッシュアウト削減のため AWS 移行へ • サーバの老朽化 • メンテナンスコストの上昇 • パブリッククラウドの低価格化 • リソースのより効率的な利用 • 一部はオンプレミス環境に残る • サーバ約 2000 台、ネットワーク機器約 200 台くらい • 引き続き管理・運用が必要 ネットワークエンジニアとしてのお仕事 〜背景〜

Slide 4

Slide 4 text

Copyright © GREE, Inc. All Rights Reserved. Confidential • IP アドレス、サーバ資源管理 • サーバ、ネットワーク機器の保守・運用 • データセンター内ネットワークの設計・運用 • 対外接続の管理・運用 • その他障害・メンテナンス対応 ネットワークエンジニアとしてのお仕事 〜具体的なお仕事〜 仕事でプログラムを書く必要はほとんどない

Slide 5

Slide 5 text

Copyright © GREE, Inc. All Rights Reserved. Confidential そんなある日、ふと思う

Slide 6

Slide 6 text

Copyright © GREE, Inc. All Rights Reserved. Confidential ゲーム開発会社に入ったのに、 ゲームを作ったことがないのは もったいない?

Slide 7

Slide 7 text

Copyright © GREE, Inc. All Rights Reserved. Confidential せっかくだから作ってみたい!

Slide 8

Slide 8 text

Copyright © GREE, Inc. All Rights Reserved. Confidential • 1 on 1 でマネージャーに「ちょっとプロダクト開発やってみたい」 • 知り合いの開発チームマネージャーに「ちょっと(ry • 360°画像配信サービスのサーバサイド開発へ • 環境:AWS • 言語:PHP • フレームワーク:Laravel Web 開発参加 〜とりあえずやってみよう〜

Slide 9

Slide 9 text

Copyright © GREE, Inc. All Rights Reserved. Confidential • 360°画像配信プラットフォーム Web 開発参加 〜やったこと〜 auto scaling group https://aws.amazon.com/jp/architecture/icons/

Slide 10

Slide 10 text

Copyright © GREE, Inc. All Rights Reserved. Confidential • 360°画像配信プラットフォーム Web 開発参加 〜やったこと〜 ● AMI 作成 ● API 仕様作成 ● API サーバ開発 ● 各種サービス設定 ● テーブル設計 auto scaling group https://aws.amazon.com/jp/architecture/icons/

Slide 11

Slide 11 text

Copyright © GREE, Inc. All Rights Reserved. Confidential • 要件定義の段階から参加 • テーブル設計、API 仕様定義 • テーブル定義書、シーケンス図作成 • AWS で利用する各種サービス設定 • API サーバの AMI 作成 • API サーバ開発 Web 開発参加 〜やったこと〜

Slide 12

Slide 12 text

Copyright © GREE, Inc. All Rights Reserved. Confidential • 要件定義の段階から参加 • テーブル設計、API 仕様定義 • テーブル定義書、シーケンス図作成 • AWS で利用する各種サービス設定 • API サーバの AMI 作成 • API サーバ開発 Web 開発参加 〜やったこと〜

Slide 13

Slide 13 text

Copyright © GREE, Inc. All Rights Reserved. Confidential • API をどう設計するべきかがわからない • Path はどう決める? -> 大まかなカテゴライズ・集合/特定の機能 • パラメータは Path? Body? -> 個別にキャッシュしたいときは Path に • どれくらい機能を分割? -> 利用側はまとめて取得できた方が便利、でも機能的に肥大化しないように • 複数人での開発に慣れていない • Service、Controller 等レイヤー分離が下手 -> ロジックは Service へ • 他人が読みにくいコード -> コーディング規約に気を付けつつ、たくさん読み書きして慣れよう Web 開発参加 〜やってて困ったこと、思ったこと〜

Slide 14

Slide 14 text

Copyright © GREE, Inc. All Rights Reserved. Confidential なんとなくわかってきた 気がする

Slide 15

Slide 15 text

Copyright © GREE, Inc. All Rights Reserved. Confidential 次いってみよう!

Slide 16

Slide 16 text

Copyright © GREE, Inc. All Rights Reserved. Confidential • 知識も大事だけど、やっぱり経験が大事 • スマートフォンゲームのサーバサイド開発 • 環境:AWS • 言語:PHP • フレームワーク:Laravel • 環境構成、担当範囲同じ ゲーム開発参加 〜もう一度やってみよう〜

Slide 17

Slide 17 text

Copyright © GREE, Inc. All Rights Reserved. Confidential • ゲームのサーバサイド開発 ゲーム開発参加 〜やったこと〜 auto scaling group https://aws.amazon.com/jp/architecture/icons/

Slide 18

Slide 18 text

Copyright © GREE, Inc. All Rights Reserved. Confidential • ゲームのサーバサイド開発 ゲーム開発参加 〜やったこと〜 ● AMI 作成 ● API 仕様作成 ● API サーバ開発 ● 各種サービス設定 ● テーブル設計 auto scaling group https://aws.amazon.com/jp/architecture/icons/

Slide 19

Slide 19 text

Copyright © GREE, Inc. All Rights Reserved. Confidential • 要件定義の段階から参加 • テーブル設計、API 仕様定義 • AWS で利用する各種サービス設定 • API サーバの AMI 作成 • API サーバ開発 ゲーム開発参加 〜やったこと〜

Slide 20

Slide 20 text

Copyright © GREE, Inc. All Rights Reserved. Confidential • API の設計・実装時間が短くなった? • こんな感じで作ると良いかもと思えるように • 修正する回数が少なくなった • 複数人での開発に慣れてきた? • PR へのコメント数が圧倒的に少なくなった • 他人の PR レビューをするくらい余裕が持てた ゲーム開発参加 〜前回との違い〜 まだまだ学ぶことは多いが、 前回よりも役に立てた!

Slide 21

Slide 21 text

Copyright © GREE, Inc. All Rights Reserved. Confidential • 複数人開発は難しいが楽しい • 色々な考え方、実装方法 • 共通認識を持つことが大事 • やれば大体何とかなる • ちゃんと取り組めば周りが助けてくれる • おそれずチャレンジしてみよう • 低レイヤーはあまり気にしない人が多い? • 特にネットワーク周り • 担当範囲が違う? • 弊社だとミドルウェア以下はインフラ部がまとめてみる 開発に参加して思ったこと 〜まとめ〜

Slide 22

Slide 22 text

Copyright © GREE, Inc. All Rights Reserved. Confidential せっかくなので、少しだけネットワークの話

Slide 23

Slide 23 text

Copyright © GREE, Inc. All Rights Reserved. Confidential • 組織のネットワークを相互接続したもの インターネットとは 〜概略図〜 ISP A社 クラウド 事業者 IX CP B社 CDN 事業者 CP A 社 DC 事業者 ISP C社 ISP B社 IX この一つのくもを AS(Autonomous System)と呼ぶ

Slide 24

Slide 24 text

Copyright © GREE, Inc. All Rights Reserved. Confidential • 例えば CP B社へアクセス インターネットとは 〜概略図〜 ISP A社 クラウド 事業者 IX CP B社 CDN 事業者 CP A 社 DC 事業者 ISP C社 ISP B社 IX

Slide 25

Slide 25 text

Copyright © GREE, Inc. All Rights Reserved. Confidential • 例えば CP B社へアクセス インターネットとは 〜概略図〜 ISP A社 クラウド 事業者 IX CP B社 CDN 事業者 CP A 社 DC 事業者 ISP C社 ISP B社 IX

Slide 26

Slide 26 text

Copyright © GREE, Inc. All Rights Reserved. Confidential • どういう経路で通信が流れるかが大事 • 複数組織のネットワークを通過する場合もある • 到達性は経路に依存する • 経路は時と場合で変わる • どこから通信してる? • 誰に通信してる? • 途中で障害などがおきてたり • 意図的に迂回させてたり • 同じ通信相手が複数のネットワークに存在 インターネットとは 〜特徴〜 通信できるかどうかは状況によって変わりえる

Slide 27

Slide 27 text

Copyright © GREE, Inc. All Rights Reserved. Confidential • ping, traceroute, mtr などのコマンド • 通過した AS (= 組織のネットワーク)が分かる • 各社の looking glass を利用 • ping, traceroute, 経路情報の表示などができる • RIPE Atlas の probe を利用する • https://atlas.ripe.net/probes/ • probe を持っていれば他の probe からも自分でクエリを発行できる • その他経路が確認できるサービスを利用する • https://stat.ripe.net/special/bgplay • Web で見れ、過去の変動も見れる • http://www.routeviews.org/routeviews/ • データをダウンロードして解析する形になるので敷居が高いとおもう インターネットとは 〜どうやって確かめる?〜

Slide 28

Slide 28 text

Copyright © GREE, Inc. All Rights Reserved. Confidential 時間が足りないので、興味のある方は ブースに遊びに来てください! or 懇親会でお話しましょう!

Slide 29

Slide 29 text

Copyright © GREE, Inc. All Rights Reserved. Confidential