Azure management libraries for Java generally available now. Today, Microsoft 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:

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.

Create a Virtual Machine

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

Update a Virtual Machine

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

Create a Virtual Machine Scale Set

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

Create a Network Security Group

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

Create a Web App

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

Create a SQL Database

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

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

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