best practices for cloud performance in real world networks

15
Best practices for cloud performance in real world networks 1

Upload: cloud-genius

Post on 15-Aug-2015

82 views

Category:

Technology


4 download

TRANSCRIPT

Page 1: Best practices for cloud performance in real world networks

Best practices for cloud performance in real world networks 1

Page 2: Best practices for cloud performance in real world networks

Network Conditions Vary Wildly 2

¨  Best to plan cloud assuming bad things will happen ¨  We will discuss best practices for cloud architecture

LAN

Dial up Satellite / WAN

Internet and VPN

LOW HIGH

LOW HIGH

Bandwidth

RTT

Page 3: Best practices for cloud performance in real world networks

Best Practices for Cloud Performance 3

¨  Have network applications initialize quickly ¤ The user interface should not have to wait for network

responses. ¤ Some tasks can be performed before the network is

available, or without the network. ¤  If the network is not responding, the user may need the

user interface for simple operations, such as closing the application.

Page 4: Best practices for cloud performance in real world networks

Best Practices for Cloud Performance 4

¨  Do not wait for the network for shutdown ¤  Properly designed architectures handle abortive disconnects

gracefully. ¤  Do not initiate a potentially lengthy operation, such as

synchronizing files or folders with a server, that cannot be interrupted on shutdown.

¤  Networks are not consistently responsive, so even small operations could prove time consuming.

¤  Provide positive feedback for users, including indications of progress and estimated completion times.

Page 5: Best practices for cloud performance in real world networks

Best Practices for Cloud Performance 5

¨  Ensure a responsive user interface ¤ Application responsiveness helps eliminate unnecessary

helpdesk calls. ¤ A good guideline for interactive response is 500

milliseconds. ¤ Users perceive pauses longer than 500 milliseconds as a lag

in performance. ¤ Applications should be responsive enough to provide the

user with confidence about the application.

Page 6: Best practices for cloud performance in real world networks

Best Practices for Cloud Performance 6

¨  Test in an environment with a large RTT to reveal problems ¤ Testing can be performed in several environments,

including n a wireless LAN network, n a link-delay simulator, or n a satellite network

RTT = Round Trip Time = Time it takes a packet to go from A to B and back.

Page 7: Best practices for cloud performance in real world networks

Best Practices for Cloud Performance 7

¨  Scrutinize network errors ¤ Not all network errors are critical. ¤ For example, an application that has received or

posted all of its data can likely ignore errors when closing the connection.

¤ Do not assume the network or the user is available; either handle errors without user intervention, or ignore them if errors are noncritical

Page 8: Best practices for cloud performance in real world networks

Best Practices for Cloud Performance 8

¨  An application should define its own reasonable time outs ¤ For example, a sockets connect request may block

under some conditions for as much as 21 seconds. ¤  Introduce your own time outs as appropriate for users

Page 9: Best practices for cloud performance in real world networks

Best Practices for Cloud Performance 9

¨  Minimize protocol overhead ¤  Conserve network bandwidth - minimize the protocol overhead incurred ¤  Eliminate unnecessary network traffic. ¤  Use protocols with a lower header overhead to transfer data.

n  For example, when sending smaller amounts of noncritical or repeatable data, use UDP as opposed to TCP to reduce the overhead associated with connection establishment and maintenance.

¤  If the same data must be sent to multiple recipients, consider multicast. ¤  Be aware that UDP traffic is not flow-controlled—pushing beyond the

available bandwidth can cause catastrophic network failure.

Page 10: Best practices for cloud performance in real world networks

Best Practices for Cloud Performance 10

¨  Conserve system resources ¤ System resources can be consumed quickly if proper

restraint is not used. n For example, sockets and TCP connections consume

resources.

¤ Do not use several TCP connections per client where one will serve the application's purpose.

Page 11: Best practices for cloud performance in real world networks

Best Practices for Cloud Performance 11

¨  For transactional applications, good user experience and low network utilization are not conflicting goals.

¨  Network-intensive applications spend more time waiting ¤ Well designed network applications minimize unnecessary

wait time, both n  for the user interface and n  for network transmissions.

Page 12: Best practices for cloud performance in real world networks

Best Practices for Interactive Apps 12

¨  Make the data stream as much as possible, rather than going in chunks. ¨  Use a few large transactions rather than many small ones. Large transactions can also be

efficiently streamed. ¨  Minimize reliance on the network - recognize that the network is a slow, unreliable resource. ¨  Use a well-architected representation of the data on the network. The data representation

should be computer-architecture agnostic, contain no fat, and possibly be compressed. ¨  During initialization and shutdown, do not make the user wait for the network to start up or shut

down. Network related initialization could take a relatively long time. Separate the noncritical network code.

¨  Handle errors as appropriate to their impact. Not all errors are critical. Implement recovery mechanisms and provide nonintrusive user feedback.

¨  Use remote procedure calls (RPC) only when necessary (may result in chatty, fat protocols when used with small data.

Page 13: Best practices for cloud performance in real world networks

Some useful network stats 13

¨  A healthy cloud instance can service about 200,000 simultaneous TCP connections

¨  A webserver can service about 25,000 HTTP requests per second

¨  Cloud instances can transmit about 750Mbps on a transcontinental gigabit network with 10 hops

Page 14: Best practices for cloud performance in real world networks

Questions and discussion on topic 14

Page 15: Best practices for cloud performance in real world networks

15

Thank you.