Cloud Computing Flashcards
Definir Cloud Computing
Modelo para permitir el acceso ubicuo (desde cualquier lado) a un conjunto de recursos computacionales configurables que son rapidamente provistos
Caracteristicas del Cloud Computing
- On demand
- Broad network access
- Resource pooling
- Rapid elasticity
- pay as you go
- measured service
- Multitenancy: una instancia del software sirve para multilpes consumidores y cada uno de estos esta aislado del otro
- Resilency: hay redundancia de recursos a lo largo de desitintas distribuciones fisicas
Cuales son los 3 tipos de planificacion de la capacidad?
- Lead Strategy: anticiparse a la demanda
- Lag Strategy: cuando un recurso alcanza su maximo uso
- Match Strategy: pequeños incrementos/decrementos acompañando la demanda
Con los primeros 2 se puede tener over-provisioning o under-provisioning
Cules son los 3 Deployment Models?
- Public Cloud
- Private Cloud
- Hybrid Cloud
Cuales son las cosas favorables de Cloud?
- Costos menores
- Abstraccion de la infra
- Reduccion de inversiones upfront
- Elasticity/Availability/Scalability
Cuales son las cosas desfavorables de Cloud?
- Seguridad (tamb depende del provedor, no solo de nosotros)
- Menor control que on premise
- Cuestiones legales
- Portabilidad baja entre distintos provedores de cloud
Nombrar y explicar los estilos comunes de arquitectura en Cloud
- N tier: las tiers son capas separadas fisicamente y cada uno de ellas puede escalar horizontalmente
- Web-Queue-Worker: llegan mensajes desde la web que se encolan en una cola y de ahi los va sacando un wrker y procesando para desp responder
- Event Driven
- Microservicios: Son un enfoque arquitectonico en el que una aplicacion monolıtica se divide en servicios mas pequenos, autonomos y desacoplados, cada uno encargado de una funcion o area funcional especıfica de la empresa. EStos microservicios se comunican entre APIs
Nombrar los 3 delivery models
- IaaS
- PaaS
- SaaS
Cuales son los patrones de uso del Cloud Computing?
- Queue Based Load Leveling
- Auto Scaling
- Health Endpoint
- Competing Consumers
- Priority Queue
- Throttling
- Retry
- Circuit Breaker
- Sharding
Explicar Auto-Scaling
Disponer un proceso de asignacion dinamica de recursos para implementar ‘match strategy’.
Se pueden usar replas para ecentos conocidos como reglas para reaccionar a eventos de ambiente.
Esto favorece a la Performance, Scalability, Elasticity.
Explicar Queue Based Load Leveling
Consiste en introducir una cola de mensahjes, usualmente FIFO, entre los clientes del servicio y el servicio, actuando como buffer almacenando temporalmente los mensajes antes de que el servicio los procese.
La cola asegura que el mensaje haya sido entregado al menos una vez.
La cant de colas puede ser configurable segun la demanda y es solo para una comunicacion unidireccional. Si se quisiese dar una respuesta, este patron por si solo no alcanza.
Explicar competing cosumers
Multiples componentes consumers procesan mensajes de multilples producers de forma concurrente. Todos los producers publican en una cola de donde el pool de consumers van sacando mensajes.
Beneficios:
- Procesamiento concurrente
- La cola garantiza al entrega
- Escalabilidad y disponibilidad
- Sin coordinacion
Este patron favorece la availability, performance y scalability
Explicar priority queue
Se puede usar una cola de prioridad para priorizar solicitudes de clientes particulares. Los mensajes se ordenan en la cola segun su prioridad.
Esto se prodria implementar tambien con varias colas (una por cada prioridad) y varios grupos de workers que se dedican a agarrar de alguna de esas colas o con varias colas y que los workers se vayan fijando si en las de mas prioridad no hay mensajes entonces se puede usar las de menos prioridad
Explicar Health Endpoint Monitoring
Sirver para verificar si un componente esta cumpliendo con el nivel requerido de availability y performance. Se implementa un punto de control que se puede encontrar en cualquier lado que proporciona info redundante sobre cierto componente/s.
Esto favorece a la Performance, Availability.
Explicar el patron Retry
Sirve para manejar fallas temporales. Si hay una de estas se hace cierta cantidad de retries cada cierto tiempo.
Los reintentos son menos peligrosos si la operacion es idempotente.
Esto favorece a la Availability.