Upgrade to Pro — share decks privately, control downloads, hide ads and more …

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

gree_tech
December 02, 2019

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

「Developers Boost 2019」で発表された資料です。
https://event.shoeisha.jp/devboost/20191130

gree_tech

December 02, 2019
Tweet

More Decks by gree_tech

Other Decks in Technology

Transcript

  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 • 1

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

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

    Web 開発参加 〜やったこと〜 • AMI 作成 • API 仕様作成 • API サーバ開発 • 各種サービス設定 • テーブル設計 auto scaling group https://aws.amazon.com/jp/architecture/icons/
  8. Copyright © GREE, Inc. All Rights Reserved. Confidential • 要件定義の段階から参加

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

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

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

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

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

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

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

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

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

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

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

    CP B社へアクセス インターネットとは 〜概略図〜 ISP A社 クラウド 事業者 IX CP B社 CDN 事業者 CP A 社 DC 事業者 ISP C社 ISP B社 IX
  20. Copyright © GREE, Inc. All Rights Reserved. Confidential • どういう経路で通信が流れるかが大事

    • 複数組織のネットワークを通過する場合もある • 到達性は経路に依存する • 経路は時と場合で変わる • どこから通信してる? • 誰に通信してる? • 途中で障害などがおきてたり • 意図的に迂回させてたり • 同じ通信相手が複数のネットワークに存在 インターネットとは 〜特徴〜 通信できるかどうかは状況によって変わりえる
  21. 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/ • データをダウンロードして解析する形になるので敷居が高いとおもう インターネットとは 〜どうやって確かめる?〜