Video Transcript
Welcome to Windows Azure Developer Fundamentals. My name is Bill Lodin and my goal with this session is to provide a high level overview of Windows Azure for and from a developer’s perspective. So, what we’re gonna be talking about is of course Windows Azure, we’ll talk about the compute and storage facilities. We’ll talk about managing services and we’ll talk about the developer environment. We’ll do a quick demo to take a look at that environment and then we’ll wrap up with a look at the Azure services platform.
Windows Azure
Now, you hear a lot about the cloud in relation to Windows Azure and so we should probably define that. The cloud is simply a set of connected servers. Now these servers are all connected to each other in various ways and there are thousands upon thousands of them and they’re located all over the world, right? Microsoft has invested heavily in data centers with these Windows server boxes, you know, again thousands and thousands of them. And they’re all connected in a way that allows developers to install and run services and store and retrieve data. It really represents a paradigm shift from the traditional approach which is to take an app or a service and deploy it to a server.
And instead of that, we move to an environment where we take an app or a service and we deploy it on the cloud and that sounds sort of vague and unspecific, but it’s a good thing because when we’re deploying to a server and so much attention is placed on that server, what operating system is it running? Does it have the service patches installed? You know, what is the licensing situation and all these things that we have to worry about. When you just deploy it to the cloud then, you know, all those things, one way to look at it is that’s somebody else’s problem right? And when you are managing and maintaining applications, having things be somebody else’s problem, right? That’s not a bad thing, right? So, when we talk about the cloud, we’re just talking about these set of connected servers that we can—that, from our perspective, is just “out there.”
So, Windows Azure then is an operating system for this cloud. And we normally think of there being this one-to-one relationship between an operating system and a server right? And certainly from, you know, a perspective of virtual environments, we’re starting to think getting away from that thinking, right? We now have this perception that it’s not uncommon for there to be multiple operating systems on a single physical box through virtualization and technologies like Microsoft Virtual Server and Virtual PC.
It’s almost as if you can think of Azure as kind of flipping that around where instead of there being multiple operating systems on one server we’ve got multiple servers as the basis for a single operating system, right? That’s not literally what’s happening, but from a developer perspective, that’s how we can think of it. Now, Azure has four primary features, service management, compute, storage and developer experience. We’ll be talking about each of these over the course of this session.
Compute and Storage
Now, when you hear about Azure and similar technologies, you might hear the phrase utility computing. Utility computing as a term and as a general approach is not new. It’s been around for decades, but in its strictest sense, utility computing is simply treating computing resources, like storage and compute cycles as a metered service, very much like the electricity you have coming to your home or the water that you get, right? You pay for what you need, when you need it, you turn it on when you don’t need it, you turn it off. It’s always there, right? You think about the electricity or the water service. When you need more it’s just there. You don’t have to call, for instance, the water department and tell them that you have company over so you’re gonna use more water because more people are taking showers. You don’t have to worry about it, you just turn on the shower, turn on the tap and there’s more water at your disposal.
So, treating computing like that, again, is not something that’s new, it’s been around for a long time and its generally referred to as utility computing. Windows Azure is more than just utility computing because it’s a complete platform, right? You have a user interface for managing services. The compute and storage is there and yes it’s metered and you pay for what you use, but you develop applications using cloud friendly APIs that come as part of this platform right? And finally, the developer tools for Azure are based entirely on existing Microsoft.NET technologies. So, developing for Azure should feel immediately comfortable to you as a developer because you’re gonna be able to leverage just about everything that you’ve already learned and there’s very little else to learn in order to make you a productive Azure developer.
Now, at a fundamental level you can think of being able to deploy your application or service into the cloud and that application will essentially be given compute cycles from Azure in which to run. Azure also provides storage facilities so if your application needs to store some data and that data needs to be replicated and reliable and available and etc., then that’s all built in. There’s a config file that’s created, of course, using XML, that can be used to configure settings on the application and your application has access to the Windows Azure fabric, which is sort of this layer of API and the fabric allows you to do cloud specific things and it also allows you to sort of have a mechanism by which your application can communicate back with you, right?
There are fabric APIs that allow you to write to logs and to send alerts, using live alerts. So, if you wanted to, for instance, if some event happens in your application and you wanted to automatically send you a text message or an e-mail or whatever, those APIs are part of the Azure value proposition as it were. But again, at a fundamental level think of just the compute and storage facilities sitting on this fabric out there in the cloud.
Now the platform is designed to be flexible, which as an application developer you should certainly appreciate and that doesn’t mean that you have to stick to any pre-defined architecture. If, for instance, you wanted to have your application running entirely in Azure with the storage and the computing all taking place in the cloud, that’s fine. If you want to have some of the computing taking place locally on the client’s app or on an on premises service or something, then you can do that as well and you can still leverage Windows Azure. You know, one architecture, for instance, might have the compute cycles, maybe for compliance sake, the computing has to be under stricter controls. So, it has to take place on premises. Well, that’s fine you can still use that, but then you could leverage services that are out there on the cloud or even just leverage storage that’s out there on the cloud. So, there’s a tremendous amount of flexibility and essentially it means that you’ve got a lot of different approaches that you can take and Azure is, you know, potentially a framework on which you can develop all types of applications.
It’s also designed to be simple and it gets a lot of its simplicity by the fact that HTTP is the primary interface for working with Azure. So, for instance, if you wanted to invoke some computing in Windows Azure, Windows Azure would expose functionality via HTTP end points. If you want to access the Azure storage, well you’re gonna use a rest based HTTP based API there as well. Because it’s HTTP, not only is it simple, but that kind of leads back to flexibility as well because it means that from the outside of Azure, talking to Windows Azure, you don’t need to stick with Microsoft technologies. You can use .NET of course, but then there’s also Java and C++ and Python and Ruby and number of other languages and frameworks and operating systems. As long as you can form an HTTP request, right, and that barrier to entry is pretty low, you can talk to Azure, right?
And that means, of course also if you’re doing things standards based, which we’ll talk about exactly what a web end point might look like, then it should be standards based which also means that you have flexibility in the browser too. So, you could have a Silverlight application. Now Silverlight is cross browser. Now because it’s a client technology, the Silverlight application portion would live, actually execute within the browser on the client machine, but it could certainly use web services to talk back to a service sitting in the cloud and it could do so using basic HTTP. So, there’s a lot of flexibility there.
Now, this Windows in the cloud, as Azure is referred to, it’s really, when it gets right down to it, an application or a service that runs on and in a virtual machine instance, right? Each virtual machine that is sort of hosted inside a Windows Azure runs a 64-bit Windows Server 2008 and virtual machines are provided by a hypervisor that’s been optimized for this cloud based computing.
Now, one of the most important things that you should understand from a developer perspective when preparing to write code for Azure is what an Azure role is. So, an Azure application is implemented with either a webrole or a worker role or both. So, you have to have one or the other, you can have both, but notice I’m choosing my words carefully because I want to sort of emphasize that you can have one webrole and one worker role. You don’t have multiple webroles, multiple worker roles. However, you can have multiple instances of a webrole and multiple instances of a worker role. But, you know this will become a little bit more clearer once we actually define what web and worker roles are, but sufficed to say, learning about Azure development is about learning what these roles do and what they’re used for.
So, as a developer you define what the role does. Azure takes care of the rest. Each virtual machine is assigned to a role and that gives you sort of a certain built in confidence because each role is given a virtual machine and each virtual machine is given a physical processor core so you know going in that you’re gonna have a certain amount of compute cycles at your disposal in terms of performance.
So, notice on the diagram here that we have the Windows Azure fabric out there in the cloud and sitting on top of that are multiple instances. The diagram shows two instances of a webrole and two instances of a worker role, right? Let’s talk about the different types of roles, so webroles accepts HTTP requests via IS. That’s what it does, that’s how it works, right? That’s not something you can go in and change, right? These virtual machines are not things that you can remote desktop into and mess around with. They’re sort of managed by Windows Azure and that’s so that the responsibility of managing those VMs and applying sort of patches, etc., etc., you don’t have to worry about it right? The goal is to make your life easier. Webroles can be implemented using ASP.NET, Windows Communication Foundation, asmx Web Services, anything that can work with IIS can be used to build out a webrole.
Now, one thing to keep in mind as a developer is you may be used to working, particularly with ASP.NET with state, right? You build an ASP.NET web page, you have users come in and, you know, maybe you’re building a simple ecommerce or retailing site. So you have the concept of a shopping cart, okay? Where do you store the user’s shopping cart right? In the past you might have considered storing it in a session. A session is something that is sort of well established, well understood within web design, web development. The problem with session is that by default session is stored in memory. And the way that Azure is architected is that there is no sticky session or server affinity or whatever term you wanna use.
When you scale out, the whole idea is that there’s a load balancer that sort of sends requests to any available virtual machine and webrole. So, that means that requests from the same user can reach different webrole instances, even within the same “session.” So, that means you can’t use the sort of end memory sessions to store data because the user coming back in will not have likely be hitting the same server.
So, if you want to store state and often times you will, there’s a number of ways that you can do it. If it’s something small and something you don’t mind passing back and forth, you can store it on the client side, say in the form of a cookie. You can also store state in Azure storage and I’ll be talking about Azure storage in just a bit. But that will give you an option that is going to be sort of full proof when you scale out and you create multiple instances of a webrole running in multiple VMs, the fact that the state is stored in Azure storage means that no matter which server they get to, which VM the client is sent to, they’re still gonna have access to their state.
Now working roles are for background processing and typically they’re, you know, ideal for long running tasks. From a developer perspective, we can think of webroles as being equivalent to an ASP.NET web application. You can think of worker roles as being very similar to a Windows service, something that starts automatically, it’s always running. In fact typically a worker role will have a method that contains an infinite loop. While true and that’s where you put your logic, right? That’s even what the template gives you is an infinite loop because the worker role you expect to just keep running, processing work.
Now how it gets that work is another story We’ll talk about that, but the idea is that worker roles do not accept direct incoming requests. They cannot create or maintain HTTP end points, right? IS is not running in its virtual machine. However, worker roles, the code that’s running under a worker role, can make outbound calls. So for instance if you had a long running process that involved invoking services on an external server, you could do that, right? But really it’s about this interplay between the web and the worker role. So, just sort of step out and talk about an example, let’s say you had a worker role that was going to perform some long running task and you wanted it to be tied to a user request. Well, the way that you would do that is you would have a webrole provide an end point that the user could invoke the sort of work request on. That webrole would take that work, drop it into a queue, which we’ll be talking about momentarily. The worker role would pick it up and do the work and in that way, you have the ability to communicate with worker roles, but not directly.
Now, so far we spent all the time talking about the compute part of Windows Azure, the webroles, worker roles, etc. But there’s the other side of Windows Azure itself is the data storage piece. Azure allows data to be stored in one of three things, blobs which would be suitable for large items of user data, tables, which would be good for simple tables or caches, and queues, which would be typically used for service communication. And that’s why in that example I just mentioned we talked about a queue because it would be a place that the webrole could drop a message into and the worker role could pick it up and then process that message and in doing so, process its work.
Azure data storage is designed for massive scale, high availability, durability and it exposes everything via restful services. Now, we’re not used to necessarily using restful services for data access because it’s something that has, you know, only come into prominence more recently with ADO.NET data services. If, you know, you go back a couple of years and we never thought about this, we would use ADO.NET, you know, traditional ADO.NET, T-SQL and so forth. Other more sort of API oriented less restful types of services.
If you still want that experience, it’s actually available. In fact something that I’ll demonstrate in a different session that’s geared towards the whole development experience, it’s something that is provided with the SDK is a sample in which they’ve wrapped the rest based services, the HTTP calls, they’ve wrapped them in a managed API so that you can call a managed API and then behind the scenes it will invoke these restful services. But keep in mind that however you wrap it, data storage is actually being communicated with using HTTP and these rest based services. Another thing about Windows Azure data storage, it is not SQL. Even behind the scenes it’s not SQL. There is actually SQL server in the cloud, but it’s SQL data services, which we’ll talk about shortly. But it’s not Azure data storage.
Service Management
Okay, so Service Management. Service management and again I should sort of step back and say that up until this point, we’ve been talking about the compute and storage point, which is sort of more along the lines of just straightforward utility computing. Now we get to like the value ads so to speak. Service management is and the automated service management is something that is a key factor in what Azure provides. If you define the rules, you provide the code then the platform follows those rules, it deploys your code, it monitors your code and it manages your services. So, again the goal is for you to have to do less work and let the services framework, the services platform take care of things for you.
Speaking of automated service management, just a little bit about how this works, your responsibilities? Well, as a developer you develop and you model your service. You deploy that service to the cloud and you’re going to be responsible for configuring the service settings. And applying constraints that might be applicable. Azure is going to be responsible for running the service and maintaining the services health. And it does that, thanks to the way that it’s designed and it’s really all about abstraction. All resources are logical and are declared as part of the service model. The service code simply calls platform APIs to map logical resources to then physical entities. Service code uses these standard APIs and it allows the operating system, the Azure in the cloud, the OS in the cloud, to be able to replace resources transparently. And there could be, you know, several, you know, instances. The two most typical would be in the face of failures or when performing upgrades.
So, that’s one thing that you get out of Azure is, you know, zero down time upgrades because, you know, once you start talking about horizontal scalability and the fact that your service is running on say ten servers, just to pick a number. Well, let’s say you wanna do an upgrade? It’s a really simple matter to, you know, take one of those servers out of the mix and leave the other nine running. You update the one and there’s no interruption in service. Well then you bring the new one back up online and you go down the line until all of them are updated. And the fact that you essentially get that for free without having to do any work to get that upgrade ability is again, a big part of the value proposition of Windows Azure.
Developer Environment
Now, Azure is designed to give you, as a developer, a really familiar environment. In fact, one of the great things about Azure development is that you have entire cloud just sitting on your desktop, right? And what I mean by that is when you install the Azure SDK, it comes with these little apps and they can be run from the command line they can be run out of Visual Studio. There’s design for flexibility. And these little apps will simulate the cloud environment right on your local machine. Even if you’re not even connected to the internet, they can simulate having a cloud there, simulating the fact that you have these APIs and these compute facilities and the storage facilities, right? On your desktop, Windows Azure storage uses SQL Server Express right? So, it does use SQL there, but the code would stay the same regardless of whether it’s running locally or running in the cloud. So, that makes it really easy to write applications and services that target the cloud.
Because of its HTTP nature, Azure gives you support for a variety of programming languages, ASP.NET, .NET, C#, VB, native code, PHP. And there’s a whole ecosystem of tools and support, right? Integration with Visual Studio is available right now. You can go download the Azure SDK and the tools for Visual Studio. At the recent Microsoft Professional Developers Conference, they demoed an Eclipse plug-in for creating an Azure service and deploying it to the cloud, right? So, that’s something that hasn’t been released as of, you know right now as I speak, but it’s something that’s been demonstrated really as a proof of concept to show that yes these are based on standards and based on HTTP and everything is open in that respect.
The development environment for Azure provides logging and alerts and tracing and there’s plenty of samples already, documentation, MSDN forms. So, there’s a really familiar environment in which you should be able to develop Azure, right? And I’m probably overstating that, but maybe I can’t because that’s a really key part of it from a developer perspective.
Demo: Developer Environment
So, let’s go ahead and just quickly take a look at a very simple Azure application, sort of from start to finish. I should mention that the tools for developing on Azure are available today, at least the CTP versions. There’s two things for basic Azure development. One would be the Azure SDK and that includes the development fabric that runs locally, and then there’s the tools for Visual Studio and these tools require Windows Server 2008 or Vista. And that’s because you need to have IS7 enabled. Also, you need the SQL Server Express. That’s often installed with Visual Studio, so it may not be a separate install, but if you didn’t install it, then you have to install it because that provides the storage for the cloud on your desktop.
And then finally Visual Studio 2008, but you can use the Visual Web Developer 2008 Express, right? In both cases you need service pack 1, but you know because you can use the express edition and because the SDK and the tools for Visual Studio are all free, it basically means that you can get started today developing and testing Azure applications for essentially no charge.
All right so within my new project dialogue, I’m gonna select cloud service and I’m gonna select web cloud service. And we’ll just call this ‘hello Azure’ and let it take over the creation of the project using the templates that come with the tools for Visual Studio. You’ll notice that there’s two projects, the hello Azure that represents the cloud service and by the way any time you see CS in here right? We have to get used to the fact that now it can either mean C# or it can mean cloud service, as is the case with these two XML files. Servicedefinition.csdef and serviceconfiguration.cfg. So, these configuration files are important because they define the configuration settings for the service.
In fact, this service configuration file here is what gets uploaded to the cloud and allows you to do things like change configuration settings and increase the instance count. So, if I decide that I need more bandwidth, more compute cycles, I can just increase the count, the number of instances of this particular webrole. Okay, so there’s two sort of XML configuration files. And then there’s the roles. Once again, we can have a webrole or a worker role or both, but we can have no more than one of each. So for instance because I’ve already got a webrole, I can no longer add an additional webrole, but I could add a worker role project if I wanted to, okay?
Now back to the webrole. Look closely at the webrole and you’ll see that this is really just an ASP.NET web application right? That’s all it is. Which means that anything that we could do in a web application we could do here. If you wanted to create a host for a Silverlight control, if you wanted to build a Windows Communication Foundation Service. If you wanted to create a simple .asmx based good old fashioned web service. Or if you wanna do an ..aspx page, right? All those things we can do right?
Speaking of .ASPX page, this will be hello Azure, we’ll write it twice, right? So we’ve modified our .ASPX page and that’s the only thing I’m gonna do. I’m gonna go ahead and start debugging, right? I’m going to get a couple of messages, potentially. You’ll see that two things start up: the development fabric and the development storage. You’ll see those running in the tray and I’ll bring those up in a moment. And then it launches the application, right? And I could debug this just like any other web application and I could put into here whatever I want based on, you know, what I could put into an ASP.NET web application, right?
I know you’re thinking it’s not very exciting to put a message hello and that’s it, but the real key is, you know, what did we get for free? If we wanted to add additional servers, we’d just go change that instance count, right? It’s just a simple flip of the switch and we get horizontal scaling. We didn’t have to do anything in terms of our application in order to be able to get that, right?
Down in the system tray we can see we’ve got a development fabric user interface. This is not part of the tools for Visual Studio, this is part of the SDK, meaning that you can get this and use this even from the command line or even if you’re using a different development environment. So, there’s quite a bit of flexibility there. Let’s see, where’s our fabric UI? All right there it is. Okay, so we can see that with the development fabric, we’ve got our service deployment. There’s hello Azure, there’s the webrole, right? We can expand this and we can see a little output window. And so if we were doing, you know, logging to this, we could actually see, you know, those instances. Notice that I have one instance and it’s just given, you know, zero based ordinal. If I was gonna go back and close this, it’s going to stop debugging. I could go into the service configuration. I could change that instance count to 2 and then we start the application.
And of course, once the application starts up, we should be able to see the development fabric UI again. There’s the fabric right now. No service deployments. It’s still in the process of deploying. There’s the page and we’ve got two instances. So, there’s instance 0 and there’s instance one right? And so now it’s just gonna load balance requests coming in and it’s gonna go to one or the other. And it’ll do the same thing with worker roles, right? And so you potentially could have, you know, many instances to be able to scale this out, you know, almost without limits. So, it’s highly powerful.
The development fabric is part of it. There’s also the storage and so the development storage UI is there as well. It doesn’t tell you quite as much, but it does show you which services are running and what the end point is and which services are stopped, you can reset it, so there’s a little user interface there. Again, you can use this fabric even from the command line or with other tools if somebody builds the right connectivity pieces. But everything is based on, you know, HTTP and rest based services. So, even though this was a simple example, right? I hope you can appreciate the investment that’s made into recreating the cloud right there on your desktop so that you can easily develop for Windows Azure.
Azure Services Platform
So, the Azure services platform is about more than what we’ve been talking about to this point. Up until this point, we’ve seen how an application can be hosted on Windows Azure in the cloud, it can enjoy the compute and storage facilities of Azure. We can also sort of expand that to include applications that are running locally or on premise and they can leverage the services provided in the cloud. But what we’ve talked about so far is only part of what’s called the Azure services platform. This platform also includes .NET Services, SQL services and Live services.
So, what are these things? Well, they’re essentially this other part of the cloud framework. Other services that are in the cloud that you can leverage. You can leverage them from your Azure applications and you can leverage them from on premise applications. So you can just call them directly from your stand alone apps, from your web apps hosted on premises, or you can use them from within Windows Azure. Either way, or anyway, there’s again a great deal of flexibility here. So, let’s talk about each of these and where they fit.
First of all, all of these sort of provide this layer on top of Windows Azure that your application can choose to take part in, to leverage. Of course your application can just use the compute and storage facilities and that it. Or it can leverage things like the service bus or the database in SQL services or various services provided by Live services and the Live framework. So, there’s a lot of flexibility. In terms of Microsoft’s approach to Azure services is to create this services platform with, you know, high degree of scalability, internet scale where anything that’s simple is really, really simple. And even things that are complex are still possible, right? All of these services are hosted in Microsoft owned data centers that they’ve been investing in heavily along with the rest of the infrastructure for Azure. And everything’s designed for high availability, scalability.
It’s also based on standards right? So, the protocols that you’ll see with these services include HTTP and Rest, Soap and Adam, right? And so there’s been a significant investment there in having and ensuring open community based access to these services, right? You should be able to extend your existing investments by using familiar tools and languages, frameworks. And give you choices in terms of architecture, being able to build on premises, build on the cloud, create a hybrid solution, right? And then finally, you’ll see with certain things like, you know, access control service for instance, being able to integrate with existing assets, like active directory and other on premises applications. So, there’s a real goal here to provide a high degree of value through these services. A big part of it is really gained from this interoperability. Of course you can use these services from .NET, but you can also use them from all sorts of other platforms because they’re HTTP based, they’re standards based.
So, quickly I just wanna talk about each of these and sum up what they provide. .NET Services are essentially building blocks that address some key developer challenges. So for instance one of the things that’s traditionally difficult to manage is identity, especially when you’re talking about internet based applications, right? Consider if you’re building an app that’s for your employees. It’s pretty easy to do access control there because you probably got an active directory server, curb row, or something going on inside your enterprise infrastructure that you can just talk to right?
But let’s now move it outside out onto the internet where you wanna have—you still wanna have access control, but now you’re dealing with people coming from different areas, right? And you don’t want them to—you don’t want to have to recreate yet another username-password repository. You’d rather have them be able to use what they already—you know, what they already own. For instance, let’s say you’ve got a set of vendors and you want them to be able to talk to a service that you’ve created. Well, they’re from different companies and so you want them to be able to use their own identities, but you wanna be able to recognize that and allow or disallow access. Well, you know, that’s hard to do and it usually means writing a lot of code in the service itself to determine who you are and what you’re doing there and whether you should have access. Much, much better to delegate that out to almost a third party, but you’ll see it’s not quite so distant. Because what access control service provides for you is a secure token service in the cloud.
And it’s not just a secure token service in the cloud. And it’s not just a single secure token service that everybody shares because you can certainly appreciate how that might cause some concerns. What Microsoft provides via access control service is a private secure token service that’s just for you that’s sitting up there in the cloud that you can get to from anywhere and you can configure yourself to determine who you want to trust and who you want to allow access to your services.
The service bus is a sort of succinct way to expose your services to the outside world. Now you think well I can already do that right? Well, sure but if you do that today, that means that you have to have a public domain name with a fixed IP address and you have to—and even then, you have to worry about the fact that users need to find a way to look up your service, right? If you have a service that is maybe behind network address translation, so it doesn’t have a fixed IP address. Or maybe it’s behind a firewall and so it’s something that only accepts HTTP and your service isn’t running HTTP. Then there’s different, sort of arrangements that can present problems when exposing a service to the outside world. Using the service bus is essentially an enterprise service bus, but one that’s been sort of pushed up to the cloud and just sitting out there for you to use, right? So, it can be thought of as your perimeter service, your DNZ out there in the cloud and so there’s a lot of interesting things that you can do with the .NET service bus.
Workflow service is simply put the ability to host Windows workflow in the cloud, right? It’s a host process for WF35 based applications so that you can do long running processes, parallel processes, workflow oriented work and just have it going out there using up compute cycles out there in the cloud so, you know, for work flow situations, especially those that involve, you know, multiple entities, you know geographically distributed, work flow service can be a nice option there.
There will be more of these services, right? These are just the three that are currently out there right now and they’ve been identified as some key developer challenges. And again these are just building blocks that allow you to, you know, easily solve some of the typical things that you come across in distributed computing, especially on the internet.
SQL services is your database in the cloud. Now, it is actually SQL server behind the scenes storing the data, but you don’t use T-SQL to talk to it. You use link or ADO.NET data services. Right now, SQL data services, which is the data storage piece is supported in the current CTP. Eventually, SQL servers will include analysis and reporting and some other features, but right now it’s just the storage piece, right? So, this would be for situations that may be Azure data storage is not quite suitable for, right? You could use one or the other or both or none depending, but this provides sort of and perhaps a more familiar approach to data access because it’s actually using SQL server.
Finally there’s Live Services. Now, Live Services has grown out of, you know, Windows Live and the Live APIs. And one of the things from a developer perspective that I noticed personally is that the APIs for accessing the Windows Live information, they were kind of all over the map. There was, you know, in some cases use java script, like for instance for Virtual Earth. Then in other cases there was a managed API and so there wasn’t a whole lot of consistency and that’s what Live Services brings. I should say it’s part of what Live Services brings because it’s certainly more than that.
The idea behind Live Services is we all have this data and people are storing data on the internet more and more. You think of what people do with social networking and online e-mail and calendars and instant messaging and so forth, blogging and all this data is up there. And we’re used to more and more being able to get to that data no matter where we are, right? And that’s why people, for instance, you put your photos on Flicker so you don’t have to carry your laptop to grandma’s house. You can just go on grandma’s computer and go online and there’s your pictures. You don’t even have to be there, you can just e-mail her with a link to Flicker and she can go see those pictures.
So, moving data up into the cloud is something that’s already happening and Live Services is just a way to take advantage of that with a whole framework and a set of APIs. The APIs are consistent, so they’ll be consistent across the board which is, you know, nice if you’re coming to this having seen the live APIs to this point. But it’s much more than that.
There’s also this thing called the Live Framework, which is the Live Operating environment. So, this is something that it does live in the cloud and it provides access to all this data for identity and users and devices and storage, etc. But the live operating environment in addition to living in the cloud, it can also be installed on devices, including Windows Vista and Windows XP and Windows Mobile. Even Macintosh OS X. And the real beauty of that is you can have this synchronization that occurs between all of your devices so that without you having to do anything your phone knows about all of the data that your PC does.
And the same, you know, with—and that works with the data that you’re using online and so forth to where this synchronization happens basically in a peer to peer model to where even if you’re not connected but you have one of your devices, you’re gonna have your data. If you happen to have your mobile device, well it’s been synched, so you have the data. If you happen to be using your laptop on a plane, you’re not connected to the internet, but you still have the data because you’ve installed the live operating environment so you have access to that. So, there’s a lot of potential there and Live Services will provide a great deal of, you know, interesting solutions on which to build sort of the next generation of internet and web based applications.
So, hopefully you’ve seen a little bit about what Azure is all about from a developer perspective. The next thing you should be doing is getting started. Azure.com or Microsoft.com/azure will take you to sort of a jumping off point. You can download the Azure SDKs to experiment locally. There’s SDKs for Azure itself, the tools for Visual Studio. There’s also SDKs for .NET Services, SQL services, etc. If you wanna try it out, you know, really in the cloud, then you can register for the Azure community technology preview. And of course there’s lots of resources that are already out there at the Azure site, demos, videos, hands on labs, case studies if your interested in seeing what other people have done with this cloud based computing already, even prior to the official launch of Azure, Microsoft is working with partners to make sure that this technology was real world and it provided real world benefits.
So, there’s a lot of resources already out there to help get you started. I’d like to, as always, thank you very much for your time and remind you to visit www.isvinnovation.com for all your training needs and with that wish you good day and hope to see you or speak to you again. Thank you.
[End of Audio]