Upgrade to Pro — share decks privately, control downloads, hide ads and more …

The Bootiful Microservice

Josh Long
April 09, 2015

The Bootiful Microservice

This is the deck to my talk, "The Bootiful Microservice." It introduces how to build microservices with Spring Boot, Spring Cloud, and Cloud Foundry.

Josh Long

April 09, 2015
Tweet

More Decks by Josh Long

Other Decks in Technology

Transcript

  1. B O O T I F U L
    M I C R O S E RV I C E
    Josh Long (⻰龙之春)
    @starbuxman
    [email protected]
    github.com/joshlong
    T H E
    https://github.com/joshlong/qcon2015-sao-paolo-microservices-workshop

    View full-size slide

  2. A B O U T M E . .

    View full-size slide

  3. https://github.com/joshlong/qcon2015-sao-paolo-microservices-workshop
    Spring Developer Advocate
    Josh Long (⻰龙之春)
    @starbuxman [email protected]
    |
    Jean Claude
    van Damme! Java mascot Duke some thing’s I’ve authored...
    I am.. • open-source contributor 

    (Spring Boot, Spring Integration, 

    Vaadin, Activiti)
    • JavaOne rockstar
    • author of 5 books, 

    3 video trainings on Spring

    View full-size slide

  4. Josh Long - @starbuxman
    Pivotal is..

    View full-size slide

  5. T H E S TO RY S O FA R . .

    View full-size slide

  6. Josh Long - @starbuxman
    it’s not a new story..

    View full-size slide

  7. Josh Long - @starbuxman
    ! Twitter moved from a Rails monolith to a microservice architecture
    ! Facebook moved from PHP monolith to a microservice architecture
    ! Netflix moved from a Java monolith to a microservice architecture
    the old architecture’s broken..

    View full-size slide

  8. Josh Long - @starbuxman
    ! processing can’t scale up
    • concurrent, horizontal
    architectures are easier to scale
    • “process”-style concurrency is
    easy to scale still
    Moore’s Law is Broken
    Moore's law is the observation that, over
    the history of computing hardware, the
    number of transistors in a dense
    integrated circuit doubles approximately
    every two years. The law is named after
    Gordon E. Moore, co-founder of the Intel
    Corporation, who described the trend in
    his 1965 paper.
    http://en.wikipedia.org/wiki/Moore's_law

    View full-size slide

  9. Josh Long - @starbuxman
    Data is overwhelming..
    44000%
    larger in 2020 than 2009
    data production is expected to be
    :

    View full-size slide

  10. mobile
    More than 

    1.5 MILLION
    activations
    daily *
    @Starbuxman
    https://github.com/joshlong/qcon2015-sao-paolo-microservices-workshop
    * http://www.androidcentral.com/larry-page-15-million-android-devices-activated-every-day

    View full-size slide

  11. Josh Long - @starbuxman
    a Social World in 60 seconds
    3125
    photos uploaded
    7630
    messages sent
    7610
    searches
    2MM
    videos viewed
    2000
    checkins
    175k
    tweets
    1090
    visitors
    700k
    messages sent
    * source: visual.ly/60-seconds-social-media

    View full-size slide

  12. Josh Long - @starbuxman
    the Internet of Things
    ! IPv6 gives us more addresses
    ! devices are getting smaller,
    more ubiquitous
    ! “devices” include homes
    appliances (refrigerators,
    washers, coffee machines,
    dryers), roads, air pollution
    monitors, (human) body
    monitors, etc
    “In five years, by 2018, Earth will be home to 7.6
    billion people, says the United Nations. By
    contrast, some 25 billion devices will be
    connected by 2015, and 50 billion by 2020,
    says Cisco.”
    http://www.businessinsider.com/what-you-need-to-know-about-the-
    internet-of-things-2013-3?op=1#ixzz3FxCafwWe

    View full-size slide

  13. Josh Long - @starbuxman
    Conway’s Law

    View full-size slide

  14. T H E M I C R O S E RV I C E

    View full-size slide

  15. Josh Long - @starbuxman
    A Mental Model for Scale
    Chris Richardson (@crichardson) 

    (http://microservices.io/articles/scalecube.html) introduced me
    to this “scale cube” from The Art of Scaling Software

    View full-size slide

  16. Josh Long - @starbuxman
    ! all services communicate via APIs (not backend databases!)
    ! APIs should be consistent
    ! HATEOAS promotes discoverability
    ! should be easy to stand up
    ! APIs should provide uniform monitoring and system endpoints for ease of
    integration into production
    APIs
    how do we

    View full-size slide

  17. Josh Long - @starbuxman
    ! each service should be deployable without blocking other teams
    ! promotes agility in iteration
    ! polyglot services
    ! avoids “DLL hell” by isolating dependencies to the service
    Independent Deployability

    View full-size slide

  18. BUILDING ADAPTIVE APPLICATIONS IS HARD
    built on Cloud Foundry
    code will be open sourced.

    Demo
    B U I L D I N G A P I S W I T H S P R I N G B O O T

    View full-size slide

  19. D I S T R I B U T E D
    S Y S T E M S
    A R E H A R D

    View full-size slide

  20. Josh Long - @starbuxman
    ! Google built a custom stack based on C++, Java, Go
    ! TaoBao built frameworks on Spring (open sourced, too! “Dabbo")
    ! custom RPC, service registration, coordination
    ! http://bit.ly/1xt6hIE “Spring at China Scale”
    ! Baidu have frameworks also built on top of Spring
    ! Netflix have a large stack based on Spring and Spring Boot
    ! Twitter built a custom stack based on Scala
    ! Facebook built a custom stack based on PHP/“Hack”
    Others have walked this path

    View full-size slide

  21. Josh Long - @starbuxman
    title

    View full-size slide

  22. BUILDING ADAPTIVE APPLICATIONS IS HARD
    built on Cloud Foundry
    code will be open sourced.

    Demo
    B U I L D I N G R E S I L I E N T M I C R O S E RV I C E S
    W I T H S P R I N G C L O U D

    View full-size slide

  23. Josh Long - @starbuxman
    ! Single sign on with Spring Security
    ! Node coordination with Zookeeper
    ! Service registration and discovery with Consul and Zookeeper
    Anything Else in Spring Cloud?

    View full-size slide

  24. Josh Long - @starbuxman
    ! Netflix treat AMIs as containers
    ! Many organizations treat Tomcat as their container
    ! Docker is the container
    Deploy Containers

    View full-size slide

  25. Josh Long - @starbuxman
    ! all services are stateless: if one’s struggling, replace it
    ! failure will happen
    Treat Servers as Cattle, Not Pets

    View full-size slide

  26. Josh Long - @starbuxman
    ! embrace DevOps
    ! don’t throw code over the wall
    ! map your team to your business vertical
    ! Netflix have teams and then the platform group who provide infrastructure
    for teams.
    Integrated Teams, not Silos

    View full-size slide

  27. why PaaS? @Starbuxman
    https://github.com/joshlong/qcon2015-sao-paolo-microservices-workshop
    Imagine if architects had to be the
    janitor for every building they designed.
    This is how the development team felt
    prior to moving to Windows Azure.
    Duncan Mackenzie Nov 07, 2011
    http://www.infoq.com/articles/Channel-9-Azure
    “ ”

    View full-size slide

  28. Josh Long - @starbuxman
    ! an open-source project administered by the Linux Foundation
    ! many implementers (HP, IBM, Baidu, etc)
    Cloud Foundry is..

    View full-size slide

  29. Josh Long - @starbuxman
    ! Observe-Orient-Decode-Act
    ! embrace continuous delivery (easy if you’re doing everything else in this list!)
    the OODA Loop

    View full-size slide

  30. Josh Long - @starbuxman
    ! scale is everybody’s problem now, not just Netflix/Twitter/Baidu/Alibaba, etc
    ! “cloud native” is the new norm. It doesn’t have to be hard.
    ! Spring Boot simplifies application & service development
    ! Spring Cloud simplifies service interactions
    ! Cloud Foundry lets you deploy all the things, consistently; removes
    operational friction
    ! “smaller is more”
    Takeaways

    View full-size slide

  31. Josh Long - @starbuxman
    ! Former Netflix DevOps Guru Adrian Cockroft on DevOps + MS

    http://www.infoq.com/interviews/adrian-cockcroft-microservices-devops
    ! Bootiful Applications with Spring Boot

    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
    where to go from here..

    View full-size slide

  32. Josh Long - @starbuxman
    ! 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
    where to go from here..

    View full-size slide

  33. Josh Long - @starbuxman
    Questions?
    Josh Long (⻰龙之春)
    @starbuxman
    [email protected]
    speakerdeck.com/joshlong 

    github.com/joshlong 

    http://spring.io
    A NEW PLATFORM FOR A NEW ERA

    View full-size slide