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.

Agile Cloud Computing?

Posted by Mark Little on Jun 25, 2008

Sections
Architecture & Design,
Enterprise Architecture,
Operations & Infrastructure
Topics
Cloud Computing ,
Fault Tolerance ,
Governance ,
SOA
Tags
Grid Computing
Last year we reported that Arjuna Technologies, the original home of transaction technologies from HP and now Red Hat/JBoss, were now working on fault-tolerant grid infrastructures. That article generated a lot of interest at the time, even though there was not a lot available for people to try. However, almost a year later Arjuna has just announced the release of something more concrete: The Arjuna Agility Federated Cloud Platform. There's the mandatory white paper and webinar (which is actually pretty good), but most of what's important about Agility is available to browse. Plus
[Agility] is a 'federated cloud computing platform' designed to improve business agility through a more flexible infrastructure approach. Federated, because Agility™ is constructed from IT resources that are assigned by autonomous, cooperating, business parties within and beyond the enterprise.
The description goes on to say that:
Whilst trust and power are real organizational barriers to resource sharing, Agility™ provides a controlled way for the enterprise to organically grow its 'internal cloud'. Resource owners retain control by attaching policy to the assigned resource which describes the conditions under which it can be shared by Agility™. Once assigned and subject to policy, Agility™ dynamically provisions the resource pool to meet the changing IT demands of the business.
As with some other Cloud-platforms, the services and tools needed to accomplish this provisioning can exit with existing infrastructural investments. However, ultimately Agility needs control over the whole Cloud if it is to deliver on the promised benefits:
Whilst Agility™ can be deployed onto existing infrastructure without compromising it, the power of Agility™ will be realized as IT resources are incrementally assigned under its control.
It would be good to compare and contrast this new platform with existing solutions, but it's obviously still early in its development. However, the updated white paper does give some clues:
Unlike other approaches, Agility does not force “big bang” changes onto the enterprise’s IT infrastructure and applications.
This initially seems at odds with the statements around needing full control, but there does seem to have been a lot of effort put into squaring that circle. In fact, according to the information available, Agility "does not require existing infrastructure to be restructured or changed in any way" and "does not require resources to be shared, except with the permission of the owner". It would seem that this non-invasive approach extends all the way to users, who do not even have to be aware of Agility when utilising services.

The platform appears to be based around an ESB, since there are a lot of references to it being "services-based with protocol gateways for a variety of access protocols". Although there are some of the usual suspects you would expect to see in a Cloud-platform, such as controlled sharing of services across administrative boundaries and dynamic provisioning of services, there are some potentially novel aspects that make this more interesting:
  • Services and resources are made available to Agility through the definition of policies, e.g., a policy that allows some of their resources to be made available to other users in particular circumstances, such as during critical times for the business when the rest of the infrastructure is overloaded. Unfortunately there's no obvious indication of how policies are defined within Agility, e.g., WS-Policy? In fact all relationships are represented as Service Agreements. Could this be a step towards embracing more SOA Governance approaches in Cloud computing in general?
  • Then they have a Virtual Deployment Description Language, which is a high-level language in which to describe services, along with the hardware and software resources they require, and the connections between them. Once again, this has parallels in some aspects of SOA Governance and service dependency graph work. But it appears to be a novel approach for Cloud-computing. If not then this may be a place where standardisation would help to reduce the vendor lock-in problem.
But given Arjuna's background, where does fault tolerance come in?
... dependability can be improved by supporting the dynamic redeployment of resources whenever failures are detected. After failure, as service requirements are decoupled from the IT infrastructure, Agility is able to identify alternative resources that could be used to satisfy the service requirements and then reconfigure the system to use those resources in order to ensure continued fulfillment of service requirements
There's no indication of whether Agility works with existing failure suspector mechanisms or uses its own. Without a more detailed architectural description it's not possible to say either way. But one things does seem certain: it looks like this time round transactions are not in the picture (unless they are a hidden part of the infrastructure.)
  • This article is part of a featured topic series on SOA

No comments

Watch Thread Reply

Educational Content

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.

Beauty Is in the Eye of the Beholder

Alex Papadimoulis discusses ugly code, where it comes from, how to avoid it, and how to get rid of it.