From The Founder and Senior Analyst of ZapThink

Ron Schmelzer

Subscribe to Ron Schmelzer: eMailAlertsEmail Alerts
Get Ron Schmelzer: homepageHomepage mobileMobile rssRSS facebookFacebook twitterTwitter linkedinLinkedIn


Related Topics: Cloud Computing

Cloud Computing: Article

Jetty and the Cost-Effective Cloud

With the Cloud model of computing, the cost of ownership is dramatically less than in the traditional model

Jan Bartel's Blog

Cloud computing refers to the ability to deploy your application on infrastructure that you do not necessarily own nor manage yourself and that can be easily scaled up to handle demand and provide resiliency to failure. The hardware infrastructure can be composed of clusters of many cheap machines or it may be high-end hardware which is virtualized into many nodes. In either scenario, the cost of ownership is dramatically less than in the traditional model.

Additionally, your application executes in an environment where the services it consumes can be transparently provided for you and scale along with the application. Think services like databases, messaging and servlet session clustering for example.

Software as a service is an increasingly popular paradigm for webapps so let's look at how Jetty is used in the cloud and some of the types of technologies involved.

Cloud Platform: Morph

Lets look briefly at a cloud platform solution for scalable webapps. Morph allows you to upload your war file and have it automatically deployed to as many virtual nodes as you need. Morph handles the load balancing for you and allows you to add or subtract virtual servers elastically as your load dictates. Moreover, your webapp immediately has access to some of the most commonly-needed resources like relational databases, mail servers and soon also a JMS service! These services are provisioned, configured, backed-up and monitored by Morph 24x7. Better still, Morph ensures high-availability of your webapp by configuring a fail-over pair as a matter of course. And at the heart of this great service, what do we find? Yes, that's right - Jetty! Jetty is the servlet container into which webapps are deployed and has been especially configured for a cloud-hosted environment.

Cloud Technology: Terracotta

Terracotta provides a shared memory model. It is mostly unobtrusive in code, generally just requiring good synchronization boundaries around the objects to be shared to enable it to efficiently disseminate updates amongst nodes. You can use Terracotta to implement cloud-type facilities for your webapp when running in Jetty. In fact, Jetty can already make use of Terracotta as its distributed sessions mechanism. We've recently been collaborating with the Terracotta guys to really hone the performance of the Jetty/Terracotta session clustering and we're getting some very pleasing results, which will be the subject of another blog.

Cloud Infrastructure: Hadoop

Hadoop is an open-source implementation of the MapReduce algorithm for breaking computational problems into smaller blocks that can be distributed over a cluster so that they may execute in parallel. Hadoop uses Jetty in two ways: to help distribute the jobs amongst the nodes, and also to monitor and report job execution status. FYI, Hadoop recently broke the terabyte sorting record - well done guys!

Cloud Infrastructure: GigaSpaces

GigaSpaces provides a space-based infrastructure to scale-out applications. The space's job is to ensure that data can be made available in the most efficient way possible to whichever node requires it. There are different options for configuring the space including partitioning based on characteristics of the data, or data persistence via an RDBMS. A number of different API facades onto the space (JMS, JDBC, Map and Space) are provided, so you can pick the semantic appropriate to your application. Jetty itself uses the Space API in the implementation of the Jetty/GigaSpaces clustered sessions module.

However, the space can be used for more than just distributing data, and can also be used to scale applications themselves, more akin to grid computing. In this scenario, nodes in the space (or grid) called processing units execute application logic and can be added on demand to handle load. Webtide has been collaborating with the Gigaspaces guys and we've put a Jetty instance into each and every processing unit. This means that a webapp can be instantly scaled simply by deploying it to more processing units in the grid.

More Stories By Jan Bartel

Jan Bartel is the Chief Engineer and one of the co-founders of Webtide, and Mort Bay Consulting. She has extensive industry experience as a team leader and consultant, working with Java, J2EE, and other key related technologies. She is a contributor and committer to a number of open source projects in addition to Jetty, of which she is one of the project leaders. During her 20-year career, she has delivered both client-side and server-side applications in industry sectors as diverse as online services, telecommunications, and banking and finance.

Comments (0)

Share your thoughts on this story.

Add your comment
You must be signed in to add a comment. Sign-in | Register

In accordance with our Comment Policy, we encourage comments that are on topic, relevant and to-the-point. We will remove comments that include profanity, personal attacks, racial slurs, threats of violence, or other inappropriate material that violates our Terms and Conditions, and will block users who make repeated violations. We ask all readers to expect diversity of opinion and to treat one another with dignity and respect.