Date post: | 20-Jan-2017 |
Category: |
Technology |
Upload: | amazon-web-services-latam |
View: | 848 times |
Download: | 0 times |
© 2016, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Escalando a sus primeros 10
millones de usuarios
Raúl Frías, Solutions Architect AWS
US-WEST (Oregon)
EU (Ireland)
ASIA PACIFIC
(Tokyo)
US-WEST (N. California)
SOUTH
AMERICA (Sao
Paulo)
US-EAST (N. Virginia)
AWS GOVCLOUD (US)
ASIA PACIFIC
(Sydney)
ASIA PACIFIC
(Singapore)
CHINA (Beijing)
RegionesEU (Frankfurt)
Korea (Seoul)
US-WEST (Oregon)
EU (Ireland)
ASIA PACIFIC
(Tokyo)
US-WEST (N. California)
SOUTH
AMERICA (Sao
Paulo)
US-EAST (N. Virginia)
AWS GOVCLOUD (US)
ASIA PACIFIC
(Sydney)
ASIA PACIFIC
(Singapore)
CHINA (Beijing)
Zonas de DisponibilidadEU (Frankfurt)
Korea (Seoul)
TECHNICAL &
BUSINESS
SUPPORT
Account
Management
Support
Professional
Services
Solutions
Architects
Training &
Certification
Security
& Pricing
Reports
Partner
Ecosystem
AWS
MARKETPLACE
Backup
Big Data
& HPC
Business
Apps
Databases
Development
Industry
Solutions
Security
APPLICATION
SERVICES
Queuing
Notifications
Search
Orchestration
ENTERPRISE
APPS
Virtual
Desktops
Storage
Gateway
Sharing &
Collaboration
Email &
Calendaring
Directories
HYBRID CLOUD
MANAGEMENT
Backups
Deployment
Direct
Connect
Identity
Federation
Integrated
Management
SECURITY &
MANAGEMENT
Virtual Private
Networks
Identity &
Access
Encryption
KeysConfiguration Monitoring Dedicated
INFRASTRUCTURE
SERVICES
RegionsAvailability
ZonesCompute Storage
DatabasesSQL, NoSQL,
CachingCDNNetworking
PLATFORM
SERVICES
App
Mobile
& Web
Front-end
Functions
Identity
Data Store
Real-time
Development
Containers
Source
Code
Build
Tools
Deployment
DevOps
Mobile
Sync
Identity
Push
Notifications
Mobile
Analytics
Mobile
Backend
Analytics
Data
Warehousing
Hadoop
Streaming
Data
Pipelines
Machine
Learning
APPLICATION
SERVICES
Queuing
Notifications
Search
Orchestration
SECURITY &
MANAGEMENT
Virtual Private
Networks
Identity &
Access
Encryption
KeysConfiguration Monitoring Dedicated
INFRASTRUCTURE
SERVICES
RegionsAvailability
ZonesCompute Storage
DatabasesSQL, NoSQL,
CachingCDNNetworking
PLATFORM
SERVICES
App
Mobile
& Web
Front-end
Functions
Identity
Data Store
Real-time
Development
Containers
Source
Code
Build
Tools
Deployment
DevOps
Mobile
Sync
Identity
Push
Notifications
Mobile
Analytics
Mobile
Backend
Analytics
Data
Warehousing
Hadoop
Streaming
Data
Pipelines
Machine
Learning
Bloques básicos AWS
Servicios con Alta Disponbilidad y
Tolerancia a Fallas incluido
Alta Disponibilidad
construida con una
arquitectura correcta
Amazon CloudFront
Amazon Route 53
Amazon S3
Amazon DynamoDB
Elastic Load Balancing
Amazon EFS
AWS Lambda
Amazon SQS
Amazon SNS
Amazon SES
Amazon SWF
…
Amazon EC2
Amazon EBS
Amazon RDS
Amazon VPC
1 Usuario
• Amazon Route 53 para DNS
• Una sola IP elástica
• Una instancia Amazon EC2
• Paquete Completo
• Servidor Web
• Base de Datos
• Administración
• Etcétera …
Instancia
Amazon
EC2
IP Elástica
UsuarioAmazon
Route 53
“Vamos a necesitar más ….”
• Enfoque sencillo
• Sacar provecho de PIOPS
• Instancias con Alto I/O
• Instancias con más RAM
• Instancias con más CPU
• Instancias con mas GB/TB
• Sencillo cambiar de “modelo”
c4.8xlarge
m3.2xlarge
t2.micro• Este enfoque tiene un límite
1 Usuario
• Potencialmente
podríamos llegar a
cientos o miles de
usuarios
• Sin redundancia
• Sin Alta Disponibilidad
• Demasiados huevos en la
misma canasta
EC2
Instance
Elastic IP
UsuarioAmazon
Route 53
Usuarios > 1
Primero separemos algunos
componentes:
• Servidor Web
• Base de Datos
Utilizar una base de datos
como servicio?
Instancia
Web
Database
Instance
Elastic IP
UsuarioAmazon
Route 53
Usted mismo Servicio Administrado
Base de Datos en
Amazon EC2
Cualquier base de
datos corriendo en
Amazon EC2
Traiga su propia
licencia (BYOL)
Amazon
DynamoDB
Base de datos NoSQL
administrada
Escalabilidad
transparente
Sin necesidad de
administrar
Amazon RDS
Microsoft SQL Server
Oracle
MySQL
PostgreSQL
MariaDB
Amazon Aurora
BYOL ó Licencia
Incluida
Amazon
Redshift
Servicio de
Datawarehouse
masivamente paralelo
Escalable a PB´s
Veloz, poderoso y fácil
de escalar
Opciones de Base de Datos
Amazon Aurora
• Almacenamiento escalable automátizado
(hasta 64 TB)
• Hasta 15 réplicas
• Backups continuos incrementales a
Amazon S3
• Compatible con MySQL
¿Por qué empezar con bases de datos
relacionales?• Establecidas y tecnologías probadas
• Ecosistema existente, código, comunidades, libros y
herramientas
• No romperan sus bases de datos relacionales con sus
primeros miles de usuarios. *
*A menos qué estés haciendo algo muy PECULIAR con los datos o cuentas con una MASIVA cantidad de datos
…aún asi SQL tiene un lugar en tu aplicación
¿Por qué empezar con NoSQL?
• Aplicaciones con ultra baja latencia
• Enfoque en metadatos de datos
• Datos no relacionales
• Necesito* base de datos sin esquema
• Masivas cantidades de datos (TB´s)
• Rápida ingesta de datos(miles de registros/seg)
Usuarios>100
Primero separemos algunos
componentes:
• Servidor Web
• Base de Datos
• Utilize RDS para hacer
su vida más sencilla
Instancia
Web
IP Elástica
BD RDS
UsuarioAmazon
Route 53
Usuarios >1000
Soluciones la alta disponibiliidad
y tolerancia a fallas:
Una instancia web adicional
• En otra Zona de
Disponibilidad
RDS Multi-AZ
Elastic Load Balancing (ELB)
Instancia
Web
RDS DB Instance
Active (Multi-AZ)
Availability Zone Availability Zone
Instancia
Web
RDS DB Instance
Standby (Multi-AZ)
ELB
Balancer
UsuarioAmazon
Route 53
Elastic Load Balancing
• Alta Disponibilidad
Integrada
• 1 - 65535
• Estado de Salúd
• Sesiones
• SSL
• Monitoreo
• Logs
Usuarios > 10,000s–100,000s
RDS DB Instance
Active (Multi-AZ)
Availability Zone Availability Zone
RDS DB Instance
Standby (Multi-AZ)
ELB
Balancer
RDS DB Instance
Read Replica
RDS DB Instance
Read Replica
RDS DB Instance
Read Replica
RDS DB Instance
Read Replica
Instancia
Web
Instancia
Web
Instancia
Web
Instancia
Web
Instancia
Web
Instancia
Web
Instancia
Web
Instancia
Web
Amazon
Route 53Usuario
RDS DB Instance
Active (Multi-AZ)
Availability Zone
ELB
Balancer
Amazon S3
Amazon
CloudFront
Amazon
Route 53Usuario
Movamos la carga…
Instancias Web
• contenido estático de Amazon
S3 a Amazon Cloudfront
Mueve
Amazon Simple Storage Service (S3)
• Almacenamiento de Objetos
• Alta durabilidad
• Óptimo para contenido estático
• “Sin límite” de escalamiento
• Objetos de hasta 5TB
• Cifrado opcional
Amazon CloudFront
• “Cacheo” y distribución de contenido
• Libera carga al origen
• Contenido Dinámico y Estático
• Realizar “Streaming”
• Certificados SSL
• TTL´s bajos configurables
• Optimizado para AWS
Amazon CloudFront
Res
po
nse
Tim
e
Serv
er L
oad
Res
po
nse
Ti
me
Serv
er
Load
Res
po
nse
Ti
me
Serv
er
Load
No CDN CDN for Static
Content
CDN for Static &
Dynamic Content
020406080
8:0
0 A
M
9:0
0 A
M
10:0
0 A
M
11:0
0 A
M
12:0
0 P
M
1:0
0 P
M
2:0
0 P
M
3:0
0 P
M
4:0
0 P
M
5:0
0 P
M
6:0
0 P
M
7:0
0 P
M
8:0
0 P
M
9:0
0 P
M
Vo
lum
e o
f D
ata
D
eli
ve
red
(G
bp
s)
Movamos la carga…
• contenido estático de
Amazon S3 a Amazon
Cloudfront
• Estádo de sesión a Amazon
DynamoDB
• Utilizar cache para BD con
Amazon Elasticache
Mueve
RDS DB Instance
Active (Multi-AZ)
Availability Zone
ELB
Balancer
Amazon S3
Amazon
CloudFront
Amazon
Route 53Usuario
ElastiCache DynamoDB
Instancias Web
Amazon Elasticache
• Memcached ó Redis Administrado
• Escalamiento de 1 a varios nodos
• Auto-sanable
• Velocidad de respuesta abajo de
10ms
• Memcache local en una ZA
• Multi-AZ posible con Redis
Crecimiento/reducción automática de clusters de cómputo
Definición de mínimos y máximos
Métricas de Cloudwatch son gatillo de auto escalamiento
Instancias bajo demanda o spot
aws autoscaling create-auto-scaling-group
--auto-scaling-group-name MyGroup
--launch-configuration-name MyConfig
--min-size 4
--max-size 200--availability-zones us-west-2c, us-west-2b
Auto Escalamiento
Domingo Lunes Martes Miércoles Jueves Viernes Sábado
Semana típica tráfico Amazon.com
Capacidad Provisionada
Usuarios > 500,000+
Availability Zone
Amazon
Route 53Usuario
Amazon S3
Amazon
CloudFront
Availability Zone
ELB
Balancer
DynamoDB
RDS DB Instance
Read Replica
Instancias
Web
Instancias
Web
Instancia
Web
ElastiCache RDS DB Instance
Read Replica
Instancia
WebInstancia
Web
Instancia
Web
ElastiCacheRDS DB Instance
Standby (Multi-AZ)RDS DB Instance
Active (Multi-AZ)
Usuarios >500,000+
• Monitoreo, métricas y logs
• Si no lo puede construir, ¡utilize a
terceros!
• ¿Qué dicen mis clientes?
• Extraiga el máximo rendimiento de
cada servicio/componente.
SOA en Práctica
Servicios en capas/módulos
independientes
• Administrados y Escalados
independientemente
Amazon y AWS hacen esto
constantemente
Ofrece flexibilidad y entendimiento de
cada capa/función
SOA + Desacoplar = Agilidad
¡NO REINVENTE LA RUEDA!
• Correo Electrónico
• Sistema de colas
• Transcoding
• Búsqueda
• Bases de Datos
• Monitoreo
• Métricas
• Logs
• Cómputo
Amazon
CloudSearchAmazon SQSAmazon SNS
Amazon Elastic
TranscoderAmazon SWFAmazon SES
AWS Lambda
• Confiable (Multi-AZ)
• Escalable (mensajes ilimitados)
• Seguro (autenticación)
• Sencillo (APIs simples)
Servicios Aplicación – Amazon SQS
SQS
messages
Get
Message
InstanciaPut
MessageInstancia
Amazon SNS Topic
Publish
Notification
Queue Is Subscribed
to Topic
Cómputo / Plataforma – AWS Lambda
• Código/Funciones disparado
por eventos
• NodeJS, Java y Python
• Administrado
• Escalamiento implícito S3 Bucket
Lambda
Push: Event
Notification
DynamoDB
Pull: DynamoDB
Stream
Kinesis
Pull:
Kinesis Stream
Usuarios > 1M+
Llegar al millón y más allá requerirá un poco de los previos
temas platicados:
• Multiples Zonas de Disponibilidad
• Elastic Load Balancing entre capas
• Auto Escalamiento
• Arquitectura SOA
• Entrega de Contenido Optimizada
• Usar caché para Base de Datos
• Estado de Sesiones desacoplado
Usuarios > 1M+
RDS DB Instance
Active (Multi-AZ)
Availability Zone
ELB
Balancer
RDS DB Instance
Read Replica
RDS DB Instance
Read Replica
Instancia
Web
Instancia
Web
Instancia
Web
Instancia
Web
Amazon
Route 53Usuario
Amazon S3
Amazon
CloudFront
DynamoDB
Amazon SQS
ElastiCache
Worker
Instance
Worker
Instance
Amazon
CloudWatch
Internal App
Instance
Internal App
Instance Amazon SES
Lambda
Usuarios > 5M - 10M
Potencialmente estará encontrando contensión y
problemas con el master de la base de datos.
¿Cómo resolverlo?
• Federación — Separar multiples BD por función propósito
• Sharding—Separar por rangos/grupos
• Bases de datos especializadas (NoSQL, Graph)
© 2016, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Jose Luis Padilla
Director de Proyectos
Abril 6, 2016
Caso de Éxito - IATAI
Acerca de IATAI
• Grupo empresarial integrado por compañías líderes en los sectores
como: seguros, salud, reaseguros, turismo, salud y tecnología.
• Cuenta con varias unidades de negocio sobre 4 categorías:
asistencia en viajes internacionales a clientes , un gateway de pagos, la
construcción de soluciones móviles y soluciones de comercio
electrónico.
• Cuentan con un equipo de I+D enfocado en conocer las necesidades
de sus clientes desde el estudio de los hábitos del consumidor.
IATAI necesitaba de una infraestructura segura que garantizara flexibilidad en la
expansión de servicios y soluciones al tiempo que la continuaba creciendo como
compañía.
“La razón principal era y es que IATAI es una organización dinámica y
necesitábamos que toda la oferta de servicios de TI pudiera
acompañar de manera ágil y oportuna las iniciativas de negocio.”
Luis Eduardo Tobián,
CTO
Mi reto más grande al frente del área de TI, es asegurar que la
disponibilidad de los servicios sea la que nuestros clientes
demandan. Al pensar en lo que adquirimos, yo no hablaría
solamente de servidores, sino de toda una infraestructura
con el software base y las aplicaciones para que
existiera un pleno funcionamiento de nuestros servicios,
cumpliendo con los estándares que mis clientes esperan.”
Nuestra Infraestructura
- Contamos con un modelo IaaS, dentro del cual se establecen mecanismos
bajo demanda, lo que permite a la infraestructura crecer elásticamente de
forma segura, confiable y flexible cuando se presenten picos de uso.
- Además, con un modelo de alta disponibilidad que alcanza el 99.95%
mensual, proporciona una capacidad de procesamiento de hasta 50
peticiones por segundo y posee una alta tolerancia a fallos basados en
Amazon Web Services.
- Actualmente prestamos servicios a una base de más de 3 millones de
clientes con más de 40,000 transacciones por mes.
“Claramente son la compañía que tiene más
conocimiento de los servicios que ofrece Amazon. Son
muy buenos aliados para ayudar a cumplir los objetivos de
negocio. Son asertivos y manejan bien la relación en
tiempos de respuesta.”
Luis Eduardo Tobian, CTO