Windows Azure Introduction
Upcoming SlideShare
Loading in...5
×
 

Windows Azure Introduction

on

  • 15,800 views

presentation deck from March 2010 MSDN event in Irvine, CA

presentation deck from March 2010 MSDN event in Irvine, CA

Statistics

Views

Total Views
15,800
Views on SlideShare
15,414
Embed Views
386

Actions

Likes
23
Downloads
1,416
Comments
1

8 Embeds 386

http://127.0.0.1 100
http://digiman89.wordpress.com 89
http://blogs.msdn.com 61
http://www.slideshare.net 56
http://www.uxmagic.com 52
http://www.techgig.com 20
http://wpfdesign.blogspot.com 6
http://localhost 2
More...

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • Many of us have been working with software for years, and some of us even decades. As such, we have an implicit understanding of our environment… we know what kind of architectural patterns to apply and what kind of code to write for our environments that will work. We are delighted that we don’t have to involve ourselves in the nitty-gritty details of how a network load balancer is configured or what kind of firewall is required. We are happy that there are other non-application developers taking care of these details for us so that we can focus on the architectural design of our software and writing code to implement those designs.All this having been said… we certainly would all agree that our software environment has an influence on the style of code that we write… without understanding our environment (at least at the macroscopic level)… we would likely make many missteps in the design and coding of our software. It is for this reason that I am spending a brief amount of time telling you a little more about your environment… to help us design and write applications better for the cloud.Microsoft Data Centers are a big part of the Azure story. Microsoft is building large, sophisticated cloud data centers around the world to complement its existing data centers. Two cloud data centers are in operation in the U.S. in Chicago and San Antonio. In 2010 we’ll see European data centers in Dublin and Amsterdam and Asian data centers in Hong Kong and Singapore.
  • You may have heard the term “Software as a Service” or SaaS. There are several “as a service” terms associated with cloud computing: Infrastructure as a Service, or IaaS, is where you pay for infrastructure resources such as servers, storage devices, and network equipment. Platform as a Service, or PaaS, is where you pay for a platform that includes an operating system and application stack. PaaS is inclusive of IaaS. Software as a Service, or SaaS, is where you pay to use an application. SaaS is inclusive of both PaaS and IaaS.An example of PaaS is Windows Azure.An example of SaaS is Microsoft Exchange Online.
  • This reference chart may help us to recognize opportunities for using cloud computing within our own organizations or our vendors or customers.A new social networking sight may need a massive amount of scalability…A 911 call center may require that last “9” of reliability…A tax preparation package may require varying amounts of computational power, storage, and bandwidth…A hurricane relief site may need to launch on a moment’s notice and be available for a duration that is hard to predict at the onset of the disaster.A genome sequencing project or perhaps a search for extraterrestrial planets to live on in our future might require massive amounts of parallel processing power.A new online startup may need to begin business with little or no capital investment and fail fast with little or no financial lossSo with the terrific list of “great fits” … are there any “bad fits”? Well… yes… there are a few… at the present time…Frequently updated applications are not very good candidates. Primarily I say this because as a developer … the time that it takes to deploy is longer than if you had your own local on premise or hosted servers; however, you must take this with a grain of salt as you’ll have to compare it against the level of effort the you presently invest to make deployments in order to gauge the applicability of this advice.Applications needing external data storage are also not very good candidates at the present time.Of course, this is a moving target… and as cloud computing evolves further… even these bullets (and others like them) may move from the not-so-good list to the good-list. We are entering a new era of software development where we will once again be inspired and excited about our profession as software developers!
  • The Windows Azure Cloud Fabric is what provides all of this…We get multiple virtual server instances provisioning on-the-fly.We get failure detection when one or more of these virtual server instances fails. Failures are rare, but when they happen, the Windows Azure Cloud Fabric will automatically spin up new server instances to replace failing ones.It’s the Windows Azure Cloud Fabric that controls how many instances are created and what role each instance plays. Of course it takes its queues from the configuration data that we supply.The Windows Azure Cloud Fabric also automatically configures load balancing for multiple service instances… and it does so in a very dynamic and flexible manner… allowing quick increases and decreases in available service capacity.
  • There are two core roles that server instances play in Windows Azure.The first role is the Web Role. A web role is used for web application programming in ASP.NET or PHPThe second role is the Worker Role. A worker role is used for performing work on behalf of the web role.In addition to the .NET languages, Worker Roles may be written in Ruby or Java.Worker Roles are used to improve scalability by increasing parallelism and asynchronicity.They are often used for background work.
  • There are two core roles that server instances play in Windows Azure.The first role is the Web Role. A web role is used for web application programming in ASP.NET or PHPThe second role is the Worker Role. A worker role is used for performing work on behalf of the web role.In addition to the .NET languages, Worker Roles may be written in Ruby or Java.Worker Roles are used to improve scalability by increasing parallelism and asynchronicity.They are often used for background work.
  • Let’s take a closer look at the details of service instance roles…Web Roles define a single HTTP and single HTTPS endpoint for external clients to use. These endpoints are exposed to the public Internet.Worker Roles are not exposed to the public Internet. They can define any number of internal endpoints for communication transmission via TCP or HTTP.Worker Roles may also receive communications from Windows Azure Storage Queues; likewise, Web Roles can communicate with Worker roles using the same.Both Web and Worker Roles can make outbound communication calls to publically accessible resources on the Internet using the HTTP or HTTPS protocols or by making .NET Framework Class Library socket connections.Both Web and Worker Roles can access Windows Azure Storage using RESTful API’s or the Windows Azure Storage Client Library which is part of the Windows Azure SDK.
  • As was hopefully evident, the Azure developer experience leverages what you’re already familiar with.If you’re a .NET developer and your favorite technologies are ASP.NET, Silverlight, Windows Communication Foundation, or SQL Server you’re going to be able to use those same technologies in the cloud.You also continue to use familiar tools including Visual Studio and SQL Server Management Studio.Azure isn’t just for .NET developers, however. Most of the services in the cloud are accessible as RESTful HTTP calls. That means Java developers, PHP developers, Python developers can also use Azure.For .NET developers, the Windows Azure SDK and tools for Visual Studio gives you a cloud simulator. The Development Fabric simulates the hosting environment and Developer Storage along with SQL Express simulate cloud data storage. This means you can develop cloud applications locally, even when offline.
  • To start building applications for the Microsoft Windows Azure cloud, you will need to download and install the Windows Azure SDK.You’ll find the link for downloading this in the Windows Azure Platform developers area located at the URL on this slide.You’ll also need to setup your Windows Azure Platform account, which you can do from the same page.The process is simple and not very interesting to developers, so I’m not going to walk through it. The only information that you will need is that when you create your Windows Azure account you will associate a Windows Live ID with it for authentication purposes. You must also provide credit card information for billing purposes.NOTE to presenters: you will need to setup your Windows Live and Windows Azure accounts ahead of time.
  • The Windows Azure SDK will install several things that we need to create, test, and deploy new Windows Azure Cloud Services.First, we get a new project template for Visual Studio to create Web and Worker Role projects with. We will demonstrate these shortly…Second, we get the Local Developer Fabric to simulate our applications running in the cloud without ever having the bits leave our desktop. We can think of the Local DevFabric as “Cassini for the Cloud”…Third, we get the Local Development Storage Services to simulate the highly scalable data storage options in the cloud… Blobs, Tables, and Queues. Just to be clear… it does not install SQL Azure.. We’ll talk more on that in a bit.Fourth, support for debugging our cloud services. We can attach our Visual Studio debugger to our applications through the Local Developer Fabric, and then debug them just as we do any other kind of .NET application.Finally, we get a packaging tool, which is integrated into Visual Studio to pull all of our content and binaries together and prepare a Cloud Service package ready to be deployed to Windows Azure. In Visual Studio, this tool also prepares the Windows Azure configuration file.For now, we can think of SQL Azure as Microsoft SQL Server 2008 in the cloud. No SDK is required because SQL Express 2008 or SQL Server 2008 can be used for this purpose. Of course we may have existing database tools that we use for database design and development and all of those tools are still very usable here. We design and build our databases locally, and then we deploy those databases to the SQL Azure database server in the sky.
  • When you create your first Cloud Application, you might be confused when Visual Studio offers you to chose roles for your cloud service application from the 4 roles it offers. If you look closely though, you will see that are really only two roles,and one of those roles simply comes in three flavors. Visual Studio is just providing you with projects that make appropriate Framework Class Library references based on what you will be using the Web Role for.The Web Role comes in three flavors:ASP.NET Web Role – for developing ASP.NET Web Applications (including those using Silverlight).WCF Service Web Role – for developing Windows Communication Foundation applications.CGI Web Role – for developing FastCGI Applications with PHPThe Worker Role is just the Worker Role
  • Windows Azure provides hosting and storage and management.The Windows Azure data center infrastructure is called the Fabric and manages instances of your applications. The Fabric detects if something goes wrong and allocates replacement resources if necessary.You can host HTTP-accessed software such as web applications and web services in Windows Azure. You can also host background worker software.Windows Azure also provides non-database storage. This comes in 3 forms: blobs, queues, and data tables. Blobs are similar to files, queues are similar to enterprise queues, and data tables are record-based storage.The Windows Azure management portal allows you to create projects, deploy software, change number of instances, upgrade software, and promote between Staging and Production environments.
  • Okay… That’s all about SQL Azure for now… we’ll come back to this topic in Session 3…Keep in mind that SQL Azure is a separate product from Windows Azure…. And that Windows Azure includes Windows Azure Data Storage, which we are going to talk about now. We will be using the Windows Azure Data Storage directly in demos, so these slides will provide more of a brief and high level overview.To get Windows Azure Data Storage setup, we simply create a new Storage Account from the Windows Azure Portal.
  • Also provided on our data storage setup screen is the Account Name and a Primary and Secondary Access Key.Our Account name uniquely identifies our Data Storage locationThe Access Keys are a small chunk of encrypted data that prove our identity to Windows Azure Data Storage. We’ll use the Primary Access Key to access and update data stored in Data Storage.
  • It’s time now to introduce Windows Azure Data Storage Blobs.Blobs are for storage of unstructured data.We partition our data by creating Blob containers which we give names to.We can create an unlimited number of Blob Containers.We then simply place our blob data into the blob containers, supplying a unique identifier.When we want to retrieve our data, we simply provide the container and the unique identifier.
  • This is what the Windows Azure Management Tool MMC looks like… we’ll see it used in a demo shortly.
  • Another very effective tool for your Windows Azure toolbox is the Azure Storage Explorer.You can download this tool from the CodePlex site. I will also show you this tool as well.
  • Windows Azure Data Storage Tables are how we get massively scalable and highly available databases.Although there are some similarities, these tables are very different from relational database tables.Data in Windows Azure Data Storage Tables is semi-structured; The concept of a Windows Azure Data Storage Table is similar to how a spreadsheet is used to provide tabularized organization to data without strongly enforcing data cohesion.… Data is indexed in Tables for high performance retrieval, but there are no relationships between Tables.The tables support ACID transactions over single entities and rich queries over the entire table.
  • The PartitionKey combined with the RowKey uniquely identifies an entity in a table.
  • We have included this feature comparison table in anticipation of your likely questions about differences between using a relational database table as you may be currently doing with your SQL Server databases and the new Windows Azure Tables included in Windows Azure.
  • Windows Azure Developer Platformhttps://www.windowsazure.com/en-us/develop/overview/Channel 9 videoshttp://channel9.msdn.com/azureWindows Azure Platform Training Kithttp://www.azure.comWindows Azure SDKhttp://www.microsoft.com/windowsazure/developers/
  • http://www.monafoundation.org/project/Teaching-Kids-Programming/22

