The DNN product team is a distributed organization, described in a previous blog post. While desirable to have all development and QA done in a single location, we found good alternatives in the hiring of topnotch people in various other geographies. When possible, we then established Engineering centers. We did this not just for cost reasons, but smarts. The tale of Evoq in the Cloud fits this model.
The Big Bet
Early in 2012 we decided that Microsoft Windows Azure was the right platform for our Cloud service needs. Our designs showed that it could underpin a reliable set of core services with a healthy dose of performance and manageability, and at favorable costs. I won’t rehash here all the reasons (which you can read in various other DNN blogs), but will say that so far it’s been a really smart move for us.
Knowing the foundation we needed was a good start, but then came the time to staff the effort. Fortunately, we hired the ideal engineer in David Rodriguez, now a Windows Azure Insider (one of only 50 in the world). In David we had a seasoned technologist with operational skills to lead the Engineering team. One of his big accomplishments was the Azure Accelerator for DNN, a product focused on jumpstarting DNN deployments on Azure.
With David on board, we proceeded to build a suitable team and integrate it with the other product teams and services (e.g. CRM, billing, and marketing automation) at DNN. It’s central to the DNN strategy that customers not only get the value, ease of use and simplicity of cloud-enabled applications, but that they receive a reliable and compatible experience consistent with our premise-based products. We knew this would be a big undertaking … and we were going to face it head on.
The Service Works … Now Make It Compatible
Microsoft has done a good job ensuring applications compatibility, but Azure is not without differences necessary to deliver a comprehensive, highly available, performant PaaS (Platform as a Service) environment. Intent on delivering in concert with our mantra that “DNN is DNN”, we had our work cut out for us.
While there are nuances to every service, in terms of how best to optimize the use of worker roles, load balancers, etc., the biggest challenge with Azure has been SQL Azure compatibility. This required DNN Platform and Evoq solution database changes, extension manifest enhancements, and the need to serialize objects in core code so they could be used in out of process caches. But rather than do things just for Evoq in the Cloud, we made the smart decision to make changes in the product code as we found them, then make Azure compatibility a primary test case in our QA checklists.
To verify Azure compatibility we leveraged the DNN Extension Verification Service (EVS). A free service, EVS began as a way to assure customers and vendors that their extensions would be compatible with a given version of DNN. This was in reaction to concerns about performing upgrades, as well as providing confidence in procured extensions. With so much interest in Azure, we enhanced EVS to help migrate SQL scripts, check for Azure database table compliance (e.g. clustered indexes), and ensure that objects were serialized so that backups could actually be restored. This was quite a lot of additional work, but well worth the effort. We tested many extensions from the DNN Store, in addition to the DNN Forge, and received lots of help and endorsements along the way from the DNN community. (Here is a nice video that demonstrates EVS.)
With Azure compatibility issues behind us we focused on enabling the service layer, and doing so in a way that customers could readily value. If nothing else, today’s consumers expect adherence to the KISS (Keep It Simple Stupid) principle. For us, we saw this in two major areas: 1) rapid deployment with zero install on the part of the customer and 2) consumer-oriented simplicity of operations. The former was solved on the back-end by a clever use of Azure services and the “inventory” of ready-to-provision devices. The latter comes in the form of the “Cloud Control Bar”, an extension to the standard Control Bar that provides 1-button access to Updates, Backup/Recovery, remote services, and the selection of Live or Staging sites.
All the complexity of the back-end is shielded from Customers. They don’t think about Azure or DNN; instead, they think about their web site or social community, or some other application they’re serving. Not only is this cool, such flexibility is very valuable to IT organizations as it greatly eases their work and costs. To this, we added the capability of ensuring that DNN deployments would be compatible on premise and in the cloud so they could be readily moved from one environment to the other, depending on an IT organization’s needs.
The Team Makes the Difference
I earlier mentioned David Rodriquez, our lead Cloud engineer. However, deploying a world-class service takes more than one individual. We have, fortunately, quite the great team working together and in concert with other product teams at DNN. By capitalizing on this distributed organization we deliver to our customers’ advantage. Indeed, there are some challenges, as is the case with every organization, but they pale in comparison to the value received as the DNN team works around the clock to improve service capabilities. From my vantage point, it’s amazing to see progress throughout the day and night on myriad fronts.
However, there is one additional attribute that epitomizes this team ... the willingness of each member to accept criticism. They don't just say they're open to feedback; they crave it and incorporate it! They don't twiddle bits for the sake of perfectionism; they place themselves in the shoes of the customer to understand their point of view. The simplicity of the Cloud Control Bar is a good example of what can result.
It may be a little early to gloat, but it appears that DNN has delivered a world-class cloud service running its Evoq Content and Evoq Social solutions, all with single-button simplicity and reliability. Because we develop and maintain a single code base, we don’t waste time dealing with incompatibilities; rather, we focus on benefits that every customer can tap. Moreover, we’ve created a flexible environment where applications and sites operating on premise can be moved to the cloud, or relocated from the cloud to the premise as a company sees fit.
All in all, these are pretty impressive benefits.