《微服务治理规范.pptx》由会员分享,可在线阅读,更多相关《微服务治理规范.pptx(31页珍藏版)》请在金锄头文库上搜索。
1、Microservices Overview,What are the most common pain points in contemporary architectures?,No Ownership,Too Slow,No Specialization,Too Complex,Inefficient Testing,Too Fragile,How can microservices help?,Applications as monoliths,Many, smaller, loosely coupled services,Deploy everything, every time,E
2、ach service can be deployed independently,One data store to rule them all,Choose the best store for the job,Intra-process communication,Lightweight communication between services,Organized around technology layers,Organized around business capabilities,Dev is dev, Ops is ops,Dev have Ops responsibil
3、ities, and vice-versa,Server-side state, sessions,Stateless instances, use shared store if needed,Java can do everything,Right technology for the task at hand,Microservices, a definition,“ the microservice architectural style is an approach to developing a single application as a suite of small serv
4、ices, each running in its own process and communicating with lightweight mechanisms, often an HTTP resource API. These services are built around business capabilities and independently deployable by fully automated deployment machinery. There is a bare minimum of centralized management of these serv
5、ices, which may be written in different programming languages and use different data storage technologies. (Martin Fowler),Benefits Scalability,Allow performance critical components to scale independently from the rest of the system,Service,Service,Service,Service,Service,Service,Service,Service,Ser
6、vice,Service,Service,Benefits Risk reduction,Update and deploy only the parts that need to be changed, not the entire system Enable powerful deployment patterns: canary deployments, green-blue deployments,Service,Service,Service,Service,Service,Service,Service,Benefits Resilient systems,Failures in
7、a component dont necessarily affect the rest of the application Coupled with graceful degradation patterns, can help systems become more resilient and better handle failure,Service,Service,Service,Service,Service,Service,X,Benefits Agility,Allow critical parts of the system to be developed and itera
8、ted more quickly than others, independently Less to build, deploy, and test per each release since changes do not touch the entire system,Service,Service,Service,Service,Service,Service,Fast delivery, frequent iterations,Slower delivery,Benefits Flexibility,As loosely coupled components, microservic
9、es can be implemented using different technologies and platforms, if needed, depending on requirements,Service,Service,Service,Service,Service,Service,Havent we seen this all before?,Implementation Differences Favors centralized orchestration Needlessly complicated by SOAP Death by specification,Fav
10、ors distributed choreography REST + HTTP/S = simple Leverage what is already there,All of the tenets of SOA also apply to microservices Boundaries are explicit Services are autonomous Services share schema and contract, not class Service compatibility is based on policy,Microservices are, in reality
11、, a practical subset of SOA,Common misconceptions about microservices,11,Challenges and risks,Microservices are not a silver bullet,Testing, logging, monitoring, security, versioning all become much harder Polyglot persistence is hard to maintain A lot of duplicated effort since each team is indepen
12、dent and goal is to minimize dependencies,Most organizations are organized around horizontal technology layers need to build small product-focused teams Much higher skills required Many developers will not want to do production support,Architectural Challenges,Organizational Challenges,Delivery Chal
13、lenges,Microservices dont eliminate complexity they simply moved it and often add to it Monolithic applications allow architects to deal with complexity in one body of code Microservices force the move to distributed computing,Services are simple, surrounding architecture is not,Building services is
14、 rather straightforward using one of the multiple frameworks currently available However, there is a relatively large amount of concerns and capabilities, some of them unique to microservices, that should be addressed before we decide to build microservices,Theres more to it than just selecting a ru
15、ntime platform,Service Discovery,Instance 1,Instance 2,Service A,Instance 2,Instance 3,Logging,Configuration,Messaging,Events,Identity And Access Management,Monitoring/ Alerting,NoSQL,RDBMS,Platform Services,Telemetry,Instance 1,Instance 3,Identity Store,API Gateway,Authenticate, authorize,Registrat
16、ion,Load Balancer,Where is service X?,Heartbeat,HTTP/REST,Service B,HTTP/REST,Decentralized data,Independent data stores per service lead to fragmented views of data, e.g. shared/overlapping views of a “customer” or “sales order” entity Synchronizing data stores is typically outside of the scope of the microservice, but still needs to be addressed Out-of-band data synchronization makes it very hard to maintain strong consis