Networkプログラマビリティとステート性・トランザクション性
Network	  Programmability	  and	  the	  statefulness/transac9onality	

9	  November	  2015	  Miya	  Kohno	  (mkohno@cisco.com)	  SDNの本質的価値	  • MPLS	  Japan	  2012	  Panel	  Discussionより	  あれから3年！	  	  真に求められていたのは	  プログラマビリティと，	  それによるサービス迅速化	  ＋運用自動化だった！	  	  「ネットワーク仮想化」に求められていたことも同様…	  © 2014 Cisco and/or its affiliates. All rights reserved. Cisco Confidential2

hKp://www.mpls.jp/2012/presenta9ons/MK_SDN_Panel_MPLSJapan2012_rev3.pdf	  では，どう「プログラム」するか?	  
…という訳で，	  本日はNetworking領域におけるプログラミングスタイルを議論します	  	  議論のポイント	  • プログラミングスタイルの重要性	  • ステート性	  –	  ステートをどう扱うか	  • トランザクション性	  –	  分散システムにおける整合性問題	  © 2014 Cisco and/or its affiliates. All rights reserved. Cisco Confidential

3

Network領域におけるプログラミングスタイル	  ネットワークは不確定性の高い，並列分散システム• Waterfallよりも Agile	  	  	  	  	  	  -­‐-­‐-­‐-­‐	  フィードバックと継続的改善	  • Impera9ve（命令的）よりも Declara+ve（宣言的）	  	  	  -­‐-­‐-­‐-­‐	  Howを指示するのでなく，Whatを合意	  Wikipedia:	  Barabasi-­‐Albert	  Model	  • Procedureよりも Model	  driven	  	   	  -­‐-­‐-­‐-­‐	  逐次命令するのではなく，あるべき姿をモデルで示す© 2014 Cisco and/or its affiliates. All rights reserved. Cisco Confidential

4

“Declara9ve”	  “Model-­‐driven”	  性	  の強み	  “How”を”記述”する 場合	  サービス・アプリケーション	
• Script	  • Workﬂow	  オーケストラ・コントローラ		  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  デバイス・インフラ	仮想	状態変化に対応困難	  部分的変更，削除が困難	  ß	  Procedure	  • CLI	  ß	  Command	  • Openﬂow	  protocol	  物理		  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  © 2014 Cisco and/or its affiliates. All rights reserved. Cisco Confidential

5

“Declara9ve”	  “Model-­‐driven”	  性	  の強み	  “What”を”合意”する 場合	  	  サービス・アプリケーション	 比較的	  Top	  down	  迅速(Agile)な	  フィードバックループ	  • Service	  Model	  ß	  Inten/on	  オーケストラ・コントローラ	

Transac/on	  Engine	  トポロジー	
デバイス・インフラ	仮想	比較的	  BoKom	  Up	  物理	• Device	  Models	  •••部分的変更や削除を，一貫性，整合性をもって実施可能	  ß	  Promise	  並列分散処理への親和性	
不測の事態への対処、頑健性	
再利用性、保守性，スケール性	

© 2014 Cisco and/or its affiliates. All rights reserved. Cisco Confidential

6Compu9ng領域におけるプログラミングスタイルの変遷	  オブジェクト指向	  OOP	  手続き型	  Procedural	  処理	  構造化	  Structuralized	  データ（ステート）

ステートの明示化
REST	  A処理	  (Representa9onal	  State	  Transfer)	  B

データ（ステート）
C条件	  DE関数型	  Func9onal	  Programming	  処理	  データ（ステート）

オブジェクトがデータ（ステート）を内包する	  冪等性	  (Idempotence)	  	  参照透過性	  (Referen9al	  Transparency)	  ステートレス化© 2014 Cisco and/or its affiliates. All rights reserved. Cisco Confidential7[補足]	  冪等性(Idempotence)，参照透過性(Referen9al	  Transparency)	  冪等性(Idempotence)	  	  ある操作を一度行っても複数回行っても結果が変わらないことを表す概念	
（例えば、n++;は冪等でない．冪等性が保証できないと、例えば	  9meout	  -­‐>	  retry	  の場合に結果が変わってしまう可能性がある）	  参照透過性(Referen9al	  Transparency)	  	  文脈に依らず、式の値はその構成要素だけによって決まる。	  
同じ条件を与えると、必ず同じ値が返る。	  
（外部変数・グローバル変数とかを使ってはいけない。）	  à	  並列分散処理，ネットワークプログラミングにも重要な概念	  © 2014 Cisco and/or its affiliates. All rights reserved. Cisco Confidential

8Stateの問題	  *	  Stateless	  x1

a1

y1e.g.	  a	  =	  f(x	  +	  y)	  *	  Stateful	  x1

a1b1y1State	  c1e.g.	  a	  =	  f(x	  +	  y	  *	  Nstate)	  Stateによって結果が異なる	  à並列分散処理に適しにくい	  	  • 並列分散するエンティティにおけるStateの一貫性が必要	  • High	  Availabilityを実現する際に，	  	  Stateの複製が必要	  © 2014 Cisco and/or its affiliates. All rights reserved. Cisco Confidential

9Networkは Statefulな並列分散システム	  xState	  Mismatch	  	  ß	  Topology	  Convergence,	  RIB(CP)-­‐FIB(DP)	  inconsistency	  	  	  Rou9ng	  Loop,	  Black-­‐holing	  © 2014 Cisco and/or its affiliates. All rights reserved. Cisco Confidential

