Windows Azure SQL Database Marketplace
Editor’s note: Today’s post, written by Jody Donetti, Chief Software Architect and Head of R&D at KGroup, and Simone Procopio, Technical Director at KGroup, describes how the company uses Windows Azure infrastructure as a service (IaaS) and platform as a service (PaaS) offerings to support its Qoob content management architecture.
KGroup develops and implements content management and distribution solutions for corporate and public websites and for web TVs. Based in Milan, KGroup has been operating in Italy and in the European market for more than a decade. Its latest offering is the Qoob content management architecture.
At KGroup, we have worked on many content management projects, big and small, and we have learned that the one constant in the web space is innovation. Web content today includes standard content types (text, pictures, audio, video, etc.), plus custom content types specific for the customer’s scenario, such as internal and external web TV and social media, all sharable across multiple devices. At the same time, web-development technology has advanced. We wanted to use the best of today’s technology to build a content management solution that met our customers’ need for pace and speed, and that was powerful and flexible enough to seamlessly integrate media assets, social networks, and multiple interfaces.
We needed a system that could scale and switch between server resources, and collect data from multiple data sources including but not limited to various RDBMS [relational database management system] and NoSQL solutions. One thing we learned in past projects was that we would need to decompose the system into lower-level components/plug-ins, so the pieces could fit together in different ways.
In 2012, we launched a new content management platform called Qoob (pronounced like “cube”). We wanted Qoob to consume and manage data in a new way, independently from the storage. We also wanted a CMS [content management system] solution that was broader in scope, with room for additional services. The architecture of Qoob has been built with advanced technologies such as the Microsoft .NET Framework 4.5, ASP.NET, and HTML5. It uses Windows Azure virtual machine instances, Windows Azure SQL Database, caching services in Windows Azure, and other Windows Azure services to help achieve the performance, flexibility, and extensibility we wanted.
We spent nine months developing Qoob and since the last quarter of 2012 we are in production with several projects. The platform supports a wide variety of usages such as corporate portals, public websites, multisite solutions, and web TV.
The Qoob content management architecture was developed using the Microsoft .NET Framework 4.5, ASP.NET 4.5, and the Microsoft Visual C# development language. It serves as a foundation to model, manage, extend, and expose any kind of data. It is completely persistence ignorant, so it will seamlessly fit into any storage environment and support any kind of data access technology, including—but not limited to—any available ORM [object-relational mapping] solution, from micro ORMs to full-fledged solutions, such as Entity Framework or NHibernate. Extensibility is ensured thanks to a generic plug-in system and global events/hooks to intercept, modify, or extend the core flow of data.
Figure 1: The Qoob content management architecture includes a back end built on a dynamically generated REST API. Extensible background services can process data input, media transcoding, metadata extraction, and other tasks. Data storage can be based on any type of data store. The front end is a responsive HTML5+CSS3 site with social media integration, syndication feeds, and more.
Qoob background services process tasks such as automatic content ingestion from feeds, email messages, network shares, and other sources or data import/export scenarios. Our own MediaSync services can handle media transcoding to multiple formats and metadata extraction. For scenarios that require massive amounts of videos and other media assets, we intend to integrate Qoob with Windows Azure Media Services.
Qoob itself is agnostic about where and how data is persisted, and developers can choose how to configure and implement each entity type. We used a provider model to accommodate virtually any main datastore, from SQL Database, SQL Server, MySQL, and others, to NoSQL databases such as MongoDB or Windows Azure Table service. We used a similar provider model to manage blobs so that Qoob can manage data directly in the file system or with virtually any cloud storage solution.
The default front-end website (hosted on-premises or in the cloud) is built with ASP.NET MVC 4 and is a modern website with highly optimized HTML5 semantic markup where all the common meta tags are already managed natively to be as SEO [Search Engine Optimization] friendly as possible. It features responsive design (CSS3) to easily fit different devices and dynamic syndication feeds. There are also plug-ins to further support social integration (Facebook, Twitter, Disqus, etc.) and other common open web standards like OpenGraph, OpenSearch, and more, to achieve maximum discoverability and indexability by search engines.
Currently, all of our Qoob implementations in the cloud rely on Windows Azure virtual machine instances (in preview). We have instant access to the Windows Azure resources that we need to support the precise infrastructure requirements of our customers, so if we need to, we can quickly build multiple web roles for the back end, or install low-level tools to transcode specific video files.
We can plug Windows Azure storage, caching, and other services into the extensible Qoob environment as necessary. To help meet any customer scenario, we can choose between different implementations of core Qoob components like blob storage (on disk, on database, on Windows Azure Blob Storage), data source (on-premises SQL Server, SQL Database, others) or caching (in-memory, Windows Azure cache).
The scalability and high availability of Windows Azure lets us offer good SLAs [service level agreements] to our customers without incurring unnecessary risks. We do not have to ramp up a data center, buy servers, and configure them, a process that takes weeks, costs a lot of money, and is prone to error. We can use Windows Azure to scale up a new or existing Qoob environment in literally minutes, so we and our customers can get to market quickly and without problems.
In the near future, we plan to increase the support of Windows Azure features such as Windows Azure Media Services, the Windows Azure Content Delivery Network, notifications services, and others. We are currently developing new plug-ins to add additional features to Qoob that will let users create new ways to increase the value of their content assets.
A Digital Magazine plug-in will let users create digital magazines directly from the Qoob back end and publish them as HTML5 web apps using the latest advancements in web technology, with support for multiple devices and an offline experience. A Digital Signage plug-in integrates with a solution from one of our partners and, via the respective APIs and the Qoob back end, interchanges data between the two platforms, all from a single, unified UI.
We have used Windows Azure to help make Qoob into a system that is flexible and powerful enough to scale and switch between server resources, and collect data from multiple data sources. Qoob is now our default offering and going forward we expect it to generate 90 percent of the business at KGroup. While we built Qoob to work with any infrastructure, we offer it first to customers with Windows Azure because it costs less money, time, and energy, and it is highly scalable.
Windows Azure gives us access to advanced solutions like distributed caching, and makes it simple to provision, deploy, and scale Qoob environments. If a customer is surprised by higher than expected traffic, they only have to log on to the web administration portal and with a few mouse clicks they can add Windows Azure instances.
By supporting Qoob in the cloud with Windows Azure, we removed problems that are not part of our core business. We no longer have to manage physical servers or a virtualization platform, and we can avoid constant market screening for the most cost-efficient web farm available.
With the help of Windows Azure, we can use Qoob to provide a flexible and extensible environment that can be configured to meet any content-management need. At the same time, Windows Azure frees KGroup from having to directly support low-level resources, so we can focus on the development and execution of the Qoob content management architecture to meet the needs of our customers.