Optimizing Latency and Bandwidth for AWS Traffic
AWS Startup Spotlight: Datapath.io
By Logan Rivenes, Datapath.io
The Internet needs to be optimized.
As website personalization increases the quantity of dynamic content, updating that content globally becomes increasingly difficult. The best solution to date has been a content delivery network (CDN), but CDNs originally were developed to optimize the updating of static, not dynamic, content.
The result has been the need to optimize the Internet, specifically for latency, bandwidth, and cost. This is the solution Datapath.io is providing. Datapath.io is optimizing network traffic for AWS customers, from AWS to their end users. In the following post I will discuss the Internet problem, the solution, as well as lessons learned while building the Datapath.io solution.
The problem is two-fold: Internet speed and Internet cost.
Latency and bandwidth issues can slow the speed of an Internet connection to a CDN or user. Currently, traffic is routed through the Internet by way of the Border Gateway Protocol (BGP), which uses the best logical path. However, the logical path is not necessarily the fastest path; for example, the BGP path might have higher than optimal latency or insufficient bandwidth.
This situation causes network congestion, packet loss, and jitter, which results in a negative user experience. In turn, a negative user experience has business implications for companies, such as lower conversion rates and higher bounce rates.
The second problem companies might encounter is the cost of their Internet traffic with the use of a CDN. As a CDN has a difficult time optimizing dynamic content, you could be left paying for dynamic content over the CDN with little to no delivery improvements.
The General Solution
The solution to optimizing traffic for latency, bandwidth, and cost must be addressed at the BGP level. Because the BGP path often is not the best path in terms of speed and cost, the path needs to be overridden and a different path selected.
This process has to take into consideration different ISPs as well as the specific business requirements of the users. In some situations, a user needs the path with optimized latency or bandwidth, and in other cases the cost of the route should have the highest priority.
The Datapath.io Solution
To help you and your company address these issues, Datapath.io offers a two-part system that includes a network performance monitoring tool and a traffic optimization tool. Datapath.io also provides a global latency map and network monitoring dashboard, which is typically integrated as part of DevOps to monitor network traffic. Then, based on your network traffic and business requirements, you can set rules for your traffic. The following screenshots show an example of the map and dashboard.
On the dashboard you can add your cloud providers. As we have an easy integration with AWS, all you need to do to link your AWS account is click the “Link AWS” button on the right. After you have linked your accounts, you can assign elastic IPs and create rules. The rules will allow you to run traffic analysis reports, as shown in the following screenshot.
The traffic rules allow you to specify how traffic is optimized. You can optimize your traffic based on latency, bandwidth, or cost.
To build and deploy our solution, Datapath.io uses the AWS infrastructure for hosting, backups, deployments, and Direct Connect. The ease of use and integration has made working with AWS great. Specifically, we use the following AWS services:
• Amazon S3
• Amazon EC2
• Elastic Load Balancing
• AWS Direct Connect
The AWS infrastructure provided us with the tools to build our solution and deploy it to our customers. We also took advantage of the AWS Activate program.
In the process of identifying the Internet traffic problem and building the Datapath.io solution, we have learned a few things along the way, which we would like to share.
What Datapath.io Has Learned
We’ve learned a lot during the process of building the Datapath.io solution over the past year.
Although it is difficult to simplify the list of learning experiences when building a SaaS startup, I want to focus on five areas that range from building a business to developing a technical product: scalability, vision, agile, experience, and personnel. We know these topics aren’t revolutionary, but we hope our experience provides a unique perspective.
What scalability means to us is thinking big. It means incorporating a growth strategy from day one. In the development process, it often means removing development bottlenecks so that you can easily add an exponential number of new customers.
The Datapath.io system is built as distributed microservices with a messaging model. We use RabbitMQ as the moderator of the microservices environment. We export and store our results in the Hadoop file system as an HDFS. We then use Apache Spark to run our big data calculations. This setup has created a horizontally scalable system into which we can easily integrate more storage and computing capacity at very little extra cost.
We had to carefully plan and implement our architecture prior to onboarding customers and growing the business. That was our foundation for technical success.
Having a vision is not new, but it cannot be emphasized enough. This is not just about having a vision, but having a clear vision, formulating use cases for that vision, and conveying the vision to others for execution.
At Datapath.io, we’ve felt the pain of neglecting to fully communicate our vision to everyone in our organization. We’ve realized the importance of having everyone moving together in the same direction.
To convey the vision, we needed more than just communication. We needed to put processes and tools in place that supported the vision at every level. This is where Agile methodologies have benefited our organization. Agile has helped us prioritize tasks, and our sprint meetings have kept everybody on the same page.
For us, Agile helped communicate our vision, but first we had to learn true Agile through trial by fire.
When we first started, we thought “Agile” basically meant “open communication.” We learned that it’s much more than that.
For Datapath.io, getting to an Agile process meant implementing a set of tools, organizing tasks into sprints, defining responsibilities, and removing development bottlenecks. This brought us closer to Agile. To ensure all those items are executed regularly, we hold daily sprint meetings.
Last but not least, testing everything is essential. “Test early and test often” has been the mantra of our development process.
Datapath.io gave Big Data a try. We used Cassandra and followed the crowd mentality that everybody should be doing Big Data. As we did not have experience in this arena, it was not a flawless implementation. After all our data was collected, we could not extract it. Rookie mistake.
What we learned was that sometimes it is beneficial to stick to the processes you have experience with. If you do not have experience, get the experience so time is not wasted. Time is money, and when we’re working toward a release, time is essential.
The last major lesson is working with personnel. In the startup world, dedicating resources to managing people is not always at the forefront. It also tends to be against so-called “startup culture.” This is a mistake. Everyone on the team has different personalities and skills. It is the leaders’ job to provide an environment to best utilize these. We try to remember that we wanted our people to join the team for a reason, so now let’s unlock that reason and help them do their best work.
As we look ahead, the future is bright and we are excited for the next phase of growth. On the horizon is a Berlin office and an office in the US. Also, we are hustling to expand in order to provide traffic optimization to even more content providers.
As you build your startup, we hope that what we have shared with you will help you to more effectively execute your vision. We are led by CEO and Co-Founder Sebastian Spies, who is a BGP expert. This knowledge has provided the insight to develop the Datapath.io solution. The Datapath.io team is always open to network with you and discuss best practices. We have a lot to share, and we still have a lot to learn.