With a flurry of announcements in recent weeks, Amazon has extended its cloud computing lead. The beta label’s gone. It can run Windows applications. By investing in firms like Elastra, it’s tackling enterprise deployment. And there’s a 99.95 percent uptime guarantee.
Much of this is a pre-emptive strike at Microsoft’s upcoming cloud offering. Microsoft has a huge advantage: It owns the stack from OS and virtual machine through to application. Amazon wants to compete on reliability and performance, rather than software suites and licensing. But there are still some things missing before enterprises will really embrace it.
Back in May, most of the people we asked were more likely to trust Amazon than Microsoft with their enterprise applications. But while enterprise customers are using Amazon already, in many cases that use is limited to a department or a short-term project. If Amazon wants to capture entire IT departments, it needs to prove it’s as good or better than in-house infrastructure. And that means delivering responsive, highly available applications, not just an SLA.
To accomplish this, Amazon needs to tackle performance and availability at an architectural level. When companies build their own applications, they rely on building blocks like load-balancing, WAN acceleration, managed DNS and redundant data centers. Fortunately, this is where much of Amazon’s roadmap leads.
- Network performance: Amazon’s CDN will get static content closer to users. With availability zones, Amazon can also get computation near the edge. All of this reduces the time it takes to deliver bits to users. But it can be faster still: Modern enterprises squeeze every millisecond out of the network. Amazon should also add route optimization, HTTP and TCP optimization to really address network delay.
- Processing performance: Internet architects improve server performance with load-balancing. First send the request to the fastest data center, then send it to the fastest machine in that data center. If there aren’t any fast machines, the newly announced dynamic scaling will make new ones. All that’s missing (though hinted at) is the ability to measure user experience so EC2 knows when to add new servers. Amazon needs a complete load balancing/monitoring/scaling strategy — with proper controls so IT staff can manage it — to make elastic computing a reality. While they’re at it, a performance SLA would be great, too.
- Network availability: Those same load balancing technologies improve uptime, using DNS or BGP to bypass unreachable data centers. Amazon needs to launch a SimpleDNS service, tied to availability zones and performance, that gives operators more control. It’s going to have to deal with DNS when it launches its CDN anyway. This looks less like managed DNS (Amazon uses UltraDNS already) and more like products from F5, Citrix or others. Amazon also needs to open up about its carriers and peering arrangements for enterprises to feel comfortable.
- Processing availability: Big Internet sites don’t achieve high uptime with machines that always work. Instead, they monitor for failure and then have the load balancers take out bad servers. That way, overall availability can be high, even when individual components are broken. Amazon should add load testing and profiling capabilities — particularly since EC2 doesn’t give users deep visibility into the platform — to ensure that applications work worldwide under stress.
As Amazon CTO Werner Vogels pointed out, enterprises like cloud computing for its economics, its elastic capacity and its ability to deliver high reliability. With this roadmap, Amazon goes after Microsoft’s weak spots. But it’s not there yet.