SlideShare ist ein Scribd-Unternehmen logo
1 von 54
Downloaden Sie, um offline zu lesen
Centro de Alta Capacitación en Tecnologías de la Información E-mail: informes@cac-ti.com Web: http://www.cac-ti.com
Webinar
“Arquitectura de Microservicios”
Centro de Alta Capacitación en Tecnologías de la Información E-mail: informes@cac-ti.com Web: http://www.cac-ti.com
Expositor: Domingo Suárez (México)
Ingeniero de software por 17 años, trabajando principalmente en el
ecosistema JVM para diferentes sectores como Financiero, Medios de
comunicación, eCommerce y consultoría.
He sido expositor en congresos como SOALatam (Perú), Spring IO
(Madrid),Grails eXchange (Londres), BarcelonaJUG, Mexico City JVM Group.
Actualmente soy CTO en una compañía de Inteligencia Artificial
desarrollando tecnología con Deep Learning y sistemas distribuidos.
@domix
Centro de Alta Capacitación en Tecnologías de la Información E-mail: informes@cac-ti.com Web: http://www.cac-ti.com
Acerca de Nosotros



Empresa líder de capacitación en las principales y más
reconocidas tecnologías, metodologías y marcos de
referencia de TI, tales como SOA, BPM, Cloud, Arquitectura
Empresarial TOGAF, Hadoop-Big Data de Cloudera,
Certificaciones ISO: ISO 27001, ISO 31000, ISO 22301, ISO
27005, entre otros. Proveemos entrenamiento en toda la
región.
Centro de Alta Capacitación en Tecnologías de la Información E-mail: informes@cac-ti.com Web: http://www.cac-ti.com
Te invitamos a participar en nuestro
próximo curso on-line en vivo

Microservices Workshop
Inicio 30 de mayo. Informes: informes@cac-ti.com
Centro de Alta Capacitación en Tecnologías de la Información E-mail: informes@cac-ti.com Web: http://www.cac-ti.com
Agenda
• SOA
• REST
• Microservices
• Arquitectura
• Frameworks
• Herramientas
Service Oriented
Architecture
SOA
• SOA implica demasiadas cosas. En un mundo
ideal:
• Deseable que las aplicaciones desaparezcan
• Existen core services que proveen lógica de
negocio y datos
• UI que sirven de agregadores y aplican
presentaciones.
SOA
• SOA implica demasiadas cosas.
• Comunicación entre sistemas usando una
estructura estándar, generalmente un dialecto
basado en XML. "CORBA with angle brackets"
• WS-*. Infierno de XML.
• Mensajería asíncrona para transferir documentos.
Enterprise Application Integration (EAI)
SOA
• Riesgos y problemas principales:
• Demasiada carga, muchas veces innecesaria.
• Costosas implementaciones, tanto en consultoría
como en herramientas y runtimes. No olvidemos la
operación.
• Complejidad innecesaria.
• Vendor lock-in
Alternativas al típico SOA
• Soluciones in-house usando frameworks típicos
• OpenSource runtimes & tools
¿Necesitamos SOA?
Centro de Alta Capacitación en Tecnologías de la Información E-mail: informes@cac-ti.com Web: http://www.cac-ti.com
¿Que tipo de organización
eres?
REST
• Todo lo que puedo decirles sobre REST
probablemente sea una mentira (refraseando a
un amigo @tomaslin)
RESTafarians dicen:
REST
• JSON sobre HTTP
• ¿Hypermedia?
• Hypermedia APIs
designinghypermediaapis.com
Developer Experience
• En el SXSW de 2014 Jeremiah Lee hablo de
‘Developer Experience’ DX
http://developerexperience.org
http://dx.jeremiahlee.com
Diseño de APIs
REST simples
Micro services
Centro de Alta Capacitación en Tecnologías de la Información E-mail: informes@cac-ti.com Web: http://www.cac-ti.com
Microservices
• Estilo arquitectónico
• Cada servicio funcional o un conjunto muy
pequeño se ejecutan como procesos
independientes.
• Generalmente usan protocolos ligeros y estándar
como HTTP o mensajería (JMS, AMQP, etc).
• Despliegue independiente.
• Pueden o no contener todos los recursos que
necesitan. Es decir usan otros servicios para
funcionar.
Centro de Alta Capacitación en Tecnologías de la Información E-mail: informes@cac-ti.com Web: http://www.cac-ti.com
Microservices
• Pueden estar escritos en diferentes
lenguajes y ejecutarse en diversos
runtimes.
• Pueden usar diferentes mecanismos de
almacenaje (storage). Relacionales o
no-relacionales.
• Es común que los datos no estén
centralizados.
Centro de Alta Capacitación en Tecnologías de la Información E-mail: informes@cac-ti.com Web: http://www.cac-ti.com
Microservices
• El enfoque es muy similar a SOA.
• La idea principal es no tener paquetes monolíticos
de servicios desplegables.
• Los paquetes monolíticos de servicios es la manera
natural de construir servicios.
• Con el tiempo es difícil mantener un paquete
monolítico.
• Base enorme de código. Paquetes enormes para
el despliegue que toma bastante tiempo en
despliegue.
Centro de Alta Capacitación en Tecnologías de la Información E-mail: informes@cac-ti.com Web: http://www.cac-ti.com
Servicios monolíticos
• Cambios “pequeños” necesitan
desplegar el paquete completo.
• Dependiendo el entorno y la deuda
técnica, muchas veces implica hacer
despliegues en horas no productivas y
tener downtimes.
• A la larga el código termina muy
acoplado entre servicios internos.
Centro de Alta Capacitación en Tecnologías de la Información E-mail: informes@cac-ti.com Web: http://www.cac-ti.com
Componentes en Microservices
• La idea es construir componentes, siempre ha
sido nuestro sueño poder rehusar y conectar
componentes existentes.
• Hemos logrado esto parcialmente usando
bibliotecas de componentes. Que al final se
convierten en dependencias de nuestros
servicios. Con todo lo que ello implica.
• Los servicios son componentes que se ejecutan
fuera de nuestros procesos. Solo conocemos la
interfaz.
Centro de Alta Capacitación en Tecnologías de la Información E-mail: informes@cac-ti.com Web: http://www.cac-ti.com
Diseño
• En diseños monolíticos, es común que existan
diversos equipos acorde a cada capa definida.
Vista, lógica de negocio, datos, etc.
• Algunos cambios implican que todos los equipos
participen, para una organización significa costo.
• La organización para construir microservices
implica que el equipo sea cross-functional, con
habilidades para cubrir todas las capas
necesarias para cada servicio. Los servicios se
organizan en torno a la capacidad de negocio.
Arquitectura
Toolkits
Centro de Alta Capacitación en Tecnologías de la Información E-mail: informes@cac-ti.com Web: http://www.cac-ti.com
Dropwizard
• Muy maduro, Yammer lo usa.
• Basado en estándares como JAX-RS con
Jersey
• Jackson para JSON
• Muy amistoso para DevOps, usa Metrics
para monitorear salud de los servicios.
• Incluye Jetty y no necesita un AppServer
para ejecutarse. !Mira mamá, sin AppServer¡
Ratpack
@Grab('org.slf4j:slf4j-simple:1.7.16')
@Grab('io.ratpack:ratpack-groovy:1.2.0')
import static ratpack.groovy.Groovy.ratpack
ratpack {
handlers {
get(":name") {
render "Hello $pathTokens.name!"
}
get {
render "Hello World!"
}
}
}
Centro de Alta Capacitación en Tecnologías de la Información E-mail: informes@cac-ti.com Web: http://www.cac-ti.com
Ratpack
• Súper simple toolkit para crear
webapps, como APIs
• Construido sobre Apache Netty. !Mira
mamá, sin AppServer¡
Centro de Alta Capacitación en Tecnologías de la Información E-mail: informes@cac-ti.com Web: http://www.cac-ti.com
Spring Boot
• Usa la base de Spring Framework
• Soporte para todas las tecnologías de
Pivotal
• Se ejecuta sobre Apache Tomcat
empotrado
• !Mira mamá, sin AppServer¡
Despliegue
The AppServer is DEAD
Centro de Alta Capacitación en Tecnologías de la Información E-mail: informes@cac-ti.com Web: http://www.cac-ti.com
API management
• Ciertos requerimientos no funcionales no deben
ser implementados en los microservices.
• Existen diversas herramientas para aplicar ciertos
servicios necesarios como:
– Directorio/Descubrimiento
– Seguridad
– Monitoreo
– Métricas
– Escalamiento/Aprovisionamiento
Centro de Alta Capacitación en Tecnologías de la Información E-mail: informes@cac-ti.com Web: http://www.cac-ti.com
Cosas a observar
• Complejidad de un sistema distribuido
• Hacer testing es mas complejo
• Transacciones distribuidas. Difícil
implementar
• Deployment
• Consumo de recursos
Centro de Alta Capacitación en Tecnologías de la Información E-mail: informes@cac-ti.com Web: http://www.cac-ti.com
Sistemas distribuidos
(Falacias)
• La red es confiable.
• La latencia es cero.
• Ancho de banda es infinita.
• La red es segura.
• Topología no cambia.
• Hay un administrador.
• El costo del transporte es cero.
• La red es homogénea.
Herramientas
Facilitando el computo distribuido
https://github.com/Netflix/hystrix
Spring Cloud
Integra un conjunto de herramientas para sistemas
distribuidos, a pesar del nombre no solo sirve para el cloud
Centro de Alta Capacitación en Tecnologías de la Información E-mail: informes@cac-ti.com Web: http://www.cac-ti.com
Una opción más
• Al final la organización debe analizar
que opción es la ideal para si misma.
• SOAP/WS-* no son la única opción.
• ESB es fantástico si se usa
adecuadamente con mensajería.
Centro de Alta Capacitación en Tecnologías de la Información E-mail: informes@cac-ti.com Web: http://www.cac-ti.com
Te invitamos a participar en nuestro
próximo curso on-line en vivo

Microservices Workshop
Inicio 30 de mayo. Informes: informes@cac-ti.com
Centro de Alta Capacitación en Tecnologías de la Información E-mail: informes@cac-ti.com Web: http://www.cac-ti.com
Créditos de las fotos
• https://www.flickr.com/photos/kenmainr/9099640785
• https://www.flickr.com/photos/katsrcool/12311382904
• https://www.flickr.com/photos/universalpops/
6830228354
• https://www.flickr.com/photos/jeezny/3477733058
• https://www.flickr.com/photos/estherase/128983854
• https://www.flickr.com/photos/thelord89/8375835939/
• https://www.flickr.com/photos/
seattlemunicipalarchives/2516780900
• https://www.flickr.com/photos/dvids/9523755479

Weitere ähnliche Inhalte

Was ist angesagt?

BBVA Arquitectura - Demo DevOps
BBVA Arquitectura - Demo DevOpsBBVA Arquitectura - Demo DevOps
BBVA Arquitectura - Demo DevOpsErnesto Anaya
 
Divide y Vencerás: introducción a los Microservicios
Divide y Vencerás: introducción a los MicroserviciosDivide y Vencerás: introducción a los Microservicios
Divide y Vencerás: introducción a los MicroserviciosThoughtworks
 
De escritorio a Javascript, nuestra experiencia desde las trincheras
De escritorio a Javascript, nuestra experiencia desde las trincherasDe escritorio a Javascript, nuestra experiencia desde las trincheras
De escritorio a Javascript, nuestra experiencia desde las trincherasRoberto Luis Bisbé
 
Por qué y cómo agilizar el despliegue de aplicaciones, el caso de cloud.gov
Por qué y cómo agilizar el despliegue de aplicaciones, el caso de cloud.govPor qué y cómo agilizar el despliegue de aplicaciones, el caso de cloud.gov
Por qué y cómo agilizar el despliegue de aplicaciones, el caso de cloud.govSoftware Guru
 
Escalabilidad y alto rendimiento con Symfony2
Escalabilidad y alto rendimiento con Symfony2Escalabilidad y alto rendimiento con Symfony2
Escalabilidad y alto rendimiento con Symfony2Ricard Clau
 
.Net Core Real time App on My Rasperry PI - Codemotion 2017 talk
.Net Core Real time App on My Rasperry PI - Codemotion 2017 talk.Net Core Real time App on My Rasperry PI - Codemotion 2017 talk
.Net Core Real time App on My Rasperry PI - Codemotion 2017 talkCarlos Landeras Martínez
 
FreeSWITCH para usuarios Asterisk
FreeSWITCH para usuarios AsteriskFreeSWITCH para usuarios Asterisk
FreeSWITCH para usuarios AsteriskPaloSanto Solutions
 
Automatización del despliegue de aplicaciones multi cloud
Automatización del despliegue de aplicaciones multi cloudAutomatización del despliegue de aplicaciones multi cloud
Automatización del despliegue de aplicaciones multi cloudSoftware Guru
 
Dev ops conf 2015 12 factor app - 2nd gen
Dev ops conf 2015   12 factor app - 2nd genDev ops conf 2015   12 factor app - 2nd gen
Dev ops conf 2015 12 factor app - 2nd genFlavia Marinelli
 
Aplicaciones Real-Time con SignalR
Aplicaciones Real-Time con SignalRAplicaciones Real-Time con SignalR
Aplicaciones Real-Time con SignalRRodolfo Finochietti
 
Jose Luis Soria - Microsoft Plataforma Empresarial 2014 - ALM como factor dif...
Jose Luis Soria - Microsoft Plataforma Empresarial 2014 - ALM como factor dif...Jose Luis Soria - Microsoft Plataforma Empresarial 2014 - ALM como factor dif...
Jose Luis Soria - Microsoft Plataforma Empresarial 2014 - ALM como factor dif...Jose Luis Soria
 

Was ist angesagt? (20)

BBVA Arquitectura - Demo DevOps
BBVA Arquitectura - Demo DevOpsBBVA Arquitectura - Demo DevOps
BBVA Arquitectura - Demo DevOps
 
Divide y Vencerás: introducción a los Microservicios
Divide y Vencerás: introducción a los MicroserviciosDivide y Vencerás: introducción a los Microservicios
Divide y Vencerás: introducción a los Microservicios
 
Data Ops
Data OpsData Ops
Data Ops
 
De escritorio a Javascript, nuestra experiencia desde las trincheras
De escritorio a Javascript, nuestra experiencia desde las trincherasDe escritorio a Javascript, nuestra experiencia desde las trincheras
De escritorio a Javascript, nuestra experiencia desde las trincheras
 
ASP.NET 5 & MVC 6 (RC1)
ASP.NET 5 & MVC 6 (RC1)ASP.NET 5 & MVC 6 (RC1)
ASP.NET 5 & MVC 6 (RC1)
 
Construyedo Aplicaciones Serverless
Construyedo Aplicaciones ServerlessConstruyedo Aplicaciones Serverless
Construyedo Aplicaciones Serverless
 
ASP.NET 5
ASP.NET 5ASP.NET 5
ASP.NET 5
 
Por qué y cómo agilizar el despliegue de aplicaciones, el caso de cloud.gov
Por qué y cómo agilizar el despliegue de aplicaciones, el caso de cloud.govPor qué y cómo agilizar el despliegue de aplicaciones, el caso de cloud.gov
Por qué y cómo agilizar el despliegue de aplicaciones, el caso de cloud.gov
 
Escalabilidad y alto rendimiento con Symfony2
Escalabilidad y alto rendimiento con Symfony2Escalabilidad y alto rendimiento con Symfony2
Escalabilidad y alto rendimiento con Symfony2
 
.Net Core Real time App on My Rasperry PI - Codemotion 2017 talk
.Net Core Real time App on My Rasperry PI - Codemotion 2017 talk.Net Core Real time App on My Rasperry PI - Codemotion 2017 talk
.Net Core Real time App on My Rasperry PI - Codemotion 2017 talk
 
Introduccion a Node.js
Introduccion a Node.jsIntroduccion a Node.js
Introduccion a Node.js
 
FreeSWITCH para usuarios Asterisk
FreeSWITCH para usuarios AsteriskFreeSWITCH para usuarios Asterisk
FreeSWITCH para usuarios Asterisk
 
Automatización del despliegue de aplicaciones multi cloud
Automatización del despliegue de aplicaciones multi cloudAutomatización del despliegue de aplicaciones multi cloud
Automatización del despliegue de aplicaciones multi cloud
 
IoT y Dispositivos
IoT y DispositivosIoT y Dispositivos
IoT y Dispositivos
 
Web Day Devops - Plain Concepts
Web Day Devops - Plain ConceptsWeb Day Devops - Plain Concepts
Web Day Devops - Plain Concepts
 
APIs REST
APIs RESTAPIs REST
APIs REST
 
Introducción a ASP.NET Web API
Introducción a ASP.NET Web APIIntroducción a ASP.NET Web API
Introducción a ASP.NET Web API
 
Dev ops conf 2015 12 factor app - 2nd gen
Dev ops conf 2015   12 factor app - 2nd genDev ops conf 2015   12 factor app - 2nd gen
Dev ops conf 2015 12 factor app - 2nd gen
 
Aplicaciones Real-Time con SignalR
Aplicaciones Real-Time con SignalRAplicaciones Real-Time con SignalR
Aplicaciones Real-Time con SignalR
 
Jose Luis Soria - Microsoft Plataforma Empresarial 2014 - ALM como factor dif...
Jose Luis Soria - Microsoft Plataforma Empresarial 2014 - ALM como factor dif...Jose Luis Soria - Microsoft Plataforma Empresarial 2014 - ALM como factor dif...
Jose Luis Soria - Microsoft Plataforma Empresarial 2014 - ALM como factor dif...
 

Ähnlich wie Microservicios Webinar CAC-TI

Retos en la arquitectura de Microservicios
Retos en la arquitectura de MicroserviciosRetos en la arquitectura de Microservicios
Retos en la arquitectura de MicroserviciosDomingo Suarez Torres
 
Transformación Digital en clave Cloud, ALM y DevOps
Transformación Digital en clave Cloud, ALM y DevOpsTransformación Digital en clave Cloud, ALM y DevOps
Transformación Digital en clave Cloud, ALM y DevOpsatSistemas
 
¿Qué debemos hacer desde Tecnología para estar alineados con la Transformac...
¿Qué debemos hacer desde Tecnología para estar alineados con la Transformac...¿Qué debemos hacer desde Tecnología para estar alineados con la Transformac...
¿Qué debemos hacer desde Tecnología para estar alineados con la Transformac...Martín Cabrera
 
KronOps - Perfil Corporativo
KronOps - Perfil CorporativoKronOps - Perfil Corporativo
KronOps - Perfil CorporativoKronOps
 
Presentación software libre v2
Presentación software libre v2Presentación software libre v2
Presentación software libre v2Kudos S.A.S
 
Teamnet centro de competencia
Teamnet centro de competenciaTeamnet centro de competencia
Teamnet centro de competenciaTEAMNET
 
Tienda Virtual.- Gygacom
Tienda Virtual.- GygacomTienda Virtual.- Gygacom
Tienda Virtual.- GygacomHikaiwaba
 
Power BI. Dando el salto a la nube con los pies en el suelo
Power BI. Dando el salto a la nube con los pies en el sueloPower BI. Dando el salto a la nube con los pies en el suelo
Power BI. Dando el salto a la nube con los pies en el sueloSolidQ
 
12arquitecturasti-150412142706-conversion-gate01.pptx
12arquitecturasti-150412142706-conversion-gate01.pptx12arquitecturasti-150412142706-conversion-gate01.pptx
12arquitecturasti-150412142706-conversion-gate01.pptxJessyHerreraMartell
 
Devsecops superstar un movimiento masivo
Devsecops superstar un movimiento masivoDevsecops superstar un movimiento masivo
Devsecops superstar un movimiento masivoLuciano Moreira da Cruz
 
Orquestación de Microservicios Introducción a arquitecturas de desarrollo mod...
Orquestación de Microservicios Introducción a arquitecturas de desarrollo mod...Orquestación de Microservicios Introducción a arquitecturas de desarrollo mod...
Orquestación de Microservicios Introducción a arquitecturas de desarrollo mod...ssuserc860fb
 
Presentación Sebastian Rojas | Walmart - eCommerce IT Camp
Presentación Sebastian Rojas | Walmart - eCommerce IT CampPresentación Sebastian Rojas | Walmart - eCommerce IT Camp
Presentación Sebastian Rojas | Walmart - eCommerce IT CampeCommerce Institute
 
Evolución TI en el sector de Telecomunicaciones
Evolución TI en el sector de TelecomunicacionesEvolución TI en el sector de Telecomunicaciones
Evolución TI en el sector de TelecomunicacionesJaime Contreras
 
DynamizeIT Introducción
DynamizeIT IntroducciónDynamizeIT Introducción
DynamizeIT IntroducciónDynamizeIT
 
Propuesta de Plataforma IoT - UCA Cuenca 2018
Propuesta de Plataforma IoT - UCA Cuenca 2018Propuesta de Plataforma IoT - UCA Cuenca 2018
Propuesta de Plataforma IoT - UCA Cuenca 2018Andres Solorzano
 
Arquitectura Para El Comercio Electrónico
Arquitectura Para El Comercio ElectrónicoArquitectura Para El Comercio Electrónico
Arquitectura Para El Comercio ElectrónicoSamPinilla
 
Drupal camp2010bcn cmis-drupal_alfresco-v1.1
Drupal camp2010bcn cmis-drupal_alfresco-v1.1Drupal camp2010bcn cmis-drupal_alfresco-v1.1
Drupal camp2010bcn cmis-drupal_alfresco-v1.1Roger CARHUATOCTO
 

Ähnlich wie Microservicios Webinar CAC-TI (20)

Retos en la arquitectura de Microservicios
Retos en la arquitectura de MicroserviciosRetos en la arquitectura de Microservicios
Retos en la arquitectura de Microservicios
 
Transformación Digital en clave Cloud, ALM y DevOps
Transformación Digital en clave Cloud, ALM y DevOpsTransformación Digital en clave Cloud, ALM y DevOps
Transformación Digital en clave Cloud, ALM y DevOps
 
¿Qué debemos hacer desde Tecnología para estar alineados con la Transformac...
¿Qué debemos hacer desde Tecnología para estar alineados con la Transformac...¿Qué debemos hacer desde Tecnología para estar alineados con la Transformac...
¿Qué debemos hacer desde Tecnología para estar alineados con la Transformac...
 
KronOps - Perfil Corporativo
KronOps - Perfil CorporativoKronOps - Perfil Corporativo
KronOps - Perfil Corporativo
 
Soalatam apim v1.0
Soalatam apim v1.0Soalatam apim v1.0
Soalatam apim v1.0
 
¿Que son los microservicios?
¿Que son los microservicios?¿Que son los microservicios?
¿Que son los microservicios?
 
Casos exito santiago toribio almatech
Casos exito santiago toribio almatechCasos exito santiago toribio almatech
Casos exito santiago toribio almatech
 
Presentación software libre v2
Presentación software libre v2Presentación software libre v2
Presentación software libre v2
 
Teamnet centro de competencia
Teamnet centro de competenciaTeamnet centro de competencia
Teamnet centro de competencia
 
Tienda Virtual.- Gygacom
Tienda Virtual.- GygacomTienda Virtual.- Gygacom
Tienda Virtual.- Gygacom
 
Power BI. Dando el salto a la nube con los pies en el suelo
Power BI. Dando el salto a la nube con los pies en el sueloPower BI. Dando el salto a la nube con los pies en el suelo
Power BI. Dando el salto a la nube con los pies en el suelo
 
12arquitecturasti-150412142706-conversion-gate01.pptx
12arquitecturasti-150412142706-conversion-gate01.pptx12arquitecturasti-150412142706-conversion-gate01.pptx
12arquitecturasti-150412142706-conversion-gate01.pptx
 
Devsecops superstar un movimiento masivo
Devsecops superstar un movimiento masivoDevsecops superstar un movimiento masivo
Devsecops superstar un movimiento masivo
 
Orquestación de Microservicios Introducción a arquitecturas de desarrollo mod...
Orquestación de Microservicios Introducción a arquitecturas de desarrollo mod...Orquestación de Microservicios Introducción a arquitecturas de desarrollo mod...
Orquestación de Microservicios Introducción a arquitecturas de desarrollo mod...
 
Presentación Sebastian Rojas | Walmart - eCommerce IT Camp
Presentación Sebastian Rojas | Walmart - eCommerce IT CampPresentación Sebastian Rojas | Walmart - eCommerce IT Camp
Presentación Sebastian Rojas | Walmart - eCommerce IT Camp
 
Evolución TI en el sector de Telecomunicaciones
Evolución TI en el sector de TelecomunicacionesEvolución TI en el sector de Telecomunicaciones
Evolución TI en el sector de Telecomunicaciones
 
DynamizeIT Introducción
DynamizeIT IntroducciónDynamizeIT Introducción
DynamizeIT Introducción
 
Propuesta de Plataforma IoT - UCA Cuenca 2018
Propuesta de Plataforma IoT - UCA Cuenca 2018Propuesta de Plataforma IoT - UCA Cuenca 2018
Propuesta de Plataforma IoT - UCA Cuenca 2018
 
Arquitectura Para El Comercio Electrónico
Arquitectura Para El Comercio ElectrónicoArquitectura Para El Comercio Electrónico
Arquitectura Para El Comercio Electrónico
 
Drupal camp2010bcn cmis-drupal_alfresco-v1.1
Drupal camp2010bcn cmis-drupal_alfresco-v1.1Drupal camp2010bcn cmis-drupal_alfresco-v1.1
Drupal camp2010bcn cmis-drupal_alfresco-v1.1
 

Mehr von Domingo Suarez Torres

Cloud Native MX Meetup - Asegurando tu Cluster de Kubernetes
Cloud Native MX Meetup - Asegurando tu Cluster de KubernetesCloud Native MX Meetup - Asegurando tu Cluster de Kubernetes
Cloud Native MX Meetup - Asegurando tu Cluster de KubernetesDomingo Suarez Torres
 
Java Dev Day 2019 No kuberneteen por convivir
Java Dev Day 2019  No kuberneteen por convivirJava Dev Day 2019  No kuberneteen por convivir
Java Dev Day 2019 No kuberneteen por convivirDomingo Suarez Torres
 
DevFest Lima Corriendo cargas e trabajo seguras en GKE con Istio
DevFest Lima Corriendo cargas e trabajo seguras en GKE con IstioDevFest Lima Corriendo cargas e trabajo seguras en GKE con Istio
DevFest Lima Corriendo cargas e trabajo seguras en GKE con IstioDomingo Suarez Torres
 
Cloud Native Mexico - Introducción a Kubernetes
Cloud Native Mexico - Introducción a KubernetesCloud Native Mexico - Introducción a Kubernetes
Cloud Native Mexico - Introducción a KubernetesDomingo Suarez Torres
 
Meetup DigitalOcean Cloud Native architecture
Meetup DigitalOcean Cloud Native architectureMeetup DigitalOcean Cloud Native architecture
Meetup DigitalOcean Cloud Native architectureDomingo Suarez Torres
 
Cloud Native Mexico Meetup de Marzo 2018 Service Mesh con Istio y Envoy
Cloud Native Mexico Meetup de Marzo 2018 Service Mesh con Istio y EnvoyCloud Native Mexico Meetup de Marzo 2018 Service Mesh con Istio y Envoy
Cloud Native Mexico Meetup de Marzo 2018 Service Mesh con Istio y EnvoyDomingo Suarez Torres
 
Cloud Native Mexico Meetup enero 2018 Observability
Cloud Native Mexico Meetup enero 2018 ObservabilityCloud Native Mexico Meetup enero 2018 Observability
Cloud Native Mexico Meetup enero 2018 ObservabilityDomingo Suarez Torres
 
Orquestación de contenedores con Kubernetes SGNext
Orquestación de contenedores con Kubernetes SGNextOrquestación de contenedores con Kubernetes SGNext
Orquestación de contenedores con Kubernetes SGNextDomingo Suarez Torres
 
Elasticsearch JVM-MX Meetup April 2016
Elasticsearch JVM-MX Meetup April 2016Elasticsearch JVM-MX Meetup April 2016
Elasticsearch JVM-MX Meetup April 2016Domingo Suarez Torres
 

Mehr von Domingo Suarez Torres (20)

Cloud Native MX Meetup - Asegurando tu Cluster de Kubernetes
Cloud Native MX Meetup - Asegurando tu Cluster de KubernetesCloud Native MX Meetup - Asegurando tu Cluster de Kubernetes
Cloud Native MX Meetup - Asegurando tu Cluster de Kubernetes
 
Java Dev Day 2019 No kuberneteen por convivir
Java Dev Day 2019  No kuberneteen por convivirJava Dev Day 2019  No kuberneteen por convivir
Java Dev Day 2019 No kuberneteen por convivir
 
Contenedores 101 Digital Ocean CDMX
Contenedores 101 Digital Ocean CDMXContenedores 101 Digital Ocean CDMX
Contenedores 101 Digital Ocean CDMX
 
Java Cloud Native Hack Nights GDL
Java Cloud Native Hack Nights GDLJava Cloud Native Hack Nights GDL
Java Cloud Native Hack Nights GDL
 
meetup digital ocean kubernetes
meetup digital ocean kubernetesmeetup digital ocean kubernetes
meetup digital ocean kubernetes
 
Peru JUG Micronaut & GraalVM
Peru JUG Micronaut & GraalVMPeru JUG Micronaut & GraalVM
Peru JUG Micronaut & GraalVM
 
DevFest Lima Corriendo cargas e trabajo seguras en GKE con Istio
DevFest Lima Corriendo cargas e trabajo seguras en GKE con IstioDevFest Lima Corriendo cargas e trabajo seguras en GKE con Istio
DevFest Lima Corriendo cargas e trabajo seguras en GKE con Istio
 
Cloud Native Development in the JVM
Cloud Native Development in the JVMCloud Native Development in the JVM
Cloud Native Development in the JVM
 
Cloud Native Mexico - Introducción a Kubernetes
Cloud Native Mexico - Introducción a KubernetesCloud Native Mexico - Introducción a Kubernetes
Cloud Native Mexico - Introducción a Kubernetes
 
Meetup DigitalOcean Cloud Native architecture
Meetup DigitalOcean Cloud Native architectureMeetup DigitalOcean Cloud Native architecture
Meetup DigitalOcean Cloud Native architecture
 
Cloud Native Mexico Meetup de Marzo 2018 Service Mesh con Istio y Envoy
Cloud Native Mexico Meetup de Marzo 2018 Service Mesh con Istio y EnvoyCloud Native Mexico Meetup de Marzo 2018 Service Mesh con Istio y Envoy
Cloud Native Mexico Meetup de Marzo 2018 Service Mesh con Istio y Envoy
 
Cloud Native Mexico Meetup enero 2018 Observability
Cloud Native Mexico Meetup enero 2018 ObservabilityCloud Native Mexico Meetup enero 2018 Observability
Cloud Native Mexico Meetup enero 2018 Observability
 
Cloud Native Mexico Presentacion
Cloud Native Mexico PresentacionCloud Native Mexico Presentacion
Cloud Native Mexico Presentacion
 
gRPC: Beyond REST
gRPC: Beyond RESTgRPC: Beyond REST
gRPC: Beyond REST
 
Devops Landscape
Devops LandscapeDevops Landscape
Devops Landscape
 
Orquestación de contenedores con Kubernetes SGNext
Orquestación de contenedores con Kubernetes SGNextOrquestación de contenedores con Kubernetes SGNext
Orquestación de contenedores con Kubernetes SGNext
 
JVM Reactive Programming
JVM Reactive ProgrammingJVM Reactive Programming
JVM Reactive Programming
 
SGNext Elasticsearch
SGNext ElasticsearchSGNext Elasticsearch
SGNext Elasticsearch
 
Elasticsearch JVM-MX Meetup April 2016
Elasticsearch JVM-MX Meetup April 2016Elasticsearch JVM-MX Meetup April 2016
Elasticsearch JVM-MX Meetup April 2016
 
Ratpack JVM_MX Meetup February 2016
Ratpack JVM_MX Meetup February 2016Ratpack JVM_MX Meetup February 2016
Ratpack JVM_MX Meetup February 2016
 

Kürzlich hochgeladen

Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxLolaBunny11
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesFundación YOD YOD
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudianteAndreaHuertas24
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITMaricarmen Sánchez Ruiz
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIAWilbisVega
 
Herramientas de corte de alta velocidad.pptx
Herramientas de corte de alta velocidad.pptxHerramientas de corte de alta velocidad.pptx
Herramientas de corte de alta velocidad.pptxRogerPrieto3
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 

Kürzlich hochgeladen (15)

Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptx
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento Protégeles
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
 
Herramientas de corte de alta velocidad.pptx
Herramientas de corte de alta velocidad.pptxHerramientas de corte de alta velocidad.pptx
Herramientas de corte de alta velocidad.pptx
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 

Microservicios Webinar CAC-TI

  • 1. Centro de Alta Capacitación en Tecnologías de la Información E-mail: informes@cac-ti.com Web: http://www.cac-ti.com Webinar “Arquitectura de Microservicios”
  • 2. Centro de Alta Capacitación en Tecnologías de la Información E-mail: informes@cac-ti.com Web: http://www.cac-ti.com Expositor: Domingo Suárez (México) Ingeniero de software por 17 años, trabajando principalmente en el ecosistema JVM para diferentes sectores como Financiero, Medios de comunicación, eCommerce y consultoría. He sido expositor en congresos como SOALatam (Perú), Spring IO (Madrid),Grails eXchange (Londres), BarcelonaJUG, Mexico City JVM Group. Actualmente soy CTO en una compañía de Inteligencia Artificial desarrollando tecnología con Deep Learning y sistemas distribuidos. @domix
  • 3. Centro de Alta Capacitación en Tecnologías de la Información E-mail: informes@cac-ti.com Web: http://www.cac-ti.com Acerca de Nosotros
 
 Empresa líder de capacitación en las principales y más reconocidas tecnologías, metodologías y marcos de referencia de TI, tales como SOA, BPM, Cloud, Arquitectura Empresarial TOGAF, Hadoop-Big Data de Cloudera, Certificaciones ISO: ISO 27001, ISO 31000, ISO 22301, ISO 27005, entre otros. Proveemos entrenamiento en toda la región.
  • 4. Centro de Alta Capacitación en Tecnologías de la Información E-mail: informes@cac-ti.com Web: http://www.cac-ti.com Te invitamos a participar en nuestro próximo curso on-line en vivo
 Microservices Workshop Inicio 30 de mayo. Informes: informes@cac-ti.com
  • 5. Centro de Alta Capacitación en Tecnologías de la Información E-mail: informes@cac-ti.com Web: http://www.cac-ti.com Agenda • SOA • REST • Microservices • Arquitectura • Frameworks • Herramientas
  • 7. SOA • SOA implica demasiadas cosas. En un mundo ideal: • Deseable que las aplicaciones desaparezcan • Existen core services que proveen lógica de negocio y datos • UI que sirven de agregadores y aplican presentaciones.
  • 8. SOA • SOA implica demasiadas cosas. • Comunicación entre sistemas usando una estructura estándar, generalmente un dialecto basado en XML. "CORBA with angle brackets" • WS-*. Infierno de XML. • Mensajería asíncrona para transferir documentos. Enterprise Application Integration (EAI)
  • 9. SOA • Riesgos y problemas principales: • Demasiada carga, muchas veces innecesaria. • Costosas implementaciones, tanto en consultoría como en herramientas y runtimes. No olvidemos la operación. • Complejidad innecesaria. • Vendor lock-in
  • 10. Alternativas al típico SOA • Soluciones in-house usando frameworks típicos • OpenSource runtimes & tools
  • 12. Centro de Alta Capacitación en Tecnologías de la Información E-mail: informes@cac-ti.com Web: http://www.cac-ti.com ¿Que tipo de organización eres?
  • 13. REST • Todo lo que puedo decirles sobre REST probablemente sea una mentira (refraseando a un amigo @tomaslin)
  • 15. REST • JSON sobre HTTP • ¿Hypermedia? • Hypermedia APIs
  • 17. Developer Experience • En el SXSW de 2014 Jeremiah Lee hablo de ‘Developer Experience’ DX http://developerexperience.org
  • 21. Centro de Alta Capacitación en Tecnologías de la Información E-mail: informes@cac-ti.com Web: http://www.cac-ti.com Microservices • Estilo arquitectónico • Cada servicio funcional o un conjunto muy pequeño se ejecutan como procesos independientes. • Generalmente usan protocolos ligeros y estándar como HTTP o mensajería (JMS, AMQP, etc). • Despliegue independiente. • Pueden o no contener todos los recursos que necesitan. Es decir usan otros servicios para funcionar.
  • 22. Centro de Alta Capacitación en Tecnologías de la Información E-mail: informes@cac-ti.com Web: http://www.cac-ti.com Microservices • Pueden estar escritos en diferentes lenguajes y ejecutarse en diversos runtimes. • Pueden usar diferentes mecanismos de almacenaje (storage). Relacionales o no-relacionales. • Es común que los datos no estén centralizados.
  • 23. Centro de Alta Capacitación en Tecnologías de la Información E-mail: informes@cac-ti.com Web: http://www.cac-ti.com Microservices • El enfoque es muy similar a SOA. • La idea principal es no tener paquetes monolíticos de servicios desplegables. • Los paquetes monolíticos de servicios es la manera natural de construir servicios. • Con el tiempo es difícil mantener un paquete monolítico. • Base enorme de código. Paquetes enormes para el despliegue que toma bastante tiempo en despliegue.
  • 24. Centro de Alta Capacitación en Tecnologías de la Información E-mail: informes@cac-ti.com Web: http://www.cac-ti.com Servicios monolíticos • Cambios “pequeños” necesitan desplegar el paquete completo. • Dependiendo el entorno y la deuda técnica, muchas veces implica hacer despliegues en horas no productivas y tener downtimes. • A la larga el código termina muy acoplado entre servicios internos.
  • 25. Centro de Alta Capacitación en Tecnologías de la Información E-mail: informes@cac-ti.com Web: http://www.cac-ti.com Componentes en Microservices • La idea es construir componentes, siempre ha sido nuestro sueño poder rehusar y conectar componentes existentes. • Hemos logrado esto parcialmente usando bibliotecas de componentes. Que al final se convierten en dependencias de nuestros servicios. Con todo lo que ello implica. • Los servicios son componentes que se ejecutan fuera de nuestros procesos. Solo conocemos la interfaz.
  • 26. Centro de Alta Capacitación en Tecnologías de la Información E-mail: informes@cac-ti.com Web: http://www.cac-ti.com Diseño • En diseños monolíticos, es común que existan diversos equipos acorde a cada capa definida. Vista, lógica de negocio, datos, etc. • Algunos cambios implican que todos los equipos participen, para una organización significa costo. • La organización para construir microservices implica que el equipo sea cross-functional, con habilidades para cubrir todas las capas necesarias para cada servicio. Los servicios se organizan en torno a la capacidad de negocio.
  • 28.
  • 30.
  • 31. Centro de Alta Capacitación en Tecnologías de la Información E-mail: informes@cac-ti.com Web: http://www.cac-ti.com Dropwizard • Muy maduro, Yammer lo usa. • Basado en estándares como JAX-RS con Jersey • Jackson para JSON • Muy amistoso para DevOps, usa Metrics para monitorear salud de los servicios. • Incluye Jetty y no necesita un AppServer para ejecutarse. !Mira mamá, sin AppServer¡
  • 32.
  • 33.
  • 34.
  • 35. Ratpack @Grab('org.slf4j:slf4j-simple:1.7.16') @Grab('io.ratpack:ratpack-groovy:1.2.0') import static ratpack.groovy.Groovy.ratpack ratpack { handlers { get(":name") { render "Hello $pathTokens.name!" } get { render "Hello World!" } } }
  • 36. Centro de Alta Capacitación en Tecnologías de la Información E-mail: informes@cac-ti.com Web: http://www.cac-ti.com Ratpack • Súper simple toolkit para crear webapps, como APIs • Construido sobre Apache Netty. !Mira mamá, sin AppServer¡
  • 37.
  • 38. Centro de Alta Capacitación en Tecnologías de la Información E-mail: informes@cac-ti.com Web: http://www.cac-ti.com Spring Boot • Usa la base de Spring Framework • Soporte para todas las tecnologías de Pivotal • Se ejecuta sobre Apache Tomcat empotrado • !Mira mamá, sin AppServer¡
  • 41. Centro de Alta Capacitación en Tecnologías de la Información E-mail: informes@cac-ti.com Web: http://www.cac-ti.com API management • Ciertos requerimientos no funcionales no deben ser implementados en los microservices. • Existen diversas herramientas para aplicar ciertos servicios necesarios como: – Directorio/Descubrimiento – Seguridad – Monitoreo – Métricas – Escalamiento/Aprovisionamiento
  • 42. Centro de Alta Capacitación en Tecnologías de la Información E-mail: informes@cac-ti.com Web: http://www.cac-ti.com Cosas a observar • Complejidad de un sistema distribuido • Hacer testing es mas complejo • Transacciones distribuidas. Difícil implementar • Deployment • Consumo de recursos
  • 43. Centro de Alta Capacitación en Tecnologías de la Información E-mail: informes@cac-ti.com Web: http://www.cac-ti.com Sistemas distribuidos (Falacias) • La red es confiable. • La latencia es cero. • Ancho de banda es infinita. • La red es segura. • Topología no cambia. • Hay un administrador. • El costo del transporte es cero. • La red es homogénea.
  • 45.
  • 47.
  • 48.
  • 49.
  • 50. Spring Cloud Integra un conjunto de herramientas para sistemas distribuidos, a pesar del nombre no solo sirve para el cloud
  • 51.
  • 52. Centro de Alta Capacitación en Tecnologías de la Información E-mail: informes@cac-ti.com Web: http://www.cac-ti.com Una opción más • Al final la organización debe analizar que opción es la ideal para si misma. • SOAP/WS-* no son la única opción. • ESB es fantástico si se usa adecuadamente con mensajería.
  • 53. Centro de Alta Capacitación en Tecnologías de la Información E-mail: informes@cac-ti.com Web: http://www.cac-ti.com Te invitamos a participar en nuestro próximo curso on-line en vivo
 Microservices Workshop Inicio 30 de mayo. Informes: informes@cac-ti.com
  • 54. Centro de Alta Capacitación en Tecnologías de la Información E-mail: informes@cac-ti.com Web: http://www.cac-ti.com Créditos de las fotos • https://www.flickr.com/photos/kenmainr/9099640785 • https://www.flickr.com/photos/katsrcool/12311382904 • https://www.flickr.com/photos/universalpops/ 6830228354 • https://www.flickr.com/photos/jeezny/3477733058 • https://www.flickr.com/photos/estherase/128983854 • https://www.flickr.com/photos/thelord89/8375835939/ • https://www.flickr.com/photos/ seattlemunicipalarchives/2516780900 • https://www.flickr.com/photos/dvids/9523755479