Public Preview: Run Steeltoe .NET Applications in Azure Spring Cloud
Published Sep 22 2020 08:01 AM 8,681 Views
Microsoft

Earlier this month at SpringOne, we announced general availability of Azure Spring Cloud, a fully managed first-party service for Spring Boot apps, jointly built and operated by Microsoft and VMware. But we are far from being done as we continue to co-innovate with our partners, customers, and the open source community. Today we are bringing you another exciting update and launching the public preview of Steeltoe .NET application support in Azure Spring Cloud.  

 

Steeltoe is an open source project aimed at developing cloud native .NET microservice applications. It enables .NET developers to leverage the same Netflix OSS style and Spring Cloud industry-leading microservice patterns that have made Spring immensely successful. They provide single answers for many of the challenges related to microservices and integrate all those into a single experience. Steeltoe has been downloaded over 12 million times on NuGet!

 

Steeltoe transforms how you approach .NET programming tasks, radically streamlining your experience. You can use Steeltoe with Spring Cloud’s well-rooted patterns to safely deploy entire microservices-based architectures into the cloud. With Azure Spring Cloud, a fully managed service, you can go even faster because it removes the burden and related challenges of setting up and managing Spring Cloud middleware and Kubernetes, and lets you focus on building the applications that run your business. 

 

Run .NET and Java Apps together

It is common for applications to have a mix of Java and .NET services running together to support an array of operations in an application. Azure Spring Cloud fully manages Spring Cloud middleware, and Steeltoe is the library that enables that in the .NET ecosystem. On Azure Spring Cloud, you could run both .NET apps with Steeltoe framework and Java apps with Spring Boot framework to take advantage of the same service runtime environment for all applications, Spring Cloud Config Server, Service Registry, Distributed Tracing and more. NET core 3.1 is supported today and more versions will be enabled in the future. 

 

Below is an example to have mixed tech stack in a single Azure Spring Cloud service instance. After deploying, your applications are automatically wired up with Spring Cloud Config Server and Service Registry. You could decide which one should be registered ( or not) according to your business needs. The managed Eureka Registry will manage all registered applications automatically in Azure Spring Cloud. 

To accelerate your development experience, a VS extension to deploy Steeltoe .NET application for Azure Spring Cloud, is on the way.

 

Figure 1: Apps Overview to list Java and .NET appsFigure 1: Apps Overview to list Java and .NET apps

 

Figure 1: Apps Overview to list Java and .NET apps

 

Ease of Monitoring

Debugging distributed microservices can be complex and take a long time. For example, tracing requests that propagate from one microservice to another. Steeltoe uses the OpenTelemetry project to capture request tracing data which interacts with the Spring Cloud Sleuth and Zipkin ecosystem provided by Azure Spring Cloud.

 

Azure Spring Cloud seamlessly integrates with Azure Monitor to provide you with a great topological view of how different services interact and see average performance and error rates. Easily identify the root cause of reliability issues and performance bottlenecks with this automatic tooling.

 

On Azure Spring Cloud, you can visualize how your Steeltoe .NET applications are performing. The diagram shows microservice transactions of both Java and .NET applications within the same Azure Spring Cloud service instance in Application Insights, a part of Azure Monitor for Application Performance Management (APM).  

spboyer_1-1600353440506.png

Figure 2: Application Map for Java and .NET apps

Migrating your existing Steeltoe Applications with a simple change 

The Azure Spring Cloud Team has created a NuGet package providing the hooks needed for .NET Core applications to take advantage of the service runtime environment. Add the Microsoft. Azure.SpringCloud.Client NuGet package to your application’s Program.cs, and add Azure Spring Cloud Service to the Host Builder.

 

 

 

 

public static IHostBuilder CreateHostBuilder(string[] args) =>

            Host.CreateDefaultBuilder(args)

                .ConfigureWebHostDefaults(webBuilder =>

                {

                    webBuilder.UseStartup<Startup>();

                })

                .UseAzureSpringCloudService();

 

 

 

 

Build your solutions today!

Azure Spring Cloud abstracts away the complexity of infrastructure management and Spring Cloud middleware management. Freeing you to focus on building your business logic and let Azure take care of dynamic scaling, patches, security, compliance, and high availability. 

Run your most demanding applications at scale with confidence either in stand-along mode or side by side with Spring Boot apps in Azure Spring Cloud. Let Azure worry about delivering developer-friendly, enterprise-ready features on Azure Spring Cloud. We would love to hear how you are building impactful solutions using Azure Spring Cloud. Get started today – deploy Steeltoe .NET apps to Azure Spring Cloud using the quickstart!

 

For feedback and questions, please reach out to spring-team@microsoft.com.

 

Version history
Last update:
‎Sep 22 2020 01:26 PM
Updated by: