ScottGu's Blog

Scott Guthrie lives in Seattle and builds a few products for Microsoft

  • Docker and Microsoft: Integrating Docker with Windows Server and Microsoft Azure

    I’m excited to announce today that Microsoft is partnering with Docker, Inc to enable great container-based development experiences on Linux, Windows Server and Microsoft Azure.

    Docker is an open platform that enables developers and administrators to build, ship, and run distributed applications. Consisting of Docker Engine, a lightweight runtime and packaging tool, and Docker Hub, a cloud service for sharing applications and automating workflows, Docker enables apps to be quickly assembled from components and eliminates the friction between development, QA, and production environments.

    Earlier this year, Microsoft released support for Docker containers with Linux on Azure.  This support integrates with the Azure VM agent extensibility model and Azure command-line tools, and makes it easy to deploy the latest and greatest Docker Engine in Azure VMs and then deploy Docker based images within them.  

    Docker Support for Windows Server + Docker Hub integration with Microsoft Azure

    Today, I’m excited to announce that we are working with Docker, Inc to extend our support for Docker much further.  Specifically, I’m excited to announce that:

    1) Microsoft and Docker are integrating the open-source Docker Engine with the next release of Windows Server.  This release of Windows Server will include new container isolation technology, and support running both .NET and other application types (Node.js, Java, C++, etc) within these containers.  Developers and organizations will be able to use Docker to create distributed, container-based applications for Windows Server that leverage the Docker ecosystem of users, applications and tools.  It will also enable a new class of distributed applications built with Docker that use Linux and Windows Server images together.

  • Azure: Redis Cache, Disaster Recovery to Azure, Tagging Support, Elastic Scale for SQLDB, DocDB

    Over the last few days we’ve released a number of great enhancements to Microsoft Azure.  These include:

    • Redis Cache: General Availability of Redis Cache Service
    • Site Recovery: General Availability of Disaster Recovery to Azure using Azure Site Recovery
    • Management: Tags support in the Azure Preview Portal
    • SQL DB: Public preview of Elastic Scale for Azure SQL Database (available through .NET lib, Azure service templates)
    • DocumentDB: Support for Document Explorer, Collection management and new metrics
    • Notification Hub: Support for Baidu Push Notification Service
    • Virtual Network: Support for static private IP support in the Azure Preview Portal
    • Automation updates: Active Directory authentication, PowerShell script converter, runbook gallery, hourly scheduling support

    All of these improvements are now available to use immediately (note that some features are still in preview).  Below are more details about them:

    Redis Cache: General Availability of Redis Cache Service

    I’m excited to announce the General Availability of the Azure Redis Cache. The Azure Redis Cache service provides the ability for you to use a secure/dedicated Redis cache, managed as a service by Microsoft. The Azure Redis Cache is now the recommended distributed cache solution we advocate for Azure applications.

    Redis Cache

    Unlike traditional caches which deal only with key-value pairs, Redis is popular for its support of high performance data types, on which you can perform atomic operations such as appending to a string, incrementing the value in a hash, pushing to a list, computing set intersection, union and difference, or getting the member with highest ranking in a sorted set.  Other features include support for transactions, pub/sub, Lua scripting, keys with a limited time-to-live, and configuration settings to make Redis behave more like a traditional cache.

    Finally, Redis has a healthy, vibrant open source ecosystem built around it. This is reflected in the diverse set of Redis clients available across multiple languages. This allows it to be used by nearly any application, running on either Windows or Linux, that you host inside of Azure.

    Redis Cache Sizes and Editions

    The Azure Redis Cache Service is today offered in the following sizes:  250 MB, 1 GB, 2.8 GB, 6 GB, 13 GB, 26 GB, 53 GB.  We plan to support even higher-memory options in the future.

    Each Redis cache size option is also offered in two editions:

    • Basic – A single cache node, without a formal SLA, recommended for use in dev/test or non-critical workloads.
    • Standard – A multi-node, replicated cache configured in a two-node Master/Replica configuration for high-availability, and backed by an enterprise SLA.

    With the Standard edition, we manage replication between the two nodes and perform an automatic failover in the case of any failure of the Master node (because of either an un-planned server failure, or in the event of planned patching maintenance). This helps ensure the availability of the cache and the data stored within it. 

    Details on Azure Redis Cache pricing can be found on the Azure Cache pricing page.  Prices start as low as $17 a month.

    Create a New Redis Cache and Connect to It

    You can create a new instance of a Redis Cache using the Azure Preview Portal.  Simply select the New->Redis Cache item to create a new instance. 

    You can then use a wide variety of programming languages and corresponding client packages to connect to the Redis Cache you’ve provisioned.  You use the same Redis client packages that you’d use to connect to your own Redis instance as you do to connect to an Azure Redis Cache service.  The API + libraries are exactly the same.

    Below we’ll use a .NET Redis client called StackExchange.Redis to connect to our Azure Redis Cache instance. First open any Visual Studio project and add the StackExchange.Redis NuGet package to it, with the NuGet package manager.  Then, obtain the cache endpoint and key respectively from the Properties blade and the Keys blade for your cache instance within the Azure Preview Portal.

    image

    Once you’ve retrieved these, create a connection instance to the cache with the code below:

    var connection = StackExchange.Redis.ConnectionMultiplexer.Connect("contoso5.redis.cache.windows.net,ssl=true,password=...");

  • New D-Series of Azure VMs with 60% Faster CPUs, More Memory and Local SSD Disks

    Today I’m excited to announce that we just released a new set of VM sizes for Microsoft Azure. These VM sizes are now available to be used immediately by every Azure customer.

    The new D-Series of VMs can be used with both Azure Virtual Machines and Azure Cloud Services.  In addition to offering faster vCPUs (approximately 60% faster than our A series) and more memory (up to 112 GB), the new VM sizes also all have a local SSD disk (up to 800 GB) to enable much faster IO reads and writes.

  • Azure: New DocumentDB NoSQL Service, New Search Service, New SQL AlwaysOn VM Template, and more

    Today we released a major set of updates to Microsoft Azure. Today’s updates include:

    • DocumentDB: Preview of a New NoSQL Document Service for Azure
    • Search: Preview of a New Search-as-a-Service offering for Azure
    • Virtual Machines: Portal support for SQL Server AlwaysOn + community-driven VMs
    • Web Sites: Support for Web Jobs and Web Site processes in the Preview Portal
    • Azure Insights: General Availability of Microsoft Azure Monitoring Services Management Library
    • API Management: Support for API Management REST APIs

    All of these improvements are now available to use immediately (note that some features are still in preview).  Below are more details about them:

    DocumentDB: Announcing a New NoSQL Document Service for Azure

    I’m excited to announce the preview of our new DocumentDB service - a NoSQL document database service designed for scalable and high performance modern applications.  DocumentDB is delivered as a fully managed service (meaning you don’t have to manage any infrastructure or VMs yourself) with an enterprise grade SLA.

    As a NoSQL store, DocumentDB is truly schema-free. It allows you to store and query any JSON document, regardless of schema. The service provides built-in automatic indexing support – which means you can write JSON documents to the store and immediately query them using a familiar document oriented SQL query grammar. You can optionally extend the query grammar to perform service side evaluation of user defined functions (UDFs) written in server-side JavaScript as well. 

    DocumentDB is designed to linearly scale to meet the needs of your application. The DocumentDB service is purchased in capacity units, each offering a reservation of high performance storage and dedicated performance throughput. Capacity units can be easily added or removed via the Azure portal or REST based management API based on your scale needs. This allows you to elastically scale databases in fine grained increments with predictable performance and no application downtime simply by increasing or decreasing capacity units.

    Over the last year, we have used DocumentDB internally within Microsoft for several high-profile services.  We now have DocumentDB databases that are each 100s of TBs in size, each processing millions of complex DocumentDB queries per day, with predictable performance of low single digit ms latency.  DocumentDB provides a great way to scale applications and solutions like this to an incredible size.

    DocumentDB also enables you to tune performance further by customizing the index policies and consistency levels you want for a particular application or scenario, making it an incredibly flexible and powerful data service for your applications.   For queries and read operations, DocumentDB offers four distinct consistency levels - Strong, Bounded Staleness, Session, and Eventual. These consistency levels allow you to make sound tradeoffs between consistency and performance. Each consistency level is backed by a predictable performance level ensuring you can achieve reliable results for your application.

    DocumentDB has made a significant bet on ubiquitous formats like JSON, HTTP and REST – which makes it easy to start taking advantage of from any Web or Mobile applications.  With today’s release we are also distributing .NET, Node.js, JavaScript and Python SDKs.  The service can also be accessed through RESTful HTTP interfaces and is simple to manage through the Azure preview portal.

    Provisioning a DocumentDB account

    To get started with DocumentDB you provision a new database account. To do this, use the new Azure Preview Portal (http://portal.azure.com), click the Azure gallery and select the Data, storage, cache + backup category, and locate the DocumentDB gallery item.

    image

    Once you select the DocumentDB item, choose the Create command to bring up the Create blade for it.

  • Azure: Virtual Machine, Machine Learning, IoT Event Ingestion, Mobile, SQL, Redis, SDK Improvements

    This past month we’ve released a number of great enhancements to Microsoft Azure.  These include:

    • Virtual Machines: Preview Portal Support as well as SharePoint Farm Creation
    • Machine Learning: Public preview of the new Azure Machine Learning service
    • Event Hub: Public preview of new Azure Event Ingestion Service
    • Mobile Services: General Availability of .NET support, SignalR support
    • Notification Hubs: Price Reductions and New Features
    • SQL Database: New Geo-Restore, Geo-Replication and Auditing support
    • Redis Cache: Larger Cache Sizes
    • Storage: Support for Zone Redundant Storage
    • SDK: Tons of great VS and SDK improvements

    All of these improvements are now available to use immediately (note that some features are still in preview).  Below are more details about them:

    Virtual Machines: Support in the new Azure Preview portal

    We previewed the new Azure Preview Portal at the //Build conference earlier this year.  It brings together all of your Azure resources in a single management portal, and makes it easy to build cloud applications on the Azure platform using our new Azure Resource Manager (which enables you to manage multiple Azure resources as a single application).  The initial preview of the portal supported Web Sites, SQL Databases, Storage, and Visual Studio Online resources.

    This past month we’ve extended the preview portal to also now support Virtual Machines.  You can create standalone VMs using the portal, or group multiple VMs (and PaaS services) together into a Resource Group and manage them as a single logical entity. You can use the preview portal to get deep insights into billing and monitoring of these resources, and customize the portal to view the data however you want.  If you are an existing Azure customer you can start using the new portal today: http://portal.azure.com.

    Below is a screen-shot of the new portal in action.  The service dashboard showing service/region health can be seen in the top-left of the portal, along with billing data about my subscriptions – both make it really easy for you to see the health and usage of your services in Azure.  In the screen-shot below I have a single VM running named “scottguvstest” – and clicking the tile for it displays a “blade” of additional details about it to the right – including integrated performance monitoring usage data:

    image

    The initial “blade” for a VM provides a summary view of common metrics about it.  You can click any of the titles to get even more detailed information as well. 

    For example, below I’ve clicked the CPU monitoring title in my VM, which brought up a Metric blade with even more details about CPU utilization over the last few days.  I’ve then clicked the “Add Alert” command within it to setup an automatic alert that will trigger (and send an email to me) any time the CPU of the VM goes above 95%:

  • Free ebook: Building Cloud Apps with Microsoft Azure

    9780735695658f

    Last week MS Press published a free ebook based on the Building Real-World Apps using Azure talks I gave at the NDC and TechEd conferences.  The talks + book walks through a patterns-based approach to building real world cloud solutions, and help make it easier to understand how to be successful with cloud development.

    Videos of the Talks

    You can watch a video recording of the talks I gave here:

  • Azure: VM Security Extensions, ExpressRoute GA, Reserved IPs, Internal Load Balancing, Multi Site-to-Site VPNs, Storage Import/Export GA, New SMB File Service, API Management, Hybrid Connection Service, Redis Cache, Remote Apps and more…

    This morning we released a massive amount of enhancements to Microsoft Azure.  Today’s new capabilities and announcements include:

    • Virtual Machines: Integrated Security Extensions including Built-in Anti-Virus Support and Support for Capturing VM images in the portal
    • Networking: ExpressRoute General Availability, Multiple Site-to-Site VPNs, VNET-to-VNET Secure Connectivity, Reserved IPs, Internal Load Balancing
    • Storage: General Availability of Import/Export service and preview of new SMB file sharing support
    • Remote App: Public preview of Remote App Service – run client apps in the cloud
    • API Management: Preview of the new Azure API Management Service
    • Hybrid Connections: Easily integrate Azure Web Sites and Mobile Services with on-premises data+apps (free tier included)
    • Cache: Preview of new Redis Cache Service
    • Store: Support for Enterprise Agreement customers and channel partners

    All of these improvements are now available to use immediately (note that some features are still in preview).  Below are more details about them:

  • Azure: 99.95% SQL Database SLA, 500 GB DB Size, Improved Performance Self-Service Restore, and Business Continuity

    Earlier this month at the Build conference, we announced a number of great new improvements coming to SQL Databases on Azure including: an improved 99.95% SLA, support for databases up to 500GB in size, self-service restore capability, and new Active Geo Replication support.  This 3 minute video shows a segment of my keynote where I walked through the new capabilities:

    image

    Last week we made these new capabilities available in preview form, and also introduced new SQL Database service tiers that make it easy to take advantage of them.

  • Azure Updates: Web Sites, VMs, Mobile Services, Notification Hubs, Storage, VNets, Scheduler, AutoScale and More

    It has been a really busy last 10 days for the Azure team. This blog post quickly recaps a few of the significant enhancements we’ve made.  These include:

    • Web Sites: SSL included, Traffic Manager, Java Support, Basic Tier
    • Virtual Machines: Support for Chef and Puppet extensions, Basic Pricing tier for Compute Instances
    • Virtual Network: General Availability of DynamicRouting VPN Gateways and Point-to-Site VPN
    • Mobile Services: Preview of Visual Studio support for .NET, Azure Active Directory integration and Offline support;
    • Notification Hubs: Support for Kindle Fire devices and Visual Studio Server Explorer integration
    • Autoscale: General Availability release
    • Storage: General Availability release of Read Access Geo Redundant Storage
    • Active Directory Premium: General Availability release
    • Scheduler service: General Availability release
    • Automation: Preview release of new Azure Automation service

    All of these improvements are now available to use immediately (note that some features are still in preview).  Below are more details about them: