Slide 1

Slide 1 text

#serverlessdays #serverlesstokyo #slsisp

Slide 2

Slide 2 text

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

Slide 3

Slide 3 text

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

Slide 4

Slide 4 text

Copyright © NTT Communications Corporation. All rights reserved. 会社概要 ⻑距離通信事業 ⽇本電信電話株式会社 Ø 営業収益 : 13,920億円 <海外展開> Ø 41ヶ国/地域, 110都市に拠点あり Ø ネットワークサービスの提供エリアは190ヶ国/地域以上 Ø アジア最⼤のTier-1 IPバックボーンプロバイダ Ø データセンタは140以上の拠点を世界に展開 <2018年度決算> * すべて再編前の情報 Ø 営業利益 : 1,321億円 Ø 合計 : 約 23,300 ⼈ NTT Ltd. NTT株式会社(NTT, Inc.)

Slide 5

Slide 5 text

Transform your business, transcend expectations with our technologically advanced solutions. Copyright © NTT Communications Corporation. All rights reserved. イントロダクション 4

Slide 6

Slide 6 text

Copyright © NTT Communications Corporation. All rights reserved.

Slide 7

Slide 7 text

Copyright © NTT Communications Corporation. All rights reserved. 6 インターネットサービスプロバイダ(ISP) 公衆通信回線を経由して、 インターネット接続を提供する事業者

Slide 8

Slide 8 text

Copyright © NTT Communications Corporation. All rights reserved. 7 インターネットサービスプロバイダ(ISP)

Slide 9

Slide 9 text

Copyright © NTT Communications Corporation. All rights reserved.

Slide 10

Slide 10 text

Copyright © NTT Communications Corporation. All rights reserved. OCN バーチャルコネクト (IPoE接続)

Slide 11

Slide 11 text

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

Slide 12

Slide 12 text

Copyright © NTT Communications Corporation. All rights reserved. サーバレスどこで使ってんの︖

Slide 13

Slide 13 text

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

Slide 14

Slide 14 text

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 宅内ルータ 名前解決

Slide 15

Slide 15 text

Transform your business, transcend expectations with our technologically advanced solutions. Copyright © NTT Communications Corporation. All rights reserved. サーバレス導⼊までの道のり 1

Slide 16

Slide 16 text

Copyright © NTT Communications Corporation. All rights reserved. ・サーバレス以外の選択肢 ・社内基準と通信事業としての基準 ・IPv6受難 15 導⼊障壁

Slide 17

Slide 17 text

Copyright © NTT Communications Corporation. All rights reserved. 16 サーバレス以外の選択肢 物理サーバ ⾃社IaaSサービス 他社IaaSサービス これまでの第⼀選択肢 弊社内で仮想化したかったら、これ ⾃社サービス競合で 選択しにくい(2017年)

Slide 18

Slide 18 text

Copyright © NTT Communications Corporation. All rights reserved. ・納期が3ヶ⽉ ・どれを選択しても間に合ない だって、僕、 ネットワークエンジニアだもん 17 サーバレス以外の選択肢

Slide 19

Slide 19 text

Copyright © NTT Communications Corporation. All rights reserved. この時点で頭の中は サーバレスしか無理じゃない︖ モードに 18 サーバレス以外の選択肢

Slide 20

Slide 20 text

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

Slide 21

Slide 21 text

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

Slide 22

Slide 22 text

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

Slide 23

Slide 23 text

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⼊れました

Slide 24

Slide 24 text

Copyright © NTT Communications Corporation. All rights reserved. 23 IPv6の受難 Azure CDN + +

Slide 25

Slide 25 text

Copyright © NTT Communications Corporation. All rights reserved. 24 IPv6の受難 Azure CDN + + IPv6

Slide 26

Slide 26 text

Copyright © NTT Communications Corporation. All rights reserved. ・リリース延期の危機 ・ネットワークOnly技術者は重要でない時代 ・コード書くだけのサーバレスって素敵 ・サーバレス詳しい⼈は社内にいない 25 なぜチャレンジできたか︖

