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

ISPがサーバレスに手を出した / ISP Challenges Serverless

ISPがサーバレスに手を出した / ISP Challenges Serverless

Presented by Yoshiya Ito and me, Takeshi Matsuda at "ServerlessDays Tokyo 2019"

Takeshi "George" Matsuda

October 22, 2019
Tweet

More Decks by Takeshi "George" Matsuda

Other Decks in Technology

Transcript

  1. Copyright © NTT Communications Corporation. All rights reserved. 伊藤 良哉

    NTTコミュニケーションズ株式会社 ・OCNの設計 - フレッツIPoE接続設計 - OCN関連アプリケーション開発 ・対外活動 - JANOG43「OCNネットワークアーキテクチャの変遷と将来」講演 - JANOG44,45 プログラム委員 - CEDEC2019 「ネットワーク事業者と語るゲーム通信」 講演
  2. Copyright © NTT Communications Corporation. All rights reserved. • IPv6

    ISP サービス⽴ち上げ〜運⽤ • IX運⽤ • 国際Tier-1 ISPのサービス戦略 • OCN 設計・開発 • コンシューマ向け(フレッツ)メニューの機能設計 • IPv4, IPv6 共存技術 松⽥ 丈司 Takeshi "George" Matsuda NTT Communications Corp.
  3. Copyright © NTT Communications Corporation. All rights reserved. 会社概要 ⻑距離通信事業

    ⽇本電信電話株式会社 Ø 営業収益 : 13,920億円 <海外展開> <NTT Com Group 従業員数> Ø 41ヶ国/地域, 110都市に拠点あり Ø ネットワークサービスの提供エリアは190ヶ国/地域以上 Ø アジア最⼤のTier-1 IPバックボーンプロバイダ Ø データセンタは140以上の拠点を世界に展開 <2018年度決算> * すべて再編前の情報 Ø 営業利益 : 1,321億円 Ø 合計 : 約 23,300 ⼈ NTT Ltd. NTT株式会社(NTT, Inc.)
  4. Transform your business, transcend expectations with our technologically advanced solutions.

    Copyright © NTT Communications Corporation. All rights reserved. イントロダクション 4
  5. Copyright © NTT Communications Corporation. All rights reserved. 6 インターネットサービスプロバイダ(ISP)

    公衆通信回線を経由して、 インターネット接続を提供する事業者
  6. Copyright © NTT Communications Corporation. All rights reserved. 10 従来⽅式とOCN

    v6アルファ/バーチャルコネクト IPv4 Network 宅内ルータ フレッツ網(IPv6 Only) PPPoEトンネル 網終端装置 混雑 IPv6 Network IPv4 Network BR OCN IPv6 Internet IPv4 Internet ▪従来⽅式 ▪v6アルファ ▪バーチャルコネクト IPv4 Internet IPv4 over IPv6トンネル フレッツ網(IPv6 Only) OCN PPPoE: Point-to-Point Protocol over Ethernet BR: Border Relay
  7. Copyright © NTT Communications Corporation. All rights reserved. 12 serverless

    適⽤場所 ・OCNが採⽤しているIPv4 over IPv6⽅式はMAP-E ・MAP-EではIPv4/IPv6変換ルールを通信開始前に取得する必要 ・MAPルール配信機能をサーバレスアーキテクチャで作った︕ ルール配信 機能 ①ルール取得 ④decap ②ルールからIPv4パケットを IPv6ヘッダでencap ⑤IPv4通信 ③IPv4 over IPv6通信 宅内ルータ BR ←ここ MAP-E: Mapping of Address and Port Encapsulation BR: Border Relay
  8. Copyright © NTT Communications Corporation. All rights reserved. 13 初期アーキテクチャ

    Azure CDN Azure Storage Azure Function AWS Lambda Amazon CloudFront Amazon API Gateway Amazon DynamoDB AWS WAF Amazon Route 53 Azure Application Insight Amazon CloudWatch 宅内ルータ 名前解決
  9. Transform your business, transcend expectations with our technologically advanced solutions.

    Copyright © NTT Communications Corporation. All rights reserved. サーバレス導⼊までの道のり 1
  10. Copyright © NTT Communications Corporation. All rights reserved. 16 サーバレス以外の選択肢

    物理サーバ ⾃社IaaSサービス 他社IaaSサービス これまでの第⼀選択肢 弊社内で仮想化したかったら、これ ⾃社サービス競合で 選択しにくい(2017年)
  11. Copyright © NTT Communications Corporation. All rights reserved. ・納期が3ヶ⽉ ・どれを選択しても間に合ない

    だって、僕、 ネットワークエンジニアだもん 17 サーバレス以外の選択肢
  12. Copyright © NTT Communications Corporation. All rights reserved. ・社内クラウドを利⽤しない理由 -

    IPv6対応が… ・⼀から作らない場合の信頼性の担保 - シングルクラウドからマルチクラウドへ ・会社としての与信審査 - 初めての取引相⼿だったので… 19 社内基準と通信事業としての基準 不稼働率 [分/年] 回線数 配信サーバ信頼性 f(x)
  13. Copyright © NTT Communications Corporation. All rights reserved. 20 IPv6の受難

    Azure Function リクエスト 宅内ルータ 名前解決 AWS Lambda Amazon API Gateway Amazon DynamoDB Azure Storage Amazon Route 53 初期検討構成はこれ
  14. Copyright © NTT Communications Corporation. All rights reserved. 21 IPv6の受難

    Azure Function リクエスト 宅内ルータ 名前解決 AWS Lambda Amazon API Gateway Amazon DynamoDB Azure Storage Amazon Route 53 初期検討構成はこれ IPv6 IPv6
  15. Copyright © NTT Communications Corporation. All rights reserved. 22 IPv6の受難

    Azure CDN Azure Storage Azure Function AWS Lambda Amazon CloudFront Amazon API Gateway Amazon DynamoDB AWS WAF Amazon Route 53 リクエスト 宅内ルータ 名前解決 ⼊れたくないけど、CDN⼊れました
  16. Copyright © NTT Communications Corporation. All rights reserved. ・リリース延期の危機 ・ネットワークOnly技術者は重要でない時代

    ・コード書くだけのサーバレスって素敵 ・サーバレス詳しい⼈は社内にいない 25 なぜチャレンジできたか︖
  17. Transform your business, transcend expectations with our technologically advanced solutions.

    Copyright © NTT Communications Corporation. All rights reserved. テクニカルな実践・問題 2
  18. Copyright © NTT Communications Corporation. All rights reserved. ▪構成変更1の理由 ・Azure

    CDNのSSL証明書のCNがカスタムドメインにできない ▪構成変更2の理由 ・シンプル化 27 構成変更の試⾏錯誤 2018 1Q 2Q 3Q 4Q 2019 1Q サービスリリース 2Q 構成変更1 構成変更2 機能追加
  19. Copyright © NTT Communications Corporation. All rights reserved. 28 初期アーキテクチャ

    再掲 Azure CDN Azure Storage Azure Function AWS Lambda Amazon CloudFront Amazon API Gateway Amazon DynamoDB AWS WAF Amazon Route 53 Azure Application Insight Amazon CloudWatch 宅内ルータ 名前解決
  20. Copyright © NTT Communications Corporation. All rights reserved. 29 構成変更1

    AWS Lambda Amazon CloudFront Amazon API Gateway Amazon DynamoDB AWS WAF Amazon Route 53 Amazon CloudWatch 宅内ルータ 名前解決 AWS Lambda Amazon API Gateway Amazon DynamoDB 東京 リージョン シンガポール リージョン Amazon SQS AWS単独構成。DB同期はSQS。
  21. Copyright © NTT Communications Corporation. All rights reserved. 30 構成変更2

    AWS Lambda Amazon CloudFront Amazon API Gateway Amazon DynamoDB AWS WAF Amazon Route 53 Amazon CloudWatch 宅内ルータ 名前解決 AWS Lambda Amazon API Gateway Amazon DynamoDB 東京 リージョン シンガポール リージョン AWS単独構成。DB同期はGlobal Table。 global table replication
  22. Copyright © NTT Communications Corporation. All rights reserved. Webコンソールから簡単に動かせるけど、 本気で使うなら⾊々と⼯夫がいる。

    どう育ててきた︖どう付き合ってきた︖ – infra as code – testability 31 サーバーレスとの安全な付き合い⽅
  23. Copyright © NTT Communications Corporation. All rights reserved. prod local

    (test, dev) 32 overview AWS Lambda Amazon CloudFront Amazon API Gateway Amazon DynamoDB AWS WAF Amazon Route 53 Amazon CloudWatch 初期アーキテクチャの際は オフライン環境断念 ... sorry! local test plugins CI pipeline test
  24. Copyright © NTT Communications Corporation. All rights reserved. 36 テスト⾃動化

    全般 Ref: "Testable Lambda: Working Effectively with Legacy Lambda" by @t_wada https://speakerdeck.com/twada/testable-lambda-working-effectively-with-legacy-lambda?slide=53 ローカルで軽量に⾏えることを意識 デプロイして⾏うテストは必要最低限に Large Medium Small
  25. Copyright © NTT Communications Corporation. All rights reserved. prod 37

    ローカルでのテスト AWS Lambda Amazon CloudFront Amazon API Gateway Amazon DynamoDB AWS WAF Amazon Route 53 Amazon CloudWatch 初期アーキテクチャの際は オフライン環境断念 ... sorry! test CI pipeline local (test, dev) local test plugins
  26. Copyright © NTT Communications Corporation. All rights reserved. 38 ローカルでのテスト

    Size Approach Location Tool Large API call AWS • robot framework Medium local Small Lambda handler に event を直接与えて 正常系・異常系を網羅 • mocha • power-assert • serverless framework とプラグインを駆使し、 なるべくローカルでテストを済ませる • リファクタリングが圧倒的にやりやすい(安⼼感) plugins • serverless-offline • serverless-dynamodb-local テスト設計概要
  27. Copyright © NTT Communications Corporation. All rights reserved. prod local

    (test, dev) 39 負荷試験・⻑時間試験 AWS Lambda Amazon CloudFront Amazon API Gateway Amazon DynamoDB AWS WAF Amazon Route 53 Amazon CloudWatch 初期アーキテクチャの際は オフライン環境断念 ... sorry! local test plugins CI pipeline test
  28. Copyright © NTT Communications Corporation. All rights reserved. 40 負荷試験・⻑時間試験

    もう1段階のテスト テスト設計概要 Size Test Location Tool X-large? 負荷試験・⻑時間試験 AWS • gatling Large API call • robot framework Medium local Small Lambda handler に event を直接与えて 正常系・異常系を網羅 • mocha • power-assert
  29. Copyright © NTT Communications Corporation. All rights reserved. ⽬標性能 (request/sec)

    が出るか、 ⻑時間安定して稼働するかを試験 Gatling の特徴 ・レポートが充実している ・使い⽅も簡単 ・無償版でも頑張れば scale-out できる ・有償版(Gatling FrontLine)もある ・https://gatling.io 41 負荷試験・⻑時間試験
  30. Copyright © NTT Communications Corporation. All rights reserved. 確認できること ・DynamoDB

    auto-scaling 忘れ… 42 負荷試験・⻑時間試験 ・auto-scaling 有効化 ・ramp up (最⼤負荷に徐々に近づける)
  31. Copyright © NTT Communications Corporation. All rights reserved. 確認できること ・DynamoDB

    auto-scaling 忘れ… ・response time のばらつき観測(XX%, max など⽐較) 43 負荷試験・⻑時間試験 Azure AWS
  32. Copyright © NTT Communications Corporation. All rights reserved. Gatling はとても使いやすく、おすすめ

    負荷をかける・⻑時間動かすことで⾒えるもの 疑問 ・サーバーレスにおける「⽬標性能」の基準 ・ネットワーク機器の基準例︓ 「最⼤設計値のトラフィックを24時間流して 1パケットも落とさない」 44 負荷試験・⻑時間試験
  33. Copyright © NTT Communications Corporation. All rights reserved. prod local

    (test, dev) 45 CI pipeline AWS Lambda Amazon CloudFront Amazon API Gateway Amazon DynamoDB AWS WAF Amazon Route 53 Amazon CloudWatch 初期アーキテクチャの際は オフライン環境断念 ... sorry! local test plugins CI pipeline test
  34. Copyright © NTT Communications Corporation. All rights reserved. 「ローカルでしか出来ないテスト」は不安 è

    GitLab CI/CD を導⼊ 導⼊メリット ・テストが⾏われる担保 ・環境が汚れない (docker コンテナで実⾏) ・証跡として (commit と テスト結果をバインドできる) 47 CI pipeline
  35. Copyright © NTT Communications Corporation. All rights reserved. local test

    plugins 48 Infra as Code with Serverless Framework 初期アーキテクチャの際は オフライン環境断念 ... sorry! CI pipeline test prod local (test, dev) AWS Lambda Amazon CloudFront Amazon API Gateway Amazon DynamoDB AWS WAF Amazon Route 53 Amazon CloudWatch
  36. Copyright © NTT Communications Corporation. All rights reserved. No ,

    no life!? 開発・テスト・デプロイを⽀援する多様なプラグイン AWS は構成管理できる範囲がかなり広い AWS はそれらをローカルで実⾏可能 è 速度&品質 の向上 49 Infra as Code with Serverless Framework
  37. Copyright © NTT Communications Corporation. All rights reserved. Azure は

    Functions のみ対応。 当時は AWS ほど充実した開発環境ではなかった AWS も全構成のコード化は困難 50 Infra as Code with Serverless Framework 例: DynamoDB Global-table の replication group 作成 è `sls deploy` のあとに aws cli でやっている
  38. Copyright © NTT Communications Corporation. All rights reserved. 構成変更は "Immutable

    Infra" を型としてやってきた。 みなさんこういう感じでしょうか︖ 51 Infra as Code with Serverless Framework new old (2) ダウンタイムなしでデータ移⾏, 完全同期. Lambda, SQS, S3, Data Pipelineを駆使 (1) 新セットを sls deploy (3) origin を新セットに切替 (4) 旧セットを sls remove
  39. Copyright © NTT Communications Corporation. All rights reserved. • CloudWatch

    全⼒投球 • Dashboard • 分析必要になれば Logs Insights widget 化できるのも◎ • まれに⽣ログ 52 運⽤・デバッグ
  40. Transform your business, transcend expectations with our technologically advanced solutions.

    Copyright © NTT Communications Corporation. All rights reserved. まとめ 5
  41. Copyright © NTT Communications Corporation. All rights reserved. • わたしたち⾃⾝

    • これからもどんどんサーバーレスを採⽤していく • 無理はしない(システム全体のサーバーレス化, 等) • テスト⾃動化も緩急つけたい • 技術動向のウォッチ • FaaS ごとのクセ…標準化は難しい︖ Knative や Cloud Run 試していく • IPv6 対応をよろしくお願いします︕ CDNなしでIPv6対応したいなぁ (´・ω・`) • 仲間を増やしたい • 社内: 全社新⼊社員研修をジャックして布教活動 blog: https://developer.ntt.com/ja/blog/7bd554e6-30df-4c33-9e94-7e4202bdf2c0 講義内容: https://gitpitch.com/nttcom/2019-sw-training?p=faas/presentation • 社外: みなさん仲良くしてください︕ 54 今後の展望
  42. Copyright © NTT Communications Corporation. All rights reserved. 55 導⼊障壁は⾼かった(≠技術)

    正直、いきなり全部できたわけじゃない。 イケてない部分はまだ多い (コードのメンテナンス性, 設計やテスト計画の勘所, etc. ) ただ、サーバーレスはネットワークエンジニアにも ⼊りやすい領域だった Software-Definedなネットワークへの糧 ISPがサーバーレスに⼿を出してみてよかった︕
  43. Transform your business, transcend expectations with our technologically advanced solutions.

    Copyright © NTT Communications Corporation. All rights reserved. Thank you!