If you’re a Java developer who is building apps for the cloud, Azure has your back. Microsoft Azure has developed numerous resources just for Java developers who want to work with cloud-native applications, or just use cloud services from your on-premises applications.
Back in April, I authored a post highlighting numerous cloud options available at that time. Since then, we’ve been working with the Java community to make significant additions to that list. Here’s an updated list of what Microsoft currently has to offer Java professionals.
Java developer tools on Azure
Looking for Cloud APIs? Build out Java apps or microservices using the Azure SDK for Java for accessing Azure Cloud Services such as Blob Service, Media Services, Queue Services, Service Bus Queues, SQL Database and Table Service. The SDK runs on Windows, Mac and Linux. Don’t like what you see? Change it! It’s open source and available on GitHub.
Looking for manageable identity services? Use the Azure Active Directory Library for Java to plug into identity services that run in 80% of the world’s enterprises.
If you’re looking for a NoSQL solution to connect your Java app with MongoDB’s popular Java API, we have MongoDB available on Azure via MongoLab, and Microsoft’s own DocumentDB service also has a Java SDK.
You can work with Azure from your favorite UI! Eclipse developers can use the Azure toolkit for Eclipse to build and publish Eclipse projects to Azure Cloud Services from Eclipse clients on Windows, Mac or Linux. If you’re working with IntelliJ IDEA and/or Android Studio, the MS Open Tech Tools plugin for Microsoft Services provides Azure integration between Android apps, Office 365, Azure Mobile Services, and Azure Storage. You can also publish your Java apps from IntelliJ IDEA to Azure Cloud Services.
Want to build stateless apps and manage persistence elsewhere? Azure Redis Cache is a safe bet, and easy to use. Here’s a tutorial on how to use Azure Redis Cache with Java.
Partnering with the best on Java
Microsoft believes working with open source communities strengthens our offerings. We have a longstanding partnership with Azul Systems to provide open source Java on the Azure Cloud. Azul Zulu® is a commercialized, fully supported multiplatform build of OpenJDK™ and is available on Microsoft Azure.
Zulu is also a JDK deployment option in the Azure toolkit for Eclipse as well as the MS Open Tech Tools plugin for Microsoft Services for IntelliJ. There are also several Azure Virtual Machines running Zulu 8 ready to go in the Azure Virtual Machines Gallery.
HDInsight provides an easy to use and run Hadoop-based service on Azure via our partnership with HortonWorks. We also have partnered with Cloudera to provide their Hadoop-based Cloudera Enterprise virtual machines on Azure.
If you’re a Java shop using Java-based Cassandra, we’ve partnered with DataStax to provide Cassandra Enterprise on Azure. We also have a number of other offerings in our Azure Virtual Machines gallery from Jelastic, Oracle and others.
Continuous integration and deployment tools for Azure
If you work with Jenkins you can provision and manage Azure Virtual Machines as Jenkins Slaves with the Jenkins Slave Plugin for Azure. You can also deploy build artifacts to cloud storage using the Azure Storage plugin for Jenkins.
If you prefer Hudson, we have you covered too, with the Hudson Azure Slave Plugin and the Azure Storage Plugin for Hudson.
Microsoft also partnered with CloudBees to deliver CloudBees Jenkins Enterprise on Azure. It’s a set of plugins that secures and optimizes Jenkins, and is compatible with open source Jenkins and all Jenkins community plugins. Learn more on the CloudBees Blog.
If you manage builds and deployments with Apache Ant, the latest release of the Azure toolkit for Eclipse also enables the ability for command-line deployment to the Azure Cloud outside of Eclipse. For more details on this feature check out this blog post.
Get started fast with Linux Virtual Machine Images on Linux and Windows
Did you know that 25% of the VMs running on Azure run on Linux? VM Depot is an open source repository of Linux images that run on Microsoft Azure Virtual Machines. There are a number of Java-based VM Images to get you started. We also have virtual machines preconfigured with popular JDKs and Java-based Web Application Servers including WebSphere, WebLogic, JDK6, JDK7 and JDK8.
Automate your Azure deployments with the Azure CLI and Azure Resource Manager templates
Want to manage deployments from the command line in Linux, Mac or Windows? Download and run the Azure Command Line Interface. To deploy complex interactive cloud infrastructures to Azure, use Azure Resource Manager to build reusable templates. You can also leverage hundreds of Azure Resource Manager Quickstart Templates to get your deployments going even faster. All of these templates are open source and on GitHub.
Deliver your apps with containers from the Azure Marketplace
Into Docker for delivery of your apps? Check out the Container Apps category in the Azure Marketplace, where you can search and deploy curated official repositories from the Docker Hub. You can deploy single and multi-container Dockerized applications utilizing Azure Resource Manager templates and the Docker Virtual Machine Extension for Linux on Azure.
Here’s a sampling of what’s on Azure now:
Want to build your own custom Docker image to run on Azure? Start with this VM image that deploys an Ubuntu Server to Microsoft Azure, then installs a Docker Engine.
Cloud Foundry infrastructure on Azure
Thanks to our ongoing partnership with Cloud Foundry, you can now deploy a standard Cloud Foundry infrastructure on Azure. Here’s how to set up Cloud Foundry on Azure Step-by-Step. There’s also a Cloud Foundry Azure Resource Manager Template in addition to a marketplace image integrating Azure Active Directory with Cloud Foundry.
Reactive programming on Azure
For reactive programmers, TypeSafe has extended the Reactive Maps Activator template to Azure. Check out this tutorial on using the Play Framework with Azure, and more detail on Reactive Programming at Microsoft.
Java web application monitoring with Application Insights
Application Insights lets you monitor your live Java web site or service for availability, performance and usage. With Application Insights, you get 360° insights into your Java app and its dependencies. You can easily track application health alongside adoption metrics and exception data. Use interactive tools to detect and diagnose performance issues, filter and segment data or drill down into particular events. Get started by adding the Application Insights Java SDK to your server application, or to your already live site or service. The SDK is open sourced on GitHub.
Manage Java builds and teams with Team Foundation Server and Visual Studio Online
Microsoft doesn’t have an active Java IDE, but we can support Java projects in other useful ways. Team Foundation Server and Visual Studio Online can help Java development teams with free tools (for up to five users) for planning, source control, collaboration, build, test and deployment.
You can still use your favorite IDE, such as Eclipse, build technologies such as Ant or Maven, source control systems such as Git and community integrations with tools such as Jenkins. See this blog post for the announcement details and have a look at our new Java page on Visual Studio Online with resources for Java developers to get the most out of Visual Studio Online.
Java web apps
If you have a JAR file and want to deploy and run it on Azure, your answer is Java-enabled Web Apps. They can be used for deploying Java running on Tomcat or Jetty on Azure. Check out these two examples:
IoT on Azure? There’s a Java SDK for that!
The Microsoft Azure IoT device SDK for Java helps you build devices and applications connected and managed by Azure IoT Services using your own custom Azure IoT Hub.
Documentation, tips and tricks
The Java Dev Center includes documentation on all the Java APIS we have for Azure Cloud Services, plus tips and tricks for Java Devs in general. Additional Java development guidance can be found here.
If you prefer JavaDocs, here are the JavaDocs for Azure, Azure Storage, DocumentDB, and Application Insights.
Also worth noting, Microsoft Virtual Academy has published a course just for Java developers: Java on Microsoft Azure. The course highlights a sample Java app running on Tomcat and shows you how to access several Azure services from Java, specifically: Access Control, Blob Service, Media Services, Queue Services, Service Bus Queues, SQL Database and Table Service.
If you want to work with Azure services using Java, read this great blog post by Brady Gaster on Getting Started with Azure Management Libraries for Java, and watch the related Channel 9 video.
Microsoft is giving back to Java
Microsoft is committed to open source, and to giving back to open source communities. For Java, this means contributing via the OpenJDK dev stream. Our key contributions so far include Increase throughput and reduce latency for local tcp and Increase throughput for transferring files over tcp.
Sign up for free, and Let us know how it’s going!
If you’re new to Azure, newbies can check out Azure via a free trial.
If you’re using Java on Azure, we want to hear from you about how you’re using it! Please let us know if you have a project that may be a useful reference case for others.