Slide 27

Slide 27 text

Transform your business, transcend expectations with our technologically advanced solutions. Copyright © NTT Communications Corporation. All rights reserved. テクニカルな実践・問題 2

Slide 28

Slide 28 text

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

Slide 29

Slide 29 text

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 宅内ルータ 名前解決

Slide 30

Slide 30 text

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。

Slide 31

Slide 31 text

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

Slide 32

Slide 32 text

Copyright © NTT Communications Corporation. All rights reserved. Webコンソールから簡単に動かせるけど、 本気で使うなら⾊々と⼯夫がいる。 どう育ててきた︖どう付き合ってきた︖ – infra as code – testability 31 サーバーレスとの安全な付き合い⽅

Slide 33

Slide 33 text

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

Slide 34

Slide 34 text

Copyright © NTT Communications Corporation. All rights reserved. 33 テスト⾃動化 全般

Slide 35

Slide 35 text

Copyright © NTT Communications Corporation. All rights reserved. 34 テスト⾃動化 全般 勝⼿に師匠

Slide 36

Slide 36 text

Copyright © NTT Communications Corporation. All rights reserved. 35 テスト⾃動化 全般 と思ったら︕

Slide 37

Slide 37 text

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

Slide 38

Slide 38 text

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

Slide 39

Slide 39 text

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 テスト設計概要

Slide 40

Slide 40 text

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

Slide 41

Slide 41 text

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

Slide 42

Slide 42 text

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

Slide 43

Slide 43 text

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

Slide 44

Slide 44 text

Copyright © NTT Communications Corporation. All rights reserved. 確認できること ・DynamoDB auto-scaling 忘れ… ・response time のばらつき観測(XX%, max など⽐較) 43 負荷試験・⻑時間試験 Azure AWS

Slide 45

Slide 45 text

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

Slide 46

Slide 46 text

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

Slide 47

Slide 47 text

Copyright © NTT Communications Corporation. All rights reserved. 「ローカルでしか出来ないテスト」は不安 è GitLab CI/CD を導⼊ 46 CI pipeline

Slide 48

Slide 48 text

Copyright © NTT Communications Corporation. All rights reserved. 「ローカルでしか出来ないテスト」は不安 è GitLab CI/CD を導⼊ 導⼊メリット ・テストが⾏われる担保 ・環境が汚れない (docker コンテナで実⾏) ・証跡として (commit と テスト結果をバインドできる) 47 CI pipeline

Slide 49

Slide 49 text

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

Slide 50

Slide 50 text

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

Slide 51

Slide 51 text

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 でやっている

Slide 52

Slide 52 text

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

Slide 53

Slide 53 text

Copyright © NTT Communications Corporation. All rights reserved. • CloudWatch 全⼒投球 • Dashboard • 分析必要になれば Logs Insights widget 化できるのも◎ • まれに⽣ログ 52 運⽤・デバッグ

Slide 54

Slide 54 text

Transform your business, transcend expectations with our technologically advanced solutions. Copyright © NTT Communications Corporation. All rights reserved. まとめ 5

Slide 55

Slide 55 text

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 今後の展望

Slide 56

Slide 56 text

Copyright © NTT Communications Corporation. All rights reserved. 55 導⼊障壁は⾼かった(≠技術) 正直、いきなり全部できたわけじゃない。 イケてない部分はまだ多い (コードのメンテナンス性, 設計やテスト計画の勘所, etc. ) ただ、サーバーレスはネットワークエンジニアにも ⼊りやすい領域だった Software-Definedなネットワークへの糧 ISPがサーバーレスに⼿を出してみてよかった︕

Slide 57

Slide 57 text

Transform your business, transcend expectations with our technologically advanced solutions. Copyright © NTT Communications Corporation. All rights reserved. Thank you!