InfoQ

InfoQ

News

My Bookmarks

Login or Register to enable bookmarks for unlimited time.

The content has been bookmarked!

There was an error bookmarking this content! Please retry.

Cloud Architectures Are Not Fully Thought Out Yet

Posted by Abel Avram on Feb 18, 2009

Sections
Architecture & Design,
Operations & Infrastructure
Topics
Cloud Computing ,
Architecture
Tags
EC2 ,
Amazon ,
Patterns ,
Amazon Web Services

While there are many mature software patterns for applications, not the same can be said about clouds. Each vendor employs their own solution, which is most probably subject to change and improvement. The technology is not mature enough for a clear set of patterns to emerge yet, but the first working examples are out there.

Amazon suggests using their cloud for the following tasks:

Processing Pipelines

  • Document processing pipelines – convert hundreds of thousands of documents from Microsoft Word to PDF, OCR millions of pages/images into raw searchable text
  • Image processing pipelines – create thumbnails or low resolution variants of an image, resize millions of images
  • Video transcoding pipelines – transcode AVI to MPEG movies
  • Indexing – create an index of web crawl data
  • Data mining – perform search over millions of records

Batch Processing Systems

  • Back-office applications (in financial, insurance or retail sectors)
  • Log analysis – analyze and generate daily/weekly reports
  • Nightly builds – perform nightly automated builds of source code repository every night in parallel
  • Automated Unit Testing and Deployment Testing – Test and deploy and perform automated unit testing (functional, load, quality) on different deployment configurations every night

Websites

  • Websites that “sleep” at night and auto-scale during the day
  • Instant Websites – websites for conferences or events (Super Bowl, sports tournaments)
  • Promotion websites
  • Seasonal websites - websites that only run during the tax season or the holiday season (“Black Friday” or Christmas)

An example of a cloud architecture is Amazon’s GrepTheWeb:

grep

After zooming in, the architecture looks like this:

grep1

Jinesh Varia, a Web Services Evangelist at Amazon, explained GrepTheWeb in detail through a presentation published by InfoQ.

Todd Hoff compiled a list of basic components employed by SmugMug in their cloud architecture, which is also built on Amazon EC2:

  • Work Initiators - Work comes in from your website and/or other software subsystems and is queued up for processing in the Queue Service. Work doesn't have to be large requests either. Work can be small independent parts of an overall pipeline. Don't keep state in the Workers. Bundle what you need done into a work request in shoot back into the Queuing Service for processing.
  • Provisioning Service - This is Amazon's infrastructure that allows instances to be automatically scaled up and down in relation to the work load. This will be the major difference between your VPS or typical datacenter setup. There's an API for starting and stopping AMIs and mechanisms for automatically configuring and running VMs.
  • Workers - These are the guys that continually pull work off queues and do something interesting with it. For SmugMug the results are stored on S3 but the results could be put in your own database, SimpleDB or whatever.
  • Queuing Service - This is where work is queued for consumption by the workers. SmugMug built their own queuing service, but you could just as easily use Amazon's own SQS. Creating a scalable, distributed, performant, highly available queue service is not easy, so you may want to take a look at a number of different queue product suggestions in Flickr - Do the Essential Work Up-front and Queue the Rest.
  • Controller - This component monitors many variables related to the work flow and decides how many instances of EC2 are necessary based on optimizing a small set of goals. Instances are add and removed as needed.

Each vendor has their own solution and different ones are expected to emerge in the future. The clouds have not been fully explored and slowly, but steadily, their architectural solutions are being elaborated. 

Not Entirely In Agreement by Dan Creswell Posted
Related by Dan Creswell Posted
  1. Back to top

    Not Entirely In Agreement

    by Dan Creswell

    I'd agree that there are plenty of patterns still to come but a number of relevant patterns have been developed previously atop conventional message queuing systems and in Jini/JavaSpaces systems for example.

  2. Back to top

    Related

    by Dan Creswell

Educational Content

New-age Transactional Systems - Not Your Grandpa's OLTP

John Hugg discusses high volume transaction processing applications with high and low frequency profiles, and how VoltDB can be used for that purpose.

Cool Code

Kevlin Henney examines code samples to see what can be learned from them starting from the premise that one won’t write great code unless he knows how to read it.

Collaboration: At the Extremities of Extreme

Jason Ayers share the observations he made watching a team of developers collaborating in real time on the same code base, pushing XP, pair programming and continuous integration to their extremes.

Yesod Web Framework

Michael Snoyman presents Yesod, a web framework written in Haskell and containing a web server, templating, ORM, libraries (templating, gravatar, etc.).

Transactions without Transactions

Richard Kreuter and Kyle Banker on how to avoid classical RDBMS transactional systems by using compensation mechanisms, transactional messaging or transactional procedures.

Attila Szegedi on JVM and GC Performance Tuning at Twitter

Attila Szegedi talks about performance tuning Java and Scala programs at Twitter: how to approach GC problems, the importance of asynchronous I/O, when to use MySQL/Cassandra/Redis, and much more.

10 tips on how to prevent business value risk

One category of risk that project teams need to ensure they address is business value failure – delivering a product that fails to provide value for the business investor.

Interview: Software Systems Architecture: Working With Stakeholders Using Viewpoints and Perspectives

InfoQ spoke to the authors of Software Systems Architecture on a couple of new topics, the System Context viewpoint and Agile, which have been added to the second edition.