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

A Developer's Survival Guide for the Microservi...

A Developer's Survival Guide for the Microservice Era

Held at PHP Developer Day 2016 in Dresden: https://www.move-elevator.de/php-developer-day-2016/

Sebastian Heuer

September 24, 2016
Tweet

More Decks by Sebastian Heuer

Other Decks in Technology

Transcript

  1. “Through our work we have come to prioritize: Business value

    over technical strategy Strategic goals over project-specific benefits Intrinsic interoperability over custom integration Shared services over specific-purpose implementations Flexibility over optimization Evolutionary refinement over pursuit of initial perfection The SOA Manifesto
 http://www.soa-manifesto.org
  2. HTTP HTTP HTTP HTTP Pricing Service Cart 
 Service Checkout

    Service Core Product Text Service communication initiation
  3. HTTP HTTP HTTP HTTP HTTP Product Service Cart 
 Service

    Checkout Service Pricing Service Product Text Service ?
  4. "one hundred fifty-seven quinvigintillion, seven hundred eighty-six quattuorvigintillion, six hundred

    fifty-seven trevigintillion, seven hundred forty-seven duovigintillion, three hundred forty unvigintillion, one hundred eighty-six vigintillion, (…) nine hundred forty-five quintillion, eight hundred twenty-eight quadrillion, two hundred seventy trillion, eighty billion, …"
  5. Webserver Key-Value Storage Search FURY Frontend FURY Backend Legacy RDBMS

    Legacy System Session Storage FURY Requests 200 OK
  6. Webserver Key-Value Storage Search FURY Frontend FURY Backend Legacy RDBMS

    Legacy System Session Storage Requests to Legacy System 404 NOT FOUND 200 OK
  7. $ du -hs emtpy-symfony-project 47M emtpy-symfony-project $ phploc empty-symfony-project phploc

    3.0.1 by Sebastian Bergmann. Directories 978 Files 4620 Size Lines of Code (LOC) 580300 Comment Lines of Code (CLOC) 177172 (30.53%) Non-Comment Lines of Code (NCLOC) 403128 (69.47%) Logical Lines of Code (LLOC) 121983 (21.02%)
  8. WE TAKE A 5 MEGABYTE BASE IMAGE AND ADD 50

    MEGABYTES OF FRAMEWORK TO IT
  9. { "name": "slim/slim", "require": { "php": ">=5.5.0", "pimple/pimple": "^3.0", "psr/http-message":

    "^1.0", "nikic/fast-route": "^1.0", "container-interop/container-interop": "^1.1" }, } Slim's composer.json (excerpt)
  10. $ phploc src phploc 3.0.1 by Sebastian Bergmann. Directories 10

    Files 48 Size Lines of Code (LOC) 1427 Comment Lines of Code (CLOC) 418 (29.29%) Non-Comment Lines of Code (NCLOC) 1009 (70.71%) Logical Lines of Code (LLOC) 313 (21.93%)
  11. VERSION 1 Product 
 Service VERSION 1 Cart 
 Service

    VERSION 1 Checkout 
 Service VERSION 1 Core VERSION 1 VERSION 1 VERSION 1 Cart 
 Service VERSION 2 Core VERSION 2
  12. VERSION 2 Product 
 Service VERSION 1 Cart 
 Service

    VERSION 1 Checkout 
 Service VERSION 1 Core VERSION 1 VERSION 1 VERSION 1 Cart 
 Service VERSION 2 Core VERSION 2