web-archive-net.com » NET » G » GARYBERGER.NET

Total: 65

Choose link from "Titles, links and description words view":

Or switch to "Titles and links view".
  • Future Internet | garyberger.net
    this interface which is protocol independent we can start to look at fixing the really hard problems in networking in a large scale way Data Center Future Internet OpenFlow Software Defined Network NodeFlow An OpenFlow Controller Node Style January 8 2012 Gary Berger 3 Comments In less you ve been under a rock lately you might have heard something about Software Defined Networks OpenFlow Network Virtualization and Control Plane Data Plane separation Some of the reasons for the interest might be Evolution of the system architecture as a whole Network NIC PCIE QPI CPU Memory along with X86 64 instructions OS drivers software and applications have allowed for many services to run on a single host including network services Extending the network domain into the host allows for customizable tagging classification load balancing and routing with the utopia being ubiquitous control of logical and physical by a combination if in protocol state forwarding tables and a distributed control system Non experimental network pathologies which are causing havoc with large scale systems Turns out there are some very real problems which were never part of Ethernet and TCP IP design space and software allows us to experiment with different ideas on how to solve these problems Leveraging a possibly untapped design space in order to be differential leap frog competition or disrupt the marketplace So what is OpenFlow Well according to the Open Networking Foundation OpenFlow is an open standard that enables researchers to run experimental protocols in the campus networks we use every day This paradigm shift into the guts of the network might be better explained by a surgical assessment of the network core its protocol structure the devices which deal with enrollment classification multiplexing demultiplexing flow control and routing but this will be a post for another day In the meantime the network has evolved into a first class citizen amongst infrastructure architects software developers and consumers alike No I am not talking about the Social Network by big boy Zuck but the fact that networks are finding them selves ingrained in almost anything not nailed down This so called Internet of Things tells us that soon the network will be stitched into our lives through the air and into our clothes There are many arguments about the value of OpenFlow and SDN but to find the benefits and use cases the network domain experts may find the current toolsets and platforms a bit impenetrable The current controller implementations are written in a combination of C Python and Java and because of the asynchronous nature of the OF protocol additional libraries have to be leveraged including Twisted and NIO which make it more difficult to understand exactly what is going on To that end I introduce NodeFlow an OpenFlow controller written in pure JavaScript for Node JS Node JS provides an asynchronous library over JavaScript for server side programming which is perfect for writing network based applications ones that don t require an excessive amount of CPU NodeFlow is actually a very simple program and relies heavily on a protocol interpreter called OFLIB NODE written by Zoltan LaJos Kis I have a forked version of this library see below which have been tested with OpenFlow version 1 0 Sidebar A note on OpenFlow Even though the Open Networking Forum has ratified the 1 2 protocol specification we have yet to see a reference design which allows developers to experiment In order to get a grasp of the programming model and data structures to this end I have concentrated on the most common implementation of OpenFlow 1 0 in OpenVSwitch Sidebar Why Node JS Node JS has become one of the most watched repos in GitHub and is headed up by the brilliant guys at Joyent Anyone interested should check out Bryan Cantrill s presentation Building a Real Time Cloud Analytics Service with Node js Setting up the development environment Leveraging OpenVSwitch and tools such as MiniNet anyone can create a simulated network environment within their own local machine Instructions on how to setup the development environment can be seen here Download and Get Started with Mininet Code review We first setup the network server with a simple call to net createServer which we provide the port and address to listen on The address and port are configured through a separate start script NodeFlowServer prototype start function address port var self this var socket var server net createServer server listen port address function err result util log NodeFlow Controller listening on address port self emit started Config server address The next step provides the event listeners for socket maintenance creates a unique sessionID from which we can keep track of each of the different switch connections and our main event process loop which is called every time we receive data on our socket channel We use a stream library to buffer the data and return us the OpenFlow decoded message in the msgs object We make a simple check on the message structure and then pass it on for further processing server on connection function socket socket setNoDelay noDelay true var sessionID socket remoteAddress socket remotePort sessions sessionID new sessionKeeper socket util log Connection from sessionID socket on data function data var msgs switchStream process data msgs forEach function msg if msg hasOwnProperty message self processMessage msg sessionID else util log Error Message is unparseable console dir data In the last section we leverage Node JS EventEmitters to trigger our logic using anonymous callbacks These event handlers wait for the specific event to happen and then trigger processing We handle three specific events just for this initial release OFPT PACKET IN which is the main event to listen on for PACKET IN events and SENDPACKET which simply encodes and sends our OF message on the wire self on OFPT PACKET IN function obj var packet decode decodeethernet obj message body data 0 nfutils do l2 learning obj packet self forward l2 packet obj packet self on SENDPACKET function obj nfutils sendPacket obj type obj packet outmessage obj packet sessionID The Hello World of OpenFlow controllers simply provide a learning bridge function Here below is the implementation which is fundamentally a Python port of NOX Pyswitch do l2 learning function obj packet self this var dl src packet shost var dl dst packet dhost var in port obj message body in port var dpid obj dpid if dl src ff ff ff ff ff ff return if l2table hasOwnProperty dpid l2table dpid new Object create object if l2table dpid hasOwnProperty dl src var dst l2table dpid dl src if dst in port util log MAC has moved from dst to in port else return else util log learned mac dl src port in port l2table dpid dl src in port if debug console dir l2table Alright so seriously why the big deal There are other implementations which do the same thing so why is NodeFlow so interesting Well if we look at setting up a Flow Modification which is what gets instantiated in the switch forwarding table you see we can see every element in JSON notation thanks to the OFLIB NODE Library This is very important as deciphering the TLV based protocol from a normative reference can be dizzying at best setFlowModPacket function obj packet in port out port var dl dst packet dhost var dl src packet shost var flow self extractFlow packet flow in port in port return message version 0x01 header type OFPT FLOW MOD xid obj message header xid body command OFPFC ADD hard timeout 0 idle timeout 100 priority 0x8000 buffer id obj message body buffer id out port OFPP NONE flags OFPFF SEND FLOW REM match header type OFPMT STANDARD body wildcards 0 in port flow in port dl src flow dl src dl dst flow dl dst dl vlan flow dl vlan dl vlan pcp flow dl vlan pcp dl type flow dl type nw proto flow nw proto nw src flow nw src nw dst flow nw dst tp src flow tp src tp dst flow tp dst actions header type OFPAT OUTPUT body port out port Performance and Benchmarking So I used Cbench to compare NOX vs NodeFlow and here are the results NOX nox core i ptcp pytutorial NOX c nox core i ptcp switch NodeFlow running with Debug False C based Controller As you can see from the numbers NodeFlow can handle almost 2X what NOX can do and is much more deterministic Maxing out at 4600 rsp sec is not shabby on a VirtualBox VM on my Mac Air Summary At just under 500 LOC this prototype implementation of an OF controller is orders of magnitude less than comparable systems Leveraging JavaScript and the high performance V8 engine allows for network architects to experiment with various SDN features without the need to deal with all of the boilerplate code required for setting up event driven programming Hope someone gets inspired by this and takes a closer look at Node JS for network programming So how do I get NodeFlow NodeFlow is an experimental system available at GitHub git github com gaberger NodeFLow git along with my fork of the OFLIB NODE libraries here git github com gaberger oflib node git If you would like to contribute or have any questions please contact me via Twitter gbatcisco Special thanks to Zoltan LaJos Kis for his great OFLIB NODE library for which this work couldn t have been done and Matthew Ranney for his network decoder library node pcap Data Center Enterprise Cloud Future Internet Software Development Forrester Views Cloud Web is Outmoded and App Internet is the new model December 20 2011 Gary Berger LeWeb 2011 George Colony Forrester Research Three Social Thunderstorms Over the past several years the word Cloud has been used and to some extent abused almost to the point of being superfluous Every technology company provider and enterprise is immersed in some sort of cloud project although the exact descriptions of these projects may fall short of the NIST formal definitions I think as technologists we tend to rebel against the status quo in attempt not just to redefine the marketplace but also to claim for our own a new path as we iterate over the current challenges for delivering new applications and services Just as we have overused and bludgeoned the hell out of terms like internet virtualization and web the prior name cloud we are bound to move into a new set of vernacular definitions such as intercloud interweb fog computing or in the case of Forrester CEO George Colony APP Internet Web and cloud are outmoded concludes Mr Colony as he goes on to explain the App Internet as the next model offering a faster simpler more immersive and a better experience The thesis for this conclusion is based on the figure above where the y axis is defined as utilities per dollar and the x axis is time P is representative of Moores Law and speaks to the scalability of processing power In reality the beauty behind Moores law is lost in translation What Moore really said was transistors on a chip would double every year and subsequently David House an Intel executive at the time noted that the changes would cause computer performance to double every 18 months 1 If you plot transistors per chip against actual computer performance you might see a different picture due to the thermodynamic properties and manufacturing complexity of CMOS based technology not to mention the complexity in actually utilizing that hardware with todays languages application methodologies libraries and compilers S is for the growth in storage which Colony calls the Hitachi s Law This predicts that storage will double approximately every 12 months This also is somewhat contrived as the limits of scaling magnetic medium on disk are becoming extremely difficult as we approach the limits of perpendicular recording although maybe there is some promise with the discovery of adding NaCl to the recoding process 2 Yes we can build bigger houses with disks packed to the ceiling but the logistics in managing such a facility is increasingly hitting the upper limits imagine shuffling through a facility over 100 000sqft and replacing all those failed hard drives N is related to the network where Colony goes on to describe the adoption rates of 3G vs 4G First and foremost nailing down exactly what 4G is and means is an exercise in itself as most vendors are implementing various technologies under this umbrella 3 With an estimated 655Million people adopting 4G in its various forms by 2010 4 and the quick adoption of new mobile devices I think this is a bit short sighted But there is another aspect to this which is missing which is all of the towers that collect those 3G and 4G signals need to be back hauled into the Internet backbone With 40GE 100GE ratified in the IEEE I suspect the first wave of 100GE deployments to be put into production in 2012 5 Colony goes on to say If your architecture was based on network you are wasting all of these improvements in processing and storage the center meaning the warehouse scale datacenters such as Google Amazon and Microsoft is becoming more powerful and the periphery is becoming ever more powerful His point is valid to an extent but not because of the P S N curves but because now that the devices are so powerful AND we have such a robust network infrastructure we can take advantage of all of this processing power and storage available to us Afterall if transport pricing had continue to rise as the late great Jim Gray predicted in his paper on Distributed Computing Economics 7 we would not even be having this discussion because without the distribution of data capability in the network all we would have were some very smart expensive devices that would essentially be a fancy calculator To that point Colony compares todays devices with their predecessors but as stated earlier its not a fair comparison In 1993 the iPad 2 would have been considered one of the 30 fastest computers in the world Unfortunately the problem space has changed from 1993 and if we follow Parkinsons Corollary called Jevons Paradox or the proposition that technological progress that increases the efficiency with which a resource is used tends to increase rather than decrease the rate of consumption of that resource 6 it would be hard to compare these two accurately So the reality is that all of these iterations from the early ARPANET viewpoint of access to expensive time sharing computer centers to the highly distributed and interconnected services we have today are just a succession of changes necessary to keep up with the demand for more information Who knows what interesting changes will happen in the future but time and time again we have seen amazing strides taken to build communities and share our lives through technology So lets take a closer look at the App Internet model Hmm So how is this different from todays Web Centric application architecture After all isn t a web browser like Chrome and Safari an application Jim Gray defined the ideal mobile task to be stateless no database or data access has a tiny network input and output and has a huge computational demand 7 To be clear his assumptions of course were that transport pricing would be rising to make the economics infeasible but as we know the opposite effect happened as transport pricing has fallen 8 Most web and data processing applications are network or state intensive and are not economically viable as mobile applications Again the assumptions he had about telecom pricing made this prediction incorrect He also contended that Data loading and data scanning are cpu intensive but they are also data intensive and therefore are not economically viable as mobile applications The root of is conjecture was that the break even point is 10 000 instructions per byte of network traffic or about a minute of computation per MB of network traffic Clearly the economics and computing power has changed significantly in only a few short years No wonder we see such paradigm shifts and restructuring of architectures and philosophies The fundamental characteristic which supports a better experience is defined as latency We perceive latency as the responsiveness of an application to our interactions So is he talking about the ability to process more information on intelligent edge devices Does he not realize that a good portion of applications written for web are built with JavaScript and that the advances in Virtual Machine technology like Google V8 is what enables all of that highly immersive and fast responding interactions Even data loading and data scanning has improved through advances in AJAX programming and the emerging WebSockets protocol allowing for full duplex communications between the browser and the server in a common serialization format such as JSON There will always be a tradeoff however especially as the data we consume is not our own but other peoples For instance the beloved photo app in Facebook would never be possible utilizing an edge centric approach as the data actually being consumed is from someone else There is no way to store n 2 information with all your friends from an edge device it must be centralized to an extent For some applications like gaming we have a high sensitivity to latency as the interactions are very time dependent both for the actions necessary to play the game but also how we take input for those actions through visual queues in the game itself But if we look at examples such as OnLive which allows for lightweight endpoints to be used in highly immersive first person gaming clearly there is a huge dependency on the network This is also the prescriptive approach behind Silk although Colony talks about this in his context of App Internet The reality is

    Original URL path: http://garyberger.net/?cat=23 (2016-04-25)
    Open archived version from archive


  • Software Is Eating The World | garyberger.net
    2013 Post navigation Previous Post Stack Wars and the Rise of the SDN Republic Next Post Physicist proposes a new type of computing at SXSW Recent Posts To the land of plenty Moving towards high performance cluster management The Reactive Manifesto is not new but gives us a When we experience the world each moment is immut Smart Driving with automatic http t co ZqUZu5vT Tessel JavaScript and WiFi enabled

    Original URL path: http://garyberger.net/?p=667 (2016-04-25)
    Open archived version from archive

  • garyberger.net | Page 2
    like memory virtualization s page table encapsulation requires maintenance of the address mappings rules to tunnel mappings The interface for doing so should be open and a good candidate for that interface is OpenFlow The author of the blog post is trying to describe a well known aphorism by David Wheeler which states All problems in computer science can be solved by another level of indirection This statement is at the heart of virtualization as well as other references in communications layering computer architecture and programming models Sidebar OSI Model Lots of networking professionals like to refer to the 7 layer OSI model when talking about network abstractions The problem is the OSI model was never adopted in addition most OSI engineers agree that the top 3 layers of the OSI Application Presentation and Session belongs in one application layer We utilize a derivative of that model which is essentially the four layers representative in the TCP IP model Lets first try and define what an address is and then what is meant by encapsulation being careful not to conflate these two important yet independent terms Addressing and Naming The first thing to recognize is that the Internet is comprised of two name spaces what we call the Domain Name System and the Internet Address Space These turn out to be just synonyms for each other in the context of addressing with different scope Generally we can describe an address space as consisting of a name space with a set of identifiers within a given scope An address space in a modern computer system is location dependent but hardware independent thanks to the virtual memory manager and memory virtualization The objective of course is to present a logical address space which is larger than the physical memory space in order to give the illusion to each process that it owns the entire physical address space This is a very important indirection mechanism if we didn t have this applications would have to share a much smaller set of available memory Does anyone remember DOS Another problem with TCP IP is that the real name of an application is not the text form that humans type it s an IP address and its well known port number As if an application name were a macro for a jump point through a well known low memory address Professor John Day Binding a service which needs to be re locatable to a location dependent address is why we have such problems with mobility today in fact we may even conclude that we are missing a layer Given the size and failure rates of today s modern data centers this problem also impacts the reliability of the services and applications consumers are so dependent on in todays web scale companies So while this is a very important part of OS design its completely different from how the Internet works because the address system we use today has no such indirection without breaking the architecture i e NATS Load Balancers etc If this is true is the IP address system currently used on the Internet location dependent Well actually IP addresses were distributed as a location independent name not an address There are current attempts to correct this such as LISP HIP as well as BeyondIP solutions such as RINA So it turns out the root of the problem in relation to addressing is that we don t have the right level of indirection because according to Saltzer and Day we need a location independent name to identify the application or service but all we have is a location dependent address which is just a symbolic name What is encapsulation Object Oriented Programming refers to encapsulation as a pattern by which the object s data is contained and hidden in the object and access to it restricted to members of that class In networking we use encapsulation to define the different layers of the protocol stack which as we know hides the data from members not in the Layer in this way the protocol model forms the hour glass shape minimizing the interface and encapsulating the implementation Sidebar Leaky Abstractions Of course this isn t completely true as the current protocol model of TCP IP is subject to a leaky abstraction For instance there is no reason for the TCP logic to dive into the IP frame to read the TOS data structure doing so would be a Layer Violation but we know that TCP reaches into IP to compute the pseudo header checksum This rule can be dismissed if we think of TCP IP as actually one layer as it was before 1978 But the reality of the broken address architecture leads to the middle boxes which must violate the layers in order to rewrite the appropriate structures to stitch back together the connection So how does encapsulation help In networking we use encapsulations all the time We essentially encapsulate the data structures which need to be isolated the invariants with some other tag header etc in order to hide the implementation So in 802 1Q we use the C TAG to denote a broadcast domain or VLAN in VXLAN we encapsulate the host within a completely new IP shell in order to bridge it across without leaking the protocol primitives necessary for the host stack to process within a hypervisors stack From the blog encapsulation provides the closest analog to the hierarchical memory virtualization in compute So in the context of a hierarchy yes we encapsulate to hide but not for the same reasons we have memory hierarchies i e SRAM cache and DRAM This generalization is where the blog post goes south So really what is the root of the problem and how is SDN an approach to solve it From an earlier statement we need a location independent name to identify the application or service but all we have is a location dependent address which is just a symbolic name If we go back to Saltzer we see that s only part of the problem as we need a few more address names and the binding services to accomplish that One interesting example to this is the implementation of Serval from Mike Freedman at Princeton University Serval actually breaks the binding between the application service name and the inter networking address Although there are deeper problems then this since we seem to be missing a network layer somewhere Serval accomplishes this through the manipulation of forwarding tables via OpenFlow although it can be adapted to use any programmable interface if one exists Another example is the NDN Project led by Van Jacobson In summary Yes it is unfair to conflate Network Virtualization with OS Virtualization as they deal with a different level of abstraction state and purpose Just as hypervisors were invented to simulate a hardware platform there is the need to simulate or abstract the network in order to build higher level services and simplify the interface not necessarily the implementation In fact a case can be made that OS Virtualization may eventually diminish in importance as we find better mechanisms for dealing with isolation and protection of the host stack while network virtualization will extend beyond the existing solutions and even existing protocols allowing us to take on a new set of challenges This is what makes SDN so important not the implementation but the interface Once we have this interface which is protocol independent we can start to look at fixing the really hard problems in networking in a large scale way Data Center Future Internet OpenFlow Software Defined Network NodeFlow An OpenFlow Controller Node Style January 8 2012 Gary Berger 3 Comments In less you ve been under a rock lately you might have heard something about Software Defined Networks OpenFlow Network Virtualization and Control Plane Data Plane separation Some of the reasons for the interest might be Evolution of the system architecture as a whole Network NIC PCIE QPI CPU Memory along with X86 64 instructions OS drivers software and applications have allowed for many services to run on a single host including network services Extending the network domain into the host allows for customizable tagging classification load balancing and routing with the utopia being ubiquitous control of logical and physical by a combination if in protocol state forwarding tables and a distributed control system Non experimental network pathologies which are causing havoc with large scale systems Turns out there are some very real problems which were never part of Ethernet and TCP IP design space and software allows us to experiment with different ideas on how to solve these problems Leveraging a possibly untapped design space in order to be differential leap frog competition or disrupt the marketplace So what is OpenFlow Well according to the Open Networking Foundation OpenFlow is an open standard that enables researchers to run experimental protocols in the campus networks we use every day This paradigm shift into the guts of the network might be better explained by a surgical assessment of the network core its protocol structure the devices which deal with enrollment classification multiplexing demultiplexing flow control and routing but this will be a post for another day In the meantime the network has evolved into a first class citizen amongst infrastructure architects software developers and consumers alike No I am not talking about the Social Network by big boy Zuck but the fact that networks are finding them selves ingrained in almost anything not nailed down This so called Internet of Things tells us that soon the network will be stitched into our lives through the air and into our clothes There are many arguments about the value of OpenFlow and SDN but to find the benefits and use cases the network domain experts may find the current toolsets and platforms a bit impenetrable The current controller implementations are written in a combination of C Python and Java and because of the asynchronous nature of the OF protocol additional libraries have to be leveraged including Twisted and NIO which make it more difficult to understand exactly what is going on To that end I introduce NodeFlow an OpenFlow controller written in pure JavaScript for Node JS Node JS provides an asynchronous library over JavaScript for server side programming which is perfect for writing network based applications ones that don t require an excessive amount of CPU NodeFlow is actually a very simple program and relies heavily on a protocol interpreter called OFLIB NODE written by Zoltan LaJos Kis I have a forked version of this library see below which have been tested with OpenFlow version 1 0 Sidebar A note on OpenFlow Even though the Open Networking Forum has ratified the 1 2 protocol specification we have yet to see a reference design which allows developers to experiment In order to get a grasp of the programming model and data structures to this end I have concentrated on the most common implementation of OpenFlow 1 0 in OpenVSwitch Sidebar Why Node JS Node JS has become one of the most watched repos in GitHub and is headed up by the brilliant guys at Joyent Anyone interested should check out Bryan Cantrill s presentation Building a Real Time Cloud Analytics Service with Node js Setting up the development environment Leveraging OpenVSwitch and tools such as MiniNet anyone can create a simulated network environment within their own local machine Instructions on how to setup the development environment can be seen here Download and Get Started with Mininet Code review We first setup the network server with a simple call to net createServer which we provide the port and address to listen on The address and port are configured through a separate start script NodeFlowServer prototype start function address port var self this var socket var server net createServer server listen port address function err result util log NodeFlow Controller listening on address port self emit started Config server address The next step provides the event listeners for socket maintenance creates a unique sessionID from which we can keep track of each of the different switch connections and our main event process loop which is called every time we receive data on our socket channel We use a stream library to buffer the data and return us the OpenFlow decoded message in the msgs object We make a simple check on the message structure and then pass it on for further processing server on connection function socket socket setNoDelay noDelay true var sessionID socket remoteAddress socket remotePort sessions sessionID new sessionKeeper socket util log Connection from sessionID socket on data function data var msgs switchStream process data msgs forEach function msg if msg hasOwnProperty message self processMessage msg sessionID else util log Error Message is unparseable console dir data In the last section we leverage Node JS EventEmitters to trigger our logic using anonymous callbacks These event handlers wait for the specific event to happen and then trigger processing We handle three specific events just for this initial release OFPT PACKET IN which is the main event to listen on for PACKET IN events and SENDPACKET which simply encodes and sends our OF message on the wire self on OFPT PACKET IN function obj var packet decode decodeethernet obj message body data 0 nfutils do l2 learning obj packet self forward l2 packet obj packet self on SENDPACKET function obj nfutils sendPacket obj type obj packet outmessage obj packet sessionID The Hello World of OpenFlow controllers simply provide a learning bridge function Here below is the implementation which is fundamentally a Python port of NOX Pyswitch do l2 learning function obj packet self this var dl src packet shost var dl dst packet dhost var in port obj message body in port var dpid obj dpid if dl src ff ff ff ff ff ff return if l2table hasOwnProperty dpid l2table dpid new Object create object if l2table dpid hasOwnProperty dl src var dst l2table dpid dl src if dst in port util log MAC has moved from dst to in port else return else util log learned mac dl src port in port l2table dpid dl src in port if debug console dir l2table Alright so seriously why the big deal There are other implementations which do the same thing so why is NodeFlow so interesting Well if we look at setting up a Flow Modification which is what gets instantiated in the switch forwarding table you see we can see every element in JSON notation thanks to the OFLIB NODE Library This is very important as deciphering the TLV based protocol from a normative reference can be dizzying at best setFlowModPacket function obj packet in port out port var dl dst packet dhost var dl src packet shost var flow self extractFlow packet flow in port in port return message version 0x01 header type OFPT FLOW MOD xid obj message header xid body command OFPFC ADD hard timeout 0 idle timeout 100 priority 0x8000 buffer id obj message body buffer id out port OFPP NONE flags OFPFF SEND FLOW REM match header type OFPMT STANDARD body wildcards 0 in port flow in port dl src flow dl src dl dst flow dl dst dl vlan flow dl vlan dl vlan pcp flow dl vlan pcp dl type flow dl type nw proto flow nw proto nw src flow nw src nw dst flow nw dst tp src flow tp src tp dst flow tp dst actions header type OFPAT OUTPUT body port out port Performance and Benchmarking So I used Cbench to compare NOX vs NodeFlow and here are the results NOX nox core i ptcp pytutorial NOX c nox core i ptcp switch NodeFlow running with Debug False C based Controller As you can see from the numbers NodeFlow can handle almost 2X what NOX can do and is much more deterministic Maxing out at 4600 rsp sec is not shabby on a VirtualBox VM on my Mac Air Summary At just under 500 LOC this prototype implementation of an OF controller is orders of magnitude less than comparable systems Leveraging JavaScript and the high performance V8 engine allows for network architects to experiment with various SDN features without the need to deal with all of the boilerplate code required for setting up event driven programming Hope someone gets inspired by this and takes a closer look at Node JS for network programming So how do I get NodeFlow NodeFlow is an experimental system available at GitHub git github com gaberger NodeFLow git along with my fork of the OFLIB NODE libraries here git github com gaberger oflib node git If you would like to contribute or have any questions please contact me via Twitter gbatcisco Special thanks to Zoltan LaJos Kis for his great OFLIB NODE library for which this work couldn t have been done and Matthew Ranney for his network decoder library node pcap Data Center Enterprise Cloud MultiCore ManyCore Platform as a Service Cisco UCS Cloud In A Box Terabyte Processing In RealTime January 5 2012 Gary Berger Now I hate using the term Cloud for anything these days but in the latest blog entry from Shay Hassidim Deputy CTO of Gigaspaces Terabyte Elastic Cache clusters on Cisco UCS and Amazon EC2 the Cisco UCS 260 took the place of 16 Amazon High Memory Quadruple Extra Large Instance With 16 1 scaling imagine what you can do with a rack of these in other words forget about Hadoop lets go real time data grid enabled networking With 40 Intel cores and 1TB of memory available to Gigaspaces XAP high performance In Memory Data Grid the system achieved an astounding 500 000 Ops sec on 1024B POJO the system could load 1 Billion objects in just under 36 minutes Now this might not sound extraordinary but when you consider how to build an application where the bottleneck on a 40 core 1TB system is CPU and Memory bound properly deal with failures and have automation and instrumentation you can t beat this kind of system Gigaspaces is also integrated into Cisco UCS XML API for dynamic scaling of hardware resources Eventually people will catch on that memory is critical for dealing with Big Data and it s no longer an issue of reliability or cost Without disk rotational latency in the way and poor random access we can push the limits of our compute assets while leveraging the network for scale Eventually we might see a fusion of in memory data grids with network in a way which allows us to deal with permutation traffic patterns by changing the dynamics of networking processing and storage Software Development A View from the Developer Nation January 3 2012 Gary Berger QCONSF 2011 By Gary Berger Every year the folks at Trifork and InfoQ put on a conference in San Francisco expanding to other geographies for enterprise software developers The conference is geared towards team leads architects product managers and developers of all skill sets This conference is different than most because the constituents are all practitioners i e software developers not academics and the agenda spans from Architecture to Agile and Cloud Many of the leading players in the industry attend including Twitter NetFlix Amazon and Facebook The discussions are usually very intriguing and provide glimpse into the complex ecosystems of these successful companies After being involved in this community for several years I can say that the level of maturity continues to accelerate as developers become experienced with new toolkits new languages and are encouraged to fail fast through agile techniques like Lean Development Kanban and Agile Open Source continues to cross pollinate software developers allowing them to iterate through solutions find what works and keep producing minimal viable products on schedule The fast innovation in this industry is the culmination of many geniuses over time paying forward with their hard work and dedication so others can benefit and you can see the influences across architectures starting to emerge This paper does not intend to be a comprehensive text on software development practices tools and techniques I will however try and distill common themes and highlight specifics which I find and where others might want to dig deeper to investigate on their own behalf JAVA as a Platform It s been several years now since I have been advocating the use of JAVA as the abstraction layer for modern applications I have been exposed to JAVA for many years including designing an infrastructure for one of the world s first equity matching kernels built in Java At the time we leveraged Solid Data DRAM based storage and one of the first Object Databases to store our transactions We leveraged CORBA for inter process messaging and Netscape HTTP server for our front end It was a complicated set of interacting components that needed to work together flawlessly to be successful The system itself was completely over engineered a standard design philosophy in those days and performed perfectly for several years before the business could not be sustained any longer Turned out the Mom and Pop investor wasn t interested in trading after hours and there just wasn t enough liquidity to sustain a marketplace Needless to say JAVA is everywhere and has recently become poster child for the nascent Platform as a Service model Even companies like Yammer or falling back to JAVA from Scala because of the inconsistent build tools and developer education To be fair its also the complexities that come from PolyGlot programming so take it or leave it A great view on the practicality of JAVA from Erik Onnen here http bit ly t2OJe2 Don t forget to check out Oracle s Public Cloud offering here http bit ly ubHvN0 Why JAVA Why Now About a year ago now Rod Johnson proclaimed Spring is the new cloud operating system Even though the term cloud has been overloaded to the extent it s almost superfluous it was a profound statement when centered on the JVM and the JAVA language For more information see Alex Buckley s presentation on JAVA futures here http bit ly rQjlsX Sidebar Rod s Key Note Rod Johnson is the General Manager of SpringSource a company acquired by VMWare to expand their footprint into the core of application development Rod usually speaks about the evolution of the Spring Framework his gadgets such as Spring Roo and Aspect Oriented programming but this time he was somewhat reflective on his career and his life From the beginning his industry acclaimed book on Java development practices turned into a massively successful Open Source project called the Spring Framework from which the first real threat to the JEE ecosystem was felt Spring and its philosophy around dependency injection are mainstream and his teams have a catalog of products under the SpringSource banner Rod has had an astonishing career and talks enthusiastically about the potential for entrepreneurs to change the world through software See Rod s presentation here http bit ly rCh7vz Oracle acquired Sun Microsystems in early 2009 and the Java community was rocked Hints of legal battles over Java with Google left people to assess the impact on the Java ecosystem Even the OpenJDK project the open source incarnation of the JAVA platforms survival was put in question Luckily Oracle has caught on that JAVA is the way forward and is now marketing the JEE as a Platform as a Service Clearly it is the breadth and depth of the JAVA platform which makes it successful with a large set of toolkits frameworks and libraries a highly educated developer community the JAVA platform is everywhere From Google to NetFlix and Twitter JAVA can be found running some of the worlds most successful systems JAVA is now Oracles future From Fusion to Exalogic and the JEE platform itself taking on a full service model JAVA continues to have a profound impact on the industry Sidebar The Application Memory Wall and its impact on JAVA When trying to understand the scalability limits of a system we sometimes have to look under the covers at the intent of the application and how the design leverages the core resources of a system Gil Tene from Azul Systems boils down the problem this way We all know that the memory wall exists and is determined by the memory bandwidth and latency which evolves at a much slower pace than CPU s However we have yet to breach this wall thanks to the phenomenal engineering of modern chips such as Intel Nehalem instead we have been constrained by how applications are designed This actually creates several issues as infrastructure designers may architect the right solution to the wrong problem In the Java world the most restrictive function is Garbage Collection the process of removing dead objects recouping memory and compacting the fragmented heap This process impacts all major applications and teams spend man years tweaking the available parameters on their collectors to push the problem as far into the future as they can but alas it is unavoidable the dreaded Stop the world pause Developers are must be very conscious of their code how they organize their object models in order to limit the overhead which every object has on the heap See Attila Szegedi from Twitters presentation http bit ly v8OWmP Azul Systems has some of the brightest minds in systems design memory management and garbage collection and have built a business to solve this specific problem Currently the most widely used Garbage Collector GC is the Concurrent Mark Sweep CMS collector in the HotSpot JVM CMS is classified as a Monolithic Stop the World collector which must provide a full lock to catch up with mutations i e changes started during GC and compaction The C4 collector from Zing has recently been upgraded to version 5 which no longer requires a hypervisor for its page flipping techniques and instead has boiled down the necessary Linux kernel changes to a kernel loadable module trying to be pushed into upstream kernel through Managed Runtime Initiative This frees up wasted memory and removes the overhead of a hypervisor while still providing pause less GC for applications Zing has many more benefits which can be investigated offline See Gil s presentation here http bit ly vN5xQ0 The JAVA ecosystem is thriving both the improvements in the runtime and the language are becoming better at dealing with concurrency expressiveness and performance Despite the fact that the current incarnation of Objects has not lived up to their promise see below developers seem to always find away around that continuing the evolution of this platform Languages For several years now the developer community has been entrenched in debate over Object Oriented Programming OOP vs Functional Programming but more specifically over the implementation of OOP methodology in Object Oriented Languages OOL such as JAVA In part code reuse componentization and frameworks have not lived up to their promises Readability has for the most part been sacrificed as encapsulation and inheritance have been somewhat abused thanks to the creativity of developers and high pressure timelines QCON s Objects on Trial was an interesting debate over the use of Objects Sorry to say the jury voted guilty Regardless of the verdict Poly Paradigm Computing i e mix of object oriented procedural functional etc will play a big role in application development for the same reason why different languages are better for different purposes This means that app developers need to transparently work across these styles picking up on the strengths such as reusable software patterns while minimizing the weaknesses such as concurrency support Sidebar Ruby Groovy Scala Erlang Javascript DART Anyone who says language doesn t matter when designing a system either doesn t have a system which cares about flexibility performance and agility or simply doesn t have a large enough problem to care All things being equal developers will gravitate to what they are most familiar with regardless of readability agility or the complexity it adds Language development continues to evolve from adding simple annotations replacing lines of boiler plate code aspect oriented programming to syntactic sugar which makes the readability of code much better Languages are the face of the development process the more expressive and easier to use the faster applications can be created and the easier to maintain and extend Over the past several years new languages have taken hold such as Ruby Groovy Scala older languages have been given a second life with growing adoption of Erlang and JavaScript and experimental languages have popped up to challenge the others such as Go and DART The need for Finding the right tool for the job gives rise to the idea of PloyGlot programming where many different languages are utilized based on their suit for purpose Mostly you will find JAVA in every shop playing a critical role of the system with a sprinkle of JavaScript for client side coding some Erlang for middleware maybe Python Groovy C C PERL etc Typically you have a high performance core written in a statically linked language like C responsible for all of the critically performing code you have a plugin or module architecture to extend the core and a scripting or higher level language which provides familiar storage primitives collections etc Frameworks such as Ruby on Rails have been a blessing to those who could leverage its rich dynamic language and templating tools for building quick web based applications but cursed when trying to do something at a level of scale beyond the Ruby runtime Twitter got burned by this and moved to Scala For more complex scenarios such as running distributed gossip protocols with 99 999999 reliability Erlang might be the right choice at the sacrifice of a more complex coding See Steve Vinoski s talk on WebMachine an HTTP server written in Erlang There were a number of conversations throughout the conference regarding the importance of a type system A type system associates a type with each computed value 1 Basically a type system ensures that the value provided or returned from a function is of the expected type This has several benefits It allows for code readers to explicitly see what variable types are being passed around if they don t obscure the reference By providing a static type the compiler can allocate the proper size memory and lastly it allows the compiler to check the validity of the variable before getting a runtime error Unfortunately this isn t a panacea the type system may get in the way especially when the primitive types are hidden making it very difficult to read the code More on this when we talk about DART One of the most popular languages in software development today is JavaScript JavaScript has gotten a bad wrap and there are many things to be weary of when it comes to writing good JavaScript Readers should consult Douglas Crockford books on JavaScript for more information http amzn to 176RA4 This tiny little language is a pure Object Oriented Language everything is an object It provides for anonymous functions dynamic typing and functional reactive programming and has a host of examples from which developers can learn Oh and its embedded in every browser running on almost every device you can imagine Originally JavaScript was designed as a programmatic interface for manipulating the DOM in web browsers but has found its way into server side implementations through Node JS and Rhino which detach the language from the incredibly complex Document Object Model Sidebar JavaScript and Node JS The popularity of Node cannot be understated There is a rich set of new libraries created daily from LDAP to Riak and all kinds of middleware to solve interesting problems Node is merely a shim on top of JavaScript and the V8 VM which insulates some of the bad parts of the JavaScript language and confines the developer to a single threaded model with local scoping simplifying the design by only allowing sharing state through an IPC barrier similar to the Erlang Node is exceptional at dealing with network based applications supporting a variety of services such as HTTP REST and WebSockets Node JS has become one of the most watched projects on GitHub and is gaining in popularity due to its rich but sometimes dangerous base language JavaScript As an example here is how simple it is to create a Web server in Node var http require http http createServer function req rsp rsp writeHead 200 Content Type text plain rsp end Hello World n listen 8080 127 0 0 1 console log Server running at http 127 0 0 1 8080 I will reiterate the mantra of having the right tool for the job and certainly Node V8 and JavaScript have their place centered on I O demanding applications The eventing model and single threaded model is not for everyone but it does provide a powerful tool kit and expressive language to be useful for a number of different use cases Structured Web Programming Intro to DART While JavaScript is gaining in popularity primarily because of the dominance of web based applications and the now future success of HTML5 CSS3 thanks to Adobe dumping flash for mobile programming but JavaScript may not have all the answers which is why Google is investing in DART Google may have realized that the divergence between native applications i e ones that have to be coded for iOS and Android and web based applications were not going to be solved by JavaScript or the ECMA community the stewards of the specification so Google created DART DART is being created by a number of people within Google most notably are Gilad Bracha who gave the keynote and session on DART and Lars Bak lead developer of Google V8 virtual machine Gilad has a long history in language development including his work on StrongTalk and co authored of the Java Language Specification DART is being built as a pure object oriented language with familiar syntax such as Classes and Interfaces with a type system that doesn t interfere with developer productivity In its current pre release DART script is compiled into JavaScript to be run on the V8 virtual machine Eventually there will be a standalone DartVM maybe part of Chromium which will allow DART scripts to avoid this code generation step New languages take time to be nurtured and accepted into mainstream but what makes DART so powerful is the rampant change in client side development and device refreshes which might give it a great leap forward if the OSS community adopts it Data Management In the field of application science if there was such a thing data management would be the foundational pillar to writing applications which are reliable flexible and engaging In the post client server era we are bombarded with new ways of storing retrieving protecting and manipulating data The 451 Group has put together a very comprehensive look at this space which incorporates the traditional relational database stores the emerging NoSQL stores and the second incarnation relational stores called NewSQL Accompanying them is also the growing and important Datagrid and Caching tier Lets look a moment at NoSQL since it is the hottest field in data management today In 1998 Carlo Strozzi uses the term NoSQL to describe his new relational database system In 2004 at USENIX OSDI conference Jeff Dean and Sanjay Ghemawat published their paper MapReduce Simplified Data Processing on Large Clusters It was the start of the industries changing viewpoint on data persistence and query processing By 2007 database guru Michael Stonebraker published his paper entitled The End of an Architectural Era It s Time for a Complete Rewrite In this paper he exposes the issues around relational database models the SQL language and challenges the industry to build highly engineered systems that will provide a 50X improvement over current

    Original URL path: http://garyberger.net/?paged=2 (2016-04-25)
    Open archived version from archive

  • garyberger.net | Page 4
    the problem into many smaller chunks and put thousands of little workers to attack the problem With the thermodynamic barriers in chip design driving us wide instead of tall horizontal instead of vertical scale out instead of scale up Okay enough analogies New architectural patterns are emerging including space based architectures and event driven architectures to address the developers obstacles a lot of the work is rooted in a more simplistic look at the application stack built on top of the well understood JVM or CLR The new resurgence of functional languages like Erlang Clojure are getting more interest as well as new languages like Ruby Groovy and Scala The feature rich and pithy implementation of the language offering things like no need for semicolons or parens In a lot of cases this reduces the noise and allows the code to be read more like plain English This more readable code allows the developers to communicate with the domain experts in an easier way Speeding up the dev test cycle to get good enough code out the door for consumption In essence the business interface gathers around a new DSL Domain Specific Language which is written in the semantic language of the business Inter dimensional relationships are easily described through method libraries So what was the demo about This entire demo was used to show how you could build a working JEE like application instaniate it over a grid which is provided by an L3 encrypted overlay and allow the application to migrate around the cloud in and out at will My thesis is that you can create a movable matrix of hosts around a graph of cloud resources regardless of the source We don t take into case any global load balancing scenarios that s a problem for another day So how do we do that My demonstraton had several parts Part 1 Figure out how to configure systems in a stateless Amazon EC2 world Part 2 Utilize a dynamic language one that really anyone can learn the semantics to and be productive as a programmer with the correct style guide and well documented API Part 3 Connect multiple hosts across autonomous cloud entities utilizing a SSL VPN overlay network This provides the illusion of being on the same L2 network Oh and it has to support multicast forwarding so I can have dynamic service discovery Part 4 Establish the VPN Key assignment using CohesiveFT VPNCubed and OpenVPN Part 5 Batch the images on Elastic Server threw some at Seattle some at Dublin other was me in NY Part 6 Customer writes into the application and the data is instanty synchronized across the world Continue reading Gigaspaces powered Service Virtualization and the Cloud Part 1 PowerShell Powershell and Microsoft Exchange August 6 2009 Gary Berger I thought I would post some work I did a few years ago showing the powerfull PowerShell scripting language getMDB attempts to scatter requests for mailbox assignment by using a random number to choose

    Original URL path: http://garyberger.net/?paged=4 (2016-04-25)
    Open archived version from archive

  • Stack Wars and the Rise of the SDN Republic | garyberger.net
    Without lowering the average cost per unit in terms of operations robustness flexibility etc by means of automation you are simply carrying an anchor around all day slowing your business But is this SDN VMWare has moved into the world of SDN through the acquisition of Nicira VMware has been successful at virtualizing compute storage and now networking This can be considered the trifecta necessary to capture the control points enabling them to be first in developing a unified Abstract Binary Interface to all infrastructure components Those of you familiar with the Linux Standard Base or Single Unix Specification would recognize why this is extremely valuable in building the cloud operating system Each of their control points provide added value to build upon for instance the VM association to location policy metrics QOS guarantees etc These are incredibly valuable as is the network binding mac port IP With this information the owner can control any resource anywhere regardless of the network operating system or the hypervisor Value of the Physical Network So what about the role of the physical network We have heard many leaders discuss this in the context of commoditized switches merchant silicon and proprietary fabrics There are significant challenges in optimizing networks especially data centers which require a mixed set of services and tenants such as Unified Multi Service Data Centers There is a need for efficient topologies which maximize bi sectional bandwidth reduce the overhead in cabling and reduce operational complexity The network fabric should work as well for benign traffic as it does for permutation traffic i e many to one scenarios familiar to partition aggregate application patterns If I can t utilize the full capacity of the network and be assured that I have properly scheduled workloads during permutation traffic interactions than certainly the physical network becomes an increasingly important design point This requires changes to topology flow control routing and possibly the protocol architecture in order to arbitrate amongst the competing flows while maintaining low variance in delay and robustness to failures Realistically the shift to 10GE network fabrics and host ports provide better scalability and to date application designers have yet to fully exploit distributed processing which means the data center traffic matrix is still fairly sparse As we move into the future and workloads become more dense one could argue that the physical network has a lot more it can accomplish For instance ALL Fat Tree architectures limit the available capacity of the network to the min cut bi sectional bandwidth This means that overall throughput is limited to 50 of total capacity Note that is an ideal throughput because routing and flow control limit capacity further The question for data center designers is will you pay for a network which they can only utilize a subset of 50 of the capacity they purchased Well I certainly would be looking for options that would improve my cost model and this is an area which we haven t yet found the secret

    Original URL path: http://garyberger.net/?p=648 (2016-04-25)
    Open archived version from archive

  • OpenFlow | garyberger.net
    to manage infrastructure is simply a matter of economies of scale Without lowering the average cost per unit in terms of operations robustness flexibility etc by means of automation you are simply carrying an anchor around all day slowing your business But is this SDN VMWare has moved into the world of SDN through the acquisition of Nicira VMware has been successful at virtualizing compute storage and now networking This can be considered the trifecta necessary to capture the control points enabling them to be first in developing a unified Abstract Binary Interface to all infrastructure components Those of you familiar with the Linux Standard Base or Single Unix Specification would recognize why this is extremely valuable in building the cloud operating system Each of their control points provide added value to build upon for instance the VM association to location policy metrics QOS guarantees etc These are incredibly valuable as is the network binding mac port IP With this information the owner can control any resource anywhere regardless of the network operating system or the hypervisor Value of the Physical Network So what about the role of the physical network We have heard many leaders discuss this in the context of commoditized switches merchant silicon and proprietary fabrics There are significant challenges in optimizing networks especially data centers which require a mixed set of services and tenants such as Unified Multi Service Data Centers There is a need for efficient topologies which maximize bi sectional bandwidth reduce the overhead in cabling and reduce operational complexity The network fabric should work as well for benign traffic as it does for permutation traffic i e many to one scenarios familiar to partition aggregate application patterns If I can t utilize the full capacity of the network and be assured that I have properly scheduled workloads during permutation traffic interactions than certainly the physical network becomes an increasingly important design point This requires changes to topology flow control routing and possibly the protocol architecture in order to arbitrate amongst the competing flows while maintaining low variance in delay and robustness to failures Realistically the shift to 10GE network fabrics and host ports provide better scalability and to date application designers have yet to fully exploit distributed processing which means the data center traffic matrix is still fairly sparse As we move into the future and workloads become more dense one could argue that the physical network has a lot more it can accomplish For instance ALL Fat Tree architectures limit the available capacity of the network to the min cut bi sectional bandwidth This means that overall throughput is limited to 50 of total capacity Note that is an ideal throughput because routing and flow control limit capacity further The question for data center designers is will you pay for a network which they can only utilize a subset of 50 of the capacity they purchased Well I certainly would be looking for options that would improve my cost model and this

    Original URL path: http://garyberger.net/?tag=openflow (2016-04-25)
    Open archived version from archive

  • SDN | garyberger.net
    to manage infrastructure is simply a matter of economies of scale Without lowering the average cost per unit in terms of operations robustness flexibility etc by means of automation you are simply carrying an anchor around all day slowing your business But is this SDN VMWare has moved into the world of SDN through the acquisition of Nicira VMware has been successful at virtualizing compute storage and now networking This can be considered the trifecta necessary to capture the control points enabling them to be first in developing a unified Abstract Binary Interface to all infrastructure components Those of you familiar with the Linux Standard Base or Single Unix Specification would recognize why this is extremely valuable in building the cloud operating system Each of their control points provide added value to build upon for instance the VM association to location policy metrics QOS guarantees etc These are incredibly valuable as is the network binding mac port IP With this information the owner can control any resource anywhere regardless of the network operating system or the hypervisor Value of the Physical Network So what about the role of the physical network We have heard many leaders discuss this in the context of commoditized switches merchant silicon and proprietary fabrics There are significant challenges in optimizing networks especially data centers which require a mixed set of services and tenants such as Unified Multi Service Data Centers There is a need for efficient topologies which maximize bi sectional bandwidth reduce the overhead in cabling and reduce operational complexity The network fabric should work as well for benign traffic as it does for permutation traffic i e many to one scenarios familiar to partition aggregate application patterns If I can t utilize the full capacity of the network and be assured that I have properly scheduled workloads during permutation traffic interactions than certainly the physical network becomes an increasingly important design point This requires changes to topology flow control routing and possibly the protocol architecture in order to arbitrate amongst the competing flows while maintaining low variance in delay and robustness to failures Realistically the shift to 10GE network fabrics and host ports provide better scalability and to date application designers have yet to fully exploit distributed processing which means the data center traffic matrix is still fairly sparse As we move into the future and workloads become more dense one could argue that the physical network has a lot more it can accomplish For instance ALL Fat Tree architectures limit the available capacity of the network to the min cut bi sectional bandwidth This means that overall throughput is limited to 50 of total capacity Note that is an ideal throughput because routing and flow control limit capacity further The question for data center designers is will you pay for a network which they can only utilize a subset of 50 of the capacity they purchased Well I certainly would be looking for options that would improve my cost model and this

    Original URL path: http://garyberger.net/?tag=sdn (2016-04-25)
    Open archived version from archive

  • Virtualization | garyberger.net
    to manage infrastructure is simply a matter of economies of scale Without lowering the average cost per unit in terms of operations robustness flexibility etc by means of automation you are simply carrying an anchor around all day slowing your business But is this SDN VMWare has moved into the world of SDN through the acquisition of Nicira VMware has been successful at virtualizing compute storage and now networking This can be considered the trifecta necessary to capture the control points enabling them to be first in developing a unified Abstract Binary Interface to all infrastructure components Those of you familiar with the Linux Standard Base or Single Unix Specification would recognize why this is extremely valuable in building the cloud operating system Each of their control points provide added value to build upon for instance the VM association to location policy metrics QOS guarantees etc These are incredibly valuable as is the network binding mac port IP With this information the owner can control any resource anywhere regardless of the network operating system or the hypervisor Value of the Physical Network So what about the role of the physical network We have heard many leaders discuss this in the context of commoditized switches merchant silicon and proprietary fabrics There are significant challenges in optimizing networks especially data centers which require a mixed set of services and tenants such as Unified Multi Service Data Centers There is a need for efficient topologies which maximize bi sectional bandwidth reduce the overhead in cabling and reduce operational complexity The network fabric should work as well for benign traffic as it does for permutation traffic i e many to one scenarios familiar to partition aggregate application patterns If I can t utilize the full capacity of the network and be assured that I have properly scheduled workloads during permutation traffic interactions than certainly the physical network becomes an increasingly important design point This requires changes to topology flow control routing and possibly the protocol architecture in order to arbitrate amongst the competing flows while maintaining low variance in delay and robustness to failures Realistically the shift to 10GE network fabrics and host ports provide better scalability and to date application designers have yet to fully exploit distributed processing which means the data center traffic matrix is still fairly sparse As we move into the future and workloads become more dense one could argue that the physical network has a lot more it can accomplish For instance ALL Fat Tree architectures limit the available capacity of the network to the min cut bi sectional bandwidth This means that overall throughput is limited to 50 of total capacity Note that is an ideal throughput because routing and flow control limit capacity further The question for data center designers is will you pay for a network which they can only utilize a subset of 50 of the capacity they purchased Well I certainly would be looking for options that would improve my cost model and this

    Original URL path: http://garyberger.net/?tag=virtualization (2016-04-25)
    Open archived version from archive



  •