Upgrade to Pro — share decks privately, control downloads, hide ads and more …

UI Composition for microservices

UI Composition for microservices

As an agile alternative to server side includes, Arek Czarnik and I together with our Team developed a solution to handle a coperate design over multiple sites and teams with Tests always in mind.

We hold that talk at Javaland 2016

alwinmark

March 08, 2016
Tweet

More Decks by alwinmark

Other Decks in Programming

Transcript

  1. UI Composition Arkadiusz Czarnik - Software Engineer Alwin Mark -

    Software Engineer An agile Alternative to Server Side Includes
  2. REWE digital 2 Mitarbeiterentwicklung Vision Wir steigern die Lebensqualität unserer

    Kunden, weil sie bei uns alle Dinge des täglichen Bedarfs bekommen - einfach, jederzeit und überall. Mission Durch die Nutzung digitaler Möglichkeiten erleichtern wir den alltäglichen Einkauf über alle Kanäle.
  3. Agile INDIVIDUALS AND INTERACTIONS OVER PROCESS AND TOOLS WORKING SOFTWARE

    OVER COMPREHENSIVE DOCUMENTATION CUSTOMER COLLABORATION OVER CONTRACT NEGOTIATION RESPONDING TO CHANGE OVER FOLLOWING A PLAN
  4. Individuals and Interactions vs. processes todo doing done use Kanban

    try Kanban tool learn about Kanban get a white Board
  5. Inspect - Process Dec 2015 PO & UI/UX Feature Teams

    [1] https://www.flickr.com/photos/magia3e/4391050388
  6. Why X-functional Teams [1] http://www.wordclouds.com/ A Team is able to

    implement a feature on their own more efficient predictable higher innovation
  7. Inspect - Process Dec 2015 Backend & Frontend QA Browser

    and Explorative Testing Implement Concept
  8. Inspect - Process Dec 2015 QA PO, UI / UX,

    Developers Change concept Filing bugs
  9. Requirements - Part II • No more oneway templates •

    early testing • compatible with microservices
  10. How to bring modules together [1] http://images.clipartpanda.com/page-clip-art-paper-01.png Template Package main.js

    Template page.js Javascript style.css Styling page.json Meta A B C D E GRUNT
  11. Testing frequency integration Level Dev Integration Prod BDD TDD Contracts

    µBenchmarks Performance Monitoring Browser Tests
  12. Leitlinien Reaktiv Widerstandsfähig: Das System bleibt selbst bei Ausfällen von

    Hard- oder Software antwortbereit. Antwortbereit: Das System antwortet unter allen Umständen zeitgerecht, solange dies überhaupt möglich ist. Elastisch : Das System bleibt auch unter sich ändernden Lastbedingungen antwortbereit. Nachrichtenorientiert: Das System verwendet asynchrone Nachrichtenübermittlung zwischen seinen Komponenten zur Sicherstellung von deren Entkopplung und Isolation sowie zwecks Übermittlung von Fehlern an übergeordnete Komponenten.
  13. Zero-Copy Kernel behandelt das Kopieren. Keine CPU Load Wenig Load

    auf dem Bus-System Kein Kopieren zwischen Kernelspace und Userspace
  14. Big-Pipe 1. Http-Request 2. Einfacher Response 3. Flush Response 4.

    Generiere die Pagelets 5. Flush die Pagelet im Response 6. Führe Javascript aus. Request Response chunk 1: template chunk 2: produkte chunk 3: timeslots chunk x: <pagelet x> Http 1.1: Request -> Response stream chunked
  15. Big-Pipe + = Context-Switches: Bei 1.000 Request belastet 2% der

    CPU. 3-4 ms Latenzzeit bei 1.000 Request