10Stateの度合いはさまざま	  
RSVP	  TE	  tunnel	  Route情報	  	  	  +	  	  Tunnel	  Endpoint情報	  	  +	  	  RSVP	  state	  IP	  tunnel	  Route情報	  	  	  +	  	  Tunnel	  Endpoint情報	  Na9ve	  IP	  Route情報のみ	  	  その他	  PPP/L2TPとか	  IPSec/SSLとか	  SIPとかMobileとか..	  	  • ステートとスケールはTrade-­‐oﬀ	  • ステートフルの場合，N:1冗長などもやりにくい	  © 2014 Cisco and/or its affiliates. All rights reserved. Cisco Confidential

11Compu9ng	  SystemにおけるMassive	  Scaling	  ••超並列分散化	  ACID	  -­‐>	  BASE	  Source:	  Colin	  Kincade@Cisco	  © 2014 Cisco and/or its affiliates. All rights reserved. Cisco Confidential

12

ACID	  –	  分散システムの整合性問題	  • Atomicity	  	  	  	  	  	  原始性	  –	  操作は，完了するか，一切なにもしないかのどちらかである	  	  Two-­‐Phase	  Commit	  • Consistentncy	  	  	  	  	  	  一貫性	  –	  整合性条件が一貫して保持される	  	  Controller	  • Isola9on	  	  	  	  	  	  	  	  独立性 –	  処理中の中間状態は隠蔽される	  	  • Durablity	  永続性	  –	  完了したトランザクションは取消されず，	  システムは継続する	  Device-­‐A	  Device-­‐B	  Prepare	  Commit	  OK	  Prepare	  Commit	  OK	  Commit	  OK	  Commit	  OK	  © 2014 Cisco and/or its affiliates. All rights reserved. Cisco Confidential(Transac9on	  Complete)	  13

ACID	  –	  分散システムの整合性問題	  （例）口座AからBへの振込処理• (1)と(2)の両方の処理が成功しなければ，(1)	  口座Aから	  3,000,000円	  引いてください	  OK!	  

(2)	  口座Bに	  3,000,000円	  足してください	  OK!	  

操作は完了しない	  • どちらかが失敗した場合は，全て元に戻す	  ……

このためには，2	  phase	  commit	  ＋ 	  操作完了するまでのデータベースロック	  が必要	  	  à スケールしない！！！！	  
© 2014 Cisco and/or its affiliates. All rights reserved. Cisco Confidential

14

Your	  Coﬀeshop	  doesn’t	  use	  two	  phase	  commit!	  
[東京のStarbucksでの体験からの考察]	  顧客から注文を受けたらすぐに作り始める
注文の言い間違い・聞き間違いなどで，欲しいものと違うものを作ってしまったら?
→ 謝って作りなおす(やりなおし)
顧客が料金を払わなかったら?
→ コーヒーは廃棄(無かったコトにする)	  	  à スケールする！！！！	  
© 2014 Cisco and/or its affiliates. All rights reserved. Cisco Confidential

15

hKp://www.enterpriseintegra9onpaKerns.com/docs/IEEE_Sopware_Design_2PC.pdf	  BASE	  –	  ACIDの代替手段として	  • Basically	  Available	  	  	  	  	  	  	  	  	  	  	  	  基本的に動作している	  	  • Sop-­‐state	  	  	  	  	  	  ソフトステート	  –	  あまり厳密なステートの一貫性を求めない	  	  	  	  	  	  	  楽観的，Best	  eﬀort,	  Simple,	  Weak	  Consistency…	  	  	  • Evetually	  consistent	  	  	  	  	  	  	  結果整合 –	  一時的に不整合が起こりえるが，	  結果的には整合性が取れる	  © 2014 Cisco and/or its affiliates. All rights reserved. Cisco Confidential

hKp://queue.acm.org/detail.cfm?id=1394128	  16Network	  Programmingは元々BASE	  !	  
Rou9ng	  Protocols	  (e.g.	  BGP)	  宛先Aに到達するためにはBを経由してください	  RR	  clients	  RR	  (Route	  Reﬂector)	  DNS	  TTL	  expireしたので,	  	  ドメインAに対応する
IPアドレスを教えて下さい	  DNS	  	  Root	  Server	  DNS	  Cache	  Servers	  Eventually	  consistent	  !	  

© 2014 Cisco and/or its affiliates. All rights reserved. Cisco Confidential

17

NETCONFは..?!	  
顧客AのためのVRFを設定してください..	  OK?	  

Controller	  (NETCONF	  client)	  では，Commit!	  

Devices	  OK	  OK	  OK	  	  RFC6241	  :	  	  	  The	  NETCONF	  protocol	  contains	  sufficient	  primitives	  upon	  which	  transaction-­‐oriented	  operations	  can	  be	  built.	  	  Providing	  complete	  transactional	  semantics	  across	  multiple	  devices	  is	  prohibitively	  expensive,	  but	  the	  size	  and	  number	  of	  windows	  for	  failure	  scenarios	  can	  be	  reduced.	  	  ACID可能！	  
© 2014 Cisco and/or its affiliates. All rights reserved. Cisco Confidential

18

ACIDを適用したほうが良いかもしれないところ	  スケール制御可能な範囲であれば，効用が大きい	  • ASドメイン内	  Controller	  –	  Device	  • Cluster	  Controller	  –	  DC	  Fabric/Cluster	  ACID可能！	  

Rou9ng	  loopやパケットロス，ブラックホールなどの	  いかなる不整合を防ぐことができる！	  
© 2014 Cisco and/or its affiliates. All rights reserved. Cisco Confidential

19

Network	  Programmability	  –	  まとめ	  ネットワークは，不確定性の高い並列分散システム	  • Model-­‐driven,	  Declara9ve	  なプログラミングスタイルが適する	  • ステートはできるだけ最小化，局所化する	  • 必要性，適用性に応じて，トランザクション一貫性を実装する	  © 2014 Cisco and/or its affiliates. All rights reserved. Cisco Confidential

20