Remarks by Chief Software Architect Ray Ozzie, Corporate Vice President, Cloud Infrastructure Services, Amitabh Srivastava; Senior Vice President, Server and Tools Business, Bob Muglia; Corporate Vice President, Microsoft Online, Dave Thompson.
Oct. 27, 2008, Los Angeles
ANNOUNCER: Ladies and gentlemen, please welcome chief software architect, Microsoft Corporation, Ray Ozzie. (Cheers, applause.)
RAY OZZIE: Thank you. Thank you. Good morning! Welcome to PDC. Great to be here today. It's going to be an exciting week, a week that I've personally been looking forward to for quite some time.
In many ways it's a turning point for Microsoft as for the first time we're able to talk end-to-end about what we've been working on for the past couple of years. It's the transformation of our software, it's the transformation of our strategy and our offerings across the board to fundamentally embrace services.
|Watch an on-demand Webcast of Microsoft chief technology officer Ray Ozzie's keynote speech at Microsoft's PDC 2008, where he introduced Windows Azure, the "Windows in the cloud" service foundation |
|Watch in stand-alone player|
Before I do anything else, I'd like to thank you for what I know is a significant investment of your time and attention. From the one-person startup to the Fortune 500 enterprise, you are an incredibly diverse set of developers representing thousands of organizations worldwide. You build a broad range of infrastructure and solutions that power businesses and organizations of all kinds. You build the software and the Web sites that are used by hundreds and hundreds of millions of us each and every day. Without your creativity and your talent, there would be no Microsoft. So, thank you for betting on us and our work, and thank you for coming to PDC08. (Applause.) No, thank you.
For a number of years I sat with you right out there in that seat right next to you as a developer, as an ISV (Independent Softare Vendor), as a partner, at one point as a competitor. I'd take notes during the speeches, I'd watch the demos really, really closely, I'd try to pick up on what might become a major platform or technology trend, because every time there's been a major platform shift in our industry, it's turned into new opportunity and new growth for my apps and my business.
As an ISV I always had a broad range of choice in platforms, particularly on the server side, and there's never been more choice in platforms than there is for you today.
But even with a range of choices, there were three things that always kept me placing bets on Microsoft, three things that always kept me as a developer coming back to PDC.
First, Microsoft always builds its own key apps for its platform. Without apps to verify a platform, there can be some significant gaps in that platform, and so this has always provided a natural safeguard to ensure that the platform would really work end-to-end for my customers.
Second, because of the sheer scope of Microsoft's reach, the company's key platforms generally have a very high likelihood of achieving critical mass, and so I could count on them as a stable foundation, enabling me to focus more of my energy on the app that I was trying to deliver.
Third, I always knew that Bill and Steve and that Microsoft have always viscerally understood that in order for them to be successful that I as an ISV, as a partner, that my business also had to be successful.
Today, we're in the early days of a transformation towards services across the industry, a change that's being catalyzed by a confluence of factors, by cheap computing and cheap storage, by the increasing ubiquity of high bandwidth connectivity to the Internet, by an explosion in PC innovation from the high-end desktop to the low-end netbook, by an explosion in device innovation, Media Players, Smart Phones, net-connected devices of all shapes and sizes.
At PDC this week you'll hear our take, Microsoft's take on this revolution that's happening in our industry's software foundation, and how there's new value to be had for users, for developers, for businesses, by deeply and genuinely combining the best of software with the best aspects of services.
Today and tomorrow morning, you're going to hear us map out our all up software plus services strategy end-to-end. You're going to see how this strategy is coming to life in our platforms, in our apps and in our tools. You're going to see some great demos. You'll get software to take home with you, and you'll get activation codes for our new services.
So, I'll be with you here for the next couple of days. Tomorrow, I'll be up here and we'll talk about the front-end of our computing experiences. We'll focus on the innovations in our client OS and on tools and runtimes and services that enable a new generation of apps that span the PC, the phone, and the Web.
But today we'll be focusing on our back-end innovation, platforms, infrastructure, and solutions that span from on-premises servers to services in the cloud to datacenters in the cloud.
Back-End Innovation: Platforms, Infrastructure and Solutions
You know, over the past couple of weeks I've ready some pretty provocative pieces online taking the position that this cloud thing might be, in fact, vastly overblown. Some say: What's the big deal and What's the difference between the cloud and how we're now treating computing as a virtualized utility in most major enterprises.
And in a sense these concepts have been around for what seems like forever. The notion of utility computing was pioneered in the '60s by service bureaus like TimeShare and Geistgo.
Virtualization was also pioneered in that same era by IBM and its VM370 took virtualization very, very broadly into the enterprise datacenter.
Today, that same virtualization technology is making a very, very strong comeback, driven by our trend toward consolidation of our PC-based servers. With racks of machines now hosting any number of Virtual Servers, computing is looking more and more like an economical shared utility, serving our enterprise users, apps and solutions.
But today, even in the best of our virtualized enterprise datacenters, most of our enterprise computing architectures have been designed for the purpose of serving and delivering inwardly facing solutions. That is, most of our systems and networks have been specifically built to target solutions for our employees, in some cases for our partners, hundreds or thousands or perhaps tens of thousands of concurrent users; desktops, datacenters, and the networks between them all scoped out, audited, controllable and controlled by an IT organization skilled in managing the enterprise as the scope of deployment.
But more and more the reach and scope that's required of our systems has been greatly expanding. Almost every business, every organization, every school, every government is experiencing the externalization of IT, the way IT needs to engage with individuals and customers coming in from all across the Web.
These days, there's a minimum expectation that customers have of all of our Web sites delivering product information, customer support, direct fulfillment from the Web.
But the bar is being raised as far richer forms of customer interaction are evolving very, very rapidly. Once on our Web sites, customers increasingly expect to interact with one another through community rating and ranking, through forms with reputation, through wikis and through blogs.
Companies are coming to realize that regardless of their industry, the Web has become a key demand generation mechanism, the first place customers look, every organization's front door.
Now more than ever, the richness, reach and effectiveness of all aspects of a company's Web presence has become critical to the overall health of the business.
And company's IT systems now have to deal with far more outside users, their customers, than the users that they serve within their own four walls.
As a result, one of the things that's begun to happen over the course of the past few years is that the previously separate roles of software development and operations have become incredibly enmeshed and intertwined. IT pros and developers are now finding themselves with the need to work closely together and to jointly team and jointly learn how to design and build and operate systems that support millions or tens of millions of customers or potential customers spread across the globe, clicking through ads, doing transactions, talking with the company, and talking with each other.
For some customers' Web-facing systems the demand that they see on their Web sites might be seen in peaks and valleys. It might shoot up during the holidays or new product introductions or during product recalls or when good things or bad things are going on in the blogosphere.
And so today, at great expense many companies tend to add ample spare capacity for each of the apps for which traffic must scale, more floor space, more hardware, more power, more cooling, more experts on networks, more operations personnel.
And a company's Web-facing challenges can go much further than that if the systems are housed in a single location and you have a variety of failures such as cable cuts, earthquakes, power shortages; you know, any of these things could cause critical continuity issues that could end up being huge for the business.
The answer, of course, is to have more than one datacenter, which helps with load balancing and redundancy. But doing this is extremely tough. It requires a good deal of human expertise in loosely coupled systems design, in data replication architectures, in networking architectures and more.
And having just two datacenters, while challenging, may not be enough. Far away customers experience network latency issues that can impact the experience or the effectiveness or the user satisfaction with the Web site.
So, to serve these global customers you may need to locate at least datacenters around the world, and this may mean dealing with a whole host of issues related to your data or the communications between the users on your Web sites that's going on outside the borders: political issues, tax issues, a variety of issues related to sovereignty and so on.
And so reflecting back on the question I asked earlier for developers or IT professionals, is this cloud thing really any different than the things that we've known in the past, the answer is absolutely and resoundingly yes. Things are materially different when building systems designed to serve the world of the Web as compared with the systems designed to serve those living within a company's own four walls.
And there's a very significant reason why it might be beneficial to have access to a shared infrastructure designed explicitly to serve the world of the Web, one having plenty of excess capacity, providing kind of an overdraft protection for your Web site, one built and operated by someone having the IT expertise, the networking and security expertise, all kinds of expertise necessary for a service that spans the globe.
High-Scale Internet Services Infrastructure: A New Tier in Computing Architecture
A few years ago, as it happens, we at Microsoft embarked upon a detailed examination of our own Web-facing systems, systems serving hundreds of millions of customers worldwide using MSN, systems delivering updates to hundreds of millions of Windows users worldwide, systems that are visited by Office users every time they press the help key, systems such as MSDN serving millions of developers, you, worldwide, and many, many more systems.
Each one of these systems had grown organically on its own, but for all of them together across all of them we built up a tremendous amount of common expertise, expertise in understanding how and to what degree we should be investing in datacenters and networks in different places around the world, given geopolitical issues and environmental issues and a variety of other issues; expertise in anticipating how many physical machines our various services would actually need and where and when to deploy those machines, and how to cope with service interdependencies across datacenters and so on; expertise in understanding how to efficiently deploy software to these machines and how to measure, tune, and manage a broad and diverse portfolio of services; expertise in keeping the OS and apps up to date across these thousands of machines; expertise in understanding how to prepare for an cope with holiday peaks of demand, especially with products like Xbox Live and Zune.
All in all over the years we've accumulated lots and lots of high scale services' expertise, but all that knowledge, technology and skill, tremendous and expensive as that asset is, wasn't packaged in a form that could be leveraged by outside developers or in a form that could benefit our enterprise customers. It certainly wasn't packaged in a form that might be helpful to you.
Also at any industry level we'd come to believe that the externalization of IT in extending all our enterprise systems to a world of users across the Web, that this high scale Internet services infrastructure is nothing less than a new tier in our industry's computing architecture.
The first tier, of course, is our experience tier, the PC on your desk or the phone in your pocket. The scale of this first tier of computing is one, and it's all about you.
The second tier is the enterprise tier, the back-end systems hosting our business infrastructure and our business solutions, and the scale of this tier is roughly the size of the enterprise, and to serve this tier is really the design center of today's server architectures and systems management architectures and most major enterprise datacenters.
The third tier is this Web tier, externally facing systems serving your customers, your prospects, potentially everyone in the world. The scale of this third tier is the size of the Web, and this tier requires computation, storage, networking, and a broad set of high level services designed explicitly for scale with what appears to be infinite capacity, available on-demand, anywhere across the globe.
And so a few years ago, some of our best and brightest, Dave Cutler, Amitabh Srivastava, and an amazing founding team, embarked upon a mission to utilize our systems expertise to create an offering in this new Web tier, a platform for cloud computing to be used by Microsoft's own developers, by Web developers, and enterprise developers alike.
Some months after we began to plan this new effort, Amazon launched a service called EC2, and I'd like to tip my hat to Jeff Bezos and Amazon for their innovation and for the fact that across the industry all of us are going to be standing on their shoulders as they've established some base level design patterns, architectural models and business models that we'll all learn from and grow.
In the context of Microsoft with somewhat different and definitely broader objectives, Amitabh, Dave and their team have been working for a few years now on our own platform for computing in the cloud. It's designed to be the foundation, the bedrock underneath all of Microsoft's service offerings for consumers and business alike, and it's designed to be ultimately the foundation for yours as well.
Announcing Windows Azure
And so I'd like to announce a new service in the cloud, Windows Azure. (Cheers, applause.) Windows Azure is a new Windows offering at the Web tier of computing. This represents a significant extension to our family of Windows computing platforms from Windows Vista and Windows Mobile at the experience tier, Windows Server at the enterprise tier, and now Windows Azure being our Web tier offering, what you might think of as Windows in the cloud.
Windows Azure is our lowest level foundation for building and deploying a high scale service, providing core capabilities such as virtualized computation, scalable storage in the form of blogs, tables and streams, and perhaps most importantly an automated service management system, a fabric controller that handles provisioning, geo-distribution, and the entire lifecycle of a cloud-based service.
You can think of Windows Azure as a new service-based operating environment specifically targeted for this new cloud design point, striking the best possible balance between two seemingly opposing goals.
First, we felt it was critical for Windows developers to be able to utilize existing skills and existing code, for the most part writing code and developing software that leverages things that you might already know. Most of you, of course, would expect to be able to use your existing tools and runtimes like Visual Studio and .NET Framework, and, of course, you can.
But in developing for something that we would brand Windows, you'd also expect a fundamentally open environment for your innovation. You'd expect a world of tools, languages, frameworks, and runtimes, some from us, some from you, some from commercial developers, and some from a vibrant community on the Web. And so being Windows, that's the type of familiar and developer friendly environment that we intend to foster and grow.
But at the same time, even with that familiarity, even in trying to create a familiar environment for developers, we need to help developers recognize that this cloud design point is something fundamentally new, and that there are ways that Windows Azure needs to be different than the kind of server environment that you might be used to.
Whether Windows, UNIX, Linux or the Mac, most of today's systems and most of today's apps are deeply, deeply rooted in a scale-up past, but the systems that we're building right now for cloud-based computing are setting the stage for the next 50 years of systems, both outside and inside the enterprise.
And so we really need to begin laying the groundwork with new patterns and practices, new types of storage, model-based deployment, new ways of binding an app to the system, app model and app patterns designed fundamentally from the outset for a world of parallel computing and for a world of horizontal scale.
Today, here at PDC, for those of you in this audience, Windows Azure comes to life. As I said before, and as you'll hear about more in a few minutes, Windows Azure is not software that you run on your own servers but rather it's a service that's running on a vast number of machines housed in Microsoft's own datacenters first in the U.S. and soon worldwide. It's being released today as a Community Technology Preview with the initial features being only a fraction of where you'll see from our roadmap that it will be going.
Like any of our other high scale Internet services, Windows Azure's development and operational processes were designed from the outset for iteration and rapid improvement, incorporating your feedback and getting better and better in a very, very dynamic way.
As you'll see today, we're betting on Azure ourselves, and as the system scales out, we'll be bringing more and more of our own key apps and key services onto Windows Azure because it will be our highest scale, highest availability, most economical, and most environmentally sensitive way of hosting services in the cloud.
The Azure Services Platform
A few of those key services, when taken together with Windows Azure itself, constitute a much larger Azure Services Platform. These higher level developer services, which you can mix and match ala carte, provide functions that as Windows developers you'll find quite valuable and familiar and useful.
Some of you may recall hearing about SQL Server Data Services, SSDS, an effort that we introduced earlier this year at our MIX conference. We're planning to bring even more of the power of SQL Server to the cloud, including SQL Reporting Services and SQL Data Analysis Services; and as such, this offering is now called simply SQL Services, our database services in the cloud.
Our .NET services subsystem is a concrete implementation of some of the things that many of you are probably already familiar with that exist within the .NET Framework, such as workflow services, authorization services and identity federation services.
The Live services subsystem, which you'll hear about tomorrow, provides an incredibly powerful bridge that extends Azure services outward to any given user's PCs, phones, or devices through synchronized storage and synchronized apps.
SQL Services, .NET services, and Live services, just like Windows Azure, are all being included as a part of the Azure services platform CTP being made available to you right here at PDC.
As you are well aware, Dynamics CRM and SharePoint are two of our most capable and most extensible platforms for business content, collaboration, and rapid solutions. And later this morning, you'll hear about how these two platforms also fill a very important role in the overall Azure Services Platform.
Windows Azure Demo: Amitabh Srivastava
So enough of this high level talk, let's get into some details, let's get into some demos. I would like to bring up Amitabh Srivastava, Vice President of our Windows Azure Team, to go into a bit more detail and to demonstrate the capabilities of Windows Azure. After that, you're going to have a chance to hear from Bob Muglia, Senior Vice President of our Server and Tools Division. Bob is going to take it up a notch, he'll talk about the Azure Services Platform from the perspective of a business developer developing apps and solutions that extend from the enterprise data center and into the cloud. And, finally, Dave Thompson, Vice President of our Business Online Services Group, will talk about SharePoint Services, and Dynamics CRM Services, and about how we're betting on the Azure Services Platform for all of our online branded applications and services provisions. He's also going to talk about some of the key issues that we've had to tackle in transforming our own enterprise apps to be services in the cloud.
So let's get going. Let me introduce Amitabh Srivastava.
Amitabh, you're up. (Applause.)
AMITABH SRIVASTAVA: Thank you, Ray, and good morning PDC. It's my pleasure to finally discuss Windows Azure, our Project Red Dog that Dave Cutler and I have been leading quietly for some time. Dave is a kernel guy and what you have there is the kernel of the Microsoft Cloud Platform. Kernels don't demo well. They don't have the glitz, or the glitter, but a good one allows others to create killer apps, and that's exactly what we have done. We have built a platform to allow you to build your killer apps.
Let me discuss the details of what makes Windows Azure special. Windows Azure is a scalable hosting environment for you to deploy your apps in our cloud. Whether your app needs a fraction of a server or many servers, Windows Azure will scale appropriately. Each browser is virtualized with a very efficient hypervisor. Our hypervisor has been optimized for the cloud design point using the latest hardware virtualization support. Security is key and we employ multiple levels of security ranging from code active security in managed code to IP printers, firewalls, Wi-LAN, and of course the hypervisor-enforced isolation.
Unlike traditional OSs that manage just a single machine, Windows Azure as an operating system for the cloud manages the entire global data center infrastructure. The global data center infrastructure is vast and complex. It ranges from processors to motherboards to racks to containers to data centers distributed across the globe. Windows Azure manages all this complexity for you. In addition, it provides a layer of abstraction like the device driver model in a traditional OS to ease your programming burden.
Managing apps in this complex environment is challenging. For example, how do you upgrade your apps without bringing it down or degrading its performance, or how do you upgrade an underlying OS without degrading your app's performance of bringing it down. Windows Azure can handle both of these scenarios. Windows Azure separates the apps from the underlying OS so both the app and the OS are managed separately. In fact, at the heart of Windows Azure is our fabric controller, which manages the lifecycle of your service from deployment to upgrade and configuration changes. Windows Azure, the fabric controller views all the data center as fabric or shared hardware resources that can be managed and shared with all the services that run there. The fabric controller maintains the health of your service. When you want to change your service, you specify the desired M State and the fabric controller very carefully makes the necessary changes.
The fabric controller manages services, not just servers.
This is a crucial point because this allows us to automate the lifecycles of a service. To guide the fabric controller, you specify a service model which defines the architecture of your service. The service model contains few high level abstractions. For example, a service consists of roles, roles are a piece of code, rows talk to each other through channels which are switches and load balancers. Services talk to each other through interfaces, and the service model also contains configuration settings like the number of instances for a particular role. So let us look at and using these simple constructs, you can compose complex service models to model enterprise apps.
Let us look at a few service models. The service model that you see on the screen is a service model for a simple service that has two roles, one Web front end role, and one asynchronously connected back end role. This is a typical pattern for Internet services. The next service model is a service model of our own storage service. And this next one is a service model of a component of the next generation of Live Meeting. Internally all these service models as stored as an XML file which means they can be generated and processed by any tool.
Microsoft takes modeling across the whole platform very seriously and you will hear Bob Muglia talk about that later. So when you interact with Windows Azure you provide two things, one, obviously, is the code for your service; and the other is the service model that defines the architecture of your service that guides the fabric controllers to automatically manage the lifecycle of your app.
In today's world services are expected to deliver 24/7 availability. Windows Azure strives for this in two important ways. First, all our components are built to be highly available. Fabric controller and storage system are built in a highly redundant and a four-quadrant way. No single processor are a disk failure. In fact, no double failure of these components can bring either of these services down. For massive scale, our storage system partitions and replicates the data across multiple machines, possibly thousands of machines, using adaptive replication, caching, automatic load balancing, our storage systems can maintain high availability under varying loads with no user intervention.
You can easily build your highly available service by relying on our highly available subsystems. In addition, our fabric controller will orchestrate scaling and maintain the health of your service. This allows you to concentrate on your business logic. We provide our desktop development environment, you can write, check and debug your code on your desktop machine using familiar Visual Studio technologies. There is no need to deploy to the cloud just for initial testing. We are developers ourselves, we used exactly the same tools in developing Windows Azure.
Demo: Deploying a Service in Windows Azure
Windows Azure leverages Microsoft's current tools to ensure your skills transfer to the cloud. You get Visual Studio, ASP.net, and all the .NET programming languages. Windows Azure works both with managed and native code. Deep Visual Studio integration makes development a familiar and a fantastic experience. No discussions of our developer platform is complete without a demo of the most famous program in computer science, and that is Hello World. So I am going to invite Steve Marx to come on and show how to build and deploy a service in Windows Azure.
STEVE MARX: Thanks so much. And I love the shoes, Amitabh.
AMITABH SRIVASTAVA: I love your shoes too.
STEVE MARX: They're fantastic.
Hi, welcome to PDC. I'm absolutely delighted to be here today. I'm going to show you just how simple it can be to develop and deploy an application that's built on Windows Azure. So here I have a machine that's already got the Windows Azure SDK installed. So within Visual Studio I have these four new cloud templates, and which is the Web cloud template, and call it Hello Cloud.
So what did that template do for me? It gave me two projects within my solution. Now this top project is information about my cloud app. So it's got the architecture of my application, and it has some application specific configuration settings. Under that, we have a project that should be very familiar. This is just a standard ASP.net Web application. There's nothing new here. So all of my skills as an existing ASP.net developer will transfer directly to using the cloud. So let me show off my impressive ASP.net skills by typing some text. We're going to give a title of Hello Cloud. And I'm going to actually put a label here that I'm going to fill in at runtime called a greeting label, and we'll put some text in there.
So and the code behind for this, standard ASP.net code behind, I'm going to just set the text for that greeting label to Hello PDC. Now the reason I'm doing that is that I want to show you this offline environment that we have. So one of the things you might ask is, how do I debug these things, how do I do my testing. I'm just going to set a breakpoint, and I'm going to press F5 which in Visual Studio means run with debugging. And just like in ASP.net, you can use the development Web server that's included in Visual Studio to test your apps offline. With Windows Azure, you can use what I like to call the cloud on your desktop, and do the same thing. So this is a complete simulation of what's up in the cloud running offline on my laptop. That means I can use all of the APIs and services that will exist in the Windows Azure cloud while I'm doing development.
So here you see we've hit that breakpoint, I can look at locals, inspect variables, take a look at the call stack, anything that I would do typically as a developer in Visual Studio to debug my app. I'm going to just press F5 to continue running, and here we see my impressive ASP.net, Hello PDC, running locally.
So now that I've done all that testing and debugging locally, how do I actually deploy this to the Internet. Well, let me close this and I'll show you exactly how it's done. Back in my solution, I'm just going to choose the publish option, and publish is going to repackage my application so that it's ready to be deployed, and it's going to take me directly to the Windows Azure Development Portal. Now here I can view and maintain all of my running projects, but I can also create new ones. So let's click new project, we'll create a hosted service, and we'll call it Hello PDC, and I'll choose a friendly DNS name. Now we provide a .cloudapp, .net DNS name for you, but of course you could map any DNS that you own to your new application. I'll press create, and at this point we're going to be ready to actually deploy these two files that were created by Visual Studio. Let me just copy the path to those, and I'm going to enter those into the development portal.
So here are the two files. The first one is the packet file, and this is actually just basically the output of my Bin folder, it's the binaries from my application packaged together. Then this is that configuration file that has some metadata and some app-specific settings. Finally I just give a label, we'll call it B1, and I'll just hit deploy.
So this step actually takes a couple of minutes for everything to be up and running, so let me flip over to one that I did earlier this morning, and here I have HelloCloud.cloudapp.net. And if we click this we can see the same sort of thing we were doing, but now running on a public Internet. And in fact, I know many of you will right now, if you go to HelloCloud.cloudapp.net, you can see this friendly message.
Windows Azure Demo: Bluehoo
So I hope I've impressed upon you how simple this can be, how easy it can be to build a cloud application, and deploy it to the Internet, but I know what you're really wanting to see is one of these killer apps that Amitabh was talking about, what is going to really show the value of this platform. So to do that I have with me Jonathan Greensted. Jonathan is the founder and CEO of Sentient, and he's here to show you his brand new application called Bluehoo, which is running on Windows Azure.
Jonathan, thank you so much for coming.
JONATHAN GREENSTED: Thanks, Steve. (Applause.)
Thanks for inviting me today to talk to you about a new service we're launching called Bluehoo. Bluehoo is a mobile app that helps you make new social connections with people around you for business or for pleasure. The software is designed to run on mobile phones, and PCs, and uses Bluetooth is a discovery mechanism.
For example, most of you have come here to PDC not only to learn abut new technology, but also to meet new people with similar interests. Bluehoo makes that easier. The Bluehoo software shows you who is around, you, what they're interested in, and could even help you start conversations. With over 6 billion mobile phones in the world capable of running Bluehoo, we needed a platform that could scale effortlessly as our service grows. The platform we chose is Windows Azure.
Let me show you a demo of Bluehoo. Here you can see we have a Silverlight application showing the same information I can see on my phone. Hoobit is my character within Bluehoo, and he's a bit of a showoff. All the Hoos you can see arriving on screen are people around me right now, in the audience, on stage, and behind the scenes. The gray Hoos are people who are discoverable by Bluetooth, but not yet running our software.
When you sign up for Bluehoo you are able to name your Hoo, enter tags, and even upload a photo. At that point your Hoo turns pink or blue depending on your gender. You can see Steve's Hoo is on the screen called Smart. He's gone to sleep. He's gray because he hasn't set up a Bluehoo profile yet. If Steve sets up his Bluehoo profile we can see him change from gray to blue, we can now view his profile, and exchange messages with him.
How's it going, Steve?
STEVE MARX: I am finished. Okay. So explain to me what just happened. So I just entered some profile information on my phone, and now I see that I'm turning blue, as you said, on here. What happened between my phone, and what we're seeing on the screen?
JONATHAN GREENSTED: Okay. So the mobile app talks to our REST interface, to our service running in the cloud. The Silverlight app then displays exactly the same information that I can see on my PC, phone, and on the Web. And I can now view your profile, find out that you love MVC Poker, and Juggling, and I can even make you dance.
STEVE MARX: So actually we used some new motion capture technology from Microsoft research to capture me dancing, and put it into the Hoo. (Applause.) They're clapping for my dance, you know.
JONATHAN GREENSTED: I thought so.
So let me talk a minute about how we built, and deployed Bluehoo for Windows Azure. Everything is written in C#, using Visual Studio, for the Windows Mobile Client, the service running in the cloud. There was no need to learn any new programming languages, or tools for us to write this software. The big advantage for us was we already had the majority of the skills we needed to build Bluehoo, saving us time, money, and getting us to market faster.
This is the Bluehoo dashboard, showing a high level Bluehoo architecture running on Windows Azure. This allows us to monitor our service performance. You can see we have a bunch of different Bluehoo software talking via that Internet to the Bluehoo service. Each client talks to a lightweight Windows Azure Web role, which either writes to a queue, or reads from storage. The messages in the queue are read by a set of worker processes running in the Windows Azure worker roles. This is a highly scalable pattern, and allows us to scale up, and scale down the number of compute nodes as required.
I'm really hoping all of you will try out Bluehoo later today. Before you do that, I need to scale up the number of nodes available. Let me show you how easy that is. I simply go to the Windows Azure Management Console, click configure, and change the number of instances I have deployed. We've been comfortable with two instances during our testing, but in readiness for the download frenzy we're expecting later today I'm going to up that to 20 right now.
STEVE MARX: Now, I actually love editing XML, but for those of you who don't, we will be putting a UI on top of it that makes that even easier.
JONATHAN GREENSTED: So I click save, and I'm done. It's so easy even a CEO can do it. (Applause.)
So we've already discovered over 120,000 Hoos whilst developing Bluehoo. And now we're launched, we're expecting to see many, many more very quickly. Scaling to meet this demand would normally be very scary for a startup. However, Windows Azure, we don't have to worry. So there you have it. You've seen how easy it is to develop and deploy a scalable, Windows Azure-based service, using our existing development tools. This kind of capability just wasn't available to us as a startup before. As Bluehoo grows we can just keep scaling up, and up, and up.
The Bluehoo beta will be available to download at midday today, and it's completely free. Happy Hoo hunting, and we hope you love Bluehoo as much as we do. Thanks, Steve. (Applause.)
STEVE MARX: Thank you, Jonathan, for making Bluehoo part of our announcement. And with that I'm going to turn things back to Amitabh. (Applause.)
AMITABH SRIVASTAVA: So Jonathan and Steve just demonstrated how Microsoft tools provide a rich developer experience on Windows Azure. But, it doesn't end there. Windows Azure is an open platform. By providing command interfaces, REST protocols, XML file formats, and support for managed and native code, third party apps like Eclipse, PHP can easily interoperate with our environment. So this is Windows Azure. We will be exposing the functionality in a phased way. For instance, we will start with .NET applications, and then we will expose native code. Ray will talk about that in our later in his talk.
To summarize, Windows Azure is our operating system for the cloud that we have designed from ground up. And it offers scalable hosting, automatic service management, a great developer experience for enterprises and hobbyists alike. Thank you, and I look forward to your feedback.
Now I'd like to introduce Bob Muglia, Senior VP for the Server and Tools business, who will talk about the higher level services of the Azure platform.
Thank you. (Applause.)
Bob Muglia: High-Level Services of the Azure Platform
BOB MUGLIA: Thanks, Amitabh. Great job.
Well, it's really great to be here today at the PDC to talk about and introduce a new platform, a services platform, which is really a next generation of platform for developers to take advantage of it. When we look back over time, we've seen a number of generations of platforms that have had significant impacts on the way applications are created, the way developers write their code. Early on in the '70s and '80s there was the monolithic environment, the environment of the mainframe and the mini-computer, where the application completely ran on one machine, and was served by dumb terminals.
We saw in the late '80s, I recall when I first joined Microsoft in 1988, and was on the SQL Server group, I recall that the first talk I ever did was the introduction of the brand new client-server programming model that was enabled with the combination of PCs and databases like SQL Server. And of course, we've seen literally hundreds of thousands, perhaps millions of client-server applications be written over time.
In the middle of the 1990s the Web emerged, and a whole generation of Internet-facing Web applications, both Internet, and intranet within a corporation, were built using HTML and Web servers. And we still see many, many thousands, hundreds of thousands of these being written every year. It is still a core model that people use for building modern applications.
In the early 2000s Web services and SOA (Service-Oriented Architecture) emerged to enable applications to communicate over standard-based Web protocols, be it Web services, or REST-based protocols, and this is also very popular. In fact, it is a core building block for how we think about the services platform, the Azure services platform that we're introducing today. The services platform builds on these previous platform generations, particularly in the SOA generation, and the Web generation. But, it has a fundamental difference, as Ray said.
If you look at most SOA applications that businesses have written today, most of them do not scale out well. They weren't designed with that application pattern in mind. And as we move to the cloud-based environment, where we literally have thousands of computers available to us, to use for applications, distributed in different data centers around the world, the idea of building them in a scale up way, the idea of creating them with application patterns that are designed to scale out, and a way of building with applications patterns that are designed to scale out from the beginning is crucial. That's what we're doing with Azure. Like Microsoft has done in the past, our focus is on enabling you to build these scale-out services, and making it easy for you to take advantage of this.
Now, as we look towards the requirements, the business needs of a services platform, we see a set of requirements that are quite familiar to companies that are building solutions today. Interoperability and heterogeneous systems, the need for business process to span different machines, and different environments within the enterprise, identity and security, a foundation, the basis upon which all of these things are build, because all of these applications must have identity, and in fact, we live in a world of federated identity, which must be brought together. Management and compliance, handling vast amounts of data that is now being generated by all of the business applications, and of course, being able to manage these systems within an organization.
As we build a services platform, these requirements remain true. They really remain the same, but we have new challenges associated with that services environment, associated with the scale-out nature, associated with the federation, associated with the likelihood that we're connecting together many business partners in many customers in ways that we've not done before.
One of the goals of Azure is to make it possible for you to build, using these new application patterns, your applications so that they can take advantage of the vast computing power that's available within these data centers, these worldwide data centers, applications that connect to customers in ways they've never connected before, and yet reducing your up-front capital costs, reducing your management costs, and your operations cost.
The way IT and developers can work together with Azure can enable a lower cost solution for deployment of globally scaled applications, really our goal is to move the world from needing to think about management on a 7 by 24 basis, to a world where a 7 by 24 uptime is provided by the inherent characteristics of the applications, with much lower costs, really nine to five management capability. That's all part of the thinking that's built in to the underlying mechanisms of the Azure services platform.
Windows Azure and .NET Services
Now, talking about some of the details of Azure services, I want to focus on the .NET services piece. Amitabh came up and he talked about Windows Azure, and he talked about it being an incredible environment, a new platform to build scale out applications on top of Windows, and certainly to use the facilities that are so familiar to you within the .NET framework.
In fact, Windows Azure has the .NET Framework built into it, so you can use those services within your application.
But just like your application must be designed to scale out, the services that we have built into Windows over time in .NET also need to be designed and built in a way that can scale out naturally. We want to create services for you, and that's the purpose of .NET services, creating a pool of resources available to you to take advantage of and do things within your application very simply.
So we're including a built-in, scale-out implementation of a service bus. The service bus lets you connect your on-premises system securely into the cloud, into the Azure environment, while allowing your data and your information to traverse firewalls, solving a problem that is a bane of many application developments.
Access control is a key thing, the need to have federated access, federated identity providers, identity authorities that exist in a heterogeneous way. Many enterprises have their own identity provider, many of them are Active Directory, there are other key identity providers out there. Access control provides a way of enabling federation across these different identity providers both on premises and then into the cloud.
And then workflow. Work flow is a key mechanism used by many applications. Having work flow that scales out across hundreds of servers to meet the needs, the demanding needs of demanding business applications is critical, and what we've done is we've taken the .NET work flow services that are so familiar to you on the on-premises Windows systems, and taken those same services and put them into the cloud in Windows Azure and .NET services to allow you to write work flows that span from the on-premises system into the cloud environment.
So these are the first of a broad set of capabilities that we'll be making available over time to provide a set of built-in, scale-out services that you can use within your application as you move them into the services platform environment.
Identity Management in Windows Azure
So I think it's worth taking a minute to really focus in on identity because identity is such a core foundation of all applications, virtually every application except one providing reference information, virtually every application requires identity underneath it and identity as a foundation. What we're doing with the set of identity services in Windows Azure is providing you a consistent approach on a federated basis to use the identity providers that you already have.
We've learned a lot over the years, and we've learned how important it is for you to be able to leverage the existing entity providers that are used within your organization, but then federate those together. This is a hard business problem. This is a hard thing for developers as they move into the cloud environment, and with .NET services, we're providing an environment that makes that simple to you.
We have some new facilities that build on things like Active Directory, there's a project that's code-named Geneva that takes and enables this federation between heterogeneous, on-premises systems and the cloud, as well as an Active Directory connector that lets you connect your existing on-premises Active Directory up with the services that are in the cloud using the underlying access control mechanisms that exist within the on-premises environment. Overall, our goal is to make access control, claims-based access control as seamless as possible between the on-premises world and the cloud world.
Windows Azure and the Database
Now, focusing on the database. Databases are crucial to business applications, and really crucial to all applications that are being built today. And so what we're doing is we've taken and built a scale-out implementation of SQL Server that we're making available through something we call SQL Services, and it builds on SQL Server. It's SQL Server underneath it. And over time, what we will do is provide more and more of the capabilities that you're familiar with in on-premises SQL Server into the Azure SQL Services.
And so today we have a SQL data services environment that lets you build a database built on entities. Over time, we'll grow those capabilities in the relational space. We will, in the future, be providing capabilities like data synchronization to allow you to synchronize on-premises information as well as information on mobile workers with the cloud services to be able to synchronize that data, data mining services and analysis services to be able to dig in and understand what's happening at a detailed level, things eventually like geospatial and a whole broad set of things we'll be bringing available to this environment.
I'll show you in a few minutes some of the SQL reporting services working today as we enter early beta on that and bringing out the broad set of SQL reporting services and making them available on top of SQL services in the cloud.
EPLs that connect and bring in data and cleanse that data as it comes in, and over time we also have available within our own systems tons and tons of reference data that you can use within your applications so you don't need to duplicate those.
So the basic goal here is that with the cloud environment, you need a database just like you needed one on premises, and in fact, we're providing that set of scale-out services as a part of the Azure Services Platform.
Demo: Shawn Davison of Red Prairie: Product Recall Application
There are a lot of opportunities to take and grow and build applications built on Azure Services and Windows Azure. And what I'd like to do now is bring up a partner that we've been working with over the last few months that's been building on top of .NET services and helping us to understand how these things can be used within their environment. Red Prairie is a leading provider of supply chain and store operations management. They have a .NET and SOA-based application that they sell today, and they've been working with the Azure platform to see how that can help them. So what I'd like to do now is invite Shawn Davison, VP of end-to-end platforms of Red Prairie up to show us what they've been doing. (Applause.)
Shawn, good morning.
SHAWN DAVISON: Bob. Thanks for inviting us.
BOB MUGLIA: Great, good to have you.
SHAWN DAVISON: My team is really excited about Azure and the value we can create with it. What I'm going to show you today is a one-button product recall orchestration that spans multiple enterprises.
BOB MUGLIA: So product recall, what is complicated about a recall?
SHAWN DAVISON: Historically, Bob, a recall has been a nightmare for both manufacturers and retailers alike. Primary issue is speed of execution, the longer a recall takes, the more it costs everyone involved. Then you've got compliance and regulation issues on top of it in managing and monitoring the process. From a technical perspective, it's about interoperability, complexity of implementation, as well as scalability.
Today, actually for the last 10, 20 years, you've got companies that have been creating these point-to-point connections using VPNs and it's not fun to manage thousands of VPNs anymore. And so you've also got, surprisingly, tons of dedicated circuits and lease lines still out there for the purpose of communicating with a partner.
BOB MUGLIA: So just think about as a developer, the complexity of building an application like this. You're working with thousands of your customers, they have a different set of heterogeneous systems, different kinds of authentication mechanisms, different ways of connecting. It's a lot of work to put that together in a way that will work consistently and provide a cohesive work flow. In this case, a services platform can really help to connect that because it provides a global data center and a whole broad set of services that you can use to make that application development much simpler.
SHAWN DAVISON: Right on. How about I show you what we've done?
BOB MUGLIA: Great.
SHAWN DAVISON: So I'm going to show you basically a part of a prototype that we've put together, and I'm going to first focus on the developer/administrator piece, and what you see here is the .NET services portal. This is where we actually set up our service bindings with our partners, allows us to scale our partner connections on demand, and here I have a screen that I can actually define the access control rules, and we can do claim types and our mappings to our claims.
In fact, one of the best things about Azure is I don't have to worry about my partners' identities, they can actually use their own identities, which was said earlier, and that's really big to us. And on top of that, one of the coolest things I like is that I switch over here -- we saw Steve earlier actually uploaded the package into the cloud. So I can actually come over here on the .NET services portal and actually see the XAML representation of that work flow, make sure I got the right version.
So I'm going to step back now and actually show you an end user application, Kintoso (Ph.) which is a manufacturer, and actually they run Red Prairie on premise. You may be familiar with Kintoso. You may not know that they're now a leading manufacturer of batteries.
BOB MUGLIA: They're a conglomerate, they've been growing, I hear.
SHAWN DAVISON: That's right. In fact, so much success and growth that now we've got a little issue, we've got to deal with a recall.
BOB MUGLIA: Uh-oh.
SHAWN DAVISON: So I'm going to actually select -- I'm playing a product manager at Kintoso, and this is an application I'm familiar with, I use on a daily basis. I select the product here, which is the laptop battery, and I'm just going to enter critical defect found. We're not going to go into the details, okay?
BOB MUGLIA: What laptop are those in?
SHAWN DAVISON: Hush, hush, corporate policy, not able to discuss that. So I'm going to invoke this recall. This is the one button. And then while this is happening, you can see it says we can monitor it on the management console. I'm actually going to jump over to a prototype that we've created in Silverlight of a management console where we can actually bring up and show the live interactions with the Azure services platform as it's happening.
You'll see here, I have three partners that are showing up so you get an idea who we're working with here. And what's happening is this process has been invoked and when I press the "recall" button over here, a local work flow foundation process on premise was invoked, went through approval processes, we got the lot numbers, we've got the suppliers involved, and then that was then submitted into the cloud, okay, to the .NET services bus.
In turn, notifications are then sent out to all the partners. And their systems are receiving, you can see here Fabrican (Ph.) is receiving messages. And not only that, we have a relationship where Fabrican actually is putting this product on hold so that it happens immediately, and then there's a pending approval that takes place after that, and they can then package it up and send it back.
So what happens is when those messages come back to the network as being stored in SQL Data Services, and this application is going out and actually querying SQL Data Services. So, Bob, in a nutshell, this allows us to scale our partner network, our customers' partners supply chain networks to thousands of partners. They don't have to build all that infrastructure, and we don't have to worry about identity management, and we can focus on our business, our core business.
BOB MUGLIA: There are so many applications where a services platform can be very helpful in creating a solution, and supply chain management is a great example.
SHAWN DAVISON: Absolutely.
BOB MUGLIA: Thanks a lot.
SHAWN DAVISON: Thanks, Bob.
BOB MUGLIA: Thanks for coming out. (Applause.)
Demo: System Center “Atlanta”
So we've just begun to talk to some external partners in how the services platform can benefit their business. We're also working internally and seeing the applications that we can take advantage of within Microsoft that can use the Azure Services Platform.
One of the areas where we've been working for a little while is in System Center. System Center is our management product that manages severs and clients within businesses of all sizes. And one of the attributes of System Center is that as System Center runs within an organization, it collects a great deal of data, particularly Operations Manager collects a lot of information about what's happening inside the company, issues that companies are seeing. And we receive feedback from customers that they have all the data within their own databases, but what they would like to do is be able to compare their results with those of other companies and understand and learn from best practices so we can highlight things that they can do differently within their operations to lower their costs.
So for a little while, we've been working on a project -- it's a small project which just has a few developers on it right now, so it's code-named Atlanta. Atlanta is a project that takes advantage of the Azure services just as you can take advantage of them starting today with the PDC, with the codes you'll get from the PDC.
So we can bring up the demo, great. What you see here is the Atlanta portal that an administrator within a company would have, accessing information about their own systems, understanding what's happening within their own environment. And I can see here that some things are running well. I've got a little bit too many recursive DNS queries failures, that looks like a problem. I can see that average CPU utilization is a bit down for different regions around the world.
And with this environment, the administrator can get a picture of what's happening within their system, and ultimately compare those to other environments. Well, let me tell you a little bit about how we've been building Atlanta behind the scenes using the Azure platform as well as Windows Azure. Basically, what we do is we use the message bus to connect to the on-premises operations manager servers that exist within companies. And, by the way, this is something that is optional, companies can opt into this or not, but there's a lot of interest associated with it.
We use this message bus to connect and securely transmit the data through company firewalls into the Windows Azure and the Azure Services. And what we have there is three databases that run SQL Services. We have one database where we just pull the data in, and there's a lot of data that we expect to be getting from companies, literally, ultimately, as this scales out, we expect hundreds of gigabytes a day of information to be pulled in from our customers.
Now, we need to process that data, so what we do in terms of processing is we use Windows Azure and we spin up virtual machines to take the data that's come in, the raw information, and transform it into a form that we can do analysis against, again, using SQL Services.
So we use the scale-out capabilities on demand that Windows Azure provides based on the data that's coming into our customers, and then we transform it into a form that we can analyze it further. And then finally, we have a database, which you see the data represented here, which is designed to work against the portals that administrators will be using to look at their information. And that, again, is in SQL Services, it uses Windows Azure, it's a .NET application, an ASP.NET application, it's an MBC application.
What I want to do now is show you a little bit behind the scenes of what we're doing here. So I'm going to move over here into Visual Studio. And what you see here is the Windows Azure development fabric, so this is working locally. What I'm going to do is run a query against SQL Services, and that query will be actually running against the live system that we run inside Microsoft data centers.
So I'm going to bring in the query code. And what you see here is a query, and this is a query that takes two entities that exist within SQL Services and does a join between them, again, using the relational capabilities of SQL Server. And then what I'll do is I'm going to put in some code here, and what this code does is it takes -- it executes the query, and then it takes and for each of the results, it stuffs that information into a chart that will then display using Silverlight. This is one of the new charts controls that we're handing out as a part of some of the developer kits that you're getting.
So go ahead and run that. Run that. This is, again, running locally on my developer fabric, and then it goes against the real data inside SQL Services. And you see a chart here that shows that CPU utilization is bumped up at some point in time.
Now what I want to do is move over to reporting services, which again is working against SQL Services, and this is an early version reporting service. And one of the things we want to do with the Atlanta project is make reporting services available to administrators so they can create their own reports showing what they want. In this case, the customer wants to see how the clients are distributed around the world and what's happening with Active Directory availability by region.
So if I go ahead and run the preview of this, I'm going to go ahead and run that report, generate the report results against the SQL Services database, and I get a report, again, with some rich display capabilities that users have available today within SQL Services and SQL Server 2008. So this is an example of how we are using Windows Azure and Azure Services within our own environment. We can see the opportunity in literally dozens and dozens of applications to leverage the capabilities of these new platforms.
So it's a great time as we sort of look forward. Where we see this going is a world where customers continue, certainly, to have on-premises systems. They begin to figure out ways to take advantage of the services platform and build services that exist inside the cloud. One of our goals is to create symmetry across these two things so that the knowledge, the skills that you've built, and even in many cases the code you've built can be transferred up into the cloud environment.
Windows Azure and Azure Services is a new platform, it is a new generation of platform, but the skill sets that you've learned today are highly leverageable. Over time, we see the development in the things we're learning from Windows Azure in the services platform moving back into on-premises. We want to do this in a way that is very partner friendly. We're focused on working, as we always have, with partners in the industry. So what we will be doing over time is taking the developments that we have with Windows Azure and the services platform and incorporating those capabilities into Windows Server, into SQL Server, into System Center that can be run by companies both on-premises and by hosters within their environment, providing their own platform environment.
“Oslo”: Next Generation Modeling Platform
So we see this as being very, very much an industry thing. Windows Azure and Azure Services builds on your knowledge and it builds on the applications that you have today. But it also opens up all sorts of new possibilities, and it's a possibility for us to take advantage of new things. One of the things that we're introducing and handing out developers kits today here is our next-generation modeling platform.
We've been talking about modeling for some time, for quite some time. We have a project we code-named Oslo, and this week, we're handing out the developer kits associated with this modeling platform that enables a consistency between the IT process and the developer process. This is something we've been talking about in the form of Dynamic IT for a long time.
Oslo is going to have some very important ramifications on the way code is written in the long term. It actually incorporates a new language called M that allow models to be defined as well a domain-specific languages to be defined. And you'll hear more about that over the next day or two and into the coming weeks. So this is a great time. It's a true honor to be here introducing a new platform. I look back in the past and I think about PDCs and times where we've seen change. This one reminds me a lot of the one we did in 1992 when we introduced a new operating system called Windows NT. That was up in Moscone Center in San Francisco. That was a big announcement, it was early in the days of Windows NT, but over these years, we see the impact that that technology has had.
I would expect that over a long period of time, as services become more broadly used, the technologies that you're seeing here introduced today will have that same kind of impact.
Now what I'd like to do is introduce Dave Thompson, who will talk about some of the services that are being built at a higher level, as well as how we're creating some applications on top of the Azure Services platform. Thank you very much. (Applause.)
Dave Thompson: Extending Online Services Using the Windows Azure Platform
DAVE THOMPSON: Good morning. Thanks, Bob. What I'm going to do is talk to you for the next 20 minutes about how you, developers, can extend out online services using the Windows Azure platform.
So my background is that I started as a developer, in fact, I spoke at that PDC that Bob just mentioned back in 1992. I started the networking group with NT. I ran the team that built Active Directory, Windows Server through the 2003 release, and Exchange in the 2007 release.
In those roles, I spent a lot of time talking to customers and got a lot of feedback from customers. And I saw a couple of patterns. There were customers with very strong IT staffs and very rigorous operational disciplines. And those customers were very successful with the most up-to-date technologies. And then for others, running the sophisticated infrastructure for their business was a disproportionate burden. And it was frustrating because it was essential to their business, but not core to their business.
Customers told me more specifically that they needed the best-in-class collaboration services. With their workforces being global and mobile, they needed 24-by-7 communication and collaboration anywhere in the world from any kind of access. And the other thing about best in class is it meant that they needed to stay up to date on technology, and upgrades were challenging for some of them. It was often that customers only upgraded every other release. And moreover, those upgrades were big projects. Big projects that were harder to plan for with budgeting.
And so they wanted a more predictable and easy way to buy. And they also wanted a model that worked better in officially utilizing their scarce IT talent. And then lastly, of course, is since they're running their businesses on this infrastructure, they needed the highest availability and the highest security. And it was usually more than they could actually accomplish themselves. And so it became clear that the thing that made sense for some of our customers was for us to deliver our software as online services. And that's why we created Microsoft Online.
So what is Microsoft Online? Very simply, it's enterprise class software delivered via subscription services, hosted by Microsoft, and sold with partners. And today, we offer Exchange Online, SharePoint Online, CRM Online, OCS Online. We offer Exchange-Hosted Services, Office Live Meeting. But that's really just the beginning. In the future, all our enterprise software will be delivered as an option as an online service. And the key value prop of Microsoft Online Services is that it provides the best experience. These are the richest collaboration tools, the market-leading collaboration tools, but they're available in a much easier-to-use form, and easier to administer, and easier to buy. And they provide a faster way to get to that value. It's easier to stay up to date because we do it for them, and they can deploy as an online service in minutes instead of months.
Lastly, we provide business-class security and availability. We build in geo-redundancy, we provide financially backed SLAs, we use the latest security certification for our data centers. And there are customers that bet their businesses today on Microsoft Online. Coca-Cola Enterprises, Auto Desk, Ingersoll-Rand, Energizer. Those are just some of the examples.
But it's not just about online services. The benefit of software plus services is the power of choice. The on-premises deployment provides the ultimate in control with the online service and in-the-cloud deployment provides the easiest deployment for the customer, and the simplest to manage solution. But enterprises don't want, necessarily, all of one or the other, they need a hybrid. They need to support some of the applications in the cloud, some of the applications on premises, and the customer and the partners need to work together to make the choice that's best for that business.
And to do that, though, it's really important that we do it in a way that makes it seamless and transparent to end users and easy for IT administrators. And there are a couple of tough problems to solve in achieving that: Federated identity, that is, taking the identity of their users that they manage today and extending that up to the cloud, and secondly, to ensure that because you guys build the most comprehensive solutions, the business solutions are built by extending our software today. We need to ensure that our online services are as extensible in the cloud as they are on premises.
So that's why this is important to you. If you use Windows Azure components in your business applications, you can leverage what we have built, just like we do for online, and you can extend our services in the same way you extend our servers.
So let's talk about those two in a little bit more detail. This is the way the identity works: So you can see in the bottom left, the IT administrator manages the users' identities in Active Directory just like they do today, but the Microsoft Services connector deployed on premises at the customer links those identities up into the cloud to the Microsoft Federation Gateway.
So then when an end user accesses an online service, the online service uses the federation gateway to go back actually to the customer's Active Directory to verify the identity of the user. And the end user doesn't know the difference. They don't know if the service they're accessing is on-premises, run in their company's data centers, or in the cloud. This is the technology we bet on in the online team, and the good news is that it's part of Windows Azure, so your applications embed on it too.
Okay, well what about extensibility? Let's talk a little bit about that. So here are some examples of how these different online versions of the on-premises software can be extended. With Exchange Web Services, your application can do the same kinds of things that Outlook can. You can update, send meeting requests, accept meeting requests. You can receive notifications and use that to launch work flows based on incoming e-mails or updated objects.
With SharePoint, the SharePoint designer lets you completely customize and rebrand your Web site as well you can use it to design custom work flows. Now, those work flows today don't support custom code in the online version, but they will in the future. And you can use the data view Web part to extract data from any other server or service via Web services and filter or render that in a variety of ways.
And of course you can write client code or on-premises server code and use that to push data to SharePoint Online or extract data from SharePoint Online. And of course you can take Silverlight controls and embed them in a SharePoint Online site and use those to access data from SharePoint.
Now, CRM, Dynamic CRM, is a great solution. And CRM Online is a great solution, but it's also a very powerful platform. It supports data modeling requirements for any solution. Basically, you can define custom entities and attributes and their relationships in a very easy way that I'll actually show you, and then you can access any of the data in CRM via Web services. It offers flexible presentation of the data, you can define custom work flows. And I'll show you an example of that as well.
And all of this adds up to you using Windows Azure Services, being able to more easily develop applications, extending our online services, you can get to market faster. And with online, it's even faster because you don't have to deploy servers. Of course, when you do this extension, you use the same tools that you're used to using -- Visual Studio, Visual Studio Tools for Office, using the .NET platform and the Web services and APIs.
But rather than talk more about this, what I'd like to do now is show you.
Okay. So, what I'm going to do is show you how you can build more complete solutions using Windows Azure and online services, and the services that you'll see me use, these are real services run in our datacenters. Most are released, some are coming in the future.
I'm going to show you two things. I'm going to show you how the online federated identity model puts users in control of their identities, and then I'm also going to show you how you can construct a line of business application with a couple of online services.
During this demo I'll actually take on several roles, four roles actually. First, I'm going to be an IT administrator at the company. Then I'm going to be a developer customizing the line of business application for that company. Then I'm going to be a project manager at that company using the applications, and lastly I'm going to be a customer of that company collaborating with that company.
Okay. So, the first thing I'm going to show you is how you set up the Microsoft Services Connector. And remember I'm the IT administrator now, and I only have to enter a few simple things. I have to enter the DNS domain name and the display name that I want, and then I have to enter a certificate to verify my ownership of the domain.
Then I also can select who it is that can actually access cloud services using their on-prem identity. It doesn't have to be the whole company; it can be a subset. I can try some and then extend to more users.
So, then I finish the setup, and what it's doing now is communicating with the federation gateway to ensure that I've configured everything correctly, and then I simply close and I’m done, and it was that simple. I now have federated identity, and it's so simple, as we say at Microsoft, that even a vice president can do it.
So, now what I'm going to do is now I'll take on that second role I talked about. I'm now a developer at this company. And you may have noticed the name of the company; it's the Graphics Design Institute. So, I'm going to launch CRM Online, and the first thing you'll see is that I didn't have to enter a username and password. Up here in the right-hand corner it shows that I'm already signed in. And that's because I was logged onto AD and the Microsoft Services Connector authenticated me back to my AD when I accessed the online service.
The second thing you'll see is if you know CRM, you'll see you don't see the normal marketing and sales functions. What you see instead is that this instance of CRM Online has been customized for a professional services company. You see things like timesheets and projects and resources. These are things that have been customized by my developer.
And I'm the developer, so what I'm going to do is show you a couple of the ways it can be customized. The first was definition of the custom entities, and the timesheet was an example. You can see actually if I sort these, there's a number of custom entities we've defined. The timesheet was the one we were looking at, and this will show you the custom attributes and characteristics, associated workflows.
The second thing is that I said that you can get data or put data to CRM. So, to do that as a developer, I can go and download the WSDL files that define the Web Services, and you'll see the main data Web Service, I can load that down to develop my application to interface with it, but as well all the metadata can be accessed with Web Services, and that means that this customization and extension can be done completely under programmatic control.
Okay. So, now I'm going to change roles again. I'll step back and now I'm a project manager at the company about to use this customized version of CRM Online.
One of the things I do is I run a project, it's the Contoso portal, and what I need to do is first go through and check the timesheets and approve any that are outstanding. That one was submitted but not approved. I'll click the "approve" button, and what's now happened is that this actually kicked off a workflow to do all the necessary processing for timesheets.
Well, now the next thing I do, which I dread doing or I've always dreaded in the past, is writing status reports, because they're just kind of a pain. But actually we've made that a lot easier. What we've done is customized Word, a tool that I'm very familiar with, and we have a customized ribbon for the Graphic Design Institute, and I even have a button to push to start a status report. You could see it's got my name, it's got the template. But the thing that's actually going to make it even easier is if you look here on the right, you'll see that I have an extension that's used a Web Service to go to CRM and load information about all the projects we're doing.
So, I'll pick a project, and now here is the latest data on all the items, and I will select the ones that I want to report on, and automatically insert them in the status report, and now I'll just push one button and this will be published to the site where I can share it with a customer, a SharePoint Online site.
So, what did I do? I pulled data from CRM, I brought it into Office Word, and I published it to a SharePoint collaboration site, and neither I nor our customers set up any servers to do that; very simple and extensible.
Okay. So, now I'm going to take on that last role. I'm going to be the customer, and I'm going to go to the portal that the Graphics Design Institute has set up for me to go see how my project is doing. You'll notice, of course, that it's in what is now our favorite color, azure blue, and we've got three different components on this page. The first is a set of gauges that are sort of an at-a-glance way to see how the time is going, how the money is going in the budget, and notice the budget pointer is at 375 right now, and that will be important in a minute.
The second thing -- and that's a Silverlight control using the Web Services of CRM Online.
The second thing is that to the right of that is a table with all the project details, and those have been extracted by the date of your web part and placed in this page, extracted from CRM Online.
And the last thing is a place where we just collect our status reports. So, when I go to see a status report, an up to date status, it will show up in these different parts of this portal.
So, now I'm going to refresh it. I had it up so that when I refresh it, you'll see the change based on my simply clicking the approve button on the time card.
So, as it refreshes, the gauges go up and you can see that we've spent a lot more money, we've logged a lot more hours. We could be in danger of running out. Then down at the bottom you can see that the new status report is there as well.
So, we tied together two online services, CRM Online and SharePoint Online, and we provided a rich solution that was easy for the professional consulting firm and easy for their customer. We customized the Office client to make it very easy for the professional services project manager to extract the data from CRM Online and construct an accurate, up to date status report.
And for all these users we used the Microsoft Service Connector, because it put them in control of their organization's identity and gave them seamless access to both on-premises and in the cloud.
So, with that, I hope that that demonstrated how you can use Windows Azure and online services as components in your solutions, and how you can extend Microsoft online services in the same way that you extend Microsoft software on-premises today.
So, with that, let me now hand it back to Ray, who will summarize this morning's news and talk about what's ahead for tomorrow. Thank you very much. (Applause.)
RAY OZZIE: Thank you, Dave. Great stuff.
So, you've seen a lot this morning, an end-to-end view of software and services taking somewhat of an infrastructural perspective. You've heard us talk about what we view as an entirely new tier of computing that's emerged, the Web tier, catalyzed by a trend toward the externalization of IT, and the fact that our customer facing systems now need to scale to the size of the Web.
As Microsoft's own offering at this Web tier of computing, I introduced you to Windows Azure, a kind of service-based OS, Windows in the cloud.
At the next layer up Bob Muglia showed you how we're creating a broader services platform through .NET services and SQL Servers, a platform that serves the needs of business developers who are trying to make the best use of their assets and skills when extending their on-premises solutions into the cloud.
And finally, Dave Thompson just showed you that we ourselves are betting on our own platform with our own apps and how we're giving customers the power of choice.
I know you've seen a lot and you probably have lots of questions, and, yes, the sessions on Azure are really going to help you a lot. But maybe the best thing to do is to just sit down and write some code. All of you here at PDC have paid for the privilege of doing so, and I thank you very much for doing that. So, you're the first ones who are going to have access to our Azure services platform CTP (Community Technology Preview).
Starting at noon today you can download the SDKs, register for provisioning, for Windows Azure, .NET Services, SQL Servers, and Live Services at Azure.com.
Each of you who registers will be provisioned and activated over the course of the next two weeks, and then we'll be opening it up much more broadly based on what we learn together in the weeks and months ahead.
The services and the service model that you'll be playing with are still pretty early, and yes we're going to be intentionally conservative in the progressive nature of how we're going to be rolling this all out. And because the service is in an early stage and it's functionality may very well change as a direct result of your feedback, maybe even incompatibly, then during this preview we won't charge you.
So, over the course of the remainder of 2008, but far more over the course of 2009, the nature and level of your participation is going to have a huge impact on our priorities. We'll be unlocking access to more and more of the platforms' underlying capabilities and the service will get closer and closer and more quickly to commercial release as a direct function of your efforts and the kinds of things you do with it, and the efforts of the community.
When it is released commercially, Windows Azure will have a very straightforward business model, with costs primarily being derived as a function of two key factors, and apps resource consumption and a specific service level that we agree to provide.
The pricing and models for all the Azure services will be competitive with the marketplace, and we'll provide a variety of offers and service levels where there may be differentiated requirements across the breadth of developers and markets that we serve as a company from the individual developer to the enterprise.
Azure services offerings will be available directly through the Web and through existing channels and programs, and we'll give you more details about our offerings as we get closer to commercial release.
So, after seeing all that we've shown you today, I hope that you're going to walk away with a much clearer understanding of what we've meant for the past couple of years when we've been saying the words software plus services as it applies to platforms and infrastructure. We believe deeply in a world of on-premises software and all that it can do for our customers, and we believe deeply in the potential of this emergent world of services in the cloud.
So, that's it for today. I know it's been a long morning, and my thanks for your patience. Tomorrow we shift gears a bit. We'll talk not just about infrastructure but instead about our computing experience. We'll talk about our client OS, we'll talk about developing for Windows and developing for the Web, and we'll talk about the services we built to bridge the Web, the PC, and the phone, and a world of devices.
I hope you do your partying on the early side tonight, because we've got a lot of great stuff to demo, and we've also got a few surprises to show you.
So, have a great day today, and I'll see you bright and early tomorrow morning. Thanks.