Copyright © GREE, Inc. All Rights Reserved.Confidential
ネットワークエンジニアが
Web 開発をやってみて思ったこと
グリー株式会社 インフラストラクチャ部
吉浜 丈広
Copyright © GREE, Inc. All Rights Reserved.Confidential
自己紹介
● 吉浜 丈広(よしはま たけひろ)
● 主担当はオンプレミス環境の
ネットワーク管理・運用
● 最近 Web 開発にも参加
● 趣味:
旅行、ボルダリング、
コミュニティ活動
Copyright © GREE, Inc. All Rights Reserved.Confidential
• 元々はオンプレミス環境のみでサービス提供
• キャッシュアウト削減のため AWS 移行へ
• サーバの老朽化
• メンテナンスコストの上昇
• パブリッククラウドの低価格化
• リソースのより効率的な利用
• 一部はオンプレミス環境に残る
• サーバ約 2000 台、ネットワーク機器約 200 台くらい
• 引き続き管理・運用が必要
ネットワークエンジニアとしてのお仕事
〜背景〜
Copyright © GREE, Inc. All Rights Reserved.Confidential
• IP アドレス、サーバ資源管理
• サーバ、ネットワーク機器の保守・運用
• データセンター内ネットワークの設計・運用
• 対外接続の管理・運用
• その他障害・メンテナンス対応
ネットワークエンジニアとしてのお仕事
〜具体的なお仕事〜
仕事でプログラムを書く必要はほとんどない
Copyright © GREE, Inc. All Rights Reserved.Confidential
そんなある日、ふと思う
Copyright © GREE, Inc. All Rights Reserved.Confidential
ゲーム開発会社に入ったのに、
ゲームを作ったことがないのは
もったいない?
Copyright © GREE, Inc. All Rights Reserved.Confidential
せっかくだから作ってみたい!
Copyright © GREE, Inc. All Rights Reserved.Confidential
• 1 on 1 でマネージャーに「ちょっとプロダクト開発やってみたい」
• 知り合いの開発チームマネージャーに「ちょっと(ry
• 360°画像配信サービスのサーバサイド開発へ
• 環境:AWS
• 言語:PHP
• フレームワーク:Laravel
Web 開発参加
〜とりあえずやってみよう〜
Copyright © GREE, Inc. All Rights Reserved.Confidential
• 360°画像配信プラットフォーム
Web 開発参加
〜やったこと〜
auto scaling
group
https://aws.amazon.com/jp/architecture/icons/
Copyright © GREE, Inc. All Rights Reserved.Confidential
• 360°画像配信プラットフォーム
Web 開発参加
〜やったこと〜
● AMI 作成
● API 仕様作成
● API サーバ開発
● 各種サービス設定
● テーブル設計
auto scaling
group
https://aws.amazon.com/jp/architecture/icons/
Copyright © GREE, Inc. All Rights Reserved.Confidential
• 要件定義の段階から参加
• テーブル設計、API 仕様定義
• テーブル定義書、シーケンス図作成
• AWS で利用する各種サービス設定
• API サーバの AMI 作成
• API サーバ開発
Web 開発参加
〜やったこと〜
Copyright © GREE, Inc. All Rights Reserved.Confidential
• 要件定義の段階から参加
• テーブル設計、API 仕様定義
• テーブル定義書、シーケンス図作成
• AWS で利用する各種サービス設定
• API サーバの AMI 作成
• API サーバ開発
Web 開発参加
〜やったこと〜
Copyright © GREE, Inc. All Rights Reserved.Confidential
• API をどう設計するべきかがわからない
• Path はどう決める?
-> 大まかなカテゴライズ・集合/特定の機能
• パラメータは Path? Body?
-> 個別にキャッシュしたいときは Path に
• どれくらい機能を分割?
-> 利用側はまとめて取得できた方が便利、でも機能的に肥大化しないように
• 複数人での開発に慣れていない
• Service、Controller 等レイヤー分離が下手
-> ロジックは Service へ
• 他人が読みにくいコード
-> コーディング規約に気を付けつつ、たくさん読み書きして慣れよう
Web 開発参加
〜やってて困ったこと、思ったこと〜
Copyright © GREE, Inc. All Rights Reserved.Confidential
なんとなくわかってきた
気がする
Copyright © GREE, Inc. All Rights Reserved.Confidential
次いってみよう!
Copyright © GREE, Inc. All Rights Reserved.Confidential
• 知識も大事だけど、やっぱり経験が大事
• スマートフォンゲームのサーバサイド開発
• 環境:AWS
• 言語:PHP
• フレームワーク:Laravel
• 環境構成、担当範囲同じ
ゲーム開発参加
〜もう一度やってみよう〜
Copyright © GREE, Inc. All Rights Reserved.Confidential
• ゲームのサーバサイド開発
ゲーム開発参加
〜やったこと〜
auto scaling
group
https://aws.amazon.com/jp/architecture/icons/
Copyright © GREE, Inc. All Rights Reserved.Confidential
• ゲームのサーバサイド開発
ゲーム開発参加
〜やったこと〜
● AMI 作成
● API 仕様作成
● API サーバ開発
● 各種サービス設定
● テーブル設計
auto scaling
group
https://aws.amazon.com/jp/architecture/icons/
Copyright © GREE, Inc. All Rights Reserved.Confidential
• 要件定義の段階から参加
• テーブル設計、API 仕様定義
• AWS で利用する各種サービス設定
• API サーバの AMI 作成
• API サーバ開発
ゲーム開発参加
〜やったこと〜
Copyright © GREE, Inc. All Rights Reserved.Confidential
• API の設計・実装時間が短くなった?
• こんな感じで作ると良いかもと思えるように
• 修正する回数が少なくなった
• 複数人での開発に慣れてきた?
• PR へのコメント数が圧倒的に少なくなった
• 他人の PR レビューをするくらい余裕が持てた
ゲーム開発参加
〜前回との違い〜
まだまだ学ぶことは多いが、
前回よりも役に立てた!
Copyright © GREE, Inc. All Rights Reserved.Confidential
• 複数人開発は難しいが楽しい
• 色々な考え方、実装方法
• 共通認識を持つことが大事
• やれば大体何とかなる
• ちゃんと取り組めば周りが助けてくれる
• おそれずチャレンジしてみよう
• 低レイヤーはあまり気にしない人が多い?
• 特にネットワーク周り
• 担当範囲が違う?
• 弊社だとミドルウェア以下はインフラ部がまとめてみる
開発に参加して思ったこと
〜まとめ〜
Copyright © GREE, Inc. All Rights Reserved.Confidential
せっかくなので、少しだけネットワークの話
Copyright © GREE, Inc. All Rights Reserved.Confidential
• 組織のネットワークを相互接続したもの
インターネットとは
〜概略図〜
ISP
A社 クラウド
事業者
IX
CP
B社
CDN
事業者
CP
A 社
DC
事業者
ISP
C社
ISP
B社
IX
この一つのくもを
AS(Autonomous System)と呼ぶ
Copyright © GREE, Inc. All Rights Reserved.Confidential
• 例えば CP B社へアクセス
インターネットとは
〜概略図〜
ISP
A社 クラウド
事業者
IX
CP
B社
CDN
事業者
CP
A 社
DC
事業者
ISP
C社
ISP
B社
IX
Copyright © GREE, Inc. All Rights Reserved.Confidential
• 例えば CP B社へアクセス
インターネットとは
〜概略図〜
ISP
A社 クラウド
事業者
IX
CP
B社
CDN
事業者
CP
A 社
DC
事業者
ISP
C社
ISP
B社
IX
Copyright © GREE, Inc. All Rights Reserved.Confidential
• どういう経路で通信が流れるかが大事
• 複数組織のネットワークを通過する場合もある
• 到達性は経路に依存する
• 経路は時と場合で変わる
• どこから通信してる?
• 誰に通信してる?
• 途中で障害などがおきてたり
• 意図的に迂回させてたり
• 同じ通信相手が複数のネットワークに存在
インターネットとは
〜特徴〜
通信できるかどうかは状況によって変わりえる
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/
• データをダウンロードして解析する形になるので敷居が高いとおもう
インターネットとは
〜どうやって確かめる?〜
Copyright © GREE, Inc. All Rights Reserved.Confidential
時間が足りないので、興味のある方は
ブースに遊びに来てください!
or
懇親会でお話しましょう!
Copyright © GREE, Inc. All Rights Reserved.Confidential

ネットワークエンジニアがWeb開発をやってみて思ったこと

  • 1.
    Copyright © GREE,Inc. All Rights Reserved.Confidential ネットワークエンジニアが Web 開発をやってみて思ったこと グリー株式会社 インフラストラクチャ部 吉浜 丈広
  • 2.
    Copyright © GREE,Inc. All Rights Reserved.Confidential 自己紹介 ● 吉浜 丈広(よしはま たけひろ) ● 主担当はオンプレミス環境の ネットワーク管理・運用 ● 最近 Web 開発にも参加 ● 趣味: 旅行、ボルダリング、 コミュニティ活動
  • 3.
    Copyright © GREE,Inc. All Rights Reserved.Confidential • 元々はオンプレミス環境のみでサービス提供 • キャッシュアウト削減のため AWS 移行へ • サーバの老朽化 • メンテナンスコストの上昇 • パブリッククラウドの低価格化 • リソースのより効率的な利用 • 一部はオンプレミス環境に残る • サーバ約 2000 台、ネットワーク機器約 200 台くらい • 引き続き管理・運用が必要 ネットワークエンジニアとしてのお仕事 〜背景〜
  • 4.
    Copyright © GREE,Inc. All Rights Reserved.Confidential • IP アドレス、サーバ資源管理 • サーバ、ネットワーク機器の保守・運用 • データセンター内ネットワークの設計・運用 • 対外接続の管理・運用 • その他障害・メンテナンス対応 ネットワークエンジニアとしてのお仕事 〜具体的なお仕事〜 仕事でプログラムを書く必要はほとんどない
  • 5.
    Copyright © GREE,Inc. All Rights Reserved.Confidential そんなある日、ふと思う
  • 6.
    Copyright © GREE,Inc. All Rights Reserved.Confidential ゲーム開発会社に入ったのに、 ゲームを作ったことがないのは もったいない?
  • 7.
    Copyright © GREE,Inc. All Rights Reserved.Confidential せっかくだから作ってみたい!
  • 8.
    Copyright © GREE,Inc. All Rights Reserved.Confidential • 1 on 1 でマネージャーに「ちょっとプロダクト開発やってみたい」 • 知り合いの開発チームマネージャーに「ちょっと(ry • 360°画像配信サービスのサーバサイド開発へ • 環境:AWS • 言語:PHP • フレームワーク:Laravel Web 開発参加 〜とりあえずやってみよう〜
  • 9.
    Copyright © GREE,Inc. All Rights Reserved.Confidential • 360°画像配信プラットフォーム Web 開発参加 〜やったこと〜 auto scaling group https://aws.amazon.com/jp/architecture/icons/
  • 10.
    Copyright © GREE,Inc. All Rights Reserved.Confidential • 360°画像配信プラットフォーム Web 開発参加 〜やったこと〜 ● AMI 作成 ● API 仕様作成 ● API サーバ開発 ● 各種サービス設定 ● テーブル設計 auto scaling group https://aws.amazon.com/jp/architecture/icons/
  • 11.
    Copyright © GREE,Inc. All Rights Reserved.Confidential • 要件定義の段階から参加 • テーブル設計、API 仕様定義 • テーブル定義書、シーケンス図作成 • AWS で利用する各種サービス設定 • API サーバの AMI 作成 • API サーバ開発 Web 開発参加 〜やったこと〜
  • 12.
    Copyright © GREE,Inc. All Rights Reserved.Confidential • 要件定義の段階から参加 • テーブル設計、API 仕様定義 • テーブル定義書、シーケンス図作成 • AWS で利用する各種サービス設定 • API サーバの AMI 作成 • API サーバ開発 Web 開発参加 〜やったこと〜
  • 13.
    Copyright © GREE,Inc. All Rights Reserved.Confidential • API をどう設計するべきかがわからない • Path はどう決める? -> 大まかなカテゴライズ・集合/特定の機能 • パラメータは Path? Body? -> 個別にキャッシュしたいときは Path に • どれくらい機能を分割? -> 利用側はまとめて取得できた方が便利、でも機能的に肥大化しないように • 複数人での開発に慣れていない • Service、Controller 等レイヤー分離が下手 -> ロジックは Service へ • 他人が読みにくいコード -> コーディング規約に気を付けつつ、たくさん読み書きして慣れよう Web 開発参加 〜やってて困ったこと、思ったこと〜
  • 14.
    Copyright © GREE,Inc. All Rights Reserved.Confidential なんとなくわかってきた 気がする
  • 15.
    Copyright © GREE,Inc. All Rights Reserved.Confidential 次いってみよう!
  • 16.
    Copyright © GREE,Inc. All Rights Reserved.Confidential • 知識も大事だけど、やっぱり経験が大事 • スマートフォンゲームのサーバサイド開発 • 環境:AWS • 言語:PHP • フレームワーク:Laravel • 環境構成、担当範囲同じ ゲーム開発参加 〜もう一度やってみよう〜
  • 17.
    Copyright © GREE,Inc. All Rights Reserved.Confidential • ゲームのサーバサイド開発 ゲーム開発参加 〜やったこと〜 auto scaling group https://aws.amazon.com/jp/architecture/icons/
  • 18.
    Copyright © GREE,Inc. All Rights Reserved.Confidential • ゲームのサーバサイド開発 ゲーム開発参加 〜やったこと〜 ● AMI 作成 ● API 仕様作成 ● API サーバ開発 ● 各種サービス設定 ● テーブル設計 auto scaling group https://aws.amazon.com/jp/architecture/icons/
  • 19.
    Copyright © GREE,Inc. All Rights Reserved.Confidential • 要件定義の段階から参加 • テーブル設計、API 仕様定義 • AWS で利用する各種サービス設定 • API サーバの AMI 作成 • API サーバ開発 ゲーム開発参加 〜やったこと〜
  • 20.
    Copyright © GREE,Inc. All Rights Reserved.Confidential • API の設計・実装時間が短くなった? • こんな感じで作ると良いかもと思えるように • 修正する回数が少なくなった • 複数人での開発に慣れてきた? • PR へのコメント数が圧倒的に少なくなった • 他人の PR レビューをするくらい余裕が持てた ゲーム開発参加 〜前回との違い〜 まだまだ学ぶことは多いが、 前回よりも役に立てた!
  • 21.
    Copyright © GREE,Inc. All Rights Reserved.Confidential • 複数人開発は難しいが楽しい • 色々な考え方、実装方法 • 共通認識を持つことが大事 • やれば大体何とかなる • ちゃんと取り組めば周りが助けてくれる • おそれずチャレンジしてみよう • 低レイヤーはあまり気にしない人が多い? • 特にネットワーク周り • 担当範囲が違う? • 弊社だとミドルウェア以下はインフラ部がまとめてみる 開発に参加して思ったこと 〜まとめ〜
  • 22.
    Copyright © GREE,Inc. All Rights Reserved.Confidential せっかくなので、少しだけネットワークの話
  • 23.
    Copyright © GREE,Inc. All Rights Reserved.Confidential • 組織のネットワークを相互接続したもの インターネットとは 〜概略図〜 ISP A社 クラウド 事業者 IX CP B社 CDN 事業者 CP A 社 DC 事業者 ISP C社 ISP B社 IX この一つのくもを AS(Autonomous System)と呼ぶ
  • 24.
    Copyright © GREE,Inc. All Rights Reserved.Confidential • 例えば CP B社へアクセス インターネットとは 〜概略図〜 ISP A社 クラウド 事業者 IX CP B社 CDN 事業者 CP A 社 DC 事業者 ISP C社 ISP B社 IX
  • 25.
    Copyright © GREE,Inc. All Rights Reserved.Confidential • 例えば CP B社へアクセス インターネットとは 〜概略図〜 ISP A社 クラウド 事業者 IX CP B社 CDN 事業者 CP A 社 DC 事業者 ISP C社 ISP B社 IX
  • 26.
    Copyright © GREE,Inc. All Rights Reserved.Confidential • どういう経路で通信が流れるかが大事 • 複数組織のネットワークを通過する場合もある • 到達性は経路に依存する • 経路は時と場合で変わる • どこから通信してる? • 誰に通信してる? • 途中で障害などがおきてたり • 意図的に迂回させてたり • 同じ通信相手が複数のネットワークに存在 インターネットとは 〜特徴〜 通信できるかどうかは状況によって変わりえる
  • 27.
    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/ • データをダウンロードして解析する形になるので敷居が高いとおもう インターネットとは 〜どうやって確かめる?〜
  • 28.
    Copyright © GREE,Inc. All Rights Reserved.Confidential 時間が足りないので、興味のある方は ブースに遊びに来てください! or 懇親会でお話しましょう!
  • 29.
    Copyright © GREE,Inc. All Rights Reserved.Confidential

Editor's Notes

  • #23 ここまでで 16:30 くらい
  • #29 ここまでで 16:30 くらい