Amazon gives start ups the scale of multi billion dollar IT systems - Virtualization for 10 cents
Filed in archive Technology by tj on February 03, 2008
Amazons services that remain far less adopted as they should allow startups to work and scale as before only IT behemoths could. Reading through and testing these solutions it dawned on me how different the internet (and business plans) would have looked like in 1999 if Amazon services would have been around. Back in 1998 I even started my own data center in the office and found that seriously cool :(
Amazon has something for any developer concerned about scaling:
- Amazon S3 gives you fast and virtually indestructible and indefinitely scalable storage for pretty much any use you can imagine. Also you only pay for the usage - so once you are connected there is no additional cost (given that your business model can pay these incremental costs). Amazon's costs are fair - not really cheap but as they take all teh hassle out very fair.
- Amazon EC2 gives you Linux machine that you pay by processor hour used - how cool is that? While it needs a bit more knowledge than fining the 'Power On' button it is sooo much easier than running a data center (I did that see above :(
- Amazon Simple DB allows you to use Amazon super scalable and simple database. You thought Mysql was simple but when it get used a lot it gets very quickly clogged up. Simple Db takes away that issue.
- Amazon Simple Massaging System that helps you to send messages from computer to computer safe and secure
What I find so amazing (hehe we are talking about Amazon here) is that their API's are great and simple. The payment model is simple. It all makes perfect sense.
However few developers have either heard about it or trust it. The success story page seems rather short filled with many less well known companies. So why are so few startups using it?
Building a big content delivery game (i.e. video. audio) needs no hardware cost or worry anymore. If you build a search engine, just build that software.
So VCs of this world if a company that pitches you still has exponential server costs and hardware management costs in it's business plan - send them a link to AWS :)
Also I could not withstand to highlight the Amazon Storage System design requirements and design principles. Remember all the brain power that went into this you can use starting at 10 cents.
Amazon S3 was built to fulfill the following design requirements:
* Scalable: Amazon S3 can scale in terms of storage, request rate, and users to support an unlimited number of web-scale applications. It uses scale as an advantage: Adding nodes to the system increases, not decreases, its availability, speed, throughput, capacity, and robustness.
* Reliable: Store data durably, with 99.99% availability. There can be no single points of failure. All failures must be tolerated or repaired by the system without any downtime.
* Fast: Amazon S3 must be fast enough to support high-performance applications. Server-side latency must be insignificant relative to Internet latency. Any performance bottlenecks can be fixed by simply adding nodes to the system.
* Inexpensive: Amazon S3 is built from inexpensive commodity hardware components. As a result, frequent node failure is the norm and must not affect the overall system. It must be hardware-agnostic, so that savings can be captured as Amazon continues to drive down infrastructure costs.
* Simple: Building highly scalable, reliable, fast, and inexpensive storage is difficult. Doing so in a way that makes it easy to use for any application anywhere is more difficult. Amazon S3 must do both.
A forcing-function for the design was that a single Amazon S3 distributed system must support the needs of both internal Amazon applications and external developers of any application. This means that it must be fast and reliable enough to run Amazon.com's websites, while flexible enough that any developer can use it for any data storage need.
Amazon S3 Design Principles
The following principles of distributed system design were used to meet Amazon S3 requirements:
* Decentralization: Use fully decentralized techniques to remove scaling bottlenecks and single points of failure.
* Asynchrony: The system makes progress under all circumstances.
* Autonomy: The system is designed such that individual components can make decisions based on local information.
* Local responsibility: Each individual component is responsible for achieving its consistency; this is never the burden of its peers.
* Controlled concurrency: Operations are designed such that no or limited concurrency control is required.
* Failure tolerant: The system considers the failure of components to be a normal mode of operation, and continues operation with no or minimal interruption.
* Controlled parallelism: Abstractions used in the system are of such granularity that parallelism can be used to improve performance and robustness of recovery or the introduction of new nodes.
* Decompose into small well-understood building blocks: Do not try to provide a single service that does everything for everyone, but instead build small components that can be used as building blocks for other services.
* Symmetry: Nodes in the system are identical in terms of functionality, and require no or minimal node-specific configuration to function.
* Simplicity: The system should be made as simple as possible (but no simpler).
And as a last question to my dear readers - If Google is as 'no evil' and 'open' as they made many people think - why did they never open up their platform to spurn innovation in this world?
Permalink: Amazon gives start ups the scale of multi billion dollar IT systems - Virtualization for 10 cents
Tags:
amazon web services ec2 s3 google testimonial virtualization
Trackback: http://www.creative-weblogging.com/cgi-bin/mt-tb.pl/112677




























