Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Microservices, Microfrontends and Feature Teams

297 views

Published on

Quali sono le buone pratiche per progettare un'architettura in stile Microservices?

Come rendere evolutiva un'applicazione Frontend senza che invecchi dopo poco tempo?

Come organizzare più team che lavorano su una Piattaforma che ha centinaia di Microservices e decine di Frontend?

A queste tre domande risponderò durante il talk con esempi pratici e casi di vita vissuta.

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Microservices, Microfrontends and Feature Teams

  1. 1. Microservices, Microfrontends and Feature Teams Giulio Roggero
  2. 2. expectations time discovery learn improve real world new culture We told our story. Feedbacks: “This is not agile. Agile is … bla bla” This is my Culture. Agile or not Agile it works for us :-) Agile at Scale, Agile Buzzwords, the “TRUE Agile” is ... Real life is hard but we can do it I understood the theory. Really nice! This is not correct… you are not Agile… (again!) Starting from here we build our business! Values, Principles, Culture, Tools and Individuals are all ingredients for our success. Now we are aware! Now we are satisfied! Now we are ready to improve continuously! I hate Agile! We are in production! It was hard but we’ve learnt a lot! Restart from Basics. Values, Principles, XP, Improvement Now it’s clear! Agile is a mindset, my mindset, our mindset! Hey guy, I found my way! I’m happy and it works (for us) WOW! The first conference We are going in production. Not all moments are easy as were during the project Thanks to retrospectives we are able to improve!
  3. 3. Balance Business objectives ● Wow effect features ● Time-to-marker ● Customer satisfaction ● Upselling/Cross selling ● Profitability Technical objectives ● Reduce Technical Debt ● Simplicity ● Innovation ● Learning ● Team working ● Talent retention ● Happiness
  4. 4. A Modern approach to create IT systems can favorite this balance The balance it’s not so easy to reach. Technical debt and time-to-market are factors that affect this balance. Which are the key factors to build Modern Applications?
  5. 5. 3 pilastri dei sistemi IT moderni • Pongono i dati al centro: Big Data, Fast Data • Interconessi: API as a Product • Hanno capacità di evolvere: stili architetturali (es: Microservices) Gestite • Organizzativo: Agile, Lean • Pperations e Business Continuity: DevOps
  6. 6. How we can mix this ingredients?
  7. 7. Technology The Modern Application Ecosystem Non esiste un’architettura definitiva. Esistono stili, visioni e modi di pensare ed evolvere! Stimulus Big Data Analytics/Machine Learning Event Based Integration Layer Service Integration Layer Decoupling High Performance Data Store APIs Microservices/Miniservices Microfrontends (App, Web, Bot, Voice) System of Record Applications and DBs User Experience (Click, Touch, Speak, Chat, Watch) Dev Tools Ops Tools Analytics Tools
  8. 8. Come organizzarsi per costruire e gestire questi sistemi? Breve intro
  9. 9. “Any organization that designs a system … will inevitably produce a design whose structure is a copy of the organization's communication structure.” Melvin Conway, 1968 http://www.melconway.com/research/committees.html
  10. 10. “Digital System modification and innovation will inevitably impact on organization's communication structure.” (my proposal)
  11. 11. Team and Culture Il “noi” e “loro” rallenta le decisioni e aumenta i costi. Riorganizzarsi e allinearsi con le esigenze dei clienti finali diventa più efficace e riduce costi aumentando la velocità di delivery. Ispirato dal libro Monolith to Microservices - Sam Newman. Team Team Team PMO Tech Leadership (CTO, CIO) Customers Land of confusion POs Communicationwall Fabbrica Software Business Feature Team Customers Customers Tech Leadership (CTO, CIO) Digital Hub Team PO Feature Team Team PO Support
  12. 12. Feature teams Un feature team non è creato in modo temporaneo per fare una o più funzionalità e poi si scioglie. Un feature team è stabile e gestisce tutto il ciclo di vita dell’insieme delle features che sono di sua responsabilità. Approfondimenti su less.works – CC BY-ND
  13. 13. Component teams Approfondimenti su less.works – CC BY-ND
  14. 14. Diversamente dai component team è in grado di toccare tutti i componenti e completare uno o più features. Approfondimenti su less.works – CC BY-ND Component teams Feature teams
  15. 15. Esempi concreti Poca teoria e molta pratica
  16. 16. Trenord 2014-2019 Integration Layer APIs Services App, Website, Moovit, Google External Systems: timetable, pricing model, live data Trenord in 5 anni ha costruito una piattaforma digitale in modo incrementale agganciando man mano nuovi canali e facendo evolvere l’architettura in base allo scaling degli utenti. Fast Data
  17. 17. Trenord – La storia Anni 2015 API req/sec 10 Team Scrum 4 Stile architetturale Microkernel+ Fast Data Hosting OnPrem Backend Languages Node.js Mobile Languages Node.js+ ObjectiveC+ Java Android
  18. 18. Trenord – La storia Anni 2015 2016 API req/sec 10 40 Team Scrum 4 4 Stile architetturale Microkernel+ Fast Data Microkernel+ Fast Data Hosting OnPrem OnPrem Backend Languages Node.js Node.js Mobile Languages Node.js+ ObjectiveC+ Java Android Node.js+ ObjectiveC+ Java Android
  19. 19. Trenord – La storia Anni 2015 2016 2017 API req/sec 10 40 300 Team Scrum 4 4 5 Stile architetturale Microkernel+ Fast Data Microkernel+ Fast Data Microkernel+ Miniservice+ Fast Data Hosting OnPrem OnPrem OnPrem Backend Languages Node.js Node.js Node.js Mobile Languages Node.js+ ObjectiveC+ Java Android Node.js+ ObjectiveC+ Java Android Node.js+ ObjectiveC+ Java Android
  20. 20. Trenord – La storia Anni 2015 2016 2017 2018 API req/sec 10 40 300 1500 Team Scrum 4 4 5 6 Stile architetturale Microkernel+ Fast Data Microkernel+ Fast Data Microkernel+ Miniservice+ Fast Data Microkernel+ Microservices+ Fast Data Hosting OnPrem OnPrem OnPrem OnPrem Backend Languages Node.js Node.js Node.js Node.js Mobile Languages Node.js+ ObjectiveC+ Java Android Node.js+ ObjectiveC+ Java Android Node.js+ ObjectiveC+ Java Android Node.js+ ObjectiveC+ Swift+ Java Android+ Kotlin Android
  21. 21. Trenord – La storia Anni 2015 2016 2017 2018 2019 API req/sec 10 40 300 1500 4000 Team Scrum 4 4 5 6 6 Stile architetturale Microkernel+ Fast Data Microkernel+ Fast Data Microkernel+ Miniservice+ Fast Data Microkernel+ Microservices+ Fast Data Miniservices+ Fast Data Hosting OnPrem OnPrem OnPrem OnPrem Cloud Backend Languages Node.js Node.js Node.js Node.js Node.js+ Kotlin Mobile Languages Node.js+ ObjectiveC+ Java Android Node.js+ ObjectiveC+ Java Android Node.js+ ObjectiveC+ Java Android Node.js+ ObjectiveC+ Swift+ Java Android+ Kotlin Android Node.js+ ObjectiveC+ Swift+ Java Android+ Kotlin Android
  22. 22. Trenord – Da Microkernel a Microservizi Integration Layer API Gateway Microkernel Mobile App External Systems: timetable, pricing model, live data Fast Data M53 Trip Plan Train Status Push Tickets Passes Paymens Favorites Settings News Stations Integration Layer API Gateway Microkernel Mobile App External Systems: timetable, pricing model, live data Fast Data M53 Trip Plan Train Status Push Tickets Passes Paymens Favorites Settings News Stations Microservices Un passaggio graduale con l’attenzione di sempre avere il fallback Trip Plan
  23. 23. Trenord – Canary Releases Integration Layer External Systems: timetable, pricing model, live data API Gateway App v1/v2 100% Train Status v5.5 Microservices 100% Fast Data Ogni rilascio di nuove features è effettuato con Canary Releases sia lato APP che lato Microservices. Le API sono quasi sempre retrocompatibili. In 5 anni hanno avuto una volta sola una breaking change su una sotto parte
  24. 24. Trenord – Canary Releases Integration Layer App v3 External Systems: timetable, pricing model, live data API Gateway App v1/v2 5% 95% Train Status v5.5 Microservices 100% Fast Data Ogni rilascio di nuove features è effettuato con Canary Releases sia lato APP che lato Microservices. Le API sono quasi sempre retrocompatibili. In 5 anni hanno avuto una volta sola una breaking change su una sotto parte
  25. 25. Trenord – Canary Releases Integration Layer App v3 External Systems: timetable, pricing model, live data API Gateway App v1/v2 5% 95% Train Status v5.5 Microservices Train Status v6 20% 80% Fast Data Ogni rilascio di nuove features è effettuato con Canary Releases sia lato APP che lato Microservices. Le API sono quasi sempre retrocompatibili. In 5 anni hanno avuto una volta sola una breaking change su una sotto parte
  26. 26. Trenord – Il team e l’organizzazione Caratteristiche ● Un team unico Scrum ● Sprint da 1 settimana ● Rilasci continui ● 3 Ambienti: integration, beta, prod Responsabilità ● Uptime 24/7 di tutto il sistema end-to-end ● Customer care app ● Analisi analitici e proposta features ● Coding, Testing, Ops, …
  27. 27. Mia-Platform – Il team e l’organizzazione 2017 API Gateway Microservices (Node.js) Angular Core Team Customers Tech Leadership (CTO, CIO) Team PO Mia-Platform Products
  28. 28. Mia-Platform – Accelerazione (+servizi, +FE capabilities) Microservices (Java, Node.js, Kotlin, Python, Go) React Core Team Customers Tech Leadership (CTO, CIO) Team PO Contributors Team Team PO API Gateway Angular I contributors team lavorano su progetti cliente e fanno evolvere il prodotto in stile open source Mia-Platform Products
  29. 29. Mia-Platform – Microfrontends React Core Team Team PO Node.js Microservices Java/Kotlin Microservices Go Microservices Contributors Team Team PO Angular Contributors Team Team PO React • Un insieme di regole comuni sulla gestione dei feature branch, merge request e code design. • Pipelines automatizzate in diversi ambieti per conituous Delibery. • Kata, Mob Programming, Pair Programming per condividere la conoscenza. Librerie comuni per JavaScript per integrare diversi Framework e Librerie
  30. 30. Petr Kratochvil CC0 «Quanto Basta»
  31. 31. Culture is your asset! Don’t copy and paste from other companies but build your own! This is the real competitive advantage for your business! Giulio Roggero CTO and Founder Mia-Platform Chief Strategist and Partner Intré Advisor and Founder Agile Reloaded

×