28
project Josh Long (之春) @starbuxman [email protected] github.com/joshlong the

The macro of microservices

Embed Size (px)

Citation preview

project

Josh Long (⻰龙之春) @starbuxman [email protected] github.com/joshlong

the

Josh Long (⻰龙之春) @starbuxman [email protected] github.com/joshlong

the Macro of Microservices

Josh Long (⻰龙之春) @starbuxman [email protected] github.com/joshlong

Josh Builds a Win in 4 Easy Steps

Josh Long (⻰龙之春) @starbuxman [email protected] github.com/joshlong

a Diminishing Delta between Development & Delivery

Josh Long (⻰龙之春)

• Java Champion • open-source contributor

(Spring Boot, Spring Cloud, Spring Integration, Vaadin, Activiti, etc etc) • JavaOne rockstar • author of 5 books, 3 video trainings on Spring

say open source!

continuous deliverycontinuous delivery

agility

microservices

cloud computing

continuous integration (the feedback loop)

agility

continuous deliverycontinuous delivery

X

- the agile manifesto espouses several key ideas that we take for granted today: * individuals & interactions first, working code first, collaboration first, and responsiveness first.

- the agile manifesto espouses several key ideas that we take for granted today: * individuals & interactions first, working code first, collaboration first, and responsiveness first.

} given.. when.. then..

pivotal tracker

Title Textdon’t reinvent the wheel

spring boot

- Spring Boot provides an impressively simple way to build software. * red-green test the software * satisfy the story and deliver the feature(s).- but remember, were trying to get softare that is 'done'! 'done' implies a lot of x-cutting concerns and a lot of non-functional requirements. * Boot's got you covered there, too. (look at /actuator etc etc)- Deployment: executable jars, `system.d`, `init.d`, look at how easy it is to deploy this to a modern environment like CF `cf push -p my-app.jar my-app`- MAKE JAR NOT WAR- ive seen a lot of apps that combine their Apaceh Tomcat config in the same bundle as their app itself. this implies that teh cofniguration is app specific, so why shouldnt it live with the app itself?

microservices

continuous deliverycontinuous delivery

Title Texta monolith might be the right answer

- the discussion is really about removing the delta between delivery of software to customers. microservices are a part of that larger goal.

why does netflix use MSA ? organization agiluty! Source: Adrian Cockcroft http://www.slideshare.net/adrianco

microservices as an enabler

..organizations which design systems are constrained to produce designs which are copies of the communicationstructures of these organizations

embrace conway’s law

corollary:you can refactor your organization to improve your systems

Mel Conway’s law:

Source: Adrian Cockcroft http://www.slideshare.net/adrianco

microservices as an enabler

- the things we do and things we build help people achieve this. it helps devs win.- sizing is important. * Netflix famously talks about their 2 pizza box teams: mall enough to feed w/ 2 pizza boxes fo food * of course, this # includes management, operations, ec. a truly cross-functional team. * rules of thumbs for teasing a microservice out: independently reusable, bounded context, scale out when a piece of code is logically deve;oped by a diff team.

- As the software becomes larger and the boundaries of the components have been teased apart it becomes useful to tease things apart - to functionally decompose them. there are several benefits that come from this, but the big one is organizational agilty.

- or conway's law: software reflects the organization that it serves. period.

distributed systems are hard

spring cloud

Apache Zookeeper

these logos are all trademark/copyright their respective owners (T-B, L-R): Netflix, amazon.com, Apache Software Foundation, Cloud Foundry, Hashicorp they are ALL great organizations and we love their open-source and their APIs!!

*

cloud computing

continuous deliverycontinuous delivery

-> |( )| ..

lattice:

- because it has an opinoin, it imposes a set of constraints on app developers and those opinions mean the PaaS can manage u apps for u more readily. this is improves velocity.- u may decide those opinions are too strong, and u want the ability to color outside the lines. for this there's lattice and docker. docker gives u mystery meat containers, though. so be careful.

lattice.cf

continuous integration (the feedback loop)

continuous deliverycontinuous delivery

Source: Adrian Cockcroft http://www.slideshare.net/adrianco

- at pivotal, we're focused on shortening that gap while improving quality. everything we do falls into that overarching narrative. software projects are full of variables and anything that reduces the variables improves velocity.

lets look at the larger picture:

continuous delivery

source:

Continuous Delivery: Reliable Software Releases Through Build, Test, and Deployment Automation / Jez Humble, David Farley.

ISBN 978-0-321-60191-9

continuous delivery: the build pipeline

- the nice thing aout CI/CD is that u remove the fear associated q/ making changes. deploy early and often! w/ a PaaS its dead simple to embrace this philosophy.- deployment is easier w/ a PaaS. common concerns like deplyment are well cared for w/ patterns like blue-green deployments.- CI tech like Circle CI and Travis are poweful because they make it easy to validate the end ot end story. every commit _could_ go to production. the build pipeline is a key concept around this.

continuous deliverycontinuous delivery

agility

microservices

cloud computing

continuous integration (the feedback loop)

Questions?

Josh Long (⻰龙之春) @starbuxman

[email protected] speakerdeck.com/joshlong

github.com/joshlong http://spring.io

A NEW PLATFORM FOR A NEW ERA