Amazon Silk brings the power of the Cloud to the new Amazon Fire Tablet
Just a few days ago, Amazon announced the release of their new Kindle Fire tablet. Before I delve into a few features of the new tablet, I must say that this is a bold step by Amazon, if not necessary, and one that will attempt to disrupt the tablet market while challenging the Apple iPad at the same time.
It's no secret that the iPad, from Apple, rules the tablet market today. At the keynote that was held today for the new iPhone 4S release, some statistics were also released about the iPad. The iPad (both current models) have sold more than a quarter billion units world wide. Yes, that is Billion with a 'B,' and it was all done in 18 months. That is absolutely insane considering that most tech pundits wrote off the iPad as a flash-in-the-pan that was simply an over-sized iPod touch. Now the iPad is in testing or deployment in every single state in the US (for educational purposes), in most large Healthcare organizations and in 92% of Fortune 500 companies.
What does all this mean for Amazon? It essentially means the same thing that it means for all other tablet manufacturers: you will need to disrupt the industry in order to stand a chance of success. While most attempts by the Android tablet makers has been mediocre at best (just like the smart phone market), the Kindle Fire seems to be the first tablet I see that actually delivers value that Apple has not. One of these features is the new Amazon Silk browser.
The Amazon Silk browser is unique in that, unlike Safari, it can operate on the tablet and in Amazon's Cloud (EC2) at the same time. Amazon calls this split-architecture. While this may not seem like a big deal, it is pretty awesome in reality. What it does is analyze several aspects of how the user is trying to access the web such as the connection speed and type, what website the user is going to, whether or not there is video, etc. The Silk browser then dynamically decides which pieces to run on the tablet and which to offload to the Cloud for faster performance. For example, if the user is trying to access a video, the Silk browser can allow the EC2 Cloud to re-encode video and compress it before sending it to the tablet, all on-the-fly, without the user seeing a delay. As a matter of fact, the user will see a performance boost. This is a slick way to solve issues with slow connections or slow loading websites with a lot of content.
Another feature that the Amazon Fire will bring is the ability to store all of your Amazon purchased content in their cloud - for free. The Fire only has 8GB of storage space, so it stands to reason that you can't store tons of music and video on it. The Cloud, however, can store as much as you can purchase and throw in it and make it all available instantly to all devices that utilize Whispersync technology. By leveraging the Cloud for storage and throwing less hardware at the tablet, the cost is drastically reduced. The official price for the Fire will be only $199. Now that is an awesome piece of tech for a very reasonable price!
I'm sure that Amazon will continue to offer much more in terms of capabilities by leveraging the Cloud. One example that comes to mind is OnLive gaming. They are a company that uses the Cloud to run and render games and then only streams the video output to end users who can run the newest games on older more modest hardware. This is a perfect fit for a tablet like the Fire. Make some awesome games that offload all of the processing power to the Cloud and just use the Fire as a video output and control input device. There are many other areas Amazon could also leverage their back-end Cloud such as heavy number crunching applications, Finance applications, social media integration, etc.
What would seem a simple and obvious move (leveraging the Cloud to boost the capability of a tablet) could cause some serious disruption in the market as iCloud from Apple is really just a glorified syncing and storage platform. It does, technically, reside in the cloud, but it is not really leveraging Cloud technology to do something innovative like the Amazon Fire and Silk browser are. I'm looking forward to what Amazon will be releasing in the future with this platform and this Apple guy will definitely be getting a Fire to complement my iPad. I'm even more interested to start tying the Fire into existing businesses and helping them leverage the power of tablets and the Amazon Cloud to grow their business and shrink costs.
Learning from Netflix’s move to Cloud Computing
For those that follow the cloud computing world, you may have noticed a few articles a while back highlighting the decision by Netflix to move to Amazon Web Services. There wasn't much detail back then on what exactly was moving to Amazon's cloud suite nor was there much information on when and how the move was to be made. What was clear, however, was that it was a cost cutting move for Netflix versus building out new data centers to hold their infrastructure. Here is a little more information from a recent interview with Adrian Cockcroft, Netflix Cloud Architect.
According to Cockcroft, "Encoding movies for streaming, log analysis, production web site and API, most everything that scales with customers and streaming usage" is in the Amazon Cloud. Keep in mind the key phrase "most everything that scales with customers and streaming usage." It is evident that the elastic scalability of the cloud fits usage scenarios in which demand fluctuates. Being able to ramp up resources when needed and shut them off when they are no longer needed is of immense value in a utility computing context where billing is by usage. Compare this to the traditional model of building out data centers and trying to estimate the highest capacity needed so that you meet demand but do not over provision. The cloud just makes sense.
Beyond Amazon, even more cloud services are used for content delivery. "We use Akamai, Limelight and Level3 CDNs for streaming the movies, which is a cloud based service. There is an AWS CDN service, but they aren’t a big enough player in this space at this point" says Cockcroft. I suspect this will change over time as Amazon is able to achieve economies of scale on the CDN side. It would be great to add Amazon to the list of large CDNs out there, but it is still wise to spread the load over several CDNs for obvious reasons.
One area where Cockcroft made a huge (in my opinion) point is private cloud. Keep in mind that Oracle is a huge proponent of private cloud. Netflix was running Oracle on IBM and that is very expensive. Couple that with the recent mass exodus of Fortune 500s from Oracle and Sun products, and you have even more reason to get off of the Oracle platform. Not only did Amazon (AWS) look cheaper in comparison when considering hardware and software costs, but "AWS costs are fully burdened, and we could not have hired enough SAs and DBAs to build out our own datacenter this fast. We have added 4-5x as many systems in the cloud as the total we have in our datacenter over the last year" says Cockcroft. Furthermore, "costs are elastic, you start paying for a resource just before it goes live, and if you stop using a resource you stop paying for it. If you own a resource it sits around a long time waiting to be delivered and installed, and if you no longer want to use that type of resource you are still paying for it for three years. When Amazon cuts prices, your installed capacity gets cheaper. When they install new instance types you can be running on them in hours, technology refresh in real time."
The bottom line is that Cockcroft (and I agree) doesn't believe that "private clouds can compete with public on price, however if you have a bunch of empty datacenter space or want to re-organize your internal systems to be automated and API driven then there are real cost savings to building your own private cloud. I think VMware and Microsoft are going to own the private cloud space, but Amazon is going to continue to disrupt both of them at a lower price point for public cloud."
I believe the most important thing that popped up in the interview was the question of how cloud is going to displace enterprise IT as enterprise IT displaced the mainframe. I always look to Google when I discuss the ephemeral nature of hardware and services and how fault tolerance, redundancy, availability and load balancing must be handled higher up in the software architecture. To this, Cockcroft says "The key challenge is to get into the same mind-set as the Google’s of this world, the availability and robustness of your apps and services has to be designed into your software architecture, you have to assume that the hardware and underlying services are ephemeral, unreliable and may be broken or unavailable at any point, and that the other tenants in the multi-tenant public cloud will add random congestion and variance. In reality you always had this problem at scale, even with the most reliable hardware, so cloud ready architecture is about taking the patterns you have to use at large scale, and using them at a smaller scale to leverage the lowest cost infrastructure."
If you are in need of consulting in the Cloud Computing or Virtualization space, drop me a line via the Contact page and I'll be happy to assist. I regularly travel around the US, Canada, Mexico and Western Europe for Architecture and Deployment of Cloud Computing and Virtualization projects.
You can read more of the interview at the Cloud Scaling Blog.
Why becoming a cloud software developer can be a good idea.
Everyone knows that the longevity and ultimate success of a platform lies in the developers willing to create on that platform. Creating a healthy developer ecosystem in which both the developer and the platform vendor can grow and prosper is very important. No one knows this better than Microsoft. It has long been their mantra that "developers, developers, developers" are the key to success. With most of the new large scale websites and platforms being launched on open source platforms and now the cloud, this is becoming even more important.
If you just do some casual research, it is easy to see that the largest and most heavily trafficked sites on the web are written in languages such as PHP, Ruby on Rails or even Java, and these are all deployed on open source platforms. Which version of Unix or Linux they reside on isn't important. What is important is that developers are migrating in droves to these languages and frameworks, and new developers are learning these languages and frameworks instead of the typical Microsoft .NET stuff. So how does this relate to cloud computing?
Well, whether it was by virtue of luck or actual planning, most of the cloud computing vendors (if not all but Microsoft shops) chose to deploy their infrastructures on open source platforms. Google's App Engine, long the bastion of true could computing is mainly a Python development platform. The underpinnings are all open source, and Google does contribute significantly back to the cause. Amazon's Web Services are also built upon solid open source foundations, and the majority of platforms that can be deployed in EC2 instances are Linux distributions. These open source platforms were chosen when language/framework pairs were developed and launched, such as Ruby on Rails, Python on Django, and even Groovy on Grails. These frameworks have provided a solid base upon which to build cloud computing applications and services.
So why can it be a good idea to become a cloud software developer? I would say that there are several reasons to do so, not the least of which is marketability. The hype around cloud computing is at fever pitch, and there are many reasons for it. The root cause is the promise of increased efficiency at a lower price point. One often downplayed benefit that I feel is the most important benefit is flexibility. With cloud computing, the promise of true flexibility and scalability has finally been reached, and the multiple layers of abstraction from the hardware and operating system have granted developers the freedom to focus on their code, not the underlying stuff. By understanding the concepts of developing in the cloud, you have opened yourself up to a new market that is akin to a dam about to burst.
Businesses are moving to the cloud (whether private, public or hybrid) at a break-neck pace, and positioning yourself as a competent developer in this space can only pay off. It may even pay off huge. Just remember that tying yourself to a particular vendor or platform is not the best way to approach. You should focus on a language and framework that is common to most or all cloud infrastructures and leverage your knowledge of development as a whole to pitch your skills as wide as possible. Understanding the benefits and limitations of the cloud will allow you to avoid costly mistakes, and your superiors will see you as the 'go to person' for the next wave of IT.
