Applied Azure: Building blocks for the cloud
- select the contributor at the end of the page -
Leveraging the cloud for your business isn't about learning a new programming language or tool. Instead, it's about utilizing cloud platform building blocks to develop effective solutions; it's about having a strong understanding of business drivers and cloud computing trends. And it's about establishing the rapid technical feasibility of moving a workload to the cloud. Of course, the cloud isn't a specific technology. Most cloud applications are built on top of a collection of building blocks or services. This collection of services is referred to as the “Cloud OS" -- yet another reason that the discussion around cloud adoption is focused on solutions involving various building blocks.
Understanding certain building blocks can help a lot. Take Azure (Microsoft’s cloud platform), which integrates compute, data, storage, networking and app services. Azure's building blocks can be used to develop practical, meaningful and cost-effective applications. Taking an in-depth look at these building blocks can give you a better idea of the many capabilities you can leverage to help build and deploy your applications in the cloud. So, let's dive in.
Ready-made execution units in Azure Websites (now called Web Apps)
Azure Websites offers a powerful way to develop Web applications, host REST endpoints and even serve up lots of micro-sites in a cost-effective manner. These websites can be thought of as “ready-made execution units” that can be stamped out on demand. Think of each such execution unit as a completely managed environment (no need to deal with underlying hardware, software, patches, fault tolerance or scalability setup) for hosting your code; one that can respond to an http-based request.
Compute-intensive apps with Azure Worker Roles
Azure Worker Roles offer a powerful way to develop compute-intensive applications. Think of these as managed VMs or a managed execution environments that can be used to offload tasks, such as video processing and simulation. You don’t have to worry about OS, patches, or fault-tolerant setup, because worker roles are SLA-backed. You can also scale them dynamically based on load, either by getting yourself a large VM or provisioning multiple instances. The best approach for interacting with worker roles is through an asynchronous queue-based mechanism. Such a setup allows you to decouple worker roles from the incoming flow of requests.
Identity and Access with Windows Azure Active Directory
Microsoft Azure Active Directory (Azure AD) offers a convenient way to externalize the identity and authentications requirements of your on-premises and cloud based applications. It supports an ever growing list of authentication protocols and claim types. Being a cloud service, it brings with it high availability and scalability. Directory data stored in WAAD can be accessed using a REST-based Graph API. Azure AD can also be used to provide enable single sign-on with third-party services like Box and SalesForce.
Loosely coupled apps with ServiceBus and Mongo DB
While the design principle of “loose coupling” is applicable all the way from overall system architecture to the lowest level class design, this building block focuses on coupling between high level sub-systems of an application. Message exchange patterns (like publish-subscribe, temporal decoupling and load balancing) and persistence patterns (schema less and NoSQL document-based store) can be realized using Microsoft Azure Platform-based services like Microsoft Azure Service Bus and MongoDB.
HIPAA compliant apps with Windows Azure Trust Center
A Web application that is designed to meet the HIPAA compliance requirement involves leveraging the aforementioned Windows Azure Building blocks in order to comply with the requirements listed in technical safeguards. It uses Web and Worker Roles to host the application logic. All data transmission is over SSL and Windows Azure storage is used as the persistence store. All data stored in Windows Azure storage is encrypted using a custom encryption library, and Windows Azure storage analytics logs capture successful and failed requests to access data.
Offloading Sharepoint Customization to Microsoft Azure
Hosting customizations outside of SharePoint is recommended, as it can lead to a SharePoint farm that is easier to manage and upgrade. Microsoft Azure can serve as a private hosting environment for SharePoint customizations. It offers a number benefits that can allow developers to focus on business aspects of the customization, and offload the underlying plumbing to Windows Azure.
Big data with Windows Azure HDInsight
No lengthy commentary is needed to communicate the growing importance of big data technologies. Look no further than the rounds of funding that companies like Cloudera, Hortonworks and MapR have attracted in recent months. It's widely expected that the market for Hadoop could grow to $20 Billion by 2018; the importance of big data cannot be overstated. It can be used to process unstructured or semi-structured data from Web click-streams, social media, server logs, devices, sensors and more. Microsoft HDInsight is a 100 percent Apache Hadoop distribution, available as a service on Azure. By including features like second head node, Blob storage as the file system and language extensions like c#, HDInsight is making it easier for enterprises to get started with big data.
More in-depth information about each of these Azure building blocks can be found in my PluralSight course, Applied Windows Azure. In this course, you'll learn about each of the building blocks including their core concepts, key mechanisms and design trade-offs.