Slide 1

Slide 1 text

Spring Boot & Spring Cloud for Legacy Applications Marten Deinum

Slide 2

Slide 2 text

Spring I/O 2016 Disclaimer This slide intentionally left blank

Slide 3

Slide 3 text

• By Day • Software Developer / Architect / Consultant / … • By Night • Husband & Father • Lifeguard (Instructor) • Scuba Instructor • Author • Spring Contributor Who Am I

Slide 4

Slide 4 text

Spring I/O 2016 Spring Boot and Spring Cloud for Legacy Applications

Slide 5

Slide 5 text

Spring I/O 2016 Spring Boot and Spring Cloud for Legacy Applications

Slide 6

Slide 6 text

–Wikipedia “In computing a legacy system is an old method, technology, computer system, or application program,"of, relating to, or being a previous or outdated computer system." Often a pejorative term, referencing a system as "legacy" often implies that the system is out of date or in need of replacement.”

Slide 7

Slide 7 text

Bookstore from Pro Spring MVC • Spring Framework 3.2 • JPA with Hibernate 4.2 • Using Tiles and JSP • XStream • Jackson 1 • Configuration using XML and JavaConfig • Deployed as a WAR • No Monitoring/Metrics/Health etc. The Application

Slide 8

Slide 8 text

Spring I/O 2016 Agenda • Why • How • Challenges & Solutions • Demo • Q&A

Slide 9

Slide 9 text

Spring I/O 2016 Why • You want to use Spring Boot / Cloud • Migration of Monolith to Microservices • Strangler Application / Pattern • Migration Strategy

Slide 10

Slide 10 text

Spring I/O 2016 How • Go full Spring Boot / Spring Cloud • Use selective parts of Spring Boot / Spring Cloud • Auto Configuration is still just Configuration!

Slide 11

Slide 11 text

Spring I/O 2016 Challenges • Full Spring Boot / Spring Cloud • Probably requires library upgrades • Deprecated library support • Removed library support • Auto Configuration

Slide 12

Slide 12 text

Spring I/O 2016 Challenges • Use selective parts of Spring Boot / Spring Cloud • No benefit of auto configuration “magic” • Manual configuration can be a PITA • Requires digging into auto configuration sources • Incompatible library versions

Slide 13

Slide 13 text

Spring I/O 2016 Solutions • Library Upgrades (and incompatible libraries) • Spring is generally very backwards compatible • Others require code upgrades

Slide 14

Slide 14 text

Spring I/O 2016 Solutions • Deprecated Library support • Update your code to supported versions • Deprecated isn’t removed!

Slide 15

Slide 15 text

Spring I/O 2016 Solutions • Removed Library support • Rewrite your code to supported versions • Include the older support in your project

Slide 16

Slide 16 text

Spring I/O 2016 Solutions • Auto Configuration • Is just configuration • You can do manual configuration • Might require some workarounds

Slide 17

Slide 17 text

Spring I/O 2016 Solutions • General Advice • Take Small Steps • Write Tests

Slide 18

Slide 18 text

Spring I/O 2016 DEMO

Slide 19

Slide 19 text

Spring I/O 2016 Q&A

Slide 20

Slide 20 text

Spring I/O 2016 Learn More. Stay Connected mdeinum