For the past few days I've been trying to write a 2007 summary, but I found this task to be extremely difficult because so many things happened this year on so many fronts. I thought that it would probably be best if I'll start by thanking all of our customers who chose GigaSpaces. Special thanks to those who were kind enough to be public about their choice as you can see here ,here and here
This year we saw that many customers found that GigaSpaces and caching solutions are almost incomparable due to the tremendous progress we have made with our 6.0 release (More details provided below). This led to an interesting trend: Customers who already worked with one of the alternative caching products decided to add GigaSpaces to their environment in conjunction with those caching products. In this context GigaSpaces acts as a high-performance SOA platform through the use of our SLA-Driven Container, as well as the messaging bus and Spring components. In fact, in Q4 we closed a very large enterprise deal with one of the leading investment banks for exactly this reason.
I expect that during 2008 we'll see more of this as we plan to provide official support for these sorts of mixed environments. If you think about it, it makes prefect sense. In the JEE world this is a fairly common scenario. For example, it's common to have WebLogic as the application platform in conjunction with other components, such as databases or messaging middleware from other providers, even though WebLogic offers these components. I call that a middleware mash-up:)
Another interesting trend that we've seen is a new class of customers using GigaSpaces:
- Customers from other industries, such as Web 2.0 and online gaming (as you can imagine, there is similarity between the two)
- Customers who chose GigaSpaces mainly to improve the reliability and responsiveness of their online services. This included online banking applications as well as an order management system for the launch of a cool phone in Europe (I apologize that at this point I can't give more details).
We've also seen increasingly more customers who chose Spring+Hibernate as their middleware stack and wanted to maintain the high availability, scalability and performance of their Spring application without the complexity of J2EE. Rod Johnson of SpringSource gives a nice explanation of this in this presentation, which is available online here (See slide 33), and in this blog post:
Is it a Tomcat, or the Elephant in the Room?
"...An interesting force is that the highest performing grid/clustering solutions are not the app servers themselves, but specialist solutions such as GigaSpaces, Oracle Coherence and IBM ObjectGrid. There is no reason that HA features need to be associated with Java EE servers."
From a product perspective, we had ambitious goals to enable the scaling-out of stateful applications (the entire application, not just the data) in a way that will be as simple as running it on single machine. The other challenge was to enable the transition of EXISTING tier-based applications to the scale-out model in a *seamless* manner, just by plugging-in our runtime implementation.
We managed to achieve these goals by working on several fronts:
- Develop a blueprint based on best practices to achieve scaling, latency, performance and reliability in a scale-out model. We refer to this blueprint as Space Based Architecture (SBA).
- Extend our product to support SBA by adding built-in components, such as the processing-unit, and event containers.
- Provide an end to end approach for virtualization of the application in a scale-out model through:
- Middleware virtualization - (Data, Messaging, Services)
- Deployment virtualization - through our SLA driven container
- Provide seamless transition from the tier-based model to a scale-out model through API facades and declarative abstractions.
To validate our assumptions, we took a classic transactional application based on the tier-based model and compared it with SBA in terms of complexity, performance and latency . We applied the SAME CODE to both tests (the only change was within the DAO). The results of the test showed, beyond any reasonable doubt, that Space-Based Architecture can drive applications to linearly scalable performance and flat latency during scaling events. You can view the results of this test in the following presentation Scale Out Your Spring Applications in 3 Simple Steps. More details can be found here.
On the data virtualization front, we introduced capabilities such as PaaS - Persistency as a Service and .Net support that addresses both performance and the completeness of our Java-based feature set, including support for SBA (not just caching), and pure .Net components, such as SessionState. We already customers who have been in production for some time with a pure .Net system, built entirely on top of GigaSpaces.
Later in the year we introduced our partnership with Microsoft and our strategic integration effort with Excel. You can find more details on this exciting solution in this white paper. I also gave an online demonstration of it in the latest Grid Association event available online here.
We have also made significant progress with our C++ version, and have prospects running with our private beta of our new C++ support. The new C++ release is going to revolutionize the simplicity in which C++ applications can be written in a distributed environment. Public beta will be available until end of January .
What's interesting is that we were able to maintain native API support in each language and complete interoperability among Java,.Net and C++ using what we refer to as Portable Binary Serialization format (PBS). This enables interoperability without compromising on performance! We are even able to run C++ services as part of our SLA driven container, which means that you can deploy C++ services just by pointing your service to the dll or shared library. This means that the C++ service can also run embedded within our OpenSpaces Processing Unit.
We made a huge effort in ensuring all these new capabilities are simple to use. Our choice of Spring for our new development framework - OpenSpaces - paid a lot of dividends, as it enabled us to simplify not just how you wire the caching component to your application, but also how you develop, test and scale your entire application in a "cloud" environment. To Spring users, OpenSpaces will fell like a native extension of their existing development framework, where complex things such as transaction handling, partitioning, scaling, fail-over and deployment are abstracted from their development code. Here's an example of feedback we received from one new user who tried our platform, Srini Penchikala:
I have been trying GigaSpaces on my local computer to learn more about
the framework. It's a great implementation that supports simple design and
a scalable and performant solution. Integration with Spring framework makes
GigaSpaces even more powerful.You and your team have created a great product.
Another effort that helped us achieve simplicity is our award-wining documentation wiki and its Quick Start Guide and webcasts, which provide a walkthrough for writing your first scalable application.
In 2007 we also launched several major community and open source initiatives. One such initiative was our open source development framework, OpenSpaces. Another one was the Start-Up Program (which complements our existing free community edition). We also announced our killer application contest, in which users can put their skills in distributed programing and scaling to the test and win a $10k grand prize. Some of the interesting submissions that have already been made include applications that will scale on Amazon EC2, scaling the Lucene search engine, scaling gaming applications, integrating OpenSpaces with PHP and other cool ideas. We're going to continue down this path during 2008, and open up more aspects of GigaSpaces, such as our Product Management processes. See below what one of our users had to say on our forum:
All I want to say is that the forum is awesome....so quick response. Thank you all involved with GigaSpaces for providing such nice support
We will also be officially announcing our new developer community portal, OpenSpaces.Org, by the end of January. It is a collaboration platform for users in the GigaSpaces community by sharing code, suggesting and contributing extensions, as well as providing tools and examples.
Now if this wasn't enough innovation wait until you see what we have planned for cloud computing:) We started an effort to enable GigaSpaces deployment on the Amazon Elastic Compute Cloud (EC2). We're about to release our second update of this and the plan is to have it fully integrated with our product release in 2008.
When I look back I'm quite proud of how a company our size is able to get all of this done. Indeed, we wouldn't have been able to achieve all of this if it weren't for the tremendous effort of our R&D team. It started with some new strategic hires and continued with a major investment in making our development process extremely efficient by applying new agile development methodologies such as Scrum (see this from Guy Nirpaz, EVP of R&D, here).
We also made a substantial investment in automating our testing process by developing a distributed testing framework we call Tigris. This framework enables us to run tests on multiple platforms (Windows, Linux, Solaris), Java (1.4, 1.5, 1.6, Sun, JRockit, IBM), .Net, c++ (Windows 32/64, Linux 32/64) with different cluster sizes and topologies -- all fully automated. It has become so successful that we're actually being pressured by our customers to provide them with our testing framework and consult them on our methodologies.
2008 looks very promising. I see great opportunity for GigaSpaces to become the de-facto scale-out platform. I expect to see continued adoption from the in the Spring community seeking a solution for scalability and high-availability, without the complexity of J2EE. I also expect to see greater adoption in the Web 2.0 market, as we're adding support for dynamic languages, as well as integration with web frameworks. As I mentioned, we're going to continue our effort to support Amazon EC2 as part of our platform to enable a simple evaluation of our product, run distributed testing and run a full-blown on-demand production environment. I expect that the significant progress on the .Net and C++ fronts with our next release will enable us to further penetrate those areas as well.
I'm very excited by all this progress and working closely with customers who are building their mission critical applications on top of GigaSpaces. What's nice about it is that our customers never cease to amaze me with their appetite for achieving even more. They are moving so fast in building large clusters that one of our next goals is to allow simple, out-of-the-box large cluster deployment and massive object sizes. With all this excitement, I decided that this year I am finally going to spend some time and write a book...
Happy New Year!