Building Resilient Microservices

509 Aufrufe

Veröffentlicht am

Presented at the IndicThreads.com Software Development Conference 2016 held in Pune, India. More at http://www.IndicThreads.com and http://Pune16.IndicThreads.com


--

Veröffentlicht in: Software
0 Kommentare
2 Gefällt mir
Statistik
Notizen
  • Als Erste(r) kommentieren

Keine Downloads
Aufrufe
Aufrufe insgesamt
509
Auf SlideShare
0
Aus Einbettungen
0
Anzahl an Einbettungen
169
Aktionen
Geteilt
0
Downloads
19
Kommentare
0
Gefällt mir
2
Einbettungen 0
Keine Einbettungen

Keine Notizen für die Folie
  • Problem starts when
    Technical debt builds up
    Hard to change without breaking stuff
    Expensive QA & test cycles
    Long term commitment to a technology stack
  • Building Resilient Microservices

    1. 1. Building Resilient Microservices Gurpreet S. Sachdeva Aricent
    2. 2. Who AM I? • Java / Cloud Technology Enthusiast • Director – Technology @ Aricent, Gurgaon • Co-Founder Delhi/NCR JUG • I blog @ www.thistechnologylife.com • Java Code Geek partner • @gssachdeva • https://www.linkedin.com/in/gurpreets
    3. 3. Microservices Evolution https://www.morpheusdata.com/blog/2014-10-24-the-new-rea
    4. 4. What Exactly is a Microservice The term "Microservice Architecture" has sprung up over the last few years to describe a particular way of designing software applications as suites of independently deployable services. While there is no precise definition of this architectural style, there are certain common characteristics around organization around business capability, automated deployment, intelligence in the endpoints, and decentralized control of languages and data. http://martinfowler.com/articles/microservices.html
    5. 5. Microservice Properties
    6. 6. Microservice Polyglot Architecture
    7. 7. OPERATIONAL MATURITY IS VITAL http://martinfowler.com/bliki/MicroservicePrereq uisites.html • Not all monoliths are bad applications
    8. 8. Traditional Application Architecture • Easy to • Develop, Test, Deploy
    9. 9. Scale Cube
    10. 10. Y-Axis Scaling • Apply X-axis and Z-axis scaling to each service independently • Partitioning Strategies • Noun • Verb • SRP • Unix Utilities
    11. 11. Conway’s Law “Organizations which design systems ... are constrained to produce designs which are copies of the communication structures of these organizations” -Melvin Conway, 1968 Can your teams be organized around microservices
    12. 12. Popular Examples http://techblog.netflix.com ~ 600 services http://highscalability.com/amazon- architecture 100-150 services to build a page http://www.addsimplicity.com/downlo ads/eBaySDForum2006-11-29.pdf http://queue.acm.org/detail.cfm? id=1394128
    13. 13. Monolith First http://martinfowler.com/bliki/MonolithFirst.html
    14. 14. Microservices – Inner & Outer Architecture
    15. 15. Microservices – Inner & Outer Architecture
    16. 16. Facets of Monitoring
    17. 17. 12 Factor App Principles
    18. 18. Design for Failure • Failure will ALWAYS occur • Dependent services may be unavailable or too slow to respond • Horizontal clustering • Resilience Patterns to the rescue • CicuitBreaker, Bulkhead, Caching, Timeout, Retry, Messaging, etc.
    19. 19. Netflix OSS Projects Over 100 NetflixOSS projects @ netflix.github.com
    20. 20. Cloud Foundry to Rescue • Many moving parts • Orchestration => Cloud Foundry
    21. 21. Data Strategy • Multiple microservices NOT to share the same database model and perform updates on it • Separation of at least read/write access • Ideally: Separate data stores for each service
    22. 22. Inter-Service Communication • In a monolith architecture, most of the communication is synchronous • Synchronous communication • Mostly REST is used, Other choices: Protocol Buffers, thrift • May require asynchronous communication as well • ZeroMQ, RabbitMQ, Kafka
    23. 23. How to Test? http://martinfowler.com/articles/microservice-testing
    24. 24. Continuous Delivery • Reliable Software Releases through Build, Test and Deployment Automation • DONE = Shippable into Production
    25. 25. Continuous Integration Tool Set
    26. 26. Prepare for DevOps Devops (From Verticals to collaborative teams)
    27. 27. Spring Boot • Opinionated Spring application architecture - Convention over Configuration • Production-ready features, externalized configuration, metrics and health checks • Spring Cloud – Umbrella project for cloud connectors, on top of Spring Boot
    28. 28. Take Aways Microservices aren’t micro! Everything comes at a price No framework is a silver bullet
    29. 29. THANK YOU

    ×