Click here to Skip to main content
15,879,474 members
Articles / Hosted Services / Azure
Article

5 Lessons Learned Extending On-Premise Software to The Cloud

31 Jul 2013CPOL7 min read 19K   5  
In this post, I’m going to share with you some lessons learned along the way of taking the DNN Platform from an on-premise application to a turnkey, cloud-based solution.

This article is in the Product Showcase section for our sponsors at CodeProject. These articles are intended to provide you with information on products and services that we consider useful and of value to developers.

Introduction

You may have come across DNN in the past, or even recently. First released in 2002 as an open source project called “DotNetNuke,” we quickly expanded to become the largest open-source project in the Microsoft ecosystem. DNN Corp was formed along the way and continues to act as the steward for the open source codebase. We also offer commercial solutions built on top of it.

In this post, I’m going to share with you some lessons learned along the way of taking the DNN Platform from an on-premise application to a turnkey, cloud-based solution. This case study will be particularly helpful for anyone undertaking a ‘brown field’ application migration to cloud services, with particular attention to leveraging the benefits of the cloud over just putting a site on Infrastructure as a Service (IaaS).

Early Efforts with Cloud

With the announcement of Windows Azure in 2008 and the launch of the platform in 2010, many in the DNN community became interested in this promising new way of delivering sites. The early work included making the entire DNN Platform compatible with SQL Azure from DNN 6 onward, positioning it so that anyone could install the application on Windows Azure without having to modify the core code. A full solution was developed by David Rodriguez as a community contribution called the DNN Azure Accelerator (related: a Code Project interview with David Rodriguez).

This open-source solution provided the answer to the tricky problem of how to deliver a dynamic, extensible application like DNN into Azure Cloud Services, which works from pre-defined packages. The Azure Accelerator forms the foundation of how DNN sites are delivered on Azure to this day.

In 2012, DNN Corp announced an alliance agreement with Microsoft to deliver Content Management Solutions in Azure. This partnership between DNN and Microsoft recently delivered the resulting product : Evoq in the Cloud. Evoq in the Cloud delivers Evoq Content, our industry leading CMS solution, and Evoq Social, our turn-key community solution, as seamless, managed services.

5 Lessons Learned while building Evoq in the Cloud

Lesson 1 : SaaS or PaaS - Choose the strategy up-front and carefully

 Image 1

One of the first questions to address when offering an application in the cloud is whether it will be a managed solution or just providing infrastructure and product.

The essential resources in making this decision are both current and prospective customers. We have an active ecosystem of Hosting partners to consider. Our customers have a demanding list of requirements: they want an on-demand, fast, flexible, affordable, extensible and simple service. Thankfully, all the pieces of Windows Azure make it possible to satisfy these requirements.

We chose a mid-path between SaaS and PaaS: the software is delivered as a service, but gives administrators the ability to interact and extend the platform. We believe this simplicity, with power, ease-of-use and extensibility, is the right choice.

The key to this decision was the desire to provide a fully integrated solution, which included both the software and the delivery. An integrated solution prevents the customer from having to use an ad-hoc collection of tools to manage their site. The customer is in control of tasks which once might have required an experienced Admin to perform. There is one user experience, one supplier and no buck-passing between platform provider and software vendor. It is all built and tested to work together by a single team, who understands the solution from end-to-end. This is all possible by delivering an integrated service and customers tell us they love it.

Takeaway: Carefully consider whether you want to deliver a true SaaS solution, or an infrastructure-focussed PaaS solution. This will drive many decisions further into the project.

Lesson 2: Leverage Existing or Build New Product?

Image 2

An early option tabled was to build a stripped-down, simplified product that was a cloud-only option. This has merit for addressing a new audience, but has drawbacks in ignoring your existing audience. With an installed base of 750,000+ websites worldwide – any of which might be a candidate for moving to the cloud product – it made much more sense to use Azure as a delivery channel – hence Evoq in the Cloud.

