This session covers how to develop on-prem IaaS (Infrastructure as a service) using the Azure pack for Windows Server 2012 R2 and VMM 2012 R2. The session was more developer oriented than I thought from the description, so I ended up leaving a bit early since I’m not a developer. However, in the beginning the speaker did several demos of what the Azure pack does, which I found very useful. He then dove into the back-end details on how it all worked and what you have to do to build your own on-prem Azure VM gallery.
Hinted at in this session, and other sessions, is a possible roadmap feature where Microsoft would provide pre-configured gallery templates for certain Microsoft products like System Center and SQL. You would then be able to tweak the config, and easily built up a service catalog, and deploy MS services on Hyper-V in a highly controlled, standardized, and automated way. The R2 Windows Server and System Center release have a lot of the building blocks to enable those features in the future. Given the accelerated release cadence of MS’s cloud platform, customers will get new features much faster than they historically have.
- MS is hyper-focused on consistent cloud experience across the clouds (on-prem, Azure, service provider) at all layers (UX, APIs, PowerShell)
- IaaS (Infrastructure as a service) – Elastic tiers
- Customer requests: Enable templates to be deployed to any cloud, Provide a gallery of applications, Provide console access to remote VMs, anaging standalone VMs is not enough
- Vision (not 100% delivered in R2): A consistent service model amongst Windows Server, System Center and Windows Azure for composing, deploying and scaling virtualized applications and workloads.
- Four pillars: Portal User experience, deployment artifacts, management APIs, on-prem, hosted clouds and Azure
- Consistent IaaS Platform: Delivered on portal user experience (Azure Pack), deployment artifacts, management APIs, Clouds
- Showed a gallery for the VM role (new to Azure). Lists various services (SQL srever, IIS web server, SharePoint, etc.) that the admin has configured and curated. Gallery shows different versions of the same template, and can be tied to a subscription. When deploying a VM you can define the number of instances, for scale-out.
- VM container, and Application container concepts (application payload is delivered into an OS)
- The Gallery wizard prompts for a number of service properties (website name, admin names, VM sizes, etc.).
- Shows a usage portal, which lists cores, RAM, storage, and VM usage. Also lists instances, IP address, disks, subscription, VM operations (power, stop, reset, etc.). Scale slider for increasing VM count.
- Shows the ability to create a virtual network (e.g. creating a site-to-site VPN) in the Azure pack.
- Shows the ability to open a console to a Linux VM, or a VM without a network or OS
- Stack is: Hyper-V, VMM, Orchestrator, Operations manager, and two portals (tenant and service admin)
- Steps to setup:
- Load application extensions to VMM
- Create a gallery item (VMM role template)
- Create a service admin
- Expose to tenant
- Requires a new RDP client to support the new console version
- Trust is established between all components (Azure Pack, Hyper-V, RDS gateway)
- RDPTLSv2 is the new protocol
How to Build your Gallery
- Definitions: VIEWDEF, RESDEF, RESEXT (consistent naming across Azure and on-prem/service provider)
- REDEF: Virtual machine role resource definition (VM size, OS settings, OS image reference)
- RESEXT: Your Application (roles, features, OS image requirements, etc.)
- VIEWDEF: User GUI experience definition (parameters, grouping, ordering, validation, etc.)
- RESCONFIG: RESDEF parameter values, single deployment, versioned (e.g. hard coded port number, etc.)
- Uses JSON not XML files (make it more REST and portal friendly format)
- Good support for command line installers/scripting (integrate PowerShell desired state, Puppet, etc.)
- First class support for SQL deployments, IIS, etc. to make it very easy to configure
- Built-in full localization support with a default language (which you can change)