23/02/2014
Cloud Computing
Cloud computing is branch of computing where infrastructure, software, development platform and data is provided as service to end users over the network on ‘pay as use’ basis.
Everything is service here. Providers can provide infrastructure like servers, processors, RAM etc over the internet; development platform as Visual Studio, Eclipse, other DLL files or SDKs over the internet.
Cloud Computing provide services using concept of virtualization. Providers provide Servers like Windows Server or Linux etc over their own hardware, we can install our softwares on that VM. Developers can use visual studio over the network.
Now think of the situation: A company has 1000 employees over the world and provided system to each user. Now they want to use Windows 7, as Windows XP is going to retire. There is need to update RAM as well if not supported by new system. It is too much cost and overhead for IT department to update all systems. Some software stop working as some machines need updated hardware or updated softwares to support for Windows 7.
Now think of cloud computing environment. The Windows and needed software are over the virtualization. Developers have their systems with just their Windows and internet connection on it. In this situation, developers get all tools over the internet from virtualized server. So, all updates need to be on this single server of Distributed servers. For this, company just raise request to provider company to use newer software. That’s it. No headache to development company and its employees.
Provider company needs to update the developer company account with better hardware or software by just changing configuration settings. This is cloud computing at all. RAM, Processers, Cores, Software etc everything is provided over the internet concurrently.
Cloud computing has three componants:
1. Infrastructure as a Service [IaaS]
2. Platform as a Service [Paas]
3. Software as a Service [SaaS]
IaaS is provided by service providers. Providers provide processors, cores, RAM, HDD over the internet. Eg. You create account with Windows Azure. Create Virtual Machine, install Windows or other Servers using image files. Assign RAM to it. You can have as many Virtual Machines as you can. So it provide dynamic scaling of hardware resources with saving hardware and labor costs to handle that new hardware. Development company should concentrate on development only, no hardware team needed as it would be handled by service providers.
PaaS provide development tools to developers in a company as service over the network. Developers can use visual studio over the network with windowsazure.com account. You must need an account with provide to access services.
Account -> Services [IaaS, PaaS, SaaS]
Saas are softwares provided to end users. Developers develop software using Platform provided as service. Those software are provided to end users as Software as a service.
Database like SQL server are also provided as service to work on. So developers can develop software on visual studio online using sql service online and save project in skydrive online. So, everything is over the internet. Developers are now not depending on their machines and their machine configuration. Now they can access their project anytime and anywhere over the world with their account. This is cloud computing.
Azure uses file system as BLOB.
There are 3 different types of storage mechanisms in Azure: BLOB, Table and Queue.
Blob contains tons of unstructured data in file system. Blob data stored as Page Blob and Block Blob. Each blob has unique blob number. Block blob can have upto 200 GB of data. Blob data can be sent in chunks of 4 MB each. Page blob can be upto 1 TB of data. Page blob is organized into 512 bytes per page.
Tables contain lots of structured but un-relational data over No-SQL. Each table consist of multiple entities. Every has a partition key and a row key that uniquely identifies a row. The partition key divides tables logically into partitions. Within a partition each row in uniquely identifiable by row key. All entities must have two properties: PartiionKey and RowKey. To ensure this, each entity class must inherit from TableEntity. You can add single entity or batch up to 100 entities at a time into table.Tables support OData’s JSON format.
Queues are used to transport messages between applications. Queue messages can be up to 8KB only. It is only meant to transport messages.
Windows Azure also support metrics data in hourly and minutes intervals. Metrics are used to monitor errors, service availability and other things to improve performance.
Each type storage access need connection string. The storage connection string is DefaultEndpointsProtocol=http;AccountName=myAccount;AccountKey=myKey;
You will get primary and secondary key when you create Azure account.
The main goal of cloud is to provide services when and where needed. Micorosoft Azure, Amazon Web Services and IBM OpenStack are important cloud computing tools available.