Flisol 2011 alta disponibilidad y alto desempeño

78
ALTA DISPONIBILIDAD ALTO DESEMPEÑO Jan Andrés Restrepo [email protected]

Transcript of Flisol 2011 alta disponibilidad y alto desempeño

Page 1: Flisol 2011   alta disponibilidad y alto desempeño

ALTA DISPONIBILIDAD ALTO DESEMPEÑO Jan Andrés Restrepo [email protected]

Page 2: Flisol 2011   alta disponibilidad y alto desempeño

DEFINICIONES “No entiendes realmente algo a menos que seas capaz de explicárselo a tu abuela” – Albert Einstein

Page 3: Flisol 2011   alta disponibilidad y alto desempeño

Definiciones

• Que es DISPONIBILIDAD? • Que es DESEMPEÑO?

Page 4: Flisol 2011   alta disponibilidad y alto desempeño

Definiciones - Disponibilidad • Disponibilidad esta relacionado con Dispuesto • Dispuesto “Preparado para ser utilizado”

• POSIBILIDAD que ALGO esté preparado para un FIN.

• POSIBILIDAD se considerar como una métrica

• Entonces ALTA DISPONIBILIDAD que es?

Page 5: Flisol 2011   alta disponibilidad y alto desempeño

Definiciones - Desempeño • Habilidad en la realización de una actividad

•  Logro de objetivos o de tareas asignadas • Eficiencia de una maquina

• Eficiencia: Capacidad de disponer de alguien o de algo para conseguir un efecto determinado

• Entonces ALTO DESEMPEÑO que es?

Page 6: Flisol 2011   alta disponibilidad y alto desempeño

Definiciones • DISPONIBILIDAD y DESEMPEÑO se pueden considerar

como una métrica?

Si!

Page 7: Flisol 2011   alta disponibilidad y alto desempeño

Definiciones

• SERVICIOS

• De forma coloquial que es un Servicio?

• Actividad en donde buscan responder a las necesidades de un cliente

• Un servicio es intangible ……. Esto les suena?

Page 8: Flisol 2011   alta disponibilidad y alto desempeño

Definiciones - Servicio

• Y en informática a que se refiere por Servicio?

• Pues es lo mismo que lo anterior!!

• Un programa o un software presta servicios

• Pero por si solo un programa lo hace? o hay mas cosas en juego, cuales??

Page 9: Flisol 2011   alta disponibilidad y alto desempeño

Definiciones – Servicios Web

?

Page 10: Flisol 2011   alta disponibilidad y alto desempeño

Definiciones - Servicio • Entonces realmente quien presta el SERVICIO???

• Un SISTEMA con una ARQUITECTURA

• Software: • Sistemas operativos • Web Servers • RDBMS • Programas •  etc.

• Hardware: • Servidores • Procesadores • Memoria • Almacenamiento • Redes •  etc.

Page 11: Flisol 2011   alta disponibilidad y alto desempeño

CONCEPTOS Informáticos, ahora si por fin…

Page 12: Flisol 2011   alta disponibilidad y alto desempeño

Página web estática • Para que una página web estática, funcione sobre

internet que necesitamos?

• Conexión a Internet, Dirección IP, un dominio • Componentes de red • Servidor físico / virtual, con sus respectivos

componentes • Sistema operativo de red / linux, windows, bsd… • Servidor web / apache, nginx, lighttpd, IIS… • Capacidad de almacenamiento •  Falta algo?

Page 13: Flisol 2011   alta disponibilidad y alto desempeño

Página web estática - HW

StooMathiesen - http://www.flickr.com/photos/stoo57/5395413052/in/photostream/

Page 14: Flisol 2011   alta disponibilidad y alto desempeño

Página web estática •  Los anteriores componentes son requerimientos

• El software anteriormente listado tiene requerimientos, entonces nos salen “requerimientos de los requerimientos”.

•  Incrementar capacidad de Procesamiento •  Incrementar capacidad de RAM •  Incrementar capacidad de Almacenamiento

Page 15: Flisol 2011   alta disponibilidad y alto desempeño

Página web estática - HW

StooMathiesen - http://www.flickr.com/photos/stoo57/5395413052/in/photostream/

Page 16: Flisol 2011   alta disponibilidad y alto desempeño

Página web estática • Ahora la pagina web estática se pone en línea!!!

• Que pasa?

• Comienza a tener visitantes

•  Las visitas se reflejan en carga, ocupación, consumen recursos

• Que pasa si ingresa 1, 100, 1000, 10.000 usuarios?

• O Mas???

Page 17: Flisol 2011   alta disponibilidad y alto desempeño

Página web estática - Interno • Que cosas suceden internamente en este servicio?

1.  Recibir solicitud por parte del usuario • Adicionalmente se aplican: controles, verificaciones,

generación de bitácoras (logs), etc. 2.  Colocar en cola 3.  Localizar el recurso 4.  Colocar el contenido en cola 5.  Presentar o enviar el contenido

Page 18: Flisol 2011   alta disponibilidad y alto desempeño

Página web estática - HW •  Incrementar de nuevo el hardware?

StooMathiesen - http://www.flickr.com/photos/stoo57/5395413052/in/photostream/

5400 RPM 7200 RPM

10000 RPM 15000 RPM

333 Mhz 666 Mhz

1000 Mhz 1333 Mhz

2 Mbps 10 Mbps 50 Mbps

Page 19: Flisol 2011   alta disponibilidad y alto desempeño

Página web dinámica • Ahora para esa misma página, se desea que sea

“Dinámica e Interactiva” o que preste un servicio

• Que se necesita para ello??

• Se debe programar! … en que? •  PHP •  RUBY •  PYTHON •  DOT NET •  JAVA

• Base de datos •  Falta Algo?

Page 20: Flisol 2011   alta disponibilidad y alto desempeño

Página web dinámica - Interno • Adicionalmente que ocurre en este nuevo servicio?

1.  Recibir solicitud por parte del usuario •  adicionales como: controles, verificaciones, generación

de bitácoras (logs), etc. 2.  Colocar en cola 3.  Localizar el recurso 4.  Colocar el contenido en cola 5.  Presentar o enviar el contenido

Page 21: Flisol 2011   alta disponibilidad y alto desempeño

Página web dinámica - Interno • Adicionalmente que ocurre en este nuevo servicio?

1.  Recibir solicitud por parte del usuario •  adicionales como: controles, verificaciones, generación

de bitácoras (logs), etc. 2.  Colocar en cola 3.  Localizar el recurso 4.  PROCESAR – Ejecutar el programa especifico 5.  Colocar el contenido en cola 6.  Presentar o enviar el contenido

Page 22: Flisol 2011   alta disponibilidad y alto desempeño

Página web dinámica - HW • Que pasa con el hardware que tengo?

StooMathiesen - http://www.flickr.com/photos/stoo57/5395413052/in/photostream/

Page 23: Flisol 2011   alta disponibilidad y alto desempeño

Crecimiento de HW • Un buen ejemplo: Los video juegos de PC!!!

Page 24: Flisol 2011   alta disponibilidad y alto desempeño

Crecimiento de HW • Un buen ejemplo: Los video juegos de PC!!!

Page 25: Flisol 2011   alta disponibilidad y alto desempeño

Crecimiento de HW • En arquitectura de computo esto se le conoce como:

CRECIMIENTO VERTICAL

•  Tiene limite el crecimiento vertical?

El tecnológico Actual

Page 26: Flisol 2011   alta disponibilidad y alto desempeño

Algo anda Mal? • Reflexionando, algo parece estar mal?

• Que puede ser?

• El desempeño actual no es el deseado o el optimo

• Se queda corto?

Page 27: Flisol 2011   alta disponibilidad y alto desempeño

Algo anda Mal? • Cuales son las posibles razones?

u  El software base puede estar fallando u  No estará bien configurado u  No estará bien optimizado u  No es el correcto para el propósito deseado?

u  Será que nuestro programa esta mal desarrollado?

u  Será que la arquitectura seleccionada esta fallando?

Page 28: Flisol 2011   alta disponibilidad y alto desempeño

ARQUITECTURA BASICA

Page 29: Flisol 2011   alta disponibilidad y alto desempeño

Arquitectura básica

Page 30: Flisol 2011   alta disponibilidad y alto desempeño

Arquitectura básica

Page 31: Flisol 2011   alta disponibilidad y alto desempeño

Arquitectura básica

Page 32: Flisol 2011   alta disponibilidad y alto desempeño

CIFRAS

Page 33: Flisol 2011   alta disponibilidad y alto desempeño

Cifras – facebook.com

•  + de 500’000.000 de usuarios registrados (2011)

• Usuarios tienen Actividad de 20 minutos por día •  5.000’000.000 de objetos digitales compartidos por

semana

•  3.000’000.000 imágenes cargadas por mes

Page 34: Flisol 2011   alta disponibilidad y alto desempeño

Cifras – facebook.com •  250 aplicaciones poseen mas 1’000.000 de usuarios al

mes

•  80.000 aplicaciones conectadas

•  500.000 aplicaciones

•  2’000.000 desarrolladores registrados

•  150’000.000 operaciones por segundo de memcache

Page 35: Flisol 2011   alta disponibilidad y alto desempeño

Cifras – facebook.com • Miles de servidores de memcache con 10TB de

almacenamiento

•  200.000 eventos por segundo

•  20.000’000.000 de eventos por día

•  13’000.000 de queries por segundo

• Respuestas de los Query: 4ms lectura, 5ms escritura

• Picos de 38 GBps de transferencia de datos

Page 36: Flisol 2011   alta disponibilidad y alto desempeño

Cifras – facebook.com •  Lenguaje de programación base: PHP

• Base de datos inicial MYSQL

• Base de datos actual CASSANDRA

• Web server propio escrito en PHP

• Y otro montón de tecnologías usadas

• Según estimaciones poseen mas de 60.000 servidores

Page 37: Flisol 2011   alta disponibilidad y alto desempeño

Cifras – facebook.com • Según estimaciones poseen mas de 60.000 servidores

Page 38: Flisol 2011   alta disponibilidad y alto desempeño

Cifras - Google • Google, el ultimo fallo de perdida de información

• Mas de 300.000 cintas de backup LTO2 •  LTO2 (200 GB) •  Total de: 60.000.000 GB = 58.000 TB = 57 PB

Page 39: Flisol 2011   alta disponibilidad y alto desempeño

EL PROBLEMA

Page 40: Flisol 2011   alta disponibilidad y alto desempeño

Los problemas de un servicio • Cuales son los dos principales problemas que se deben

resolver para prestar un servicio en línea (eso si excluyendo la seguridad)

1.  Que el servicio siempre este ahí, que funcione, que no este por fuera!, que no se caiga!

2.  Que le quepa toda la gente!, que funcione de forma veloz!, que atienda a tiempo!, que no sea lentejo!

Page 41: Flisol 2011   alta disponibilidad y alto desempeño

Los problemas de un servicio • Que soluciona esos dos inconvenientes?

1.  Alta disponibilidad

2.  Alto desempeño

Page 42: Flisol 2011   alta disponibilidad y alto desempeño

ALTA DISPONIBILIDAD

Page 43: Flisol 2011   alta disponibilidad y alto desempeño

Alta disponibilidad

• Buscar asegurar un cierto grado absoluto de continuidad operacional durante un período de medición dado

• Esto se logra aplicando REDUNDANCIA

• Pero a un servicio se puede considerar REDUNDANCIA OPERACIONAL

Page 44: Flisol 2011   alta disponibilidad y alto desempeño

Alta disponibilidad - Redundancia • Ya antes se ha logrado redundancia pero en

componentes:

•  Fuentes redundantes • Alimentación redundante • UPS redundantes • Memoria redundante • Almacenamiento redundante • NICs redundantes

• Estos componentes poseen historial de fallas

Page 45: Flisol 2011   alta disponibilidad y alto desempeño

Alta disponibilidad - Redundancia

Page 46: Flisol 2011   alta disponibilidad y alto desempeño

Alta disponibilidad – Como? • Hasta ahora la alta REDUNDANCIA seria administrada de

forma MANUAL

• Que se requiere para que sea TRASNPARANTE o AUTOMATICA?

•  Todo debe estar UNIFICADO

• Procesos Unificados (Comunicación) • Sub servicios Unificados (Comunicación) • Almacenamiento Unificado • Hasta llegado el caso de tener la “mente compartida”

Page 47: Flisol 2011   alta disponibilidad y alto desempeño

Alta disponibilidad – Como? •  Técnicas, Tecnologías, o Herramientas

• Comunicación entre todos los actores

• Comunicar que “estamos vivos”

• Comunicar que hacemos

• Se busca comportarse como un uno solo

Page 48: Flisol 2011   alta disponibilidad y alto desempeño

Alta disponibilidad – Como? • Almacenamiento Unificado

• Se puede manejar:

• Externalizándolo • SAN (Storaga Area Network)

•  Fiber Channel •  iSCSI

• Servidor de Almacenamiento •  iSCSI •  NFS •  CIFS

Page 49: Flisol 2011   alta disponibilidad y alto desempeño

Alta disponibilidad – Como? • Almacenamiento Unificado

• Compartiéndolo • Sistemas de archivos dispersos por la RED

• Servidores independientes de sistemas de archivos.

o

•  Los mismos servidores comparten su almacenamiento

Page 50: Flisol 2011   alta disponibilidad y alto desempeño

Alta disponibilidad - Redundancia

Page 51: Flisol 2011   alta disponibilidad y alto desempeño

Alta disponibilidad – Ideal!!

Page 52: Flisol 2011   alta disponibilidad y alto desempeño

Alta Disponibilidad - Ideal • No todo es perfecto, solo algunos lo pueden hacer de

forma nativa y transparente:

•  Java (Lenguaje de programación y arquitectura) •  Tomcat (Web Server – application server) • Glassfish (Web Server – application server) •  JBOSS (Plataforma) • Dot Net • RUBY (Solo su ecosistema) • PHP + Zend (Solo su ecosistema) • PHP de facebook (servidor propio hecho en PHP) • Erlang (Solo su ecosistema)

Page 53: Flisol 2011   alta disponibilidad y alto desempeño

Alta Disponibilidad - Ideal • RDBMS que soportan ALTA DISPONIBILIDAD

MYSQL / MariaDB / Percona / Drizzle PostgreSQL

Ingres VoltDB

FrontBase SciMore Cubrid

Page 54: Flisol 2011   alta disponibilidad y alto desempeño

Alta Disponibilidad - Ideal • Base de datos NO RELACIONALES

• Estas nacen de la necesidad de almacenar CANTIDADES GIGANTESCAS DE INFORMACION

• Su característica primordial: Ser DISTRIBUIDAS

SimpleDB (Amazon) Hadoop – Hbase (facebook)

Cassandra (Facebook) FlockDB (Twitter)

Hypertable

Page 55: Flisol 2011   alta disponibilidad y alto desempeño

Alta Disponibilidad - Ideal • Base de datos NO RELACIONALES

Apache Jackrabbit CouchDB MongoDB OrientDB Terrastore RavenDB Voldemort

Sones SciDB

Page 56: Flisol 2011   alta disponibilidad y alto desempeño

Alta Disponibilidad - Ideal • Sistemas de archivos en red distribuidos (o en cluster)

Ceph dCache Diaser GFS

GlusterFS Lustre

MooseFS OCFS2 (Oracle)

OpenAFS Tahoe - LAFS

Page 57: Flisol 2011   alta disponibilidad y alto desempeño

Alta Disponibilidad – La realidad • Actualmente NO todo el FLOSS que presta servicios

online soporta nativamente la alta disponibilidad.

• Apache, es un ejemplo!!

• Pero tiene solución!!

•  La solución esta basada en el mismo ecosistema que existe alrededor del FLOSS

• El sistema operativo debe hacerlo.

Page 58: Flisol 2011   alta disponibilidad y alto desempeño

Alta Disponibilidad – La Solución • Para que nuestro servicio soporte ALTA DISPONIBILIDAD

nos toca DARLE UNA MANITO

• Esto conlleva: •  Nuevos elementos en juego / Mas componentes / Mas servicios •  Consumo de mas recursos •  Mas monitoreo •  Mas puntos de falla (posiblemente)

• Cuesta hacerlo pero su precio se paga en beneficios

Page 59: Flisol 2011   alta disponibilidad y alto desempeño

Alta Disponibilidad – La Solución • Dentro del Ecosistema FLOSS existen dos componentes:

• DRDB

•  Linux-HA / Pacemaker (OpenAIS)

• Ellos dotan al SISTEMA OPERATIVO de ALTA DISPONIBILIDAD

Page 60: Flisol 2011   alta disponibilidad y alto desempeño

Alta Disponibilidad – DRDB • DRDB, su objetivo sincronizar bloques

Page 61: Flisol 2011   alta disponibilidad y alto desempeño

Alta Disponibilidad – Linux-HA • Su objetivo entregar un conjunto de componentes que

permita la construcción de BLOQUES de computo

CLUSTERS DE ALTA DISPONIBILIDAD

• Gestiona la comunicación

• Gestiona la pertenencia (Membresía)

• Gestiona y monitorea los recursos (CRM – Cluster Resource Manager)

Page 62: Flisol 2011   alta disponibilidad y alto desempeño

Alta Disponibilidad – PaceMaker

Page 63: Flisol 2011   alta disponibilidad y alto desempeño

Alta Disponibilidad – PaceMaker

Page 64: Flisol 2011   alta disponibilidad y alto desempeño

Alta Disponibilidad – PaceMaker

Page 65: Flisol 2011   alta disponibilidad y alto desempeño

ALTO DESEMPEÑO

Page 66: Flisol 2011   alta disponibilidad y alto desempeño

Alto Desempeño • El crecimiento vertical posee un limite

•  Los recursos físicos fijan un limite en prestación del servicio

• Ejemplos: •  Cantidad de información a almacenar •  Cantidad de información a procesar •  Cantidad de información a transferir •  Cantidad de usuarios que se pueden atender

•  Los servicios deben de funcionar pero con unos tiempos de respuesta y desempeños deseados

Page 67: Flisol 2011   alta disponibilidad y alto desempeño

Alto Desempeño • Como se obtiene? • Existen dos soluciones:

1.  Revisando de nuevo que pasa al interior de nuestro Software (No hay que ser voraces)

•  Optimizando código •  Aplicando nuevas estrategias y tecnologías (NOSQL)

2.  Buscar ESCALABILIDAD •  En infraestructura base – Hardware, SO , Servicios •  Desarrollando con enfoque a Middleware / SOA

Page 68: Flisol 2011   alta disponibilidad y alto desempeño

Alto Desempeño - Escalabilidad

• El crecimiento ya sucede de forma HORIZONTAL

• Objetivo: atender MUCHOS USARIOS con CALIDAD

Page 69: Flisol 2011   alta disponibilidad y alto desempeño

Alta Desempeño – Que ocurre?

Page 70: Flisol 2011   alta disponibilidad y alto desempeño

Alto Desempeño – Solución

•  La solución esta netamente asociada a la ARQUITECTURA Seleccionada

•  Tanto de Infraestructura FISICA como LOGICA

•  Listado de Tecnologías que se pueden usar:

Page 71: Flisol 2011   alta disponibilidad y alto desempeño

Alto Desempeño – Tecnologías • Balanceadores de Carga (Load Balancers) • Despachadores • Round Robin DNS (Técnica, configuración) • CDN (Content Delivery Network) • Almacenamiento

• NAS • SAN • Sistema de archivos distribuidos

• Base de Datos NO Relacionales (NOSQL)

Page 72: Flisol 2011   alta disponibilidad y alto desempeño

Alto Desempeño – Tecnologías • Desarrollando:

• Data Partitioning (Particionado de datos) • Map Reduce (Batch parallel procesing) • Cache Engine (Cache Dinámico) DATA y WEB • Resource Pool • DBSession (Conexiones TCP son costosas de crear, se

debe reutilizar) • Calcular un resultado aproximado •  Filtrar desde la fuente • Procesos Asincrónicos (Callback y Polling) • Cambiar de lenguajes interpretados a compilados o

nativos

Page 73: Flisol 2011   alta disponibilidad y alto desempeño

Alto Desempeño – Tecnologías

Y cualquier otra cosa que sirva!!!!!

• Por eso motivo GOOGLE, FACEBOOK, TWITTER, AMAZON, NASA, MICROSOFT, etc. han estado acelerando estos cambios.

Page 74: Flisol 2011   alta disponibilidad y alto desempeño

Alto Desempeño – Tecnologías • Algunas Implementaciones en FLOSS:

• Ultra Monkey (Balanceador de carga Capa 4) • Balance (Balanceador de carga Capa 4) •  Zen Load Balancer (Balanceador de carga Capa 4)

• Estos implementan balanceo a nivel TCP, dando soporte a múltiples servicios o protocolos

Page 75: Flisol 2011   alta disponibilidad y alto desempeño

Alto Desempeño – Tecnologías • Pound (Proxy) • SQUID – Reverse Proxy • Varnish (Cacheador, Proxy Reverse) • Apache Traffic Server (gestor de trafico) • Apache, NGINX, Cherokee, Ligthttpd (Mod proxy reverse) • Apache, NGINX (Mod balanceadores de carga)

• Estos implementan balanceo a nivel HTTP, Capa 7

Page 76: Flisol 2011   alta disponibilidad y alto desempeño

Alto Desempeño – Tecnologías •  Todo el ecosistema de servidores web, frameworks,

Servidores de aplicaciones, etc de: •  PHP (Zend) •  JAVA •  PYTHON •  RUBY •  EARLANG (Nativo)

• Middleware / SOA: •  Fundación APACHE •  JBOSS •  WSO2 •  ObjectWeb

Page 77: Flisol 2011   alta disponibilidad y alto desempeño

ADICIONAL VIRTUALIZACION

Page 78: Flisol 2011   alta disponibilidad y alto desempeño

Virtualización •  La virtualización puede abstraer todo y entregar una

maquina virtual aparentemente infinitiva.

• AMAZON, han realizado pruebas de un ambiente con 10.000 Nucleos