Slide 1

Slide 1 text

Josh Long (⻰龙之春) @starbuxman [email protected] github.com/joshlong “ BOOTIFUL”
 MICROSERVICES 
 WITH SPRING BOOT Spencer Gibb @spencerbgibb Dr. Dave Syer @david_syer Oliver Gierke @olivergierke Phillip Webb @phillip_webb with help from:

Slide 2

Slide 2 text

No content

Slide 3

Slide 3 text

Micro vs Monolithic… is not a new discussion From: [email protected] (Ken Thompson) Subject: Re: LINUX is obsolete Date: 3 Feb 92 23:07:54 GMT Organization: Georgia Institute of Technology I would generally agree that microkernels are probably the wave of the future. However, it is in my opinion easier to implement a monolithic kernel. It is also easier for it to turn into a mess in a hurry as it is modified. Regards, Ken

Slide 4

Slide 4 text

…Didn’t the Monolith win? Wait a Minute…

Slide 5

Slide 5 text

What’s Wrong with a Monolithic Application? (does your monolith drive you to drink?)

Slide 6

Slide 6 text

A More Elegant Alternative

Slide 7

Slide 7 text

How Much More Micro Do You Go?? import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.context.annotation.Configuration; import org.springframework.web.bind.annotation.* ! // assumes org.springframework.boot:spring-boot-starter-web on CLASSPATH @Configuration @RestController @EnableAutoConfiguration public class GreetingsController { ! @RequestMapping("/hi/{name}") String hello(@PathVariable String name) { return "Hello, " + name + "!"; } ! public static void main(String[] args) { SpringApplication.run(GreetingsController.class, args); } }

Slide 8

Slide 8 text

Standing on the Shoulders of Spring &

Slide 9

Slide 9 text

W H Y B O O T

Slide 10

Slide 10 text

C O N F I G - S E RV E R

Slide 11

Slide 11 text

R E F R E S H - A B L E C O N F I G U R AT I O N

Slide 12

Slide 12 text

S E RV I C E R E G I S T R AT I O N & D I S C O V E RY W I T H E U R E K A http://techblog.netflix.com/2012/09/eureka.html

Slide 13

Slide 13 text

M A N A G I N G FA I L U R E S W I T H H Y S T R I X http://techblog.netflix.com/2012/11/hystrix.html

Slide 14

Slide 14 text

D Y N A M I C R O U T I N G W I T H Z U U L http://techblog.netflix.com/2012/11/hystrix.html

Slide 15

Slide 15 text

The Impact of the Cloud & § Spring Boot makes it dead simple to stand up services.
 (Where do they live? Who runs them?) § Things get Distributed REALLY quickly! CF provides a way to simplify ! ! § Manifests are are the ultimate installer. 
 (cf push an entire distributed system!) ! § Spring Cloud PaaS connectors simplify service-consumption > cf push hystrix.jar > cf push …

Slide 16

Slide 16 text

Spring Integration and Spring XD § Both make it easy to setup alternative-protocol endpoints ! § Spring Integration can even handle orchestration and messaging ! § Spring XD makes it super-simple to build big-data pipelines

Slide 17

Slide 17 text

Spring Security and Spring Security OAuth § Spring Security OAuth is a natural way to build REST-centric services with federated identity ! § Whatever else you want, Spring Security provides a solution ! § Spring Session is a turnkey session binding that lets you plugin alternative HTTP session implementations. Can be valuable in scaling out your access-tokens or other ephemeral security state.

Slide 18

Slide 18 text

Bookmark.. § Former Netflix DevOps Guru Adrian Cockroft on DevOps + MS
 http://www.infoq.com/interviews/adrian-cockcroft-microservices-devops § Bootiful Applications with Spring Boot
 http://http://www.youtube.com/watch?v=eCos5VTtZoI § Chris Richardson’s http://microservices.io site and his 
 Decomposing Applications for Scalability talks § The Netflix Techblog http://techblog.netflix.com § Fred Georges on Programmer Anarchy 
 http://www.infoq.com/news/2012/02/programmer-anarchy § Matt Stine’s CF + Microservices: a Mutualistic Symbiotic Relationship 
 http://www.youtube.com/watch?v=RGZefc92tZs § Martin Fowler’s article - http://martinfowler.com/articles/microservices.html

Slide 19

Slide 19 text

Josh Long (⻰龙之春) @starbuxman @springcentral [email protected] github.com/joshlong References spring.io/guides github.com/spring-cloud/ github.com/spring-cloud-samples/ github.com/joshlong/spring-doge github.com/joshlong/spring-doge-microservice docs.spring.io/spring-boot/ Questions?