Microsoft Cloud Computing
Topics to be covered
1. 2. 3. 4. 5. 6. Environmental Features of windows azure What is Cloud Computing Roles in Cloud Computing Benefits of Cloud Computing Optimal Cloud workload Pattern Service Delivery Models
7.
Azure Architecture (Intro)
1. 2. 3. .Net in Windows Azure PHP in Windows Azure JAVA and Tomcat in Windows Azure
8.
Cloud Application Development and Hosting
Environmental Features of windows azure
Operating system as an online service; with automated provisioning and services management
Development, service hosting, & management environment
.NET, Java PHP, Python, Ruby, native code (C/C++, Win32, etc.)
ASP.NET providers, FastCGI, memcached, MySQL, Tomcat Full-trust supports standard languages and APIs Secure certificate store Management APIs, and logging and diagnostics systems
Compute instance types: Web Role & Worker Role. Windows Azure applications are built with web role instances, worker role instances, or a combination of both.
Multiple roles Web, Worker, Virtual Machine (VHD) Multiple VM sizes
1.6 GHz CPU x64, 1.75GB RAM, 100Mbps network, 250GB volatile storage Small (1X), Medium (2X), Large (4X), X-Large (8X)
In-place rolling upgrades, organized by upgrade domains
Walk each upgrade domain one at a time Each instance runs on its own VM (virtual machine), replicated as needed
Maintenance OS Host VM
Guest VM 1 Host VM
Guest VM 3 Guest VM 2 Guest VM 1 Host VM
The Fabric Controller communicates with every server within the Fabric. It manages Windows Azure, monitors every application, decides where new applications should run optimizing hardware utilization.
Cloud Computing
Windows Azure compute provides developers a platform to host and manage applications in Microsofts data centers across the globe.
Quincy, WA
Chicago, IL
San Antonio, TX
Dublin, Ireland
Generation 4 DCs
Cloud Computing
A Windows Azure application is built from one or more components called Roles. Roles come in three different types:
1. Web role,
2. Worker role
3. Virtual Machine (VM) role.
Roles in Cloud Computing
Web Role - A Windows Azure Web role is used for hosting front-end web applications behind Internet Information Services (IIS). Worker Role - A Worker can run anything but is most commonly used to host background processing behind a web role. VM Role - A VM role is a special type of role that enables you to define the configuration and updates of the operating system for the virtual machine. While a web role and a worker role run in a virtual machine, the VM role is the virtual machine, which gives you full control of operations. When you have long and complicated installations in the operating system or special setup issues, you should use this role. This role is especially suited for migrating existing applications to run as hosted services in Windows Azure. This VHD is created using an on-premises Windows Server machine and then uploaded to Windows Azure.
More on VM
Windows Azure Web and Worker roles enable developers to deploy and manage applications services as a whole as opposed to individual Virtual Machines (VMs). Its common for an application to interact with users through a Web role, then hand tasks off to a Worker role for processing.
.NET in Windows Azure
Web Role and Worker Role
Service Instance
default.asp x
IIS bind port(x)
Web Role
RoleEntry Point
Worker Role Service Instance
http://instance:x
http://instance:y
SQL Database Service Bus Fabric Controller Table Storage Blob Storage Access Control
http://app:80
Load Balancer
Queue
Benefits of Cloud Computing
A great application hosting environment Since the Windows Azure Web role is pre-configured with IIS7, its easy to create applications using ASP.NET, Windows Communication Foundation (WCF) or other web technologies. Developers can also create applications using languages such as PHP and Java. Presentation
ASP.NET C#, WCF, PHP, Java Distributed in-memory cache
Services
.NET C#, Java, native code Distributed in-memory cache Asynchronous processes Distributed parallel processes Transient file storage
Benefits of Cloud computing
Focus on the application, not the operational constraints The automated service management provided by Windows Azure offers customers the benefits of: Administration: Windows Azure automatically takes care of things such as load balancing and failover thereby reducing the effort and cost of administering the application environment. Availability: Windows Azure is designed to let developers build applications that are continuously available, even in the face of software upgrades and hardware failures. Scalability: Windows Azure enables developers to build scalable applications that run in Microsofts global data centers. It also allows developers to scale down applications when necessary, letting them use just the resources they need.
Optimal Cloud Workload Patterns
On and Off
Compute
Inactivity Period Average Usage
Growing Fast
Compute
Average Usage
Time
Time
Unpredictable Bursting
Compute Compute
Predictable Bursting
Average Usage
Average Usage
Time
Time
Benefits of Cloud computing
Enable communication between role instances The role instances in a hosted service communicate through internal and external connections that vary depending on the type of communication that is needed. Role instances can make these connections by using HTTP, HTTPS and Microsoft .NET APIs for TCP/IP sockets. An external connection is called an input endpoint, and an internal connection is called an internal endpoint. Endpoints are associated with ports, where the external endpoint is associated to a port that you define, and the internal endpoints are dynamically assigned ports by Windows Azure. Start tasks before role instances start
You can use startup tasks to perform operations before the role instances start. Operations that you might want to perform include installing a component, registering COM components, setting registry keys, or starting a long running process. You add startup tasks to the role by defining the tasks in the ServiceDefinition.csdef file.
Benefits of Cloud computing
Flexible instances sizes to meet your application needs Each Windows Azure compute instance represents a virtual server. Although many resources are dedicated to a particular instance, some resources associated to I/O performance are shared among the compute instances on the same physical host. Compute instance sizes with a high I/O performance indicator as noted in the table will have a larger allocation of the shared resources. Having a larger allocation of the shared resource will also result in more consistent I/O performance.
Compute Instance Size Extra Small Small Medium
CPU 1.0 GHz 1.6 GHz 2 x 1.6 GHz
Memory 768 MB 1.75 GB 3.5 GB
Instance Storage 20 GB 225 GB 490 GB
I/O Performance Low Moderate High
Cost Per Hour $0.04 $0.12 $0.24
Large
Extra Large
4 x 1.6 GHz
8 x 1.6 GHz
7 GB
14 GB
1,000 GB
2,040 GB
High
High
$0.48
$0.96
Benefits of Cloud Computing
BUSINESS DEMANDS TECHOLOGY DEMANDS WINDOWS AZURE PLATFORM OFFERS
Cost-effective solution to manage IT resources Less infrastructure to buy/configure and support Lower TCO Predictable cost
Lower costs
Efficiency
Stay Competitive
Innovation
Focus on delivering compelling software not on managing infrastructure Monetize new offering quickly without investment in billing and other enablement technologies. Speed of development Interoperability Leverage existing IP Simplified deployment Scale up or down as business needs change Go to market faster Reliable service SLAs Security Global data centers
Generate New Revenue Quickly
Agility
Reduced Risk
Reliability
Service Delivery Models
Infrastructure
(as a Service) Applications You manage Data Runtime Middleware O/S Virtualization Servers Storage Networking Managed by vendor
(On-Premise) Applications Data Runtime
(as a Service)
Platform
(as a Service) Applications Data Runtime Middleware O/S Virtualization Servers Storage Networking Managed by vendor Managed by vendor
Software
You manage
Applications Data Runtime Middleware O/S Virtualization Servers Storage Networking
You manage
Middleware O/S Virtualization Servers Storage Networking
PHP in Windows Azure
Web Role and IIS/FastCGI with Native Runtime
Service Instance
index.php
php -cgi
FastCGI IIS
Web Role Service Instance
SQL Database
bind port(x) http://instance:y http://instance:x
Service Bus
Access Control
http://app:80
Load Balancer
Fabric Controller
Table Storage
Blob Storage
Queue
Java and Tomcat in Windows Azure
Worker Role and Sub-Process Invoking Native Code
Service Instance
listen port(x)
index.jsp
JVM
Catalina
server.xml Sub-Process
Tomcat
new Process()
RoleEntry Point
bind port(x)
get runtime info
Worker Role Service Instance
http://instance:y
http://instance:x
SQL Database
Service Bus
Access Control
http://app:80
Load Balancer
Fabric Controller
Table Storage
Blob Storage
Queue