The consumerization of IT is no longer restricted to consumer products. Born from the idea that “it should just work,” the new release of the Spring IO Platform 1.0 will consumerize Java for developers.
For an example of what the consumerization of IT means, it is helpful to look at a company like Apple.
One of their first bold moves in this direction happened as early as 1976, when they shipped a fully assembled circuit board, not a kit of parts as was common at that time. Since then, an easier to use, more integrated, cohesive approach has driven Apple product development for decades. A few years back, Steve Jobs was quoted, “As you know, Apple strives for the integrated model so that the user isn’t forced to be the systems integrator.” Today, even OSX Yosemite stresses an integrated set of Apple hardware and software that just works together—your Mac, iPhone, iPad, CarPlay, and Apple TV all work together. Of course, we could say similar things about Android, Chrome, and YouTube, but one example is enough.
As consumers, we love the benefits of technology, but we don’t want to waste time figuring out how to make things work together. We expect it to be intuitive, and loathe the idea of software training, help desk calls, visits to support forums, and even reading the documentation.
So, why shouldn’t the same logic apply to the development of Java with Spring? Just because spring developers are more technical by nature doesn’t mean they don’t share the same frustrations with technology.
Introducing Spring IO Platform 1.0—The Consumerization of Java Development
In one word, consumerization describes the newly released Spring IO Platform 1.0.
With this release, Spring is easier to use, more integrated, and cohesive.
The new Spring IO Platform allows all Spring modules to work together, providing two key benefits:
- For those that are newer to Spring, one download gives you access to a compatible version of every module as a single, logical group. This is exactly like buying a computer with built-in, compatible parts versus buying an empty box and determining part compatibility on your own.
- For those who have worked on a Spring project with multiple modules, the onerous task of testing compatible versions and managing dependencies goes away.
Eating Our Own Dog Food—Upgrading Spring.io to the New Spring IO Platform
The Spring.io website had two main goals—to be the home of each Spring project’s reference information and be a reference application itself. In fact, the Spring.io website was built with Spring Framework, Spring Boot, and Spring Data JPA. The site is an example of how we eat our own dog food by running important production apps with early and current releases of Spring.
In December, Spring Framework 4.0 GA was released with major advances for developer productivity, big data, cloud, REST, and micro-services architectures. A few months later, we open sourced the website as its own project to be used as a reference architecture for Spring users. Code named Project Sagan, it is available on GitHub for general use. In addition, the production website runs on Cloud Foundry with zero-downtime deployments. Most recently, we upgraded the website to JDK 8, and a new case study on the overall development of Spring.io website is now available.
With the GA release of Spring IO Platform V.1.0, we expect to also upgrade Project Sagan and the Spring.io website in the next week. We will be the first company to show how an upgrade will consumerize our Java development and build for Spring. Of course, should we choose to extend Project Sagan, there’s no guesswork about what versions to use—we will get compatible access to the entire set of Spring projects.
The Benefits of Upgrading or Using the New Spring IO Platform V.1.0
There are several benefits of upgrading. Since all modules, versions, and third party dependencies have been harmonized:
- Testing is simpler—The baseline download includes a set of modules and versions that already work together.
- Configuration is easier—There is no time wasted checking compatibility of modules or versions.
- Flexibility remains—Developers can use what is needed in a lightweight fashion and only need to embed the parts of Spring IO Platform needed in their application.
- Regular release cadence—Spring IO Platform will release at predictable, six month intervals.
This makes development teams more productive, but there is also value at a higher level for project executives and architects, even if their IT infrastructure mandates a slower pace for adoption of new technology:
- Wherever there is ongoing investment in Java apps, the unified Spring IO Platform gives developers an easier way to expand the use of Spring modules. For example, there are many existing apps based on the core Spring Framework, and leadership teams want these apps to do more—for example, they need to interface via AMQP, add an OAuth secured REST service for Twitter or Facebook, bridge multiple data stores, add a RESTful web service, connect to cloud services with Spring Cloud, or move data into Hadoop with Spring XD.
- Upgrades not only make developers more effective, but it can improve the return on ongoing application investments by making it easier to add new functionality.
New Features in the Spring IO Platform
For more background on the key features in the Spring IO 1.0 release, check out Josh Long’s blog or read the release announcement. For developers, it’s easy to explain the basic idea: Spring IO Platform 1.0 is simply a maven Bill of Materials that includes the entire Spring ecosystem, and lots of popular 3rd party open source libraries, all tested to work together, so you don’t have to.
Also worth mentioning, this release now includes additional modules that have traditionally been considered different from the core Spring projects. These modules are now considered first class citizens of Spring IO, and will ship with updates to the IO Foundation. The three modules are found in the IO Execution area, which provides domain specific runtimes (DSRs) for applications built with the IO Foundation modules. A DSR can run standalone without requiring deployment to an external container. There are three DSRs—Spring XD, Spring Boot, and Grails—Spring XD will join the Spring IO Platform when it goes GA this summer.
- Spring XD describes big data ingestion and export, workflows for real-time analytics at ingestion time, and for Hadoop workflow management. Users can work with streams, taps, and batch jobs without writing and compiling Java code. These are also easily extended with Spring Batch, Spring for Apache Hadoop, and Spring Integration.
- Spring Boot reduces the effort required to create production-ready, DevOps-friendly, XML-free Spring apps and becomes the perfect container for PaaS. It eliminates boilerplate code with conventions, making the process radically faster. Also, it implements an extensible set of operational features like automated health checks and metrics endpoints. Lastly, it supports embedded containers and the creation of self-contained executables that can be run with Java -jar.
- Grails provides a highly productive, fully streamlined full-stack web framework by combining the Spring IO foundation with a set of comprehensive Groovy-based DSLs.
For more information:
- Spring IO Platform page
- Blog: Introducing the Spring IO Platform
- Spring IO Project page
- Getting Started with Spring IO Platform using Maven and Gradle
- Spring IO Code on GitHub
- Spring Boot