Who’s afraid of the big bad cloud?

DaveMThumbnail.jpg

Since we first announced Bungee Connect we have been advocating moving development of web applications to the cloud. During this time we have talked with many companies and developers about the benefits of a cloud-based development process. While most have been receptive to the idea, a few are a little afraid of what development in the cloud means and its impact to their overall productivity. Some of the most common fears we hear include things like “the code is not on my machine”, “I don’t control the environment”, “What about source control and team development”, and “I don’t manage the provisioning process”.

We agree that these are legitimate concerns, but we also believe they can be resolved entirely in the cloud, using a platform-as-a-service (PaaS). Let me illustrate:

Development

Since the inception of the web, there have been many applications and utilities that have benefited from its distributed nature. First, sales and marketing teams became more effective with on-demand CRM systems by replacing fat clients with web browsers—freeing them to work when and where they want. Then entire organizations began collaborating more efficiently by moving document management systems out of email and onto the web. At both work and home, the majority of us now use Wikipedia as a preferred reference source, where we benefit from an editing process that was moved from a small group of editors to a global group of domain experts.

Development can see the same results by moving the entire process to the web. Removing the need to build and maintain individual development environments can free developers to focus on the creation of the applications they need to build. Also, moving the development process to the target platform where the application will be delivered enables them to have a clearer understanding of how the application will behave as it’s delivered to end users. Because development is native to the web, developers will be able to more easily share and collaborate with other developers on the projects they are currently working on.

Development Environment

A development environment is made up of many different moving pieces, installed and configured to work on one workstation or within a LAN. As the individual pieces change and update, developers are left to patch and reconfigure the environment, hoping everything will continue to play well with each other. This leaves the developers at the mercy of the roadmap of many different API providers, whose changes invariably disrupt the current configurations as updates are applied.

Development on the cloud doesn’t require any time-wasted in configuration or updates. Updates and patches are handled transparently by the PaaS vendor with no involvement required by each independent app developer. Changes that would affect interoperability and configuration are tracked and managed by the PaaS system as a policy rather than as a “design pattern” or style that changes from developer to developer, sometimes within the same project.

Create and Edit anywhere

In the cloud, application creation and editing can happen anywhere there is browser access. No longer do developers need to be concerned with figuring out how to get to their machine or taking their machine with them everywhere they go. With nothing to install or maintain, developers can easily switch between machines as their needs dictate without the loss of productivity or effectiveness.

If a developer is away from their main machine they simply login to their cloud-based development environment and have full access to the entire development environment without installing or configuring anything on the machine they are currently using. In this way they can be immediately productive without the hassle of configuring yet another environment.

Share and collaborate

Wikipedia has enabled millions of individuals to collaborate on the collection and presentation of information, creating a more thorough and accurate compilation of information than could be created by a smaller group of individuals. Web applications can also benefit from the same level of collaboration.

Through the cloud, developers can share and collaborate with other developers on a more granular level than through traditional methods. Because the code lives in the cloud, not on individual machines developers can grant access to entire projects, or even just pieces of the project, quickly and easily. Not only can they grant access, but they can also revoke access without concern that the code is still on the other developer’s machine.

Sharing through the cloud also ensures that the code will operate the same way with the other developers as well. No need to worry about making sure they have the same version and build of the development environment. Team developers are automatically on the same version and can seamlessly share between one another.

Revision control

Code, like content of any kind, becomes more complex to manage as more versions and iterations are created. Introducing a revision control system is necessary for most development activities. With a cloud-based development process the revision control system is integrated directly into the environment and does not require any additional systems to be built or maintained. In a fully integrated cloud-based development system, snapshots and versions of an application will continue to work no matter who opens the code on which machine. With traditional non-web-driven environments, as snapshots of the code are moved between machines the code is susceptible to changes in the environment which could require significant attention before the code will run on the new environment. With a cloud-based environment the code is not tied to any particular machine or local configuration, therefore a developer can access the code from any machine and continue working without concern for version settings or local configuration implications.

Instant Deployment

Apps created in the cloud are already live and in the cloud, completely eliminating the need to build the app for multiple environments. This unique feature provides developers with a better understanding of how the application will function for end users as the user experience is exactly the same during development as it is during deployment. Instant and incremental deployment capability also makes the process of moving between development, testing and production much less complex because the traditional need for configuring and moving applications between environments.

New technologies offer the promise of new capability and power, sometimes rule changing, but many times we drag along the baggage of old standards and approaches which cause developers to fall into old patterns of use. The result leads to diminished capacity and applying old modes of thinking to new problems as they present themselves in the new world. Developing using previous technological methods, such as client-server application-style development techniques, only results in gating the possibilities of the emerging new age of cloud computing. If you don’t already have a Bungee Connect account, get one here.

2 Comments »

  1. You are not making the thoughtful, compelling case that you might have:

    Using examples like thin client access and wikipedia to draw conclusions does not cut ice with the mid- sized IT enterprise. They are all well aware of Web client access and many have collab solutions.

    The core concerns do not even involve security; lack of control is the issue I hear in my business of de-funking ERP and vertical solutions and creating w20 alternatives to server heavy failures.

    The industry is just starting to compile its list of ‘disaster stories’ of hosted, toasted services that became unreachable. Even Amazon and some notable SAAS and PAAS providers have shown true colors by saying nothing when the Sh-t hit the fan.

    Venture backed platform providers (grid, cloud, SAAS, PAAS) are look upon with a jaundiced eye by many established mid=sized ‘real’ businesses that are longer lived than many of the vendors they attach themselves to. My clients cannot turn over invoicing to a company that raised 5-10M, and might not provide continuity if the next round is DNF.

    So what can we do with on-demand applications and platform providers to ensure continuity and availability? I recommend that the SAAS-PAAS-Grid industry find ways to get third party certification for continuity in the event of negative liquidity or more mundane physical data infrastructure disruption. There should also be a underwriting standard for insuring these VC backed hosts.

    Without this type of Gold Seal on PAAS, or other viable fail over solutions, SAP, Oracle, and IBM will rule the roost for many mission critical use cases. It’s a matter of control.

  2. Dave Mitchell said

    Alan,

    Thank you for your comments. We agree with you regarding control. Lack of control is, and should be, a question from all enterprise customers, regardless of vendor size or balance sheet. You mentioned two reasons for concern around lack of control—mundane physical infrastructure disruption and negative liquidity.

    In April (https://bungeeconnect.wordpress.com/2008/04/23/announcing-bungee-grid-ec2-bungee-application-server-and-community-source-code-licensing-plans/) we announced our approach to providing businesses with the control they need to embrace PaaS.

    First, the Bungee Application Server provides enterprises with the ability to self-host an instance of the Bungee Grid ( https://bungeeconnect.wordpress.com/2008/04/23/announcing-bungee-application-server/ ). This directly addresses the issues around mundane physical delivery disruption. Customers can host the BAS in the manner that best suits their needs, whether that is on their own hardware, with 3rd party hosting providers or even Amazon EC2. Bungee Connect is the only Platform-as-a-Service to offer enterprises this federated hosting model.

    Secondly, we also announced licensing options ( https://bungeeconnect.wordpress.com/2008/04/23/bungee-labs-outlines-source-code-release-plans-for-bungee-application-server/ ) that provide customers with access to the source code for the components that comprise Bungee Connect. In the event that Bungee Labs ceases to exist, customers have access to the code under licenses that enable them to continue running and maintaining the server code.

    Like you, we don’t believe a one-size-fits-all approach is going to work for many businesses. We will continue to add options that will provide enterprises with maximum control over their application platforms.

    In the coming weeks, we will further address this topic here, on this blog.
    We have presented these options to many organizations who have confirmed that this is the right approach. I hope you will agree.

    Please reach to me directly if you would like to discuss this further.

    Dave

RSS feed for comments on this post · TrackBack URI

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: