There has been so much talk about cloud computing today. Have you ever wondered why so much importance is being given to this technology?
Well, cloud technology has drastically altered the way we design and use applications. Gone are the days when we had to install software on our local system, save files, and take backups frequently to prevent any data loss due to computer problems. Today, you can open an app on the web, complete your work, store it in the cloud, and retrieve your work anywhere and from any device. Creating applications doesn't get easier than this, so it's little wonder that companies around the world have adopted cloud technology in a big way.
Cloud services can be broadly divided into Software as a Service (SaaS), Platform as a Service (PaaS), and Infrastructure as a Service (IaaS). Each of these types give you the hardware and software needed to design, develop, run, and maintain applications in the cloud.
There are many cloud platforms and applications available today, and Azure is one of them. Windows Azure offers a ton of services including computing service, storage, and framework needed to create applications, so you can have everything in the cloud. You can even mix and match different offerings to get a combination of services that's just right for your business. It's also super flexible as it can be used as SaaS, PaaS, and IaaS, depending on your business needs. Let's see how.
- PaaS - Azure has both application files and configuration files, and when they are combined, you can easily execute and manage your applications. Also, Azure takes care of the operating system and provides you with SDKs, so you can concentrate on building the necessary applications for your business. In this sense, Azure makes it super easy to develop, build, deploy, and scale enterprise-grade and mobile applications. As a bonus, it also comes with a marketplace platform where you can sell your product to customers located around the world.
- IaaS - Azure gives you a server in the cloud that acts almost like a virtual machine for you. You'll have complete control over everything - right from the operating system to the applications you install in it. You can connect to it through a virtual network from your premises, and its load balancer and storage will ensure that you have the complete setup available to run your application.
- SaaS - Azure websites can serve as a SaaS too, as you can configure Drupal, WordPress, and other services through Azure. The obvious advantage is that your application will be scalable as your customer base grows, and much of the management such as software updates are taken care of by Microsoft. In addition, the IIS is already installed and configured, which means that you can get started with your application within minutes.
Now that you have a basic idea of Azure, and how it can make life easy for you, let's have a detailed look into the different components that provide these functionalities.
Here is an overview of all the nifty components within Azure's infrastructure.
Now, let's briefly look into each of these.
Compute comprises of virtual machines that are in reality nothing but virtual hard-disks. However, these machines can be both Windows or Linux-based, so you have greater flexibility with the choice of your operating system. The websites include .NET, Python, Ruby, Java, Node.js, and PHP sites, while cloud services include different roles such as worker roles and PM roles. You can mix and match each of these components based on your needs.
Data management includes SQL databases, which in a way is SQL server on a cloud. However, there are many different ways of accessing this server. For example, you can have an SQL Server on your premises and have web sites and other cloud applications accessing it, you can put the SQL machine on the cloud and have applications access it directly, or can have a SQL Server on the cloud and have local applications access it. This choice completely depends on your operational requirements.
The second component, tables, is not your relational database tables, rather they are NoSQL tables that can store large amounts of data. Blobs are another type of storage offered by Azure, and just like SQL Server, both tables and blobs can be accessed through REST APIs. If you want to move a lot of data into Azure, you can use the Import/Export component that gives you the option to ship Bitlocker-encrypted 3.5" SATA hard drives directly to Azure data centers. This option helps to save on your bandwidth costs. Lastly, the File Services component makes it possible for applications to share files between virtual machines through APIs.
In terms of networking, you can set up a virtual network between your local system and a virtual system on the cloud. If you want a more dedicated network that doesn't go through the public Internet, you can opt for ExpressRoute. It tends to have more bandwidth, security, and can also help you to save money.
Traffic manager is an intelligent system that helps to automate traffic patterns. Let's say you have users accessing your website from all over the world. You can choose to move some data to servers located closer to your users, so they can access data faster.
Developer and IT Tools
Developer and IT tools make it easy for you to create different types of applications in the cloud. To this end, it offers a wide range of SDKs such as .NET, Ruby, Python, Java, PHP, and Node.js. These SDKs help you to build, deploy, and manage all kinds of applications. In addition, the Visual Studio Team Services offers version control and work item tracking to help you stay on top of changes. Automation tools based on Runbooks is available to take care of processes that do not require user interaction.
Identity and Access
Identity management and access control is taken care of by the Windows Azure Active Directory. In addition, another component called Multi-Factor Authentication (MFA) provides an extra layer of security for identity verification.
If you want to create a mobile app, Azure's mobile components ensure that you write a lot less code. Mobile services component takes care of provisioning, data management, monitoring, and logging. Further, the many native client libraries and Add-Ons simplify your work greatly. Another mobile component is the Notification Hubs, that can send out millions of personalized push notifications within just a few minutes, thereby saving you enormous time and effort.
You can use Azure to back up and restore your data. Its Site Recovery component helps to replicate data across different sites. Moreover, it monitors the health of your site continuously, and in the event of an outage, it restores services quickly. The Backup component backs up your data directly from Windows Server.
Messaging and Integration
In Messaging, queues allow processes to communicate with each other in a decoupled manner, while Service Bus allows applications to communicate with each other through the cloud. Lastly, the BizTalk component allows applications with different schema to connect with each other.
Azure has a few handy components for programs that don't have to run all the time. Scheduler component performs certain functions like sending an HTTP or HTTPS message to a specific destination at a predetermined time or interval. You can manage these tasks through a Scheduler API.
To improve the performance of your application, Azure has two caching components, namely, Caching and Content Delivery Network (CDN). Caching, as you're familiar, is the temporary storage of data for easy retrieval, while CDN helps in the process of moving data closer to the location of users.
Big Compute and Big Data
An important component of Big Data is Hadoop. If you're not familiar with Hadoop, it is an analytics tool that is used for big data technology. Typically, it takes huge data stored in NoSQL and analyzes them for you using a process called Map Reduce. Another component called High-Performance Computing handles all your massively complex computing needs like engineering calculations.
Media Services provides support for videos and other media files and applications.
Marketplace is an e-commerce store where you can sell your applications to the world.
With these components, Azure offers three advanced services: Compute, Storage, and Management.
The Compute service hosts your IIS web services and .NET background processes through two components called Web role and Worker role. Web role comprises of your web applications while Worker role is similar to Windows Services that run in the background. Any Azure service can comprise of a Web role and/or a Worker role.
The second type of service is the Storage service, where Azure stores all your data. There are three broad types of storage, and they are blobs, queues, and tables. All three types are made available to you through a direct access or through the REST API. The best part is both the Compute and Storage service can be used independently of each other, and this gives you greater flexibility with your applications.
Compute and Storage services run independent of each other because the Fabric Controller abstracts the infrastructure components such as DNS, load balancers, and virtualized servers. Thus, when a service request comes in, it is routed through the load balancer to the appropriate Compute or Storage component. If a Compute component wants to interact with a Storage component, then it has to go through the same REST APIs only.
The Management service makes it easy for you to manage your data and applications through REST API calls. This means you can manage your application and storage services by calling the Service Management API over REST interface.
In short, Azure is a popular cloud platform from Microsoft that uses different components such as the ones discussed above to give you a range of functionalities. Going forward, the components as well as the offerings are only going to increase, thereby giving you more choices and flexibility to create, host, and manage your applications easily.
Don't you think it's time to try Azure to see all the benefits you can get out of it?