Aplicaciones a escala web

Programa

Cambio de necesidades: de 1.000 a 1.000.000 de usuarios
Escalabilidade, elasticidade e fiabilidade con cloud
Microservizos: o caso de Amazon e Netflix
Implementación con Spring Boot e NetflixOSS
Configuración centralizada
Rexistro e autodiscovery
Balanceadores de carga: ELB vc Zuul
Creación dun API Rest asíncrona
Test e integración continua
Utilizando S3 como repositorio de artefactos
Despregue en máquinas virtuais
Autoescalado de servizos

Javi

@ciberado

tiny.cc/jv_tube

tiny.cc/jv_cursos

github.com/ciberado

Capside

@capside

capside.com/tech-training

PROBLEMAS

una base de datos centralizada ofrecía una visión global

 

las aplicaciones monolíticas funcionaban correctamente

¿Cómo mantienes la agilidad de desarrollo e innovación sin perder calidad?

¿Cómo gestionas y mantienes
vivas 500 máquinas?

¿Y 5000?

¿Cómo pasas de 20.000 IOPS en escritura a 200.000? ¿O a 1E6?

¿Cómo sobrevives cuando tienes que transmitir 1Tbps?

MICROSERVICIOS

Diferentes programas orquestados al estilo Unix

orientados a completar workflows de negocio

cada uno con su propio equipo, tecnología y ciclo de vida

asociado a su propio mecanismo de persistencia

autoregistrables y descubribles

interconectados de forma directa y sencilla

desplegables automáticamente sin intervención humana

resilientes tanto a nivel de infraestructura como a nivel de negocio

con un sistema de logs claro y agromerable

sin estado en los servidores frontales

más vale hecho que perfecto

AMAZON.COM

Ejemplo

MARTIN FOWLER

+Info

http://martinfowler.com/articles/microservices.html

CLOUD,
PUBLIC CLOUD

infraestructura bajo demanda

para producción, desarrollo, pruebas, experimentación

totalmente programable

dos players principales AWS y Azure

escalabilidad y elasticidad

servicios gestionados

Obama for America

Ejemplo

http://awsofa.info

NETFLIX TECH BLOG

+Info

http://techblog.netflix.com

un paseo por AWS

regiones con múltiples AZ

IAM para autorizar y autentificar

Cloudwatch para monitorizar y agrupar logs

EC2 y Lambda para computación

Autoscaling groups para cuidar al ganado

Route 53 como DNS para disaster recovery y pruebas A/B

Elastic Load Balancer para operaciones síncronas

colas colas colas
SQS, Kinesis y SNS para operaciones asíncronas

S3 para almacenar y distribuir contenido estático

Cloudfront como CDN

Elasticsearch, DynamoDB, RDS, Elasticache para almacenar datos estructurados

EMR, Redshift, Machinelearning, QuickSights
para analizar datos

ANIMOTO

Ejemplo

SHAZAM

Ejemplo

NASA JPL

Ejemplo

https://youtu.be/8FJ5DBLSFe4?t=11m45s

KOOBIN

Ejemplo

https://youtu.be/vb38pzY6S28

MANGO

Ejemplo

NETFLIX OSS

http://cloud.spring.io/spring-cloud-netflix

Spring Starter FTW

http://cloud.spring.io/spring-cloud-netflix

Spring Cloud Config

Spring Cloud Service Discovery with Eureka support

http://eureka:8761

client side load balancer with Ribbon

routing avanzando mediante Zuul

la integración continua es necesaria si quieres ganar velocidad

usa el veneno que quieras pero Jenkins siempre te querrá a ti

en Capside utilizamos Enzime para desplegar sin errores

¡estamos contratando!

Made with Slides.com