June 2012 - Posts
Satya Nadella, President of Server and Tools Business @ Microsoft
It’s time for Microsoft to reinvent itself. Why?
- Modern Data Center: New Hardware abstraction making the OS worry about Resource Management
- Modern Apps
- Compute (multi-core, memory density, system density)
- Storage (SSD, costs, ..)
Services at internet scale
- runs the world biggest apps
- feedback loop
- global scale, 24/6
Last week Bing was migrated into Windows Server 2012 RC
Modern Data Center
Inside the modern DC
- Scalable & Elastic
- Always up and on
- Shared resources
- Automated & self service
Windows Server 2012
- Scalable & Elastic
- 64 virtual processes per VM, with up to 4000 VMs with HyperV 3.0
- Always up and on
- Ability to update the cluster without needing to take it down
- Shared resources
- Ability to have storage virtualization, network virtualization and isolation of workloads using policies
- 64TB per virtual disk
- Automated & self service
- Windows Server 2012
- 256 GB RAM, 80 logical processors, 5 HBAs,
- About 985,000 IOPS from a single machine and it can be faster.
- With ODX enabled you can get now around 1GB/sec without any Network utilization
- Windows Azure VMs
- Windows Azure Web Sites
- Windows Azure Cloud Services
- Always on
- 99.95% SLA
- Highly available
- Shared Resources
- Network Virtualization capability
- Automated & Self-Services
- Everything available through PowerShell and APIs
Visual Studio 2012
- Visual Studio LightSwitch inside Visual Studio by default
- Announcement: LightSwitch has support for OData and also HTML5
Integration between Visual Studio Web Tests and System Center in order to use the same Web Test file to configure the monitoring and at the end debug problems back in Visual Studio with the Historical Debugger (IntelliTrace)
- Integrated with Windows Azure and AD
- Self Service
- Any data, any size, anywhere
- rich capabilities to reason over data. Add intelligence to your data like adding machine learning
- Connect this data with other solutions. Capability to connect Excel to BigData
Another new feature that was brought by the new Windows Azure SDK 1.7 was the way the Compute Emulator emulates the Web Roles, since it now uses IIS Express instead of Full IIS.
You might be thinking that isn't very important, but it really is since it allows the developer to be more productive even with a less powerful machine, since IIS Express is able to run most of the roles without demanding so much from the machine as IIS does. But on the other hand, if we really have something in our Web Role that requires the use of IIS we are able to change the local development server into Full IIS. By having this we can go from a lightweight development process that doesn't require a huge machine, but changing to a much robust solution only if we require some of the features that only exist in Full IIS.
By default the local development server for the cloud project is set to "Use IIS Express".
(Figure 1 - Windows Azure Cloud Project Properties window)
In order to change to use Full IIS instead of IIS Express for emulating the Web Role locally we just need to change it to "Use IIS Web Server".
(Figure 2 - Windows Azure Cloud Project Properties window)
So, with this new feature we can get a lot more productive since the development and emulation of Windows Azure requires less machine resources, making things go faster.
As you already seen Windows Azure SDK 1.7 brings a very interesting feature with the development tools that is the ability to run both version 1.6 and 1.7 side-by-side.
You might be thinking about why this is so interesting, so let me help you with that.
- First a bit of history, since almost with every release of Windows Azure SDK the recurrent discussion would be about the changes that the new SDK was bringing and how that would affect the existing developed solutions. A lot of time we would hear that some developers couldn't start to use the new version of the SDK immediately because they still had something done in the previously version and would first need to take a look in what was changed and only after that they would be able to start working.
- So with this new feature this problem is finally addressed since we can maintain both SDK versions running side by side and so allowing us to get the best out of both worlds, using the new version for new development and the previous version for maintaining the existing ones.
Now that you already know the Why associated with this features, let's take a look at How we can take advantage of that and also what it allows. In order to do this let's start from the beginning and look at the Create new Project windows in Visual Studio.
(Figure 1 - New Windows Azure Cloud Service dialog in Visual Studio 2010)
This dialog allows us to choose the version of the Windows Azure Tools we would like to use in order to start the project, and by doing that adjusting the Role list based on the version we choose.
(Figure 2 - Role Templates for Windows Azure SDK 1.6)
(Figure 3 - Role Templates for Windows Azure SDK 1.7)
So this is a very interesting feature that will enable everyone to be even more productive but first of all, be able to start taking advantage of the new SDK without needing to go through uninstalling the previous version and installing the new version or even needing to ignore the newest version for a period of time because they are supporting some project that is still in the previous version.
Windows Azure just had a very interesting upgrade as it was discussed at the MeetWindowsAzure event. This event basically showed how Windows Azure is moving and becoming even more powerful and at the same time incorporating the community feedback.
In this new release of the SDK the interesting parts are:
1. Side-by-Side installation with SDK 1.7
(Figure 1 - Create New Windows Azure Cloud Service window with SxS 1.6 and 1.7 SDKs)
2. IIS Express support for local development
- Now instead of the Windows Azure Compute Emulator using the Full IIS for emulating the Web Role, it uses only the IIS Express version in order to make the process less intensive for the machine.
(Figure 2 - Windows Azure Web Role running in the Compute Emulator under IIS Express)
3. New approach for Caching in Windows Azure called "Windows Azure Cache".
- This new approach to Windows Azure Caching is made available in two different scenarios:
- Dedicated Caching Nodes
- Made available by a new Worker Role called "Cache Worker Role". Used when we want 1 or more dedicated node(s) for Caching purposes only
(Figure 3 - New Windows Azure Cloud Service dialog with the new Cache Worker Role)
- Shared Caching Nodes
- Made available through the Role Properties, since now we have a Caching Tab in which we can define how we want to configure our Windows Azure Cache, and so reuse our existing Roles in order to also provide Caching capabilities.
(Figure 4 - Properties Windows for a Windows Azure Role with the Caching Tab Selected)
4. Improved Visual Studio Server Explorer support for Windows Azure
(Figure 5 - New Visual Studio Server Explorer with Services Bus and Windows Azure VMs support)
- Service Bus Queues and Topics
- With this new support from inside Visual Studio it makes our life easier to manage and even understand what's happening inside both Queues and Topics, as well as allowing us to Create new Queues, Topics and Subscriptions and also Sending and receiving messages directly from Visual Studio. This is a great improvement in terms of making our life easier since we have an one stop shop for doing everything related to both of these Service Bus features.
(Figure 6 - Managing Service Bus Queues and Topics from the Visual Studio Server Explorer)
- Virtual Machines
- New support in Visual Studio Server Explorer to manage the new IaaS offering available in Windows Azure.
- In this version we'll be able to Connect directly to the Instance through Remote Desktop without ever leaving Visual Studio.
(Figure 7 - Connect using Remote Desktop option from Server Explorer)
(Figure 8 - Remote Desktop Connection for the Windows Azure instance based on the choice in Server Explorer)
5. Improvements in the Publishing Process
- New "Delete Deployment on failure" option
(Figure 9 - Windows Azure Advanced Publishing Settings dialog)
- Improved "Deployment Update" Options allowing two options:
- Incremental Update.
- Make the update process a rolling update by performing the update on 1 (one) instance at a time.
- Simultaneous Update
- Makes the update process a full and complete update, so every instance is update at the same time (or virtually at the same time). This might mean some downtime for you cloud service.
- Also Very important is the new option "If deployment can't be updated, do a full deployment" which makes the update process smart enough to understand if the full deployment is the best option for it and so always being able to have the update being made.
(Figure 10 - Deployment Update Settings window)
- New CloudConfigurationManager
- This class provides an automatic cascade for setting lookups from csdef/cscfg first to web/app.config next.
6. Reference improvements (NuGet(s), client libs)
- More use of NuGet in order to make the updating of project references easier.
- New NuGet Packages for consuming the new Windows Azure Caching
- Windows Azure Caching Preview
- All client helper classes and configurations to consume the new Windows Azure Caching Role.
- Package Name: Microsoft.WindowsAzure.Caching.188.8.131.52.nupkg
- Windows Azure Caching Memcache Shim Preview
- All client helper classes and configurations to consume the new Windows Azure Caching Role using the memcache protocol.
- Package Name: Microsoft.WindowsAzure.Caching.MemcacheShim.184.108.40.206.nupkg
- Windows Azure Shared Caching
- All client classes and configurations to consume the current version of Windows Azure Caching.
- Package Name: WindowsAzure.Caching.220.127.116.11.nupkg
- Windows Azure Configuration Manager NuGet Package
- Classes that enable the new Configuration Manager class to work in providing an automatic cascade for setting lookups from Service Configuration to Web.Config/App.Config.
- Package Name: Microsoft.WindowsAzure.ConfigurationManager.18.104.22.168.nupkg
- Windows Azure Storage
- Set of helper classes and configurations to make working with Windows Azure Storage simpler.
- Package Name:WindowsAzure.Storage.22.214.171.124.nupkg
- Windows Azure Service Bus
- Set of helper classes and configurations that make working with Windows Azure Service Bus simpler.
- Package Name: WindowsAzure.ServiceBus.126.96.36.199.nupkg
(Figure 11 - Contents of the packages folder that is installed with the new Windows Azure SDK 1.7)
7. New Worker Role with Service Bus Queue
- New Worker Role Template that has everything needed to consume Messages from Windows Azure Service Bus Queues, as well as also having code blocks on the OnStart, OnStop and Run methods of the RoleEntryPoint class for the Worker role that will handle the configuration, graceful shutdown and of course the receiving and processing of the message
(Figure 12 - Add New Role to Project dialog)
8. UDP support
9. LightSwitch publishing improvements
So those are only 9 of the very interesting things that I come across with the new Windows Azure SDK 1.7 release.
Expect more details about the several elements described here in other blog posts.