The document discusses microservices architecture and containers. It notes that monolithic applications are inflexible in terms of scalability, independence of components, and deployment flexibility. Microservices break applications into independent components that can be developed and deployed independently. Containers enable microservices by allowing each service to run in its own "self-contained" environment, sharing the operating system but not resources. Kubernetes is mentioned as a tool for managing containers at scale across multiple machines. Continuous integration and delivery (CI/CD) is also discussed as important for automating deployments of microservices.
2. INTEGRATION SUMMIT 2019
Evoluzione delle applicazioni
Disaggregated architectures drive 50 billion endpoints to grow >1 trillion
CONSUMER DEMAND
SUPPLIERS DISAGGREGATE ARCHITECTURE TO MEET DEMAND
1
10
102
103
105
109
MONOLITHIC
BUSINESS APP
ENTERPRISE
APPS
DEPARTME
NTAL APPS
SAAS APPS
PUBLIC /
PRIVATE APIS
1970s
|
MAINFRAME
1980s
|
IT
AWAKENING
1990s
|
INTERNET
2000s
|
MOBILE
2010s
|
IoT/AI
2020+
|
DIGITAL NATIVE
SERVERLESS &
MICROSERVICES
3. INTEGRATION SUMMIT 2019
Un’applicazione monolitica è
tipicamente poco flessibile in
termini di:
- Scalabilità
- Indipendenza dei componenti
- Flessibilità di deployment
Benefici dei microservizi
4. INTEGRATION SUMMIT 2019
- L’applicazione viene divisa in componenti più piccoli che possono
essere sviluppati con diversi linguaggi, da diversi team
- Ogni microservizio ha un processo autonomo e comunica con gli
altri (loosely coupled) su protocolli light (http/REST).
- Installati (deployed) indipendentemente, da processi completamente
automatizzati (CI/CD)
Benefici dei microservizi
5. INTEGRATION SUMMIT 2019
- Possono scalare individualmente
Benefici dei microservizi
- Possono ripartire
individualmente
- Possono essere
spostati
6. INTEGRATION SUMMIT 2019
Benefici di una MSA
● Individual components. Running, testing, deploying
individually.
● Agility, flexibility and speed to market.
● Adapt microservice development for fast innovation.
● Smaller teams, agile software development life cycles
● Freedom to use heterogeneous technologies, early
feedback cycles
7. INTEGRATION SUMMIT 2019
Why Microservices Architecture?
● 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.
● These services are built,Around business capabilities.
● Independently deployable by fully automated
deployment machinery.
8. INTEGRATION SUMMIT 2019
Split your “bigger application” into smaller granules that
can be deployed independently
Split into Microservices. So we can implement each
smaller business function most effective way(language,
platform, expertise).
Why Microservices
9. INTEGRATION SUMMIT 2019
● Breaking up monoliths into microservices adds more
components.
● Easy to manage at the beginning but becomes very
complex when things scale.
Microservices Challenges
10. INTEGRATION SUMMIT 2019
Challenges with Microservices
• Sicurezza
• Analytics, Tracing, Monitoring
• Aumento del numero degli endpoints da
gestire
• Service Discovery
• Network Resilience
17. INTEGRATION SUMMIT 2019
Micro Integrator
17
▪ Dispone di tutte le principali features di WSO2 EI, ma
non dispone di features che non sono utili in ottica
MSA e container based
▪ Stateless
18. INTEGRATION SUMMIT 2019
WSO2 Microgateway
▪ Progettato per scalare
▪ Self validating tokens
▪ Localized rate limiting
▪ Offline analytics
▪ Private Jet Gateway for microservices
▪ Distributed gateway architectures for
centralized API management
18
19. INTEGRATION SUMMIT 2019
WSO2 Microgateway e Micro Integrator
19
● Small distribution size (40 mb)
● Low resource consumption (< 256 mb)
● Fast boot up (< 1 sec)
● Cloud native - easy to deploy and manage on container
orchestration systems
● Immutable - Making it more robust and unaffected by
environment changes
● Automatable deployments for better CI/CD
● Native support for Docker/K8S
● Distributed gateway architectures for centralized API
management
20. INTEGRATION SUMMIT 2019
A cloud-native programming language for microservices and integration
● A compiled, transactional, statically and
strongly typed programming language with
textual and graphical syntaxes.
● Incorporates fundamental concepts of
distributed system integration
● Offers a type safe, concurrent environment
to implement microservices with
distributed transactions, reliable
messaging, stream processing, and
workflows.
21. INTEGRATION SUMMIT 2019
Containers enable microservices
● Gestire una app di distinti servizi ha notevoli impatti sull’infrastruttura
● Ogni servizio in una app basata su microservices necessita di unita ‘self
contained’
● I microservizi necessitano di una loro propria porzione di risorse di calcolo,
memoria e rete: I containers si adattano bene a questa esigenza.
● Supportare l’architettura a microservizi è alla base di Docker e
dell’ecosistema basato su containers.
22. INTEGRATION SUMMIT 2019
● VM
○ Hardware virtualization
● Container
○ Operating-system-level
virtualization
○ I containers *condividono* il
kerner dell’host con altri
containers.
24. INTEGRATION SUMMIT 2019
Tecnologia ‘disruptive’
Principali caratteristiche
● Immutable
● Small size
● Quick Start
● Single Function
● No long running
● Stateless
Principali benefici
● Flessibile: Tutte le applicazioni possono essere
containerizzate.
● Lightweight: Condividono il kernel
● Interscambiabile: Installazione e
aggiornamento ‘on the fly’.
● Portabile: Sviluppa localmente, installa dove
vuoi (cloud…).
● Scalabile: E’ possibile creare replica, aumentare
o diminuire le istanze ‘on the fly’.
● Stackable: Si possono aggiungere layers.
25. INTEGRATION SUMMIT 2019
I containers devono essere gestiti
• Gestione del
Networking
• Schedulazione,
distribuzione
(autoscaling) , load
balancer, automatic
restart
• Accesso ai dati
(multiple machines,
cloud)
Kubernetes Architecture