Next stop? Microsoft Azure Introduction!
Now that we talked through AWS and some introductory information, let’s talk a bit on Microsoft Azure, one of its competitors. Although I believe that AWS has its merits and I might prefer to use AWS, I’m also a little bit of a Microsoft fanboy and since I’m starting to learn more about Windows Server 2012 and PowerShell, I thought that I might as well learn more about another IaaS/PaaS Microsoft Azure!
The cloud applications that are being hosted run on large and powerful servers hosted by these large cloud infrastructure companies instead of smaller physical racks that simply cannot scale as well nor is there really way to contain costs after investment in physical servers and racks. Because it isn’t fixed or stuck on a particular server, it’s simple to scale with a couple of mouse clicks and a credit card that can take it, plus the hosted instances are just that, all on a virtual machine that allows for cloud computing. If a user is accessing an application from Nigeria, it’ll connect to the closest server to Nigeria instead of the home server in the physical and local site. It’s faster, more available and all from the power of any cloud managing system software.
The following are some advantages of Windows Azure:
Reduces the effort and cost of IT Management.
Consumes Computing Resources only when the need arises.
Scales your IT resources up and down based on your needs.
Responds quickly to changes in your business and customer needs.
Reduces the cost of building and extending on-premises resources.
Removes the need to manage hardware.
Use your existing development skills to build cloud applications.
Consistent development and management experience across on-premises and the cloud.
Similar to AWS, Azure has a couple of different services that allow it to enhance the Azure platform and to perform as an Infrastructure as a Service system.
- Virtual Machines
- General purpose computing environment to create, deploy and manage virtual machines running in the Azure cloud.
- Web Applications
- Allows a managed web environment for new web pages and applications or to migrate existing web sites into the cloud.
- Cloud Services
- Allows the ability to build and deploy highly available and practically infinitely scalable applications with low administrative costs and done with any programming language (other than the already provided SDKs)
- Mobile Services.
- Turnkey solution for building and deploying apps for mobile devices while providing the capability for data storage as well!
- Virtual Network
- Allows the user to treat the Azure cloud as if it is an extension of the local data center environment
- Traffic Manager
- Allows the user to route application traffic and forward ports to the datacenter for best performance, round-robin fashion, or using an active/passive failover configuration cluster.
- Data Management
- Allows the user to store business data in SQL databases either through MSSQL VM’s, Azure SQL, NoSQL via REST or using BLOB storage
- Business Analytics
- Ease of discovery and data enrichment using reporting and analysis services or Microsoft SharePoint server VM. Also allows a variety of business intelligence tools from Azure such as SQL reporting, Marketplace, HDInsight (main one) or a Hadoop Implementation for Big Data (remember Hadoop from Data Warehousing purposes?)
- Microsoft’s Hadoop implementation service for 100% Apache Hadoop solution
- Provides a distributed caching solution (SSD possible) that can help speed up cloud-based applications and reduce the database traffic and clutter.
- Protects server data offsite using automated and manual backups to Azure.
- Recovery Manager
- Utilizes Azure Hyper-V to protect business-critical services by coordinating replication and recovery of System Center 2012 private clouds at a secondary location for backup and refresh purposes
- Media Services
- Build workflows for creation, management and distribution of media using Azure
- Allows Service Bus and Queue services to keep apps connected through private and public cloud environments regardless of location.
- Notification Hubs
- Provides a highly scalable and cross-platform push notification infrastructure
- Provides a Business-To-Business (B2B) and Enterprise Application Integration (EAI) capability for delivering cloud and hybrid cloud integration solutions
- Active Directory
- Deals with identity management, authorization and access control capabilities for cloud applications, there is also an AD connector that links and synchronizes AD configuration from a local and physical site to the cloud configuration as well.
- Multifactor Authentication
- Extra layer of authentication along with user credentials. Provides a secure access for both onsite and cloud applications.
Now that most of the initial information has been conveyed, I want to talk a bit more about some file storage basics because that’s what first comes to mind when we think… “cloud”. Azure Storage provides high durability, availability, and scalability for all kinds of purposes and even more, it can provide automatic load-balancing and fail safes as necessary. Similar to AWS, there are different kind of storage modules that the user can do but there are two different tiers.
- General Purpose
- Standard Performance, stores the information from basic tables, files and “blobs” (more on that later) as well as the ability to store virtual hard drives to help create VMs. Typically, this is the kind of data that would be stored in hard drives.
- Premium Performance, although standard performance can also store virtual hard drives, this tier of storage is primarily meant for them and used when the user has to spin up many high-performing VMs that can require quick read/access performance. Typically, this is the kind of data that would be stored in solid state drives.
- Blob Storage
- Hot Access, used when you’re storing objects that are frequently accessed by applications. Hot Access allows you to store data at a lower access cost.
- Cool Access, similar to AWS Glacier, this is used when the objects are less frequently used and have a greater time span in between administrative and maintenance tasks. Cool Access allows you to store data at a lower data storage cost.
I realize that the term “blob” is a little bit confusing so let’s break it down even more. Blob storage is any sort of unstructured data such as documents, files, media, logs, and even installation executables as well. What most personal computers and file systems contain, would be considered blob storage.
Another form of storage that was mentioned is table storage, and those are used for storing Key-Value pairs from databases, and this can be achieved through highly available and massively scalable storages. It allows table storage through REST APIs (think JSON format).
Additionally, one of the storage options make use of a CDN. A Content Delivery Network (CDN) avoids user latency problems by reducing the number of hops the request must make. This service provides a convenient way to minimize latency, because it caches data in various geographic locations across the globe. As a result, when a user accesses a web page or a web application and there is media to be loaded, it isn’t necessarily pulling and requesting the media from the local home storage server, but it’ll be querying the closest Azure Data Center where the media sources have been cached. Hence, this mechanism speeds up the delivery of repetitively accessed content and improves performance.
Aside from actual data storage, Azure also provides a file storage which is akin to an SMB file share. Aside from using a local file share hosted by a local server, by having it hosted in the cloud, it allows for quick migration of legacy applications and a transition from local to cloud-based infrastructure. Plus, an Azure file storage can become the central share that not only has its own security configurations but also some of Azure’s that can help when remote workers are trying to VPN into the network and firewall for the necessary files.
Note that as of today, file storage doesn’t support active directory based authentication mechanism to validate access requests. Instead it uses access key based mechanism of storage account. If you need to have more control on stored content, then you should use shared access token as an alternative. Fortunately, with Azure and other cloud based services, they over amazing mechanics regarding failover and backup, in fact one of their storage options is Read Access – Geo Redundant Storage (RA-GRS) which replicates data across multiple facilities, allows it to be read from multiple locations and there are a number of copies of data maintained on separate nodes that are maintained through data deduplication.
Among RA-GRS, here are some descriptions regarding the other storage replication options:
Locally redundant storage (LRS). Locally redundant storage maintains three copies of your data. LRS is replicated three times within a single facility in a single region. LRS protects your data from normal hardware failures, but not from the failure of a single facility.
LRS is offered at a discount. For maximum durability, we recommend that you use geo-redundant storage, described below.
Zone-redundant storage (ZRS). Zone-redundant storage maintains three copies of your data. ZRS is replicated three times across two to three facilities, either within a single region or across two regions, providing higher durability than LRS. ZRS ensures that your data is durable within a single region.
ZRS provides a higher level of durability than LRS; however, for maximum durability, we recommend that you use geo-redundant storage, described below.
Geo-redundant storage (GRS). Geo-redundant storage is enabled for your storage account by default when you create it. GRS maintains six copies of your data. With GRS, your data is replicated three times within the primary region, and is also replicated three times in a secondary region hundreds of miles away from the primary region, providing the highest level of durability. In the event of a failure at the primary region, Azure Storage will failover to the secondary region. GRS ensures that your data is durable in two separate regions.
Read access geo-redundant storage (RA-GRS). Read access geo-redundant storage replicates your data to a secondary geographic location, and also provides read access to your data in the secondary location. Read-access geo-redundant storage allows you to access your data from either the primary or the secondary location, in the event that one location becomes unavailable.