The Spring Blog

Engineering
Releases
News and Events

Why 12 Factor Application Patterns, Microservices and CloudFoundry Matter

It seems like a lifetime ago, but a few short years ago I was leading a $100 million government project for a large system integrator that involved 50+ developers, 20+ testers, 15+ managers, 5+ ops and a cast of characters. Once a week we had to do our deploy.

Despite using Scrum, Cruise Control, SVN, Java, Eclipse, Guava, Google Guice, UML, JUnit, PMD, Findbugs, Checkstyle, MDD, TDD, eclEmma and mostly modern tools; our deploy process was a fragile, long, manual, person intensive process. Each Friday night we started. A long email thread began the process with a text check list that we emailed back and forth as each person in the process did their piece. Another architect or I would manage the process and be responsible for the Go/No Go decision and the critical DB compare step. We were using a proprietary vertical framework from a major software company for the basis of the project. It involved manually running SQL scripts, running diff scripts, visually comparing some items, checking the version control check list, checking the Cruise Control results, JUnit / Code Coverage HTML and some other generated reports. A UNIX admin would copy over the giant EAR files, SQL and a ton of giant XML files. Once there they would run a number of shell scripts to change some things, sometimes using environment variables. Then they would be moved to a special directory and the Java app server would be stopped, everything backed up. The EARs would be moved over, datasources and other configs would be copied and checked. DB change scripts would be run against Oracle and meta data would be updated/inserted/deleted via numerous sql scripts. The server would be started up. I would run a Selenium test to hit the various sites to “warm them up” as the complex proprietary DB framework needed the cache warmed and started. The first few tries would fail.

Read more...

Spring XD 1.1 RC1 released

On behalf of the Spring XD team, I am very pleased to announce that the Spring XD 1.1 Release Candidate is now available for download.

The 1.1 RC1 release includes several new features as well as bug fixes.

One theme in the 1.1 release is around Stream processing. The 1.1 M2 version introduced support for Reactor’s Stream API in processing modules. The 1.1 RC1 release adds support for stream processing using RxJava’s Observable API and Spark Streaming alongside the existing Spark job support. By providing a range of options, you can pick the functional programming model that best suits the task at hand.

Read more...

Spring Data Evans SR 2 and Dijkstra SR 5 released

On behalf of the Spring Data team I’d like to announce the availability of the second service release for Spring Data release train Evans as well as the fifth - and final one - of Spring Data Dijkstra.

The releases ship 191 tickets fixed, some of them quite significant bugfix and performance improvements and thus the releases recommended upgrades within the trains. The Dijkstra service release is planned to be the last one for that train. Users are recommended to upgrade to Evans as bug fixes will only be ported to that branch going forward.

Read more...

The API Gateway Pattern: Angular JS and Spring Security Part IV

In this article we continue our discussion of how to use Spring Security with Angular JS in a “single page application”. Here we show how to build an API Gateway to control the authentication and access to the backend resources using Spring Cloud. This is the fourth in a series of articles, and you can catch up on the basic building blocks of the application or build it from scratch by reading the first article, or you can just go straight to the source code in Github. In the last article we built a simple distributed application that used Spring Session to authenticate the backend resources. In this one we make the UI server into a reverse proxy to the backend resource server, fixing the issues with the last implementation (technical complexity introduced by custom token authentication), and giving us a lot of new options for controlling access from the browser client.

Read more...

This Week in Spring - January 27th, 2015

Welcome to another installment of This Week in Spring! As usual, we’ve got a lot to cover so let’s get to it!

  1. Join Andy Wilkinson as he discusses REST API documentation, swagger, and more in a webinar on Tuesday, Feb 3rd - Documenting RESTful APIs
  2. Sabby Anandan is joining us for the Spring XD 1.1 launch webinar on Tuesday, Feb 17th - Spring XD: A Platform for data at scale and developer productivity
  3. Don’t miss Rob Winch as he takes a fresh look at HTTPSession for the cloud. His webinar is on Tuesday, Feb 24th, 2015 Webinar: Introducing Spring Session
  4. I put together a look at 12-factor app-style backing service consumption in Spring, and using Cloud Foundry
  5. Check out this talk introducing system administration using Groovy from Netflix’s Dan Woods
  6. Apache Tomcat contributors Stuart Williams and Daniel Mikusa’s SpringOne2GX 2014 talk - Fastest Servlets in the West? - is now available online! Check it out!
  7. Check out Spring Social lead Craig Walls’ SpringOne2GX 2014 talk, Booting up Spring Social, which introduces the various ways that Spring Boot simplifies (even further!) using Spring Social.
  8. Billy Yarosh put together a nice blog on using Spring HATEOAS.
  9. Are you following This Week in Cloud Foundry?
  10. Check out this nice post on integration testing with Spring Boot and RestAssured
  11. Our pal Mkyong is back, this time with a post on using Spring profiles!
  12. Florian Hohpf’s post introduces logging to Redis using Spring Boot and Logback
  13. Want to use Quartz in Spring Boot? This StackOverflow was short and sweet and answers a question I’ve seen elsewhere about getting Quartz jobs working that used to work.
  14. Driss Amri put together anice introduction to using Spring Boot and Thymeleaf for modern web application development
Read more...

12-Factor App-Style Backing Services with Spring and Cloud Foundry

The 12 Factor App Manifesto talks about backing services at length. A backing service is, basically, any networked attached service that your application consumes to do its job. This might be a MongoDB instance, PostgreSQL database, a binary store like Amazon’s S3, metrics-gathering services like New Relic, a RabbitMQ or ActiveMQ message queue, a Memcached or Redis-based cache, an FTP service, an email service or indeed anything else. The distinction is not so much what the service is so much as how it’s exposed and consumed in an application. To the app, both are attached resources, accessed via a URL or other locator/credentials stored in the configuration.

Read more...

SpringOne2GX 2014 Replay: Groovy for System Administrators

Recorded at SpringOne2GX 2014.

Speaker: Dan Woods, NetFlix

More Groovy Track

Slides: http://www.slideshare.net/SpringCentral/4pieter-springone2gx2014groovysysadmins

Enterprise Operations is seeing a shift in the management paradigm of infrastructure, from the more-traditional server-centric design, to an approach that leverages the application stack as the custodian for administration.

 

Read more...

SpringOne2GX 2014 Replay: Fastest Servlets in the West?

Fastest Servlets in the West?

Recorded at SpringOne2GX 2014.


Speakers: Stuart Willliams, Daniel Mikusa


Slides: http://www.slideshare.net/SpringCentral/williams-fastest-servlets-in-the-west


Applied Spring Track


The venerable Servlet Container still has some performance tricks up its sleeve - this talk will demonstrate Apache Tomcat’s stability under high load, describe some do’s (and some don’ts!), explain how to performance test a Servlet-based application, troubleshoot and tune the container and your application and compare the performance characteristics of the different Tomcat connectors. The presenters will share their combined experience supporting real Tomcat applications for over 20 years and show how a few small changes can make a big, big difference.

Read more...

SpringOne2GX 2014 Replay: Booting up Spring Social

Recorded at SpringOne2GX 2014.

Speaker: Craig Walls

Slides: http://www.slideshare.net/SpringCentral/booting-up-spring-social

Applied Spring Track

In recent years, people are using social networks like Facebook and Twitter to connect, meet, and share experiences and ideas. But it's not just people making connections; modern applications are also leveraging the APIs provided by the social networks to connect with their users and customers. It's hard to find applications these days that aren't somehow connected to their users via social APIs. Spring Social is an extension to the Spring Framework that enables you to create applications that connect with APIs. With it, your application can offer social login, learn about its users' interests, and inject itself into their social graph. In this session, we'll take a look at the latest that Spring Social has to offer, including integration with Spring Security, automatic reconnect, and a dramatically simpler configuration model using Spring Boot.

Read more...

SpringOne2GX 2014 Replay: Hadoop 201 -- Deeper into the Elephant

Recorded at SpringOne2GX 2014.

Speaker: Roman Shaposhnik

Big Data Track

Slides: http://www.slideshare.net/SpringCentral/hadoop-201-deeper-into-the-elephant

This session expands on the previous year's "Hadoop: Just the Basics for Big Data Rookies", diving deeper into the details of key Apache Hadoop projects. We will start with a brief recap of HDFS and MapReduce, then discuss more advanced features of HDFS, in addition to how YARN has enabled businesses to massively scale their systems beyond what was previously possible. We will then discuss Apache HBase, the non-relational database modeled after Google's BIg table, review the data model, architecture, and common use cases. By the end of this session, you will learn how these three core Hadoop projects are used to solve even the most challenging Big Data problems.

Read more...