Professional Developers Conference 2008 Day 1 Keynote: Ray Ozzie, Amitabh
Srivastava, Bob Muglia, Dave Thompson
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.
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. (Applause.)
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.