Microservices From Zero To Hero - Alexandru Ioan Cuza University

Transcription

Microservices fromzero to heroDAN NASTASAFLORIN OLARIUMay 16, 2017

AGENDA About Centric“Italian” Architecture and Microservices Onion and SpringWhat Is a Microservice?Building Monolithic ApplicationsMarching Toward Monolithic HellMicroservices – Tackling the ComplexityThe Benefits of MicroservicesThe Drawbacks of MicroservicesWhy Microservices?DemoAbout Centric InternshipSummaryBibliographyTITLE PRESENTATIONMay 16, 2017

ABOUT CENTRICTITLE PRESENTATIONMay 16, 2017

ABOUT CENTRIC It is a Dutch companyTITLE PRESENTATIONMay 16, 2017

ABOUT CENTRIC It is a Dutch companyPortfolioTITLE PRESENTATIONMay 16, 2017

ABOUT CENTRIC It is a Dutch companyPortfolio– Software solutionsTITLE PRESENTATIONMay 16, 2017

ABOUT CENTRIC It is a Dutch companyPortfolio– Software solutions– IT OutsourcingTITLE PRESENTATIONMay 16, 2017

ABOUT CENTRIC It is a Dutch companyPortfolio– Software solutions– IT Outsourcing– Business process outsourcingTITLE PRESENTATIONMay 16, 2017

ABOUT CENTRIC It is a Dutch companyPortfolio––––Software solutionsIT OutsourcingBusiness process outsourcingStaffing servicesTITLE PRESENTATIONMay 16, 2017

ABOUT CENTRIC It is a Dutch companyPortfolio––––Software solutionsIT OutsourcingBusiness process outsourcingStaffing servicesGeographic AreaTITLE PRESENTATIONMay 16, 2017

ABOUT CENTRIC It is a Dutch companyPortfolio––––Software solutionsIT OutsourcingBusiness process outsourcingStaffing servicesGeographic AreaTITLE PRESENTATIONMay 16, 2017

“ITALIAN” ARCHITECTURE ANDMICROSERVICES TITLE PRESENTATIONMay 16, 2017

“ITALIAN” ARCHITECTURE ANDMICROSERVICES TITLE PRESENTATIONMay 16, 2017

“ITALIAN” ARCHITECTURE ANDMICROSERVICES TITLE PRESENTATIONMay 16, 2017

“ITALIAN” ARCHITECTURE ANDMICROSERVICES TITLE PRESENTATIONMay 16, 2017

ONION AND SPRINGTITLE PRESENTATIONMay 16, 2017

ONION AND SPRING Domain Model layer, where our entities and classes closelyrelated to them e.g. value objects resideTITLE PRESENTATIONMay 16, 2017

ONION AND SPRING Domain Model layer, where our entities and classes closelyrelated to them e.g. value objects resideDomain Services layer, where domain-defined processesresideTITLE PRESENTATIONMay 16, 2017

ONION AND SPRING Domain Model layer, where our entities and classes closelyrelated to them e.g. value objects resideDomain Services layer, where domain-defined processesresideApplication Services layer, where application-specific logici.e. our use cases resideTITLE PRESENTATIONMay 16, 2017

ONION AND SPRING Domain Model layer, where our entities and classes closelyrelated to them e.g. value objects resideDomain Services layer, where domain-defined processesresideApplication Services layer, where application-specific logici.e. our use cases resideOuter layer, which keeps peripheral concerns like UI,databases or testsTITLE PRESENTATIONMay 16, 2017

ONION AND SPRINGTITLE PRESENTATIONMay 16, 2017

ONION AND SPRINGTITLE PRESENTATIONMay 16, 2017

ONION AND SPRINGTITLE PRESENTATIONMay 16, 2017

WHAT IS A MICROSERVICE?TITLE PRESENTATIONMay 16, 2017

WHAT IS A MICROSERVICE?TITLE PRESENTATIONMay 16, 2017

WHAT IS A MICROSERVICE? “Microservices are a thing these days.”Phil Calçado, former Director of Engineering, SoundCloudTITLE PRESENTATIONMay 16, 2017

WHAT IS A MICROSERVICE? “Microservices are small, autonomous services that worktogether.”Sam Newman, ThoughtworksTITLE PRESENTATIONMay 16, 2017

WHAT IS A MICROSERVICE? “Loosely coupled service-oriented architecture with boundedcontexts.”Adrian Cockcroft, Battery VenturesTITLE PRESENTATIONMay 16, 2017

WHAT IS A MICROSERVICE? “A microservice is an independently deployable component ofbounded scope that supports interoperability throughmessage-based communication.”“Microservice Architecture-Aligning Principles, Practices, and Culture”TITLE PRESENTATIONMay 16, 2017

BUILDING MONOLITHIC APPLICATIONSTITLE PRESENTATIONMay 16, 2017

BUILDING MONOLITHIC APPLICATIONSTITLE PRESENTATIONMay 16, 2017

BUILDING MONOLITHIC APPLICATIONS These applications are simple to test and debug.TITLE PRESENTATIONMay 16, 2017

BUILDING MONOLITHIC APPLICATIONS These applications are simple to test and debug.These applications are also simple to deploy.TITLE PRESENTATIONMay 16, 2017

BUILDING MONOLITHIC APPLICATIONS These applications are simple to test and debug.These applications are also simple to deploy.These applications are scalable.TITLE PRESENTATIONMay 16, 2017

MARCHING TOWARD MONOLITHIC HELLTITLE PRESENTATIONMay 16, 2017

MARCHING TOWARD MONOLITHIC HELL In time the application become too complex.TITLE PRESENTATIONMay 16, 2017

MARCHING TOWARD MONOLITHIC HELL In time the application become too complex.Being too large is very difficult for any developer to fullyunderstand.TITLE PRESENTATIONMay 16, 2017

MARCHING TOWARD MONOLITHIC HELL In time the application become too complex.Being too large is very difficult for any developer to fullyunderstand.A large application is an obstacle to continuous deployment.TITLE PRESENTATIONMay 16, 2017

MARCHING TOWARD MONOLITHIC HELL In time the application become too complex.Being too large is very difficult for any developer to fullyunderstand.A large application is an obstacle to continuous deployment.Another problem with monolithic applications is reliability.TITLE PRESENTATIONMay 16, 2017

MICROSERVICES – TACKLING THECOMPLEXITYTITLE PRESENTATIONMay 16, 2017

MICROSERVICES – TACKLING THECOMPLEXITYTITLE PRESENTATIONMay 16, 2017

MICROSERVICES – TACKLING THECOMPLEXITYTITLE PRESENTATIONMay 16, 2017

MICROSERVICES – TACKLING THECOMPLEXITYTITLE PRESENTATIONMay 16, 2017

THE BENEFITS OF MICROSERVICESTITLE PRESENTATIONMay 16, 2017

THE BENEFITS OF MICROSERVICES It tackles the problem of complexity.TITLE PRESENTATIONMay 16, 2017

THE BENEFITS OF MICROSERVICES It tackles the problem of complexity.Enforces modularity.TITLE PRESENTATIONMay 16, 2017

THE BENEFITS OF MICROSERVICES It tackles the problem of complexity.Enforces modularity.Enables each service to be developed independently by ateam that is focused on that service.TITLE PRESENTATIONMay 16, 2017

THE BENEFITS OF MICROSERVICES It tackles the problem of complexity.Enforces modularity.Enables each service to be developed independently by ateam that is focused on that service.Enables each microservice to be deployed independently.TITLE PRESENTATIONMay 16, 2017

THE BENEFITS OF MICROSERVICES It tackles the problem of complexity.Enforces modularity.Enables each service to be developed independently by ateam that is focused on that service.Enables each microservice to be deployed independently.Enables each service to be scaled independently.TITLE PRESENTATIONMay 16, 2017

THE DRAWBACKS OF MICROSERVICESTITLE PRESENTATIONMay 16, 2017

THE DRAWBACKS OF MICROSERVICES The name itself.TITLE PRESENTATIONMay 16, 2017

THE DRAWBACKS OF MICROSERVICES The name itself.The complexity that arises from the fact that a microservicesapplication is a distributed system.TITLE PRESENTATIONMay 16, 2017

THE DRAWBACKS OF MICROSERVICES The name itself.The complexity that arises from the fact that a microservicesapplication is a distributed system.The partitioned database architecture.TITLE PRESENTATIONMay 16, 2017

THE DRAWBACKS OF MICROSERVICES The name itself.The complexity that arises from the fact that a microservicesapplication is a distributed system.The partitioned database architecture.Testing is also much more complex.TITLE PRESENTATIONMay 16, 2017

THE DRAWBACKS OF MICROSERVICES The name itself.The complexity that arises from the fact that a microservicesapplication is a distributed system.The partitioned database architecture.Testing is also much more complex.Deploying a microservices-based application is also muchmore complex.TITLE PRESENTATIONMay 16, 2017

WHY MICROSERVICES?TITLE PRESENTATIONMay 16, 2017

WHY MICROSERVICES? Gilt: “From Monolith Ruby App to Distributed Scala MicroServices” (NYC Tech Talks) [Link]Nike: “Nike’s Journey to Microservices” (AWS Re:Invent2014) [Link]SoundCloud: ”Building Products at SoundCloud - Part III:Microservices in Scala and Finagle” [Link]Capital One: “Lack Of Legacy Lets Capital One Build NimbleInfrastructure” [Link]Hailo: “A Journey into Microservices” [Link]Autoscout24: “Why Autoscout24 changes its technology”[Link]Zalando: “From Monolith to Microservices” [Link]TITLE PRESENTATIONMay 16, 2017

WHY MICROSERVICES?TITLE PRESENTATIONMay 16, 2017

WHY MICROSERVICES?TITLE PRESENTATIONMay 16, 2017

WHY MICROSERVICES?TITLE PRESENTATIONMay 16, 2017

WHY MICROSERVICES?TITLE PRESENTATIONMay 16, 2017

WHY MICROSERVICES?TITLE PRESENTATIONMay 16, 2017

WHY MICROSERVICES?TITLE PRESENTATIONMay 16, 2017

DEMOTITLE PRESENTATIONMay 16, 2017

ABOUT CENTRIC INTERNSHIPTITLE PRESENTATIONMay 16, 2017

ONE MORE THING 5/16/2017

ONE MORE THING 5/16/2017

SUMMARY5/16/2017

SUMMARY Building complex applications is not an easy task.5/16/2017

SUMMARY Building complex applications is not an easy task.The Monolithic Architecture pattern only makes sense forsimple, lightweight applications.5/16/2017

SUMMARY Building complex applications is not an easy task.The Monolithic Architecture pattern only makes sense forsimple, lightweight applications.The Microservices Architecture pattern is the better choice forcomplex, evolving applications, despite the drawbacks andimplementation challenges.5/16/2017

SUMMARY Building complex applications is not an easy task.The Monolithic Architecture pattern only makes sense forsimple, lightweight applications.The Microservices Architecture pattern is the better choice forcomplex, evolving applications, despite the drawbacks andimplementation challenges.Probably the best way to define boundaries for microservicesis by using Bounded Context from DDD (Domain DrivenDesign)5/16/2017

BIBLIOGRAPHY5/16/2017

BIBLIOGRAPHY Alagarasan, Vijay. “Seven Microservices Anti-patterns”,August 24, 2015.Cockcroft, Adrian. “State of the Art in Microservices”,December 4, 2014.Fowler, Martin. “Microservice Prerequisites”, August 28, 2014.Fowler, Martin. “Microservice Tradeoffs”, July 1, 2015.Humble, Jez. “Four Principles of Low-Risk Software Release”,February 16, 2012.Humble, Jez, Chris Read, and Dan North. “The DeploymentProduction Line”. In Proceedings of the conference on AGILE2006, 113– 118.IEEE Computer Society. Kniberg, Henrik, and AndersIvarsson. “Scaling Agile at Spotify”, October s.html5/16/2017

BIBLIOGRAPHY5/16/2017

BIBLIOGRAPHY5/16/2017

QUESTIONS?

THANK DAN NASTASAFLORIN OLARIUMay 16, 2017

Sam Newman, Thoughtworks TITLE PRESENTATION May 16, 2017. WHAT IS A MICROSERVICE? . The Microservices Architecture pattern is the better choice for complex, evolving applications, despite the drawbacks and implementation challenges. .