The Spring Blog
Dear Spring community,
This is the last milestone before we enter the release candidate phase. Our feature-complete RC1 is planned for early April, initiating a series of release candidates up until June. With this timeline, against near-final releases of OpenJDK 9 and several EE 8 specifications, our 5.0 generation covers early JDK 9 support as well as Servlet 4.0 and Bean Validation 2.0 already.
The 1.1.1.RELEASE maintenance release of Spring Cloud Data Flow for Cloud Foundry is now available and includes a variety of stability and performance improvements. Following are the highlights:
Stability Improvements The instability problems when using SCDF’s 1.1.0.RELEASE on PCF manifested to the users in the following forms.
stream listoperation would hang and eventually time out with “IllegalStateException: 503 Bad Gateway” or “IllegalStateException: Timeout on block read” exceptions. This is addressed in the cf-java-client library.
With SCDF server sitting cold/idle for a period of time and with OAUTH token refresh routine happening in the background, any new operation to the server would never complete. The OAUTH refresh token routine had a bug in successfully negotiating for new tokens. This is addressed in the cf-java-client library.
Error Handling Improvements The improved error handling and logging support include the operations and its call chain details. This is especially useful when performing 100s of stream/task operations in SCDF, and if anything fails in the process, it will be easy to correlate and determine the root-cause more efficiently. There has been error handling improvements in SCDF’s cf-deployer, cf-java-client, and reactor-core projects.
Network Call Optimizations While invoking
stream listfrom the shell or navigating to the equivalent stream list page in the Dashboard, we were performing a network call for each application associated with the stream(s). This is now refactored and replaced to efficiently query for all the application statuses in a single network call if the backing runtime supports it (and the Cloud Foundry deployer certainly does). This change significantly improves the user-experience of the stream listing operation.
Stress/Load Testing In the process of addressing above mentioned instability patterns, we have built a comprehensive integration and acceptance test harness. With the load-testing routines simulating 100s of concurrent operations on the server including “stream creates”, “stream deploys”, “stream destroys”, and “stream lists”, we were able to monitor the overall health of the SCDF server and as well correlate to confirm the successful execution of operations in entirety.
An important quality update with new features including predicated-based windows and the
checkpoint operator, fixes, test coverage and for the first time in 3.0.x line, a draft reference guide.
We are now working on
3.0.6.RELEASE which is going to be our last major 3.0 content update before
3.1.0.RELEASE. We encourage our Spring Community to just follow deprecated instructions if they hit any of the
@Deprecated API, thus simply preparing for a quick, painless, upgrade when time comes. Have a look at our issues backlog for a more detailed scope.
It’s my pleasure to announce that Spring IO Platform Brussels-RELEASE is available now from the Spring release repository and Maven Central.
The Brussels release introduces the following projects to the Platform:
- Spring Kafka 1.1
The Brussels release also upgrades the versions of a number of projects:
- Spring AMQP 1.7
- Spring Boot 1.5
- Spring Data Ingalls
- Spring Integration Java DSL 1.2
- Spring Integration Kafka 2.1
- Spring LDAP 2.3
- Spring Security 4.2
- Spring Session 1.3
- Spring Web Services 2.4
The versions of numerous third-party dependencies have also been updated.
On behalf of the team, I am excited to announce the release of the first milestone of Spring Cloud Data Flow 1.2.
Note: A great way to start using this new release(s) is to follow the release matrix on the project page, which includes the download coordinates and the links to the reference guide.
Over the last few weeks, we have added new features and improvements to the overall orchestration of data microservices. The following new features were included in the 1.2.0.M1 release:
- Introduce dedicated prefixes for deployment properties. Using the deployer properties is as simple as
deployer.<appname>.xxxas opposed to
- Introduce a new REST-API controller and shell support to cleanup Task Executions
- Foundation work to consolidate the use of controllers between Task deployments and Task Executions
- Consolidate REST-API call traces and return codes for consistency
- Adds role-based access control to define who has access to create, deploy, destroy, or view streams/tasks. This works seamlessly in coordination with the supported authentication methods.
- Performance optimizations to “stream list” operation. Instead of making individual calls for each app associated with the stream, the newly introduced
MultiStateAppDeployerSPI operation invokes a call per stream that queries all the application statuses in a single network call
- Improves error reporting for “stream list” operation
We are pleased to announce that Spring Cloud Task 1.2.0.M1 is now available via Github and the Pivotal download repository. Many thanks to all of those who contributed to this release.
This is the first milestone for the 1.2.x line of Spring Cloud Task. Intended to continue the integrations required for Spring Cloud Data Flow, this release provides the following new features:
Better DataSource integration between task and batch - This release makes configuring the DataSource used by the task/batch integration easier.
Allows an external process to update the external execution id - Prior to this release, the external execution id (the execution id for the underlying platform) had to be updated by the task itself. In some use cases, this is not possible. This release exposes the ability to update the external execution id outside the scope of the task itself.
Allow the user to configure a prefix for the task tables - Similar to how Spring Batch allows a user to configure a prefix for the batch repository tables, Spring Cloud Task now exposes the ability to configure a prefix for task repository tables as well.
Add support for parent execution ids - In complex use cases, the ability for one task to launch multiple other tasks is very common. Spring Cloud Task has already supported this via partitioned batch jobs launching worker nodes as tasks. This release provides the ability within the task repository to associate the parent child relationship that occurs from that capability (both in the batch use case and with raw tasks).
Upgrade to Spring Cloud Camden SR5 - This release is compatible with Spring Cloud Camden’s recent SR5 release.
On behalf of the Spring Cloud team it is my pleasure to announce a new milestone release of Spring Cloud Pipelines -
Apart from some bug and documentation fixes it’s providing an out of the box support for blue green deployment on Cloud Foundry (both for Concourse and Jenkins)! This is how we do it.
When you click
deploy to prod
we’re renaming the current instance of the app e.g.
we’re deploying the new instance of the app under the
now two instances of the same application are running on production
When you click on the
Complete switch over step:
we’re deleting the old instance (
|Remember to run this step only after you have confirmed that both instances are working fine!|
As usual, thanks to the community for any feedback and contribution as always. Looking forward for more!
This release contains several bug fixes, including proper offset commit handling when using a
BatchListener; therefore an upgrade is highly recommended.