On May 11th, 2016 Pivotal announced their latest release of Spring Cloud has reached General Availability (GA). This is a follow-up release to the Release Candidate 1 (RC1) which was made available in March 2016 and Release Candidate 2 (RC2) in April 2016.
Pivotal has identified some of the highlights of this release including:
- Spring Boot 1.3.x and Spring Framework 4.2.x support
- Hashicorp Consul support for service registration/discovery & configuration via Spring Cloud Consul
- Apache Zookeeper support for service registration/discovery, configuration via Spring Cloud Zookeeper and leader election in Spring Cloud Cluster
- Distributed tracing through the Spring Cloud Sleuth abstraction with two out of the box implementations: one supporting logging (ideal for log collectors and multiplexers like Logstash and Loggregator) and one supporting Twitter’s Zipkin
- Netflix Atlas Telemetry System, the next generation Spectator Metrics library and recent versions of Eureka, Ribbon, Hystrix and Feign are available in Spring Cloud Netflix
- Spring Cloud Bus is now powered by the recently released Spring Cloud Stream
- Cluster Leadership election and locks via Spring Cloud Cluster
- Export of Spring Boot metrics to Amazon Cloudwatch, and native support for Amazon RDS
InfoQ recently had the chance to chat with Pieter Humphrey, consulting product marketing manager at Pivotal, to gain further insight into this release and the state of their platform. Here is what he had to say.
InfoQ: Spring Boot is downloaded nearly 4 million times per month. Why is this taking off so fast?
Pieter Humphrey: After trying Ruby and Node.js, Netflix realized they needed the performance, stability, concurrency of the JVM for their application to service an exploding level of traffic, but was having trouble finding the right RAD capability in Java to give them the development velocity they wanted. Today roughly 30% of the Spring community is using boot, with more everyday as enterprises upgrade from Spring Framework 3.x and earlier versions. Personally, I think factors like type safety, the ecosystem of available libraries from Spring and the wider java community, and of course, portability are other reasons why so many choose Java. Stepping back from the Netflix example, the confluence of the microservice shift, the higher developer productivity in enterprise Java, and the desire to work with newer cloud native platforms are why it's taking off. There is a real sea-change happening from the last decade of vertically scaled technology.
InfoQ: Is Java back?
Pieter Humphrey: You can debate whether or not it ever left, but top of the TIOBE index is a strong statement. Java SE has never been more alive, the adoption rate of Java 8 is a strong testament to it's longevity.
InfoQ: There are a LOT of Spring services now. How does a developer choose which service discovery service to use, or routing library?
Pieter Humphrey: There is no free lunch on doing your research regarding which microservice stack best suits your needs. Netflix, HashCorp, Apache and others all have different components with different strengths, weaknesses. For example, Consul has security baked in. It’s is a lightweight sidecar with a simple rest api, so it is better suited for polyglot environments. It provides service discovery and configuration in one tool. We do encourage Spring + CloudFoundry users to go with NetflixOSS since we can do more for them at the moment, but that will change over time.
InfoQ: Spring Boot and Spring Cloud introduce a very opinionated way to build apps. At what point is the abstraction a hindrance? Especially for things like troubleshooting issues at low levels?
Pieter Humphrey: Abstractions must add value or else they will be perceived as a hindrance. No one can afford frameworks for the sake of frameworks. Boot and Cloud aren't just abstractions though, it's the convention vs. explicit configuration approach, so certainly part of it is learning what the conventions are. Spring Boot's Actuator reports are certainly helpful, and we're working to improve error quality as well. Distributed computing is hard, as well as a fragmented / busy / noisy space. So judging by the download numbers from maven central, many spring users are seeing value in these abstractions: simplification of the overall program space and a higher level API, not pegged to a single technology. Spencer Gibb's talk from Spring.io Barcelona is very helpful in understanding this in more detail.
InfoQ: Of the major updates from the release (see above), which feature are you most excited about and why?
Pieter Humphrey: Tough, but I'd have to pick the Spring Cloud Sleuth / distributed tracing at the moment.
InfoQ: What scenarios, or technologies, are you making investments in for the next release train?
Pieter Humphrey: For the most part will be investing in current technologies and making the experience easier for developers: getting started (local dev), troubleshooting, testing, docs.
About the Interviewee
Pieter Humphrey has 17 years of experience in the computer industry. He has a deep technical background, but enjoys working with people and not just technology. Pieter has worked with startup companies and multimillion dollar market cap companies, mostly in sales and marketing. For the past 4 years, Pieter has held the position of Consulting Product Marketing Manager at Pivotal. Prior to Pivotal, Pieter spent 4 years working at Oracle as a Principal Product Director.