Vadym Fedorov is a Solutions Architect at SoftServe, a leading global software application development and consulting company, and a regular blogger on the SoftServe United blog. Vadym has 12 years experience in enterprise application development, as well as 2 years’ experience in Cloud and operations optimization.
The public cloud is a great tool for businesses providing quick access to compute and network resources with a predictable price. But before you decide on a cloud provider and its infrastructure design, you need to evaluate if the cloud actually meets your needs. Open any cloud provider case study and you will see mostly web applications, data processing, or high scalable computing. But what if you are going to deploy a VoIP application, online real-time game, or any other on-demand solution where quality of a service depends on the network quality?
This is why I decided to discuss cloud networking and share a few tips on how to perform a cloud provider network benchmark. Here’s what you need to know before you get down to it.
- Evaluate network quality for your specific case. Here’s a short list of questions for you to address before you start:
- Are you going to use TCP or UDP network protocols?
- What bandwidth is required?
- Where are your clients located?
- What are the acceptable packet losses?
- What is the expected latency?
- Keep in mind that cloud providers block UDP multicast protocols within the network. If you want to use UDP, apply UDP singlecast protocols.
- Cloud providers can shape or limit UDP traffic.
- Remember that network bandwidth for UPD and TCP is completely different.
- Usually there is a relation between virtual machine instance size and the network performance as bigger and more powerful virtual machines have a better network performance.
- Cloud provider network capacity is usually limited when it comes to UDP and TCP bandwidth.
- Network latency depends on the location of the client who initiates connection to the server.
- Network quality in business and non-business hours may differ.
There is a great tool iperf3 for establishing a network benchmark, which is available for most widely-used operating systems. It facilitates a network benchmark for UDP and TCP protocols. That’s not all you should look at, however; apart from installing the iperf3 utility, it’s also highly recommended that you plan the following tests:
- Identify the maximum available bandwidth for UDP and TCP
- Try out different VM instance sizes in order to find a relation with network bandwidth
- Go for a long-term test, with at least 24 hours of duration for a week, if possible. This will help you observe the changes of the network performance during business and non-business hours
- Run tests when a client and a server are deployed in different locations, so you see how network quality rides on locations.
Once you’re done with network benchmark tests, go on to making a decision about what cloud provider you want. Feel free to use the obtained test results for designing and planning your cloud infrastructure in order to find the most cost effective solution that ensures a flawless service for your clients.