« July 2007 | Main | September 2007 »

August 2007

August 23, 2007

Scaling Stateful Applications on Amazon EC2

A lot of people have been writing about how cool the Amazon EC2 service is -- and it is. On his blog, Mike Nicholls does a particularly good job of explaining the advantages EC2 gives to start-ups and entrepreneurs in cost-effectively and easily scaling their business.

I agree with every word Mike says, but there are is a major issue he does not address. It is that even if you have a cost-effectively scalable infrastructure, the fact remains that you need to build your app in a way that it can easily scale-out across many machines -- and grow (preferably linearly), as needed. This is a particularly big challenge when you are trying to build stateful, low-latency or data-intensive applications (or a combination thereof).

For those who have been following this blog, or GigaSpaces in general, you know that it is exactly that challenge we are addressing with Space-Based Architecture and the GigaSpaces eXtreme Application Platform.

Now, we are marrying the two together -- the scalable cost-effective infrastructure of Amazon EC2 with the linear scalability of Space-Based Architecture, including for stateful, high-performance apps. You can utilize the full benefits of SBA, or just the In-Memory Data Grid.

Dekel Tankel and Alon Lahav in my team at GigaSpaces have been doing a great job on this and just today made available a public AMI (Amazon Machine Image) for the GigaSpaces XAP platform. We're still working on improvements and optimizations, but it is ready for people to start playing around with.

  • You can find the GigaSpaces AMI here.
  • General description in the Amazon Web Services Solution Catalog here.
  • Detailed paper with set up instructions and code examples here (PDF).

We're already working with a couple of beta customers on EC2, including some folks who are building a Web 2.0 social networking type site.

And as Luke Flemmer at Lab49 points out, it's a great environment for testing distributed apps.

So please try it out and let me know what you think (and remember it's kinda beta-ish).

BTW, Jason Carreira and others asked for this on this TheServerSide thread. Well, folks, here it is, as Nati promised...

August 21, 2007

Julian Browne on Space-Based Architecture

Great series of posts by Julian Browne on why and how they used Space-Based Architecture and GigaSpaces on Virgin Mobile's award-winning web site.

And Nati's reaction.

August 03, 2007

Ignorance Is Bliss: Abstractions Vs. Standards

Debbie Moynihan of IONA writes the following in regards to a presentation she heard by Rod Johnson of Interface21 (and creator of the Spring Framework):

Rod promoted the notion that Ignorance is Good. “Your code won’t be broken by things it doesn’t know about and doesn’t need to know about.” I would add that the less you need to know about as a developer, the easier your job will be. For example, Spring provides many patterns and recipes that you can use so you don’t have to work through all of the details every time, like the JDBC template which makes it easy to access a database using Spring and the JMS template which makes it easy to utilize Java messaging with Spring. Many services are provided out of the box, for example there is a transaction management service. For developers in larger organizations, there are also many pre-built integrations with other ISVs, and open source projects, for example ServiceMix, Oracle Fusion Middleware, Tapestry, and GigaSpaces. Spring is completely portable, and even runs on .net.

The old way of doing things was to create a standard (e.g., J2EE). Vendors implement the standard, developers learn the standard programming model -- everybody's happy, right? Wrong.

The result: every vendor develops a slightly different flavor of the standard and enhances it in order ot have unique capabilities. the result is that in order to benefit from a vendor's unique product capabilities, you have to depart from the standard. And in any case, developers have to deal with the complexities of the infrastructure.

The new way of doing things is abstraction. That's what we adopted in 6.0, which just went GA. Shield the developers from the underlying middleware/infrastructure implementation, and let them add value with unique business logic and data models.

Once the middleware and the business logic and the data are decoupled, your life becomes easier throughout the application lifecycle: design, development, testing, production, management and monitoring.

Download GigaSpaces 6.0.

Update: See Nati Shalom's post: Avoiding vendor lock-in in a non-standard environment

Grid in Financial Services

Earlier this week, GridToday published an excellent piece by Marc Jacobs of Lab49 (a GigaSpaces partner) entitled Grid in Financial Services: Past, Present and Future. What an eloquent, well-written piece.

Each trading day is a perfect storm. Every month, every quarter, the volume of data increases, the sophistication of algorithms and business processes grows, and the competitive pressure to get things done as quickly and efficiently as possible mounts.

Marc reviews the state of the union on distributed computing in financial markets Including the motivation (we can no longer throw expensive hardware at the problem, we need a new approach) and the current state of affairs (distributed computing is real not academic, with commercial vendors and real implementations).

Our appetite for computing power isn’t satisfied with lone, uncoordinated machines. For financial services, distributed computing isn’t a luxury: it puts food on the table.

One of the challenges Marc observes is the fact that until recently (and still going on in some places) developers have been dealing with a lot of the "plumbing" issues of distributed computing and have been doing so in an inconsistent way. Part of the solution he sees is a new generation of vendors and products that address this:

The range of stable, usable distributed computing platforms -- such as those from Platform Computing, GigaSpaces and Digipede Technologies... Thus, it is becoming much rarer to find software development teams in financial services working on this type of plumbing.

However, one of the obstacles that Marc points out is the fact that various vendors are only dealing with one aspect of the issue or another, and rarely take and end-to-end approach. He has this to say, which is especially nice for GigaSpaces (my emphasis):

For example, while it is positive that there is a wave of vendor products that solve different parts of the distributed computing puzzle, few of them treat distributed application development as a holistic endeavor that encompasses many problems (i.e., job scheduling, event processing, data distribution and caching, security, deployment, APIs, IDEs, etc.) at once. Except for GigaSpaces, most distributed computing architectures require the assembly of infrastructure from several different vendors. While this does permit architectures built from best-of-breed solutions, it can be challenging to stitch the various pieces together into a coherent developer framework.

There are many other interesting topics, such as the need for both IT management of distributed systems as well as developer-friendliness. Again, he had something nice to say about GigaSpaces (and our friedns at Digipede):

Unfortunately, few vendors have been able to make progress on both fronts. Some products, such as Digipede and GigaSpaces, are clearly more developer-friendly than others.

Highly recommended read. BTW, Marc has a great blog, which I read regularly: Serial to Parallel to Distributed.

As an aside, the Lab49 guys are a very sharp, well-spoken, experienced group that's worth paying attention to (see their group blog). I recently had the pleasure of doing a web seminar with Daniel Chait (founder and managing director of Lab49) for CMP. You can see it here.

Update: Here's Tom Groenfeldt's take on Marc's piece.

GigaSpaces 6.0 in GA

GigaSpaces Extreme Application Platform (XAP) version 6.0 is now officially in GA.

See my post on the GigaSpaces Blog.
Read what Guy Nirpaz, GigaSpaces EVP R&D, has to say.
Download it here.