Microservices with Spring have gone mainstream. Spring is bringing its heritage and ecosystem to more workloads, among them serverless, data integration, and API gateways. With milestones around Azure Spring Cloud, collaboration with the GraalVM community, and Spring Cloud Gateway, Day 1 of SpringOne 2020 highlights how developers are building on the Spring platform for microservices and beyond.
Spring has a track record of supporting a large community of users and workloads while making new innovation accessible. This careful balance between dependability and relentless support for the new is what keeps developers coming back. In fact, every minute 36 new projects are initiated on start.spring.io, where developers can find more than 200 technology starters.
Spring has emerged as the standard for modern Java application development. As such, it's well suited to support more types of workloads, including functions, code-based integration, and API gateways. Day 1 at SpringOne 2020 highlights the latest efforts to support these workload types. Read on for an overview.
Spring for microservices is mainstream; sights are set on serverless
In the recent VMware “State of Spring 2020” survey, 83 percent of respondents said they were building microservices. While that likely does not represent the full mix of deployed workloads, it’s still well past "early majority." Indeed, building and deploying microservices with Spring is becoming even easier with integrations like Azure Spring Cloud, which Microsoft announced as generally available today.
Spring Boot itself continues to make building, deploying, and observing microservices simpler. Spring Boot 2.3 uses cloud native buildpacks to make it easier to package Spring Boot apps as containers ready to run on Kubernetes. It also supports integration with Tanzu Observability, for which there is a 30-day free trial. Developers can use a free version of Tanzu Observability, which includes the Wavefront for Spring Boot starter. Learn more about it in our docs.
Tanzu Observability dashboard with conditional sections and troubleshooting tips for Spring Boot Applications
What's next, you ask? Taking the microservice (and Unix) concept of "do one thing and do it well" to the nth degree leads you to functions. Here, Spring Cloud Function fulfills the Spring promise of letting developers focus on the business logic. It makes it easier for Java developers to write only their functional logic, without concern for how it will be activated. The code is truly agnostic to the applications, messaging streams, and even platforms around it.
But the real news at SpringOne is the path that Spring is on to make scale-to-zero applications and functions a reality. Through Spring’s collaboration with the GraalVM community, Spring Framework 5.3 and Spring Boot 2.4 are expected to provide early support for native executable deployment. There are some drawbacks, but with near instant start-up time, native executables make scale-to-zero a more practical option.
Integration is moving to developers and code, and Spring is ready
Integration workloads are often handled by different teams from core business logic workloads. Researching integration software will surface dozens, if not hundreds, of vendors. Rarely open source, these integration tools are built for integration specialists and aren't enterprise developer-friendly.
But things are changing. More and more, integration work is being done by development teams. This code-based approach to integration brings with it new opportunities, where integration becomes a source of differentiation. Instead of being confined to the customizations supported by an integration vendor, developers build flexible and extendable integration workloads. Those plans to apply machine learning and artificial intelligence to your data in flight? Code-based integration is how you do it.
Traditionally, the challenge with code-based integration has been how to rapidly bootstrap and build integration applications and evolve them as the business requirements change. Spring's rich ecosystem and proven capabilities for supporting microservices come in handy here. Built upon a decade of engineering work done for Spring Batch and Spring Integration, Spring Cloud Data Flow inherits stability for batch and stream processing. For a Spring developer, all their familiar tooling works the same.
In July, VMware announced general availability of Spring Cloud Data Flow on Kubernetes. And now, Tanzu Observability supports Spring Cloud Data Flow. Tanzu Observability ingests data about streams, tasks, and applications and makes it available in an intuitive dashboard. Code-based integration with SCDF is production-ready.
Tanzu Observability dashboard for Spring Cloud Data Flow
APIs abound; how you front-end and secure them needs to keep up
With 83 percent of Spring users building microservices, it's no surprise that 69 percent of them are using an API gateway of some kind, according to VMware’s “State of Spring” survey report. A staple of API management solutions, API gateways have been around for more than a decade. But a lot has changed since the first generation of API gateways were introduced.
The API surface area in the enterprise has exploded and these traditional API gateways have become a bottleneck. Development teams have gained autonomy with microservices and CI/CD pipelines. Cloud Foundry and Kubernetes have made infrastructure self-service. Which may prompt you to ask: Why do I need to put in a ticket and wait to make changes to my API gateway? Enter Spring Cloud Gateway, a distributed API gateway that runs like any other Spring Boot app.
Companies with disparate development teams are adopting Spring Cloud Gateway, which was launched earlier this year as a self-service tile on Tanzu Application Service. Why? Because it enables them to standardize across an organization on a single platform that's extensible and customizable. A diversity of approaches is supportable because developers can set their own properties, test, and deploy a change via a CI/CD pipeline.
Spring Cloud Gateway on Kubernetes is now in an early access beta program. This allows DevOps engineers building platforms on Kubernetes to serve a wide range of workload types to offer a distributed API gateway to application developers. Learn more in Chris Sterling's blog.
Learn more
Don't miss the SpringOne 2020 keynotes, where you'll hear more about these developments from Juergen Hoeller, co-founder of the Spring Framework; Ajay Patel, SVP and GM of the Modern Apps business unit at VMware; as well as several members of the Spring engineering team: Madhura Bhave, Sebastien Deleuze, Oleg Zhurakousky, and Ilaya Gopinathan.