MIDDLEWARE TRACK A cura del Middleware Solution Architect team di Red Hat #redhatosd
MIDDLEWARE TRACK
A cura del Middleware Solution Architect team di Red Hat
#redhatosd
Agenda Middleware Track part 1
● 14.00 MicroServices, le dimensioni non contano○ Ugo Landini, Samuele Dell’Angelo
● 14.30 Wildfly Swarm, Spring Boot & Vertx.io: il nuovo che avanza○ Ugo Landini, Samuele Dell’Angelo
● 15.00 Microservices con JBoss EAP 7: innovare in continuità○ Giuseppe Bonocore
● 15.30 Microregole per grandi progetti con il BRMS○ Andrea Leoncini
Agenda Middleware Track part 2
● 16.00 Integrazione e microservizi: come un cammello può passare dalla cruna di un ago○ Filippo Calà, Ugo Landini
● 16.30 API Management con 3Scale nell’era dei microservizi○ Luca Bigotta
● 17.00 SALA PLENARIA
● 17.15 ESTRAZIONE FINALE PREMI
#redhatosd
MicroServices: le dimensioni non contano
Ugo Landini & Samuele Dell’Angelo
#redhatosd
389 project | aeolus-configure | anaconda | attr | Audrey | Augeas | AuthHub | Autofs | Avahi | Beaker | Boxes | Btrfs | CacheFS | Cairo | candlepin | certmonger | CIFS | Cluster 3 | cobbler | colord | Completely Fair Scheduler | Conductor Control Group Configuration Library | Corosync | CRaSH | Crypto API | Cumin | Cygwin | D-Bus | Dashbuilder | Data Grids for the Java Platform | device-mapper | DeviceKit | DistributionUtilities | dlm | Dogtag | DPDK | Dracut | Editline Library EDS | EJB 3 | elfutils | elfutils | Embedded Jopr | Evolution | Evolution-exchange | eXo JCR | ext3 | ext4 | fence-agents | fence-virt | Flannel | fontconfig | func | Gamin | GateIn Portal | gcc | gcc | gcj | gdb | GFS | GFS2 | glib | gss-proxy GTK+ | gvfs | gzip | HTCondor | ID Utils | imagefactory | IPSec-Tools | iptraf-ng | Jandex | Java | JGroups | Jreadline | JRuby | JSFUnit | jUDDI | Katello | Kerberos | Kimchi | Koji | libguestfs | libibverbs | libminidump | libnotify | libqb libstoragemgmt | libuser | libvirt | libxml2 | libxslt | Linux Audit | Linux Infiniband Project | Linux Kernel | Linux PAM | linux-nfs | Luci | LVM2 | LVM2 | lynx | ManageIQ | Matahari | Maven Integration for Eclipse | Maven Integration for Web Tools Platform | Mock | mod_cluster | moVirt | nautilus | netfilter | NetworkManager | NFS-Ganesha | nmap | Open vSwitch | openais | OpenDaylight | OpenJDK | OpenSSH | OpenSSL | OPNFV | OProfile | oVirt | oVirt Engine | oVirt Node | OVMF | Oz pacemaker | PackageKit | PackageKit | pango | PAPI | Paradyn | patchutils | Performance Co-Pilot | PicketBox | PicketLink | piglit | pixman | polkit | Polkit Qt | Poppler | Portlet Bridge | PostgreSQL | PressGang psmisc | Pulp | PulseAudio | pungi | pynfs | QEMU | Red Hat Update Agent | RESTEasy | rgmanager | RHQ | rpm | rpmgrill | RSYSLOG | Samba | Samba | SETroubleshoot ShrinkWrap | slapi-ns | Smokestack | Spacewalk Spherical | Spice | Spice-gtk | Spice-protocol | Stilts | suds | SWI Prolog | SwitchYard | syslog-ng | System Security Services Daemon | systemd | SystemTap | The Foreman | Thin Crust | tin | UberFire | udev udisks | udisks | UPower | util-linux | Valgrind | vc-dwim | vdagent | vdsm | vfs | Virt-clone | Virt-image | Virt-Install | Virt-manager | Virt-viewer | Virtual memory manager | Wallaby | Wayland | Wise | XFS | xinput | XNIO | Xorg | XrandR | yum
10 Deploy al giorno
Come è possibile?
Cos’è una Microservice Architecture (MSA)?Un approccio architetturale per decomporre applicazioni complesse in sistemi indipendenti
● Organizzati per business capabilities
● Scalabilità indipendente
● Ciclo di vita indipendente
● Governo decentralizzato
● Data management decentralizzato
Cos’è una Microservice Architecture (MSA)?
Picco di aspettative
gonfiate
x
Disillusione
Qui si fa sul serio
Your Journey to Microservices :-)
Self-Service,On-Demand,
Elastic,Infrastructure
asCode
(Cloud)
Re-Org ->DevOps
Automazione:Puppet, Chef,
Ansiblee/o
Containers
CI & CDDeployment
Pipeline
UnMicroservizio
SiliconValley
DotComStartup
Cos’è una Microservice Architecture (MSA)?
1. Self-Service, on-demand, elastic infrastructure as codea. Quanti gg per il provisioning di una nuova VM?
2. Dev vs OpsChi risponde al telefono se l’app non funziona?
3. AutomationPhoenix vs Snowflake
4. CI & CDa. Deployment Pipeline
Cos’è una Microservice Architecture (MSA)?
Cos’è una Microservice Architecture (MSA)?
GREENBROWN
A Development / Deployment Time:● Automation● Continuous Integration / Delivery● Configuration Management● Service / API design● Rigorous Testing ● Dependency management● Design for eventual consistency● Artifact repositories
Container: standardizzazione, automation e dependency managementUser Experience: maggiore produttività per gli sviluppatori
A Runtime:● Standardization● Isolation● Service Discovery● Load Balancing● Circuit Breaker, Fallback● Health checks & automated recovery● Distributed logging● Tracing● Infrastructure Monitoring
● Deploy facile e portabile● Creato da immagini immutabili e
a strati (layered)● Isolato dal sistema operativo
dell’host.
I Container impacchettano le applicazioni con le loro dipendenze, isolando il runtimeAlta densità e massima efficienza
HOST OS
SERVER
CONTAINER
LIBS
APP
CONTAINER
LIBS
APP
DEMO BUILD YOUR OWN CONTAINER IN 50 lines
● Isolati e sicuri● Sembrano girare in un loro
ambiente● Se ne possono far girare
centinaia in una sola macchina● Le funzionalità sono nel kernel ● Docker è semplicemente un
formato
I Container sono dei semplici processi Linux
Alta densità e massima efficienza
HOST OS
SERVER
CONTAINER
LIBS
APP
CONTAINER
LIBS
APP
Kubernetes è un container orchestrator per le applicazioni (non per le macchine)Dal greco “pilota”: radice della parola “governatore” (dal latino: gubernator)
MasterNode
Bare Metal Virtual Private Cloud Public Cloud
Storage
OperatorExternal Services
A Development / Deployment Time:● Automation● Continuous Integration / Delivery● Configuration Management● Service / API design● Rigorous Testing ● Dependency management● Design for eventual consistency● Artifact repositories
Kubernetes aggiunge caratteristiche fondamentali per le MSAs (e non solo!)Kubernetes è la versione open di Borg, il sistema usato internamente da Google per scalare.
A Runtime:● Standardization● Isolation● Service Discovery● Load Balancing● Circuit Breaker, Fallback● Health checks & automated recovery● Distributed logging● Tracing● Infrastructure Monitoring
OpenShift Container Platform è la versione ENTERPRISE di Kubernetes
SERVICE CATALOG(LANGUAGE RUNTIMES, MIDDLEWARE, DATABASES, …)
SELF-SERVICE
APPLICATION LIFECYCLE MANAGEMENT(CI / CD)
BUILD AUTOMATION DEPLOYMENT AUTOMATION
CONTAINER CONTAINERCONTAINER CONTAINER CONTAINER
NETWORKING SECURITYSTORAGE REGISTRYLOGS &
METRICS
CONTAINER ORCHESTRATION & CLUSTER MANAGEMENT(KUBERNETES)
RED HAT ENTERPRISE LINUX
CONTAINER RUNTIME & PACKAGING(DOCKER)
ATOMIC HOST
INFRASTRUCTURE AUTOMATION & COCKPIT
A Development / Deployment Time:● Automation● Continuous Integration / Delivery● Configuration Management● Service / API design● Rigorous Testing ● Dependency management● Design for eventual consistency● Artifact repositories
Openshift Container Platform aggiunge ulteriori servizi per gli sviluppatoriIl developer si deve concentrare solo sul design & development dei microservizi
A Runtime:● Standardization● Isolation● Service Discovery● Load Balancing● Circuit Breaker, Fallback● Health checks & automated recovery● Distributed logging● Tracing● Infrastructure Monitoring