Windows Azure Introduction Windows Azure Introduction Presentation Transcript

  • Introduction to Microsoft Windows Azure
    Lynn Langit
    @llangit
    http://blogs.msdn.com/SoCalDevGal
  • It’s an Operating System
    In the Could.
    Simple Answer?
  • Microsoft Data Centers
    Vision
    Go Inside
    Energy Efficient
    Containers
    North American Data Centers
    European Data Centers
    Asian Data Centers
    Dublin
    Chicago
    Amsterdam
    San Antonio
    Hong Kong
    Singapore
    View slide
  • View slide
  • Demo
    Live Windows Azure Applications In The Cloud
    • http://lynntest.cloudapp.net/
    • http://lynnguestbook.cloudapp.net/Default.aspx
    • http://lynnsqlazure.cloudapp.net/Default.aspx
  • IaaS, PaaS and SaaS
    Infrastructure as a Service
    Platform as a Service
    Software as a Service
    SaaS
    ApplicationsPackaged Software
    PaaS
    PlatformOS & Application Stack
    PlatformOS & Application Stack
    IaaS
    InfrastructureServers · Storage · Network
    InfrastructureServers · Storage · Network
    InfrastructureServers · Storage · Network
  • Network
    Upgrades
    Installing OS
    Routers
    Zero downtime
    Patching
    Hard drive failure
    Memory
    Storage
    Server acquisition
    Load balancers
    Environments
  • Where the Cloud is Compelling
  • Main Components
    • Cloud Fabric
    • Web Roles
    • Worker Roles
    • Storage (Including SQL Azure)
    • Dev Fabric
    • App Fabric (Access Control, Service Bus)
  • Windows Azure Cloud Fabric
    Multiple virtual instances
    Easy provision of applications
    Detect failures
    Spin up new instances to replace the failed ones
    How many instances and what role they will play
    Load balances and DNS
    Elasticity of the service… scaling up/down number of instances
  • Windows Azure Roles
  • Windows Azure Roles
    Web Role
    for web application programming in ASP.NET or PHP
    Worker Role
    for performing work on behalf of the web role
    may be written in .NET, Ruby, Java
    to improve scalability by increasing parallelism and asynchronicity
    used for background work
  • Windows Azure Role Details
    Web Roles
    singleHTTP endpoint and a single HTTPS endpoint for external clients
    Worker Roles
    internalendpoints for HTTP, TCP
    may receive work from Windows Azure Storage Queues
    Web and Worker Roles
    can make outbound HTTP/S or .NET Framework class library socket connections to Internet accessible resources
    can access Windows Azure Storage services via REST APIs or the Windows Azure Storage Client Library
  • Developer Experience
    Leverage Existing Skills in .NET, SQL Server, WCF
    Use Familiar tools – Visual Studio, SSMS
    RESTful HTTP cloud services, supports PHP, Python
    Cloud apps can be developed locally / offline
    SDK Cloud Simulator – Dev Fabric, Dev Storage
  • The Windows Azure SDK
  • Windows Azure SDK Features
    C# and VB Visual Studio project templates
    Windows Azure Cloud Service solution with multiple roles.
    Tools to manage and configure roles
    Local Development Fabric
    Local Development Storage services
    Local Cloud Service debugging support
    Cloud Service package and deployment builder
    Note:
    No SDK Required for SQL Azure
  • Windows Azure Roles in Visual Studio
  • Windows Azure DevFabricLocal Developer Simulation of AppFabric
    Simulated “Cloud Experience” for Development
    Routes cloud requests to local machine
    Simulates data storage with local SQL server database
    Azure SQL simulated with local SQL Server database
    Compute
    Storage
    Management
    Management
    Relational data
    Connectivity
    Access control
  • MSDN / BizSpark Offer
  • Demo
    Building Our First Cloud Application
    With Microsoft Windows Azure
  • BREAK!
  • Storage
    Blobs – Large Data Store
    Queues – Background work processing
    Tables – Very Fast / Scalable Storage
    Drives – NTFS Formatted Page Blobs
    SQL Azure – Relational SQL in the Cloud
  • Windows Azure AppFabric
    Service Bus
    Access Control Service
    Management
    Compute
    Storage
    Management
    Management
    Relational data
    Connectivity
    Access control
  • Getting Started with Windows Azure Data Storage
  • Windows Azure Data Storage
  • Account Name / Key
    AccountName
    A unique name identifying the Azure Data Storage
    AccountKey
    A blob of encrypted data used for authentication
  • Windows Azure Data Storage Blobs
    Unstructured data storage
    Partitioned by container
    Unlimited containers
  • Examining Windows Azure Data Storagewith Windows Azure Management Tool
    “The Windows Azure Management Tool was created to manage your storage accounts in Windows Azure. Developed as a managed MMC, the tool allows you to create and manage both blobs and queues. Easily create and manage containers, blobs, and permissions. Add and remove queues, inspect or add messages or empty queues as well.”
    http://code.msdn.microsoft.com/windowsazuremmc
  • Azure Storage Explorer
  • Azure Storage Explorer
    “Azure Storage Explorer is a useful GUI tool for inspecting and altering the data in your Azure cloud storage projects including the logs of your cloud-hosted applications. All three types of cloud storage can be viewed: blobs, queues, and tables.”
    http://azurestorageexplorer.codeplex.com/
  • Examining Windows Azure Data Storage
  • Windows Azure Data Storage - Tables
    provides scalable, available, and durable structured (or semi-structured) storage in the form of tables.
    contain entities, and the entities contain properties.
    are scalable to billions of entities and terabytes of data, and may be partitioned across thousands of servers.
    support ACID transactions over single entities and rich queries over the entire table.
    Simple and familiar .NET and REST programming interfaces are provided via ADO.NET Data Services.
    http://go.microsoft.com/fwlink/?LinkId=153401
  • Windows Azure Data Storage – Tables (Terms Part 1)
    Table – contains a set of entities.
    Entity (Row) – Entities are the basic data items stored in a table.
    Property (Column) – This represents a single value in an entity.
    PartitionKey– The first key property of every table. The system uses this key to automatically distribute the table’s entities over many storage nodes.
  • Windows Azure Data Storage – Tables (Terms Part 2)
    RowKey– A second key property for the table. This is the unique ID of the entity within the partition it belongs to.
    Timestamp – Every entity has a version maintained by the system.
    Partition – A set of entities in a table with the same partition key value.
    Sort Order – There is a single index provided for the CTP, where all entities in a table are sorted by PartitionKey and then RowKey
  • Next Up SQL Azure…
  • SQL Azure and Windows Azure Table Comparison
    Windows Azure Tables
    SQL Azure Tables
    Semi-structured
    Loosely typed
    Non-Relational (Not RDMS)
    Massively scalable
    Fully structured
    Strongly typed
    Relational (RDMS)
    Highly scalable
  • Summary
    • What is Azure
    • Infrastructure
    • Web Roles
    • Worker Roles
    • Storage (Including SQL Azure)
    • Cloud Fabric, Dev Fabric, App Fabric
  • Resources – Windows Azure Platform
    Windows Azure Developer Platformhttp://www.microsoft.com/windowsazure/developers/
    Channel 9 videoshttp://channel9.msdn.com/azure
    Windows Azure Platform Training Kithttp://www.azure.com
    Microsoft PDC 2009http://microsoftpdc.com/
    Windows Azure SDKhttp://www.microsoft.com/windowsazure/developers/