Challenges faced by developers and architects when moving to the cloud

149 views
Skip to first unread message

David Booth

unread,
Apr 10, 2009, 8:58:31 AM4/10/09
to cloud-c...@googlegroups.com
Hi guys,

I'm rather new here, so I apologize if this question has already been asked:  
What are the top 10 things that make it hard for developers and architects to move their Java apps to the cloud?

I've read quite a few posts about the top reasons why CXOs have issues with moving to the cloud (security, potential for downtime, potential for data loss, etc) but I'm quite curious about the challenges beyond that.  Say Mr. CXO decides to test out this fancy-pants cloud thing, and turns to his team to make it happen -- What are the top 10 challenges faced by the people who are going to actually do the moving (developers, architects, etc)?

Kind Regards,

David

~~
David Booth
Founder, Principal
www.GravityGears.com
http://twitter.com/DaveBooth
www.linkedin.com/in/davidgbooth
Skype: DavidGBooth

KentLangley

unread,
Apr 11, 2009, 1:10:41 PM4/11/09
to Cloud Computing
Here are a few I can think of off the top..

Dealing with a lack of persistence in some cases
Dealing with distributed programming models (prob. one of the most
important ones imho)
Having to think about the whole stack. Not just the code.
Caching considerations
Messaging
Using Memory Data Grids
Understanding configuration management tools that might be involved
Working more closely with the operations group in some cases

Also, while probably tangential to your actual question, here are a
couple of related blog posts I did that lead to other things on this
topic..
http://www.productionscale.com/home/2009/3/9/article-building-cloud-ready-multicore-friendly-applications.html
http://www.productionscale.com/home/2008/10/24/things-to-consider-when-planning-your-application-system-and.html

Kent Langley
www.productionscale.com (blog)
www.nscaled.com (company)

Jeanne Morain

unread,
Apr 11, 2009, 2:47:14 PM4/11/09
to cloud-c...@googlegroups.com

To add to the list: Note this depends on the type of cloud - External/Private (sounds like what you are asking for), Web 2.0 Apps or Virtual/Dynamic desktops hosted in the datacenter.  There are many more but these are just a few from the top of my head as well.

Impact on compliance and process controls in place (SAS70 for outsourced clouds and COBIT for internal audit

Either
- Educating auditors on virtualization and other technologies used to provide capacity on demand (physical or virtual) - updating COBIT processes on new technologies,
- Tracking patching and controls associated with the entire stack (VM, Host OS, and associated hosts that VMs may be moved to)
- Drift tracking
- Ensuring hardening guidelines for specific regulations are met like PCI, HIPAA, SOX
- Locking down access to the ESX hosts that house protected applications
- VMsprawl - knowing which VMs are serving up which apps

For Virtual Desktops
- Duplication of data in asset management and control system from Discovery tools - having unique identifiers for the non-persitant images
- Tracking audit trail and controls - who did what in a non-persistent mode
- Storage costs and considerations
- Tracking drift in non-persistent mode
- Ensuring printing and other components A)Work and B)Print to the right printer
- Configuration Management tools - using same tools in both physical and virtual - setting vary sequences as not to crash the host.
- Additional layers of support (Server Cluster, Host, Network)

For Virtualizing a Single Application
- memory utilization - is there enough heap size/virtual memory assigned A) to the APP  B) To the VM to avoid degradation in performance for multi-user apps
- Graphics degradation - does the graphics processor on the server provide the rich resolution to support the application versus local processing
- Capacity - does the cloud have the capacity to build on demand for the given app as users are added
- Network Latency - are the users in a location that enables high bandwidth?  Sadly there are still small town in the US, 3rd world countries, etc that do not have broadband
- Impact to the network - does the amount of content, etc need to be throttled as not to impact a specific node within the network - using QOS or other throttling mechanisms
- Connection persistance - what happens if a user is dropped - will the session start where they left off or will they loose their data. Depending on the criticality of the application (like CRM) this is more important for some versus others.

Of course all the items already listed below.

Cheers,
Jeanne

www.installfree.com

Kevin Apte

unread,
Apr 11, 2009, 4:42:32 PM4/11/09
to cloud-c...@googlegroups.com
There are many challenges- There is no out-of-the-box infrastructure for hosting the typical J2EE and SOA Stack in the cloud. There is no Weblogic, WebSphere, ALBPM, Message Bus like Tibco available in the cloud.

A development team could certainly move all of this into the cloud, but the configuration, licensing issues etc. are all something the team would have to solve on its own.  This is far too bleeding edge for many people.

Kevin

Nati Shalom

unread,
Apr 11, 2009, 7:16:47 PM4/11/09
to cloud-c...@googlegroups.com

Kevin

 

"There is no out-of-the-box infrastructure for hosting the typical J2EE and SOA Stack in the cloud"

 

On what basis your making this type of statements?

 

I'll suggest that you would look at the following reference which provides a good example on how Enterprise JEE deployment is already running on EC2 in production on top of GigaSpaces.

http://tinyurl.com/daso5u

 

Getting such a production ready JEE application with load-balancer, self healing, auto scaling, security, database and even datagrid plugged-in is actually much simpler then in any other environment that I'm aware of due to the built-in automation, pre-defined images as well as the fact that I don't need to download and setup anything to get the entire system up and running.

With our Mule-ESB integration you can also get Mule-ESB deployment just as easily.

 

In fact its so simple that we decided to built our entire Demo As Service framework around it and been using it quite successfully and constantly expending the use of it with our partners.

See details here: http://tinyurl.com/dhkmbj

 

Nati S.

www.gigaspaces.com/cloud

 


From: cloud-c...@googlegroups.com [mailto:cloud-c...@googlegroups.com] On Behalf Of Kevin Apte
Sent: Saturday, April 11, 2009 11:43 PM
To: cloud-c...@googlegroups.com
Subject: [ Cloud Computing ] Re: Challenges faced by developers and architects when moving to the cloud

 

There are many challenges- There is no out-of-the-box infrastructure for hosting the typical J2EE and SOA Stack in the cloud. There is no Weblogic, WebSphere, ALBPM, Message Bus like Tibco available in the cloud.

Kevin Apte

unread,
Apr 12, 2009, 11:03:32 AM4/12/09
to cloud-c...@googlegroups.com
What I had in mind was a Weblogic Portal-ALBPM- ALSB-Oracle Database operating as a stack in the cloud. I am sure someone is working towards this, however I am not aware of  any  effort at this point.

I went through your links.. What Application server/BPM Tool/ Portal/ Messaging Bus do you use?

I think there are two different situations: I have an existing IT environment, that I want to move to the cloud in the future.  The other is: I have a new project that I want to execute on the Cloud.

Kevin

Robert.Hanckel

unread,
Apr 12, 2009, 4:48:47 PM4/12/09
to cloud-c...@googlegroups.com
One area that is will become very profitable in the future is distributed system managment
software.  The complexities of configuring a middle tier app server on top of a database
is just the tip of the iceberg.   In Oracle Middleware a stack represents lot's of specialized
mid tier machines that are dedicated to web caching, single sign on, Oracle Portal, supporting of N number
of WebLogic instances converging on an Oracle RAC cluster.   The problem of adding
addtional resources dynamically (e.g. more WebCache instances, or WebLogic servers)
requires sophisticated distributed system management infrastructure where the entity being
managed is no longer a physical or virtual box, but rather an array of boxes acting collectively
as a single system.  It's a big problem and one that needs to be solved independent of whether
these boxes were rented from a Cloud provider, or are in-house resources.

Nati Shalom

unread,
Apr 12, 2009, 4:49:18 PM4/12/09
to cloud-c...@googlegroups.com

Kevin see my response below

 

"I went through your links.. What Application server/BPM Tool/ Portal/ Messaging Bus do you use? "

 

Currently we support Glassfish 3.0 and Jetty as the web container.

The deployment component can be war or spring application context.

The underlying messaging and data-grid and parallel processing and clustering is obviously based on GigaSpaces.

 

As I mentioned earlier we also have tight integration with Mule as Enterprise ESB.

 


"I think there are two different situations: I have an existing IT environment, that I want to move to the cloud in the future.  The other is: I have a new project that I want to execute on the Cloud."

 

Most of the users where users are actually coming from existing IT application which is based on JEE and are looking to port it to our environment to gain the cost effectiveness and scaling benefits without a complete re-write . If what your looking is to port your application to the cloud and gain the self-healing and auto scaling than you can achieve that just by putting your exiting your war file to S3 and decorate it with a simple cloud configuration XML that will define the SLA and deployment dependency.

Obviously if your application is dependent on lots of existing enterprise backend services such as SAP etc then that's going to require more work.

 

In the case study I referenced to in the previous response the customer used a hybrid deployment model for deploying the web front end on the cloud which was "talking" to their backend services that ran on their local data center.

 

The point that I'm trying to make is that the gap that you refer to is not as big as you may think.  I'm aware of new services that are coming soon both in our product but also in other products that are aimed to smoothen the transition of  enterprise applications to the cloud. What keeps surprising me is that those changes happens much faster then what we normally expect.

 

This seems to be aligned with the following analysis from CIO magazine which looks at Job posting trends here: http://tinyurl.com/c57lh7

 

"Over the past year job postings seeking cloud computing talents have jumped enormously. While still a small percentage of total jobs, the growth is near vertical. Given that there really aren't many internal clouds, these postings must be for skills relating to external clouds, probably mostly Amazon AWS. …it seems that, in the real world, companies are willing to accept those risks as part of the cost of using the cloud."

 

 

Nati S

Allen Chia

unread,
Apr 12, 2009, 6:22:29 PM4/12/09
to cloud-c...@googlegroups.com

These two scenarios are both possible to go to the cloud. If you have had the existing IT environment, use the virtualization technologies to clone your physical environment into the virtual one. The other case is comparably straightforward. Build your environment right in the cloud and use it.

 

In my humble opinion, the most important factors in the cloud are how to provision the cloud and how to secure the data for multi-tenants. As for the “out-of-box infrastructure” in the cloud, the cloud is not a product. It is a new IT architecture and service model. It is possible to accommodate the software, platform, and infrastructure layers or whatever you need. Again, the most important things I will consider first are security and provisioning.

 

Allen

gigaspaces

unread,
Apr 13, 2009, 12:48:04 PM4/13/09
to Cloud Computing
Allen
I believe that what Kevin was referring to is a not how you can port
your existing static deployment in a cloud deployment.
Of course you package anything in an image bundle and host your
virtual machines in a reserved mode with fixed IP configuration.
The fact that you can technically do that doesn't mean that it makes
sense. In such a scenario i would question what's the difference
between this environment and any hosting environment and what do you
expect to get by moving to such a hosted environment vs running it in
your local IT.

I believe that what Kevin was looking for is porting his application
in a way that will capture the main value that cloud brings e.g. grow
as you need and pay for what you use. If your going to try and do that
with the existing framework that runs in your local-it then most
likely you'll end up with the same problems that your facing today on
the cloud environment i.e. your application will be over provisioned
based on the peak load and poorly utilized.

What i was referring to is the option to move your existing
application and run on top of different implementation that will
enable you to capture the elasticity of the cloud without forcing you
to re-write your entire application. If your running in a JEE
environment then it should be fairly feasible. If your application has
strong "ties" to backend systems you can use the hybrid model that i
referred to on my previous post.

A good analogy that i use to describe this approach is storage
virtualization. With storage you can take your existing application
run it with you local disk and then plug-in a network storage and run
the SAME application on that network device without changing the
application. In that world you didn't tried to take your existing
local disk and virutalize it. What you did is took the application and
port it to ANOTHER device that had visualization built-in.

I'm actually going to have a talk on this subject next week in the
CloudSlam event:
Practical Guide for Developing Enterprise Application on the Cloud
(http://tinyurl.com/czv37u)

In this talk i hope to share some of our experience on that regard.
You are welcome to join this talk if your interested in more details.

Nati S.
www.gigaspaces.com/cloud
> On Sat, Apr 11, 2009 at 7:16 PM, Nati Shalom <natisha...@gmail.com> wrote:
>
> Kevin
>
> "There is no out-of-the-box infrastructure for hosting the typical J2EE and
> SOA Stack in the cloud"
>
> On what basis your making this type of statements?
>
> I'll suggest that you would look at the following reference which provides a
> good example on how Enterprise JEE deployment is already running on EC2 in
> production on top of GigaSpaces.
>
> http://tinyurl.com/daso5u
>
> Getting such a production ready JEE application with load-balancer, self
> healing, auto scaling, security, database and even datagrid plugged-in is
> actually much simpler then in any other environment that I'm aware of due to
> the built-in automation, pre-defined images as well as the fact that I don't
> need to download and setup anything to get the entire system up and running.
>
> With our Mule-ESB integration you can also get Mule-ESB deployment just as
> easily.
>
> In fact its so simple that we decided to built our entire Demo As Service
> framework around it and been using it quite successfully and constantly
> expending the use of it with our partners.
>
> See details here:http://tinyurl.com/dhkmbj
>
> Nati S.
>
>  <http://www.gigaspaces.com/cloud>www.gigaspaces.com/cloud
>
>   _____  
>
> From: cloud-c...@googlegroups.com
> [mailto:cloud-c...@googlegroups.com] On Behalf Of Kevin Apte
> Sent: Saturday, April 11, 2009 11:43 PM
> To: cloud-c...@googlegroups.com
>
> Subject: [ Cloud Computing ] Re: Challenges faced by developers and
> architects when moving to the cloud
>
> There are many challenges- There is no out-of-the-box infrastructure for
> hosting the typical J2EE and SOA Stack in the cloud. There is no Weblogic,
> WebSphere, ALBPM, Message Bus like Tibco available in the cloud.
>
> A development team could certainly move all of this into the cloud, but the
> configuration, licensing issues etc. are all something the team would have
> to solve on its own.  This is far too bleeding edge for many people.
>
> Kevin
>

Kevin Apte

unread,
Apr 13, 2009, 12:50:53 PM4/13/09
to cloud-c...@googlegroups.com
I think the problem identified by Robert Hanckel is real, however, my perspective is that about 90% of Enterprise applications are quite simple, and either do not need / use a Proxy like WebCache.   Many Enterprise applications are quite small and simple, and do not need anything more than an Apache server with VMWare level fault tolerance acting as a load balancer. This is even more true in a virtualized infrastructure where per server cost is quite low. 

The part about multiple boxes appearing like a single machine: That part I concede. 

Kevin

Rao Dronamraju

unread,
Apr 13, 2009, 6:02:01 PM4/13/09
to cloud-c...@googlegroups.com

 

Again, the most important things I will consider first are security and provisioning.

 

Absolutely, security, security, security,……control, control, control…..availability, compliance, governance, performance, visibility…..

 

 


David Booth

unread,
Apr 18, 2009, 8:56:24 PM4/18/09
to cloud-c...@googlegroups.com
Thanks guys - You've given me a lot to think about!
Reply all
Reply to author
Forward
0 new messages