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.
The content has been bookmarked!
There was an error bookmarking this content! Please retry.
Posted by Boris Lublinsky on Jul 21, 2010
In their SOA World article, "Cloud Application Migration", Chetan Kothari and Ashok Kumar discuss the challenges that many organizations are facing when trying to move to the cloud:
Is "cloud computing" the logical next step for me to successfully execute business strategy? If so, what should be my cloud strategy? Which applications are best suited to run on cloud? These are the questions we will discuss, attempt to answer, and where required, make suitable recommendations.
The authors of the article see many challenges migrating applications to the cloud, from "security, to SLA management, to regulations, to fear of vendor lock-in, to lack of any standards." In spite of that, they consider one should take advantage of the cloud when there is good opportunity without, necessarily trying to move everything to the cloud.
The authors encourage the transition to the cloud, noticing several benefits:
Migrating applications to the cloud to benefit from its elastic infrastructure services is a quick, cost-effective, and tactical approach to reap the benefits of the cloud. It offers a natural entry point to exploit the value of the cloud platform without any significant overhead costs. The migration will be straightforward, usually a simple re-hosting exercise, with minimal or no impact on application code. This minimizes any risks with migration while still keeping the costs low. However, it must be said that while this offers a cost-effective approach, it does not offer the cost advantage (while delivering services) against competitors who have true multi-tenant capabilities.
Their opinion is shared by ZapThink’s Jason Blumberg who considers that such a transition needs a Cloud Architecture:
The missing link between the business benefits that Cloud Computing promises and the products on the market, of course, is architecture... From the enterprise perspective... leveraging Clouds as part of the broader enterprise IT context is at the core of getting value from them. What is a best practice-based approach to leveraging Cloud-based resources in the context of the existing IT environment to address changing business needs? The answer to that question is the Cloud Architecture that is the missing link for organizations struggling to piece together a vendor-neutral Cloud strategy.
Kothari and Kumar consider materializing such an architecture a "daunting task":
Migrating applications to SaaS architecture and hosting it on a shared services model gives true multi-tenant cost advantage to an enterprise. It helps rationalize a portfolio by removing redundant applications offerings similar services across geographies or lines of business in favor of a single multi-tenant application shared across all its users. However, enabling SaaS architecture on an existing application could be a daunting task ...
The necessity of rearchitecting applications to be moved to a cloud is reemphasized by Janakiram MSV in his interview with indicthreads.com
The first step towards the Cloud is to start refactoring your applications for the loosely coupled architecture. There should not be any affinity between the web tier, application tier and the database tier. One of the key tenets of the Cloud is Elasticity, which is the ability to scale out and scale down on demand. You never know which tier of your applications demands to be scaled out. In one scenario, you may have to scale out the web tier to meet the ongoing traffic demand. If you see that the middle tier is becoming the bottleneck, you may have to add more no. of application servers and same is the case with the data tier. Given this dynamic, on-demand nature of the Cloud, your applications should be designed to seamlessly work in a single server scenario to a clustered environment.
Both Blumberg and MSV emphasize that moving to the cloud typically means that SOA and data persistence are the key elements for the cloud migration:
Respecting the SOA principles is a great step in your journey to the Cloud. The other key thing is the way data is persisted on the Cloud. There are new models like BLOBs, Queues and flexible entities...
Although everyone talks about moving to the cloud, a question rarely is brought up on which specific cloud type is more appropriate for a given company. Also, it is also not immediately clear what kind of application rearchitecting is required for a successful cloud computing implementation.
The first step in this process is to let the services drive the persistence layer (top-down design approach). I see majority of corporate IT still stuck in the one big enterprise database model.
Most important step to effectively architecting for the cloud may be to "Unlearn"!
Here are some pointers - setandbma.wordpress.com/2010/03/10/architectura...
Agree. SOA is good stepping stone as it breaks the direct reliance on a relational model.
SQL storage is a scalability bottleneck however it will be a challenge to move the masses from a transactional/relational mindset to cloud storage (blobs, queues & tablular storage + traditional SQL).
I would have liked to see XQuery as standard data access model for the cloud but sadly that is nowhere to be seen. The next best thing may be oData (for tabular storage).
Original post said:
"Also, it is also not immediately clear what kind of application rearchitecting is required for a successful cloud computing implementation."
I think an answer in part is where Janakiram MSV mentioned the need for a more "loosely coupled architecture. "
For me, so far it seems that splitting up tasks computationally is not the challenging part though, effectively handling large sets of data is the tricky part....
John Hugg discusses high volume transaction processing applications with high and low frequency profiles, and how VoltDB can be used for that purpose.
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.
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.
Michael Snoyman presents Yesod, a web framework written in Haskell and containing a web server, templating, ORM, libraries (templating, gravatar, etc.).
Richard Kreuter and Kyle Banker on how to avoid classical RDBMS transactional systems by using compensation mechanisms, transactional messaging or transactional procedures.
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.
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.
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.
4 comments
Watch Thread Reply