Azure management libraries for Java generally available now

Today, we are announcing the general availability of the new, simplified Azure management libraries for Java for Compute, Storage, SQL Database, Networking, Resource Manager, Key Vault, Redis, CDN and Batch services.

Azure Management Libraries for Java are open source – https://github.com/Azure/azure-sdk-for-java.

Service | feature
Generally available
Available as preview
Coming soon

Compute

Virtual machines and VM extensions
Virtual machine scale sets
Managed disks

 

Azure container services
Azure container registry

Storage

Storage accounts

 

Encryption

SQL Database

Databases
Firewalls
Elastic pools

 

 

Networking

Virtual networks
Network interfaces
IP addresses
Routing table
Network security groups
DNS
Traffic managers

Load balances
Application gateways

 

More services

Resource Manager
Key Vault
Redis
CDN
Batch

App service – Web apps
Functions
Service bus

Monitor
Graph RBAC
DocumentDB
Scheduler

Fundamentals

Authentication – core

Async methods

 

Generally available means that developers can use these libraries in production with full support by Microsoft through GitHub or Azure support channels. Preview features are flagged with the @Beta annotation in libraries.

In Spring 2016, based on Java developer feedback, we started a journey to simplify the Azure management libraries for Java. Our goal is to improve the developer experience by providing a higher-level, object-oriented API, optimized for readability and writability. We announced multiple previews of the libraries. During the preview period, early adopters provided us with valuable feedback and helped us prioritize features and Azure services to be supported. For example, we added support for asynchronous methods that enables developers to use reactive programming patterns. And, we also added support for Azure Service Bus.

Getting Started

Add the following dependency fragment to your Maven POM file to use the generally available version of the libraries:

<dependency>
<groupId>com.microsoft.azure</groupId>
<artifactId>azure</artifactId>
<version>1.0.0</version>
</dependency>

Working with the Azure Management Libraries for Java

One Java statement to authenticate. One statement to create a virtual machine. One statement to modify an existing virtual network … No more guessing about what is required vs. optional vs. non-modifiable.

Azure Authentication

One statement to authenticate and choose a subscription. The Azure class is the simplest entry point for creating and interacting with Azure resources.

Azure azure = Azure.authenticate(credFile).withDefaultSubscription();

Create a Virtual Machine

You can create a virtual machine instance by using the define() … create() method chain.

VirtualMachine linuxVM = azure.virtualMachines()
.define(linuxVM1Name)
.withRegion(Region.US_EAST)
.withNewResourceGroup(rgName)
.withNewPrimaryNetwork("10.0.0.0/28")
.withPrimaryPrivateIpAddressDynamic()
.withNewPrimaryPublicIpAddress(linuxVM1Pip)
.withPopularLinuxImage(KnownLinuxVirtualMachineImage.UBUNTU_SERVER_16_04_LTS)
.withRootUsername(“tirekicker”)
.withSsh(sshkey)
.withNewDataDisk(100)
.withSize(VirtualMachineSizeTypes.STANDARD_D3_V2)
.create();

Update a Virtual Machine

You can update a virtual machine instance by using an update() … apply() method chain.

linuxVM.update()
.withNewDataDisk(20, lun, CachingTypes.READ_WRITE)
.apply();

Create a Virtual Machine Scale Set

You can create a virtual machine scale set instance by using another define() … create() method chain.

VirtualMachineScaleSet vmScaleSet = azure.virtualMachineScaleSets()
.define(vmssName)
.withRegion(Region.US_EAST)
.withExistingResourceGroup(rgName)
.withSku(VirtualMachineScaleSetSkuTypes.STANDARD_D5_V2)
.withExistingPrimaryNetworkSubnet(network, "subnet1")
.withExistingPrimaryInternetFacingLoadBalancer(publicLoadBalancer)
.withoutPrimaryInternalLoadBalancer()
.withPopularLinuxImage(KnownLinuxVirtualMachineImage.UBUNTU_SERVER_16_04_LTS)
.withRootUsername("tirekicker")
.withSsh(sshkey)
.withNewDataDisk(100)
.withNewDataDisk(100, 1, CachingTypes.READ_WRITE)
.withNewDataDisk(100, 2, CachingTypes.READ_ONLY)
.withCapacity(10)
.create();

Create a Network Security Group

You can create a network security group instance by using another define() … create() method chain.

NetworkSecurityGroup frontEndNSG = azure.networkSecurityGroups().define(frontEndNSGName)
.withRegion(Region.US_EAST)
.withNewResourceGroup(rgName)
.defineRule("ALLOW-SSH")
.allowInbound()
.fromAnyAddress()
.fromAnyPort()
.toAnyAddress()
.toPort(22)
.withProtocol(SecurityRuleProtocol.TCP)
.withPriority(100)
.withDescription("Allow SSH")
.attach()
.defineRule("ALLOW-HTTP")
.allowInbound()
.fromAnyAddress()
.fromAnyPort()
.toAnyAddress()
.toPort(80)
.withProtocol(SecurityRuleProtocol.TCP)
.withPriority(101)
.withDescription("Allow HTTP")
.attach()
.create();

Create a Web App

You can create a Web App instance by using another define() … create() method chain.

WebApp webApp = azure.webApps()
.define(appName)
.withRegion(Region.US_WEST)
.withNewResourceGroup(rgName)
.withNewWindowsPlan(PricingTier.STANDARD_S1)
.create();

Create a SQL Database

You can create a SQL server instance by using another define() … create() method chain.

SqlServer sqlServer = azure.sqlServers().define(sqlServerName)
.withRegion(Region.US_EAST)
.withNewResourceGroup(rgName)
.withAdministratorLogin("adminlogin123")
.withAdministratorPassword("myS3cureP@ssword")
.withNewFirewallRule("10.0.0.1")
.withNewFirewallRule("10.2.0.1", "10.2.0.10")
.create();

Then, you can create a SQL database instance by using another define() … create() method chain.

SqlDatabase database = sqlServer.databases().define("myNewDatabase")
.create();

Sample Code

You can find plenty of sample code that illustrates management scenarios (69+ end-to-end scenarios) for Azure.

Service
Management Scenario

Virtual Machines

Manage virtual machines
Manage virtual machines asynchronously
Manage availability set
List virtual machine images
Manage virtual machines using VM extensions
List virtual machine extension images
Create virtual machines from generalized image or specialized VHD
Create virtual machine using custom image from virtual machine
Create virtual machine using custom image from VHD
Create virtual machine by importing a specialized operating system disk VHD
Create virtual machine using specialized VHD from snapshot
Convert virtual machines to use managed disks
Manage virtual machine with unmanaged disks

Virtual Machines – parallel execution

Create multiple virtual machines in parallel
Create multiple virtual machines with network in parallel
Create multiple virtual machines across regions in parallel

Virtual Machine Scale Sets

Manage virtual machine scale sets (behind an Internet facing load balancer)
Manage virtual machine scale sets (behind an Internet facing load balancer) asynchronously
Manage virtual machine scale sets with unmanaged disks

Storage

Manage storage accounts
Manage storage accounts asynchronously

Networking

Manage virtual network
Manage virtual network asynchronously
Manage network interface
Manage network security group
Manage IP address
Manage Internet facing load balancers
Manage internal load balancers

Networking – DNS

Host and manage domains

Traffic Manager

Manage traffic manager profiles

Application Gateway

Manage application gateways
Manage application gateways with backend pools

SQL Database

Manage SQL databases
Manage SQL databases in elastic pools
Manage firewalls for SQL databases
Manage SQL databases across regions

App Service – Web apps on Windows

Manage Web apps
Manage Web apps with custom domains
Configure deployment sources for Web apps
Configure deployment sources for Web apps asynchronously
Manage staging and production slots for Web apps
Scale Web apps
Manage storage connections for Web apps
Manage data connections (such as SQL database and Redis cache) for Web apps
Manage authentication for Web apps

App Service – Web apps on Linux

Manage Web apps
Manage Web apps with custom domains
Configure deployment sources for Web apps
Scale Web apps
Manage storage connections for Web apps
Manage data connections (such as SQL database and Redis cache) for Web apps

Functions

Manage functions
Manage functions with custom domains
Configure deployment sources for functions
Manage authentication for functions

Service Bus

Manage queues with basic features
Manage publish-subscribe with basic features
Manage queues and publish-subscribe with claims based authorization
Manage publish-subscribe with advanced features – sessions, dead-lettering, de-duplication and auto-deletion of idle entries
Manage queues with advanced features – sessions, dead-lettering, de-duplication and auto-deletion of idle entries

Resource Groups

Manage resource groups
Manage resources
Deploy resources with ARM templates
Deploy resources with ARM templates (with progress)
Deploy a virtual machine with managed disks using an ARM template

Redis Cache

Manage Redis Cache

Key Vault

Manage key vaults

CDN

Manage CDNs

Batch

Manage batch accounts

Start using Azure Management Libraries for Java today!

Start using these libraries today. It is easy to get started. You can run the samples above.
 
As always, we like to hear your feedback via comments on this blog or by opening issues in GitHub or via e-mail to Java@Microsoft.com.
 
Also. You can find plenty of additional info about Java on Azure at http://azure.com/java.
Quelle: Azure

NAB 2017: Rendering updates to GCP

By Todd Prives, Product Manager

Google Cloud Platform (GCP) is leading the way in cloud rendering solutions, and we’re excited to make several announcements at the NAB 2017 show relating to our suite of solutions.

For our SaaS users, we’ve made several additions and price reductions to our Zync Render platform including:

Added rendering support for the popular Arnold Render for Cinema 4D. Arnold is a renderer used in countless feature film, advertising, VR and television projects and support in Cinema 4D allows Zync users to scale to tens of thousands of cores on demand when rendering a scene with Arnold.
We’ve also cut pricing for many Zync applications (Maya, Cinema 4D & Houdini) by up to 31%.

For our IaaS large studio customers who set up a custom rendering pipeline on GCP, we understand that establishing a secure connection to our platform is critical to ensure that sensitive pre-release content is protected at all times. We’ve worked with the leading Hollywood production studios to develop a Securing Rendering Workloads Solution that our customers can follow when building their rendering solution with us.
Quelle: Google Cloud Platform

Networking to and within the Azure Cloud, part 3

This is the third blog post of a three-part series. Before you begin reading, I would suggest reading the first two posts Networking to and within the Azure Cloud, part 1 and Networking to and within the Azure Cloud, part 2. Hybrid networking is a nice thing, but the question then is how do we define hybrid networking? For me, in the context of the connectivity to virtual networks, ExpressRoute’s private peering or VPN connectivity, it is the ability to connect cross-premises resources to one or more Virtual Networks (VNets). While this all works nicely, and we know how to connect to the cloud, how do we network within the cloud? There are at least 3 Azure built-in ways of doing this. In this series of 3 blog posts, my intent is to briefly explain: Hybrid networking connectivity options Intra-cloud connectivity options Putting all these concepts together Putting it all together – connection to the cloud and within the cloud While all these methods and connectivity options are interesting separately, when they are most powerful is when they are combined. Transit VNet with Gateway Sharing The topology below shows a simple hub & spoke topology. Even if VNet peering itself is NOT transitive, transit routing is allowed for gateways (VPN and ExpressRoute). There is an example of combining VNet peering alongside with Gateway Sharing, but using ExpressRoute: Transit VNet with Gateway Sharing, 1 ExpressRoute circuit in 2 regions However when combining this with the usage of more than one Azure region (remember, VNet peering is within a single region), you could easily create a topology like this one: In the image above, you have every VNet within West US and East US able to talk to each other without never leaving the Microsoft backbone network, at high speeds, limited by the ExpressRoute Gateway created on each Hub VNet, that is 1, 2, or 10 Gbps depending on the ExpressRoute gateway SKU. With that being the case, note that packets are physically routed between West US region and Chicago when going to East US. This makes sense because Chicago is between these two regions. Transit VNet with Gateway Sharing, 2 ExpressRoute circuits in 2 regions With another topology where perhaps connectivity to ExpressRoute is needed in more than in Chicago or the resiliency of a single ExpressRoute circuit is not enough, despite the SLA, you could create the following topology: In this case, cross-premises connectivity might have a better latency, if premises are located in the Western part of the United States, and in the Eastern part of the United States. Also, there are 2 ExpressRoute locations through which the packets between the VNets in West US and East US could go through. Since these regions are close to the circuit locations, the added latency should not constitute an issue on the latency. Moreover, this gives a higher potential uptime because of the use of 2 separate ExpressRoute circuits, in 2 distinct locations across the continental US. Transit VNet with Gateway Sharing, 3 ExpressRoute circuits in 3 regions This model could scale to more circuits and more regions, but I believe this gives a good understanding of the kinds of topologies we can create using the Azure Networking toolbox. Local circuits are important in that case to make sure we have optimal routing. On that specific topic, I encourage you to read the article Optimize ExpressRoute Routing. The article discusses the optimal routing for Virtual Networks, which is useful to understand how to make sure that packets routed from West US destined to North Europe would not go through the Tokyo ExpressRoute circuit. Using weights assigned to connections is how you can actually achieve this. Transit VNet with BGP Enabled VPN Gateway Sharing and VPN Transit Routing Another interesting use case of VPN transit, with BGP routing would allow topologies like the image below. For more information please read the Overview of BGP with Azure VPN Gateways. In this last case, it is possible for on premises users that are located in the Western part of the US to use the VPN on the left to reach on premises users connected to the VPN to the North Europe VNet, located on the right, effectively leveraging the Azure backbone between their own facilities without using some kind of proxy mechanisms. This would otherwise be required to allow that scenario.
Quelle: Azure

Microsoft Azure at NAB Show 2017

is changing the world and is powering the digital transformation in the media industry. We are thrilled to see the significant momentum with which businesses large and small are selecting Azure for their digital transformation needs whether it be launching a new Over-The-Top (OTT) video service, web and mobile applications with rich media, or using cutting-edge media AI technologies to unlock insights that enhance content discovery and drive deeper user engagement.

This year at NAB Show 2017, we are showcasing why Microsoft Azure is the trusted and global-scale cloud for the media industry’s needs. At the core of it are new innovations and enhancements that we are releasing or have launched in the last few months to meet our customers ever evolving needs.

Encoding service enhancements

In our quest to be responsive to customer feedback we have made significant enhancements to the encoding service which include:

Reduced pricing and per minute billing: We launched a new pricing model based on output minutes instead of GB’s processed which reduces the price by half for typical us cases. Customers can now use our service for content-adaptive encoding, where the encoder will generate a ‘bit-rate ladder’ that is optimized for each input video. Learn more our new pricing model.
Autoscaling capacity: Our service can now also monitor your workload and automatically scale resources up or down, providing increased concurrency/throughput when needed. Combined with Azure Functions and Azure Logic Apps, you can quickly build, test and deploy custom media workflows at scale. This feature is in preview, please contact amsved@microsoft.com for more information.
DTS-HD surround sound now available in Premium Encoder for content creation and streaming delivery to connected devices.

Media analytics

Adding to the growing family of media analytics which include face and emotion detection, motion detection, video OCR, video summarization, content moderation and audio indexing, we are excited to add the following new capabilities,

Private Preview of Azure Media Video Annotator: identifies objects in the video such as cars, house etc. Information from Annotator can be used to build deep search applications. This information can also be combined with data obtained from other Media Analytics processors  to build custom workflows.
Public Preview of Azure Media Face Redactor: Azure Media Face Redactor enables customers to protect the identities of people before releasing their private videos to public. We see many use cases scenarios in broadcast news and look forward to seeing how our customers can use this new service. Learn more about Azure Media Face Redactor.

Streaming Service Enhancements

In order to simplify our customers decision around configuring streaming origins, we are excited about the following:

Autoscale Origins: We have introduced a new Standard Streaming Units offer that has the same features as Premium Streaming Units but scales automatically based on outbound bandwidth. Premium Streaming Units (Endpoints) are suitable for advanced workloads, providing dedicated, scalable bandwidth capacity where as Standard streaming unit is operated in a shared pool while still delivering scalable bandwidth.  Learn more here. In addition, the streaming team has delivered the following enhancements:

CMAF support – Microsoft and Apple worked closely to define the Common Media Application Format (CMAF) standard and submit it to MPEG. The new standard provides for storing and delivering streaming content using a single encrypted, adaptable multimedia presentation to a wide range of devices. The industry will greatly benefit from this common format, embodied in an MPEG standard, to improve interoperability and distribution efficiency.
DTS-HD surround sound streaming is now integrated with our dynamic packager and streaming services across all protocols (HLS, DASH and Smooth).
FairPlay HLS offline playback – new support for offline playback of HLS content using the Apple FairPlay DRM system.
RTMP ingest improvements – we&;ve updated our RTMP ingest support to allow for better integration with open source live encoders such as FFmpeg, OBS, Xsplit and more.
Serverless media workflows using Azure Functions & Azure Logic Apps: Azure offers a serverless compute platform that lets you easily trigger code based on events in Azure, such as when media is uploaded to a folder or through partners like Aspera . We’ve published a collection of integrated media workflows on Github to allow developers to get started building codeless and customized media workflows with Azure Functions and Logic Apps. Try it out!

Azure Media Player

The advertising features in Azure Media Player for video on demand is now GA. This enables the insertion of pre, mid and post roll advertisements from any VAST compliant ad server, empowering content owners to monetize their streams. In addition to our GA announcement of VOD ad insertion, we are excited to announce a preview of Live ad insertion. Additionally, we have a new player skin with enhanced accessibility features.

Azure CDN

Building on the unique multi-CDN offering of any public cloud platform we are excited to add new capabilities including custom domain SSL and “One click” integration of CDN with streaming origin, storage & web apps.

Custom Domain SSL: Azure CDN now supports custom domain SSL to enhance the security of data in transit. Use of HTTPS protocol ensures data exchanged with a website is encrypted while in transit. Azure CDN already supported HTTPS for Azure provided domains (e.g. https://contoso.azureedge.net) and it was enabled by default. Now, with custom domain HTTPS, you can enable secure delivery for custom domains (e.g. https://www.contoso.com) too. Learn more about Custom Domain SSL.
 “One click” CDN Integration with Streaming Endpoint, Storage & Web Apps: We have added deeper integration of Azure CDN with multiple Azure services to simplify the configuration of CDN. When Content Delivery Network is enabled for a streaming endpoint, network transfer charges from Streaming Endpoint to the CDN are waived. For more information, please visit the Azure Blog.

Growing partner ecosystem

At NAB, we are excited to announce that Avid has selected Microsoft Azure as their preferred partner to power their business in the cloud. Siemens has expanded their Azure integrations with deep integration into Azure media analytics to enhance their Smart video engine product. We have also expanded the partnership with Verizon Digital Media Services with a deeper integration of their CDN services with Azure storage. Ooyala has expanded their integration with Azure to include the Azure media analytics capabilities to enhance their media logistics platform.

While launching product and services is exciting, the goal we strive for is to make our customers successful. It is great to see this in some of recent case studies we have released on NBC’s Streaming of Rio 2016 Olympics and Lobster Ink.

One common theme that we hear from customers on why they adopt Azure for building media workflows is that it offers an enterprise grade battle tested media cloud platform that is simple, scalable, and flexible.

Come see us at NAB

If you’re attending NAB Show 2017, I encourage you to by stop by our booth SL6710 to learn more about Microsoft’s cloud media services and see demos from us and several of our partners. Also, don’t forget to check out Steve Guggenheimer’s blog post  and his keynote presentation on digital transformation in media in the Las Vegas Convention Center in rooms N262/N264 followed by a panel discussion.

If you are not attending the conference but would like to learn more about our media services, follow the Azure Blog to say up to date on new announcements.
Quelle: Azure