-->

02/07/2014

Introduction to Azure

Let me begin this article by asking "Do you know how painful it is to maintain infrastructure?" and "How much it costs to meet customers demands at peak hour?".

Humongous amount of money will be spent by companies to keep up with these peak scenarios.
But what happens at night, hardly there will be any traffic, but companies already invested in huge infrastructure.
They have to maintain them irrespective of the demand. This is one big problem with on-premises model.

Now lets look at Cloud, this image speaks a thousand words and saves thousands of bucks.
Yes, its true. Pay what you use, and there is a high level of flexibility on the resources you use based on the traffic and demand. Extensiblity is no more a hassle and its just a button click away.


Imagine the cost saving when you cut down the bandwidth and the memory usage in non-peak hours.
No wonder why companies opt for cloud now a days.
To make it simple no company wants to spend more than required, and here is the typical cost effective comparison between on-premises and cloud.

Looking at the pricing "Follow this link to see pricing of Windows Azure".
But you cannot compare the costs incurred looking at the tip of an iceberg.
Knowing all this i don't want you to rush towards Cloud / Azure without knowing it in and out.
Most of the people look cloud just as a data center, but it caters variety of solutions.


So before opting for any of the above services, you should know that cloud services are categorized into 3 major categories.

SaaS: 
Software as a Service (SaaS) is a software delivery business model in which a provider or third party hosts an application and makes it available to customers on a subscription basis. SaaS customers use the software running on the provider’s infrastructure on a pay-as-you-go basis. There are no upfront commitments, so the customer is spared any long-term contracts.

PaaS: 
SaaS seems to be the right thing to do for all software needs of a company. However, every company is unique in its IT personality, resulting from legacy technology as well as from its particular business domain. Finding a SaaS service for every line-of-business need is often impossible, so companies need to continue building applications. Platform as a Service (PaaS) fills the needs of those who want to build and run custom applications as services.
PaaS offers hosted application servers that have near-infinite scalability resulting from the large resource pools they rely on. PaaS also offers necessary supporting services like storage, security, integration infrastructure and development tools for a complete platform.A service provider offers a pre-configured, virtualized application server environment to which applications can be deployed by the development staff. Since the service providers manage the hardware (patching, upgrades and so forth), as well as application server uptime, the involvement of IT pros is minimized.


IaaS: 
Infrastructure as a Service (IaaS) is similar to traditional hosting, where a business will use the hosted environment as a logical extension of the on-premises infrastructure. The servers (physical and virtual) are rented on an as-needed basis, and the IT professionals who manage the infrastructure have full control of the software configuration. Some providers may even allow flexibility in hardware configuration, which makes the service more expensive when compared to an equivalent PaaS offering.


It all depends on how much complexity your are willing to handle.

Recently i got to know more and more about Microsoft Azure, and i really love a bunch of features, which i want to highlight for the cloud aspirants.

1. Cost Effective:
We already discussed that the core reason behind cloud shift is Cost cutting in the non-peak hours.
Here is how you can plan the resources for all scenarios like "Day Time", "Night Time", "Week Days" and "Week Ends". You can control the number of instances active in load balancing, amount of CPU allocated and so many other important factors. Once you configure them, just relax and the configuration will take care of saving big bucks back to you.



2. Geo-Redundancy & Local-Redundancy  :
By default azure will save the piece of information / data in 3 different local storage , to serve high availability feature.

What happens in case of natural disaster, yes we have solution for that as well.
While creating any storage in cloud, there will be a small check box called "Geo-Replication". This means the data / information / service will be created locally as well as two different cloud servers which are geologically distant from each other i.e., two different regions. Thus you application / data will persist even after a big natural disaster.


3. Seamless Scalability:
Either it may be a data base running out of space or load balancing application running under heavy load or no of cores assigned to specific virtual machines anything you ask for is just a button click away and will be ready to use in seconds.



4. Deployment Strategy:
Every Deployment to cloud can be carried in a 2 step process. Staging and Production.
Developers can deploy the application to staging area and you can run that with what ever configuration you want and test it before final move. You can even consider this as a final UAT. And once the build is fine and when the time comes for PRODUCTION deployment, all you need to do is to click the "SWAP" button in the bottom. Thats it, your build package was deployed to PROD environment.

5. Auto Deployment:
If the users are working on a huge agile project and if there are production deliverable for every sprint, AUto deployment feature is a good one to use. End of every sprint you push deployment package to cloud and you can pre-schedule the production move, where no user intervention is needed and the things deployed to PROD automatically.

6. Remote Debugging:
The cloud service can have both Web role and worker roles which can be deployed to any number of instances. What if there is an issue, i am a developer and first thing comes to mind is "It worked on my machine . . ."
Now thanks to remote debuging from visual studio 2013, we can attach the process from any (web role or worker role ) cloud instance to our local code and debug the code.

More Topics will be discussed in upcoming blog posts.
# Virtual machine Vs Cloud Service Vs Web Site
# Web Role & Worker Role in Cloud services
# What happens in cloud service behind scene.
# How to debug cloud services (web and worker role) from VS 2013 (remote debugging)
# How to host WEB API in cloud
# How to integrate Rest service hosted in cloud with a mobile app
# Cloud / Azure mobile services in Azure
# Security in azure / cloud mobile service
# End to End implementation of Mobile service and Consumption.

Happy Coding !

No comments:

Post a Comment