microservice powered orchestration
play

Microservice Powered Orchestration Huabing Zhao ZTE, System - PowerPoint PPT Presentation

Microservice Powered Orchestration Huabing Zhao ZTE, System Engineer, Network Management & Service, OPEN-O Common Service PTL zhao.huabing@zte.com.cn Zhaoxing Meng ZTE, NFV&SDN Architect, Network Management & Service, OPEN-O Common


  1. Microservice Powered Orchestration Huabing Zhao ZTE, System Engineer, Network Management & Service, OPEN-O Common Service PTL zhao.huabing@zte.com.cn Zhaoxing Meng ZTE, NFV&SDN Architect, Network Management & Service, OPEN-O Common Service PTL zhaoxing.meng1@zte.com.cn

  2. Agenda • Why Microservice at OPEN-O • Challenges of Microservice • MSB(Microservice Bus) Solution • What can MSB bring to ONAP 2

  3. Monolith vs Microservice Monolith Microservices The microservice architectural style is an approach to developing a single application as a suite of small services, each running in its own process and communicating with lightweight mechanisms, often an HTTP resource API. -Martin Fowler No performance issue here Scaling Monolith Scaling Microservices Process Machine 3

  4. Why chose Microservice Architecture? How to build an OPEN community?  We have various members and we are expecting more joining in  Each organization has its own tech Stack How to integrate existing seed codes in different technical stack?  We didn’t start from scratch  A dozen of existing seed codes repos  Ambitious release plan How to make orchestration reliable and scalable?  OPEN-O is a large, complex software system  Each component may have different resource requirement  Each component may have different working load 4

  5. Ambitions Sun Release Plan We had made an ambitions plan for SUN Release 5

  6. Challenge of Integration We get bigger challenge for ONAP integration Portal Test GUI Portal … & Lab Common Service Orchestrator Service (for O-Common GS-O feature) External System Micro-Service Bus Abstract NBI Register Service Service Service Analytics Lifecycle Mgr. Decomposer Parser HA Policy SDN-O NFV-O Template Mgr. Log Abstract NBI Abstract NBI Inventory SDN Catalog SDN Lifecycle Mgr. NFV Monitor Auth. Monitor VPN VAS Mgr. Workflow Engine NS Lifecycle Mgr. SDN Parser Driver Mgr. Traffic Res. … NFV Res. Mgr. Optimize Model Designer Mgr. … Abstract SBI Abstract SBI Protocol Stack SDN NFV ACCESS/WAN SDN EMS/NMS VIM NFV SDN VNFM VIM … Driver Driver Controller Drivers Driver Drivers Controller Drivers Drivers Drivers 6

  7. Build an Open Community Legacy System Partner App Portal Individual Developers Orchestrator Global Service-O Operator Vendor Common Test Partner Common SDN-O NFV-O & Service Lab Driver Driver Driver Driver Driver SDN Controller VNFM VIM VNF Microservice Platform Build an open community so that everyone can enjoy the party 7

  8. Challenges of Microservice Architecture Microservice Architecture comes at a price: Complexity How do the clients application access the back end services? How do the client or another service - discover the location of a service instance?

  9. Direct Client-to-Microservice Communication ? This approach has some problems: ❑ Add complexity to client codes ❑ Nightmare for firewall configuration ❑ Coupling of client and individual services ❑ Cross-domain issue for web app

  10. Solution: Service Gateway Service gateway hides the complexity  Simplify the client codes.  Reduce request roundtrips  Provide API management  Solve cross-domain issue for web app

  11. How to find the service? In order to access a service, you need to know IP & Port dynamically the exact endpoint(IP & Port) assigned “Traditional” application  Service endpoint doesn’t change a lot  Consumer can get the endpoint from configuration files Microservice application  The IP & port is dynamically allocated  IP & port changes along with the scaling/ updating/ IP & Port dynamically How to load self-healing of service instances changing balancing

  12. Solution: Service Registration & Discovery Server-side discovery 10.74.215.33:3564 Service Service Registration: Instance A ➢ Service providers register 10.74.215.211:1522 Invoke Service Service Load themselves to the registry when start Load balance & Instance A Consumer Balancer invoke up Query 10.74.215.8:3281 Service ➢ Update service information when Instance A service instances change Service Register Registry Service Discovery : Client-side discovery 10.74.215.33:3564 Service Instance A ➢ Service consumers query registry to find the locations of service 10.74.215.211:1522 Service Service Client Instance A Consumer SDK Load balance & ➢ Two approaches: Server-side invoke Query 10.74.215.8:3281 Service discovery & Client-side discovery Instance A Service Register Registry

  13. OPEN-O Microservice Solution: High Level Architecture Listen to service change L7 Service Updater Register Update Heartbeat Service Registry Unregister Service Registration Discovery Listen Proxy (DNS Server) to service change Register L4 Service Listen Cache DNS Search Updater Access Service Query Service Service Registry Service Modify Provider Service Provider and Reload Instance Consumer Access Service Instance B Service access service Service (Client-side discovery) A Consumer Gateway Access Service (Server-side discovery) Request Routing Load Balance Service Discovery

  14. OPEN-O Microservice Solution : MSB Components Microservices Docker Cluster Other Cluster(VM, Mesos , K8S, Swarm …) Service A Service A Service A Service A Service A Service A Service A Service A Service B Service B Service B Service B Service lifecycle events Docker events register Healthy Check forward service request Registration Proxy Service Discovery Service Gateway Service Discovery Client Service Docker Listener Other Listeners query Service Gateway Management Discovery Healthy OpenResty External Systems DockerProxy OtherProxy update Client Check register L7 Service register 3-party App forward registration request Updater Discovery Discovery L4 Service Service Client Client Service Discovery Server Cluster UI Portal Updater Discovery request Server Cache Discovery Discovery forward registration request Server Server

  15. MSB Features-High Availability Access Layer Service A  Load balancer(DNS Server/LVS etc.) in the front end Service B  Service gateway cluster to avoid SPOF of service gateway Service C Service Layer  Service gateway as the load balancer for Service D services Service E  Deploy multiple service instances to avoid SPOF of service 15

  16. MSB Features-Separated gateway for External and Internal Routing External service gateway Stricter access control Protocol translation(eg. https->http)  Expose the services(Rest API, UI pages, etc.)which … need to be accessed by external systems  Solve the cross-domain issue for web app  Stricter access control  Adaption between external API and internal service Internal API gateway (router)  Routing and load balancing of the API calls within the system Registry  Less control in trusted zone  Light weight communication protocol Can add more gateways according to deployment scenarios 16

  17. MSB Features-Extendability • Extendable architecture for adding functionality Authentication  Auth: add auth to APIs, integrated with Openstack keystone API Monitoring MSB  Driver routing: add driver specify routing logic for devices Logging  Logging: API calling logging  Service health monitoring Other Plugin  ACL,API Analytics,Transformations  Anything: new functionality can be added on demand by plugins 17

  18. MSB Features-Service API Portal 18

  19. MSB Features-Service Healthy Monitoring 19

  20. MSB Features-API Monitoring 20

  21. How MSB may fit into ONAP (Service Discovery & Routing) Using a configuration file, we might have problems on scaling, failover and update Before: VF-C Service MSB Discovery …… External Internal API Router After: Service gateway Modules … "apigateway": "https://apigateway.onap.org:80" MSB as the single Other How to call service: entry point GET https://apigateway.onap.org/api/aai/v8/cloud- infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud- region-id} API gateway routes the request to: GET https://c1.vm1.aai.simpledemo.openecomp.org:8443/aai/v8 MSB handles the service /cloud-infrastructure/cloud-regions/cloud-region/{cloud- discovery & routing & LB owner}/{cloud-region-id}

  22. How MSB may fit into ONAP(reverse proxy for web app) Service Gateway page FronEnd Backend FrontEnd Backend Other Server Server rest Server Server Services Before: After:  The business logic(rest service) forwader must be  service gateway to solve cross-domain issue add to front end server  Cache for static resources (page, picture)  Solve the cross-domain issue cause coupling of  Clearer boundary between UI and business logic business logic and UI pages

  23. s Thank You www.onap.org

Recommend


More recommend