Having the exact same product distributed to all customers streamlines support and development and prevents customers from feeling locked-in. It also allows anyone from our large install base to migrate to the cloud product.

Once this decision was made – the product would be exactly the same, and the cloud would be a delivery channel – this informed the rest of the decisions around system architecture. Any cloud-specific enhancements would then be developed using one of the strengths of DNN – the extensibility, which allows the product to be customised without changing any core code.

Takeaway: When deciding on a new product or adaption of your existing product, consider the market context you are in and whether the costs of a new codebase are offset by the benefits.

Lesson 3: Devise new features by leveraging cloud capabilities

Image 3

Windows Azure provides a large variety of features to leverage in applications. Instead of looking at the tools to try and dream up ways of using them, it’s better to dream up features that would delight the customer and find ways that Windows Azure tools can help build it.

By evaluating feedback from our customer base, it was easy for us to imagine a service where the customers wouldn’t have to install anything. By having an Azure Worker Role automatically run the install process, we took a manual process and had it automated.

It was easy to design a backup and restore service that combined the database, application files and customer-specific content files into a single compressed backup file. We could then create a software update service that combined backups and upgrades (which are similar to installs) and even automatically detect when an upgrade failed. When an upgrade fails, we automatically return the site to a working version.

Takeaway: Invent new features around customer requirements rather than toolsets

Lesson 4: Leveraging Cloud Capabilities for Flexibility, Performance and Reliability

Image 4

Adding extra features to the product is one aspect of leveraging cloud features. When customers think cloud, they think flexibility, performance and reliability. Using the Cloud Services (PaaS) platform in Azure brings benefits in terms of scalability, access to worker roles, lower maintenance and high isolation.

This required inventing some new techniques, such as how to keep persistent application data on a web role that can be created or destroyed as needs require. With new techniques like this, the payoff is tremendous: a truly scalable application. We also leveraged Azure’s geo-redundant storage within the application, which gives a much higher level of redundancy than a primary storage location. These features create true points of differentiation that are not easy to replicate with hosting solutions.

Takeaway: When moving to the cloud, take the extra effort to leverage the inherent advantages of the platform you’re using.

Lesson 5: Customers love trials. Give them fully-featured trials.

Image 5

The expectation of prospective customers is that they can see, experience and interact with a product before taking it any further.

The DNN Cloud team addressed this problem by providing cloud-based trials. But customers wanted more. They wanted instant gratification, instead of waiting 15 or 20 minutes for a trial.

In response to this customer need, we implemented “device pools,” which are sets of pre-configured, pre-installed cloud sites ready for customer use. These pools are continuously allocated to match trial customer demand. Delivering a cloud trial is extremely fast and takes around 30 seconds from start to finish. You can try it out yourself: get an Evoq Content in the cloud trial here.

The results are in: customers love our cloud trials. And while they sign up at prodigious rates, the cloud is there to adequately support the demand.

Takeaway: Work out how you can leverage cloud resources to provide customers trials of your product.

Conclusion 

Taking an on-premise application and adapting it to cloud delivery is not always an easy task. The work done by the DNN Cloud Team was guided by the desire to provide a new delivery channel for an existing product that allowed existing customers a smooth transition to the cloud.

The product had to be simple and flexible to attract new customers. By leveraging Windows Azure and working with Microsoft, we’ve been able to navigate these challenges. The end result is a product that retains all of its original strengths, while adding significant new strengths as well.

Take the DNN Cloud Trials Challenge and create a new Cloud-delivered Evoq Content trial in 30 seconds. Or, if you are building a new online community, why not try out a Cloud-delivered Evoq Social trial?

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


Written By
Product Manager DNN Corp
Australia Australia
Bruce Chapman is the Product Manager for Cloud Services at DNN. He’s been an active member of the DNN Community since 2006 as a contributor, vendor and now employee of DNN Corp.

You can read his blog at http://dnnsoftware.com/blog or follow him on Twitter @brucerchapman

Comments and Discussions

 
-- There are no messages in this forum --