hybris as a service
play

hybris-as-a-service A Microservices Architecture in Action Andrea - PowerPoint PPT Presentation

hybris-as-a-service A Microservices Architecture in Action Andrea Stubbe Product Manager at hybris The Vision Why Microservices? CLOUD FIRST AUTONOMY RETAIN SPEED COMMUNITY Scale different parts Independent teams, Ship new features as


  1. hybris-as-a-service A Microservices Architecture in Action Andrea Stubbe Product Manager at hybris

  2. The Vision

  3. Why Microservices? CLOUD FIRST AUTONOMY RETAIN SPEED COMMUNITY Scale different parts Independent teams, Ship new features as Share knowledge, of he application freedom to choose soon as they are done, ideas and extensions independently technologies independently Microservices sound like a good fit

  4. A cloud platform that allows everyone to easily develop, extend and sell services and applications. DESIGNED TO SCALE READY TO USE MULTI-TENANT Core services for storage, Persistence, messaging, Infrastructure and core messaging, search and API security layer - all is services are shared more are built with there. In the cloud. between all tenants technologies which are known to scale

  5. A cloud platform that allows everyone to easily develop, extend and sell services and applications. NO SECRETS NO SALES CONTACT COMMUNITY HUB SDK, Core APIs and Just sign up and start Contribute your guidelines are visible to knowledge, and offer everyone your own services to partners and companies

  6. A cloud platform that allows everyone to easily develop, extend and sell services and applications. OPEN LOW LEARNING CURVE SUPPORTIVE Use your favorite languages Tools and an active Core APIs and SDKs are and technologies community help getting there to help you, not to you started in minutes restrict you

  7. The YaaS Universe BUSINESSES CONSUMERS hybris TEAMS DEVELOPERS Offer services and Use applications and Offer key core services Use applications to applications and use services to engage interact with businesses other services with consumers

  8. DEVELOPERS Explore Develop Sell

  9. The -Factors

  10. The Factors OPEN TECHNOLOGY LANDSCAPE SCALABILITY OF TECHNOLOGY DON’T SURPRISE YOUR COSTUMERS Freedom to pick the right tool for Linear horizontal scalability: Use pre-defined patterns and best the job lower costs, less limits on practices to ensure a consistent maximal scalability API and UI. Use technologies your customers know. SMALL, INDEPENDENT SERVICES DESIGN FOR FAILURE API FIRST The perfect service has zero If it can be down, it will be down. Focus on developing rich APIs and dependencies, functionality Design for failure and recovery. develop the functionality later. limited to one domain. Keep the Design the API for your customers design simple. SELF SUFFICIENT TEAMS RELEASE EARLY, RELEASE OFTEN RESPONSIBILITY Teams can take a product from Establish a deployment pipeline You build it, you run it. And release the concept to production with that allows to deliver without fear it, scale it, maintain it, support it, limited dependencies outside of of breaking things improve it, … the team

  11. The Factors - Balance OPEN TECHNOLOGY LANDSCAPE r o f l o o t t h g i r e h t k c i p o t m o d e e r F b o j e h t

  12. The Factors - Balance OPEN TECHNOLOGY LANDSCAPE RESPONSIBILITY Freedom to pick the right tool for You build it, you run it. And release the job it, scale it, maintain it, support it, improve it, …

  13. Architecture

  14. Layers … Storefront Backoffice functionality HTML / JS multi-tenant Applications Product Details Checkout Flow Business Mash-ups Product Inventory Price Cart Order More Business Services Document Media Pub Sub / User / Auth Email More Storage Storage Events Core Services SMTP Backing Mongo DB Mongo DB apigee Kafka More Server Services Cloud Foundry PaaS

  15. … or just a set of APIs Storefront Multitenant Builder Awesome mobile App HTML / JS Document Media Pub Sub / User / Auth Storage Storage Events Product Checkout Product Inventory Price Details Flow Mongo DB Mongo DB apigee Kafka Cloud Foundry

  16. The Role of Mash-ups If clients would use microservices directly, it … Android Native HTML5 Storefront IOS Native App App « moves a lot of business logic & error handling logic to the clients « requires multiple requests for standard flows Product Details Product Price Inventory Cart Media

  17. The Role of Mash-ups Mash-ups can be used to aggregate service calls or Android Native HTML5 Storefront IOS Native App to compose service flows App « higher performance « optimized APIs for applications Product Details « More consistent behavior of applications « promotes isolation of functionality into microservices (as it moves most dependencies into mash-up layer) Product Price Inventory Cart Media

  18. Writing Microservices

  19. The Anatomy of a Service « Services are consumed over RESTful APIs RESTful API « Deployment Configuration matching your containers / infrastructure Your Technology « Everything in between is up to you! goes here Deployment Configuration

  20. The Anatomy of a hybris Service Modeled in RAML RESTful API JSON for payloads Traits and schemas RX Java Your Technology Hystrix goes here Groovy, Scala, Go, Node, Ruby, … Environment variables Deployment Build packs Configuration Cloud Foundry

  21. DIY – A Service in 3 Simple Steps 1. 2. 3. Develop your Deploy it to any Offer it on the App service, API first platform you like Exchange

  22. Use our Microservices Development Kit DEFINE THE API USE THE TEMPLATE Using RAML, a simple, Maven based archetype for open language to model Java projects RESTful APIs with YAML and JSON Basic Java project API implementation stub API documentation

  23. We use RAML to define APIs / products : ¡ « The RESTful API Modeling ¡ ¡type: ¡collection ¡ ¡ ¡ get : ¡ Language is an open spec, built on ¡ ¡ ¡ ¡is: ¡[paged] ¡ standards such as YAML and JSON ¡ ¡ ¡ ¡description: ¡Gets ¡all ¡products ¡ ¡ ¡ post : ¡ ¡ ¡ ¡ ¡description: ¡Creates ¡a ¡new ¡product ¡ « It encourages reuse through ¡ pattern-sharing (schemas, traits, ¡ ¡ /{productId}: ¡ ¡ ¡ ¡ ¡type: ¡element ¡ types) ¡ ¡ ¡ ¡ get : ¡ ¡ ¡ ¡ ¡ ¡ ¡description: ¡Gets ¡a ¡product ¡ « Broad tool support to design and ¡ test APIs, and to generate server ¡ ¡ ¡ ¡ put : ¡ ¡ ¡ ¡ ¡ ¡ ¡description: ¡Updates ¡a ¡product ¡ and client code ¡ ¡ ¡ ¡ ¡ delete : ¡ ¡ ¡ ¡ ¡ ¡ ¡description: ¡Deletes ¡a ¡product ¡

  24. Common traits ensure consistency traits : ¡ -­‑ ¡!include ¡http://api.yaas.io/patterns/v1/trait-­‑paged.yaml ¡ ¡ ¡ /products: ¡ ¡ ¡ ¡get: ¡ ¡ ¡ ¡ ¡ ¡is: ¡[ ¡ paged ¡] ¡ ¡ ¡ ¡ ¡ ¡ ¡ http://api.yaas.io/products? pageNumber =2& pageSize =10 ¡

  25. Share schemas for input and output schemas: ¡ -­‑ ¡ error : ¡ !include ¡http://api.yaas.io/patterns/v1/schema-­‑error.json ¡ ¡ ¡ ¡ ¡...400: ¡ ¡ ¡ ¡ ¡ ¡ ¡body: ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡application/json: ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡schema: ¡ error ¡ ¡ { ¡ ¡ ¡ ¡ ¡"status": ¡400, ¡ ¡ ¡ ¡ ¡”info": ¡"https://developer.yaas.io/errors/missing.header", ¡ ¡ ¡ ¡ ¡"message": ¡"Missing ¡header" ¡ } ¡

  26. Generate a service stub # ¡Three ¡simple ¡commands ¡ ¡ mvn ¡archetype:generate ¡[group, ¡artifact, ¡version] ¡ ¡ mvn ¡clean ¡install ¡ ¡ mvn ¡jetty:run ¡ ¡ ¡ # ¡Play ¡with ¡the ¡API ¡in ¡the ¡API ¡Console ¡ ¡ http://localhost:8080 ¡

  27. Use existing microservices * Secured with OAuth 2.0 One access token for all APIs * Data and media storage, events, mail, configuration, authorization, authentication, customer, product, order, cart, category, coupons, price, tax, shipping costs

  28. Documentation as part of the codebase -­‑-­‑-­‑ ¡ title: ¡'About' ¡ layout: ¡document ¡ service: ¡'Email' ¡ type: ¡General ¡ order: ¡1 ¡ -­‑-­‑-­‑ ¡ ¡ # ¡Introduction ¡ ¡ The ¡Email ¡Service ¡supports ¡you ¡in ¡sending ¡emails ¡by ¡making ¡a ¡ simple ¡REST ¡call ¡with ¡focus ¡on ¡sending ¡emails ¡repetitive. ¡For ¡ this ¡it ¡provides ¡a ¡flexible ¡template ¡management ¡based ¡on ¡velocity ¡ scripting. ¡ ¡ ### ¡Examples ¡ ¡ The ¡email ¡service ¡can ¡be ¡used ¡for ¡sending ¡emails ¡repetitive ¡ having ¡some ¡content ¡customizable, ¡for ¡example ¡to: ¡

  29. DEMO WRITE A SERVICE. REALLY FAST.

  30. What you just saw SDKs to develop Builder to Secured with Offer your Services microservices, API manage your OAuth2, https, services on the for general first services and and an API App Exchange functionality packages gateway

  31. REGISTER ON YAAS.IO

  32. THANK YOU

Recommend


More recommend