Ce diaporama a bien été signalé.
Le téléchargement de votre SlideShare est en cours. ×

Flisol 2011 alta disponibilidad y alto desempeño

Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Prochain SlideShare
La Libertad
La Libertad
Chargement dans…3
×

Consultez-les par la suite

1 sur 78 Publicité

Plus De Contenu Connexe

Similaire à Flisol 2011 alta disponibilidad y alto desempeño (20)

Publicité

Plus récents (20)

Flisol 2011 alta disponibilidad y alto desempeño

  1. 1. ALTA DISPONIBILIDAD ALTO DESEMPEÑO Jan Andrés Restrepo crio_@hotmail.com
  2. 2. DEFINICIONES “No entiendes realmente algo a menos que seas capaz de explicárselo a tu abuela” – Albert Einstein
  3. 3. Definiciones •  Que es DISPONIBILIDAD? •  Que es DESEMPEÑO?
  4. 4. 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?
  5. 5. 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?
  6. 6. Definiciones •  DISPONIBILIDAD y DESEMPEÑO se pueden considerar como una métrica? Si!
  7. 7. 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?
  8. 8. 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??
  9. 9. Definiciones – Servicios Web ?
  10. 10. Definiciones - Servicio •  Entonces realmente quien presta el SERVICIO??? •  Un SISTEMA con una ARQUITECTURA •  Software: •  Hardware: •  Sistemas operativos •  Servidores •  Web Servers •  Procesadores •  RDBMS •  Memoria •  Programas •  Almacenamiento •  etc. •  Redes •  etc.
  11. 11. CONCEPTOS Informáticos, ahora si por fin…
  12. 12. 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?
  13. 13. Página web estática - HW StooMathiesen - http://www.flickr.com/photos/stoo57/5395413052/in/photostream/
  14. 14. 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
  15. 15. Página web estática - HW StooMathiesen - http://www.flickr.com/photos/stoo57/5395413052/in/photostream/
  16. 16. 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???
  17. 17. 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
  18. 18. Página web estática - HW •  Incrementar de nuevo el hardware? 333 Mhz 666 Mhz 5400 RPM 1000 Mhz 7200 RPM 1333 Mhz 10000 RPM 15000 RPM 2 Mbps 10 Mbps 50 Mbps StooMathiesen - http://www.flickr.com/photos/stoo57/5395413052/in/photostream/
  19. 19. 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?
  20. 20. 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
  21. 21. 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
  22. 22. Página web dinámica - HW •  Que pasa con el hardware que tengo? StooMathiesen - http://www.flickr.com/photos/stoo57/5395413052/in/photostream/
  23. 23. Crecimiento de HW •  Un buen ejemplo: Los video juegos de PC!!!
  24. 24. Crecimiento de HW •  Un buen ejemplo: Los video juegos de PC!!!
  25. 25. Crecimiento de HW •  En arquitectura de computo esto se le conoce como: CRECIMIENTO VERTICAL •  Tiene limite el crecimiento vertical? El tecnológico Actual
  26. 26. 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?
  27. 27. 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?
  28. 28. ARQUITECTURA BASICA
  29. 29. Arquitectura básica
  30. 30. Arquitectura básica
  31. 31. Arquitectura básica
  32. 32. CIFRAS
  33. 33. 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
  34. 34. 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
  35. 35. 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
  36. 36. 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
  37. 37. Cifras – facebook.com •  Según estimaciones poseen mas de 60.000 servidores
  38. 38. 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
  39. 39. EL PROBLEMA
  40. 40. 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!
  41. 41. Los problemas de un servicio •  Que soluciona esos dos inconvenientes? 1.  Alta disponibilidad 2.  Alto desempeño
  42. 42. ALTA DISPONIBILIDAD
  43. 43. 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
  44. 44. 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
  45. 45. Alta disponibilidad - Redundancia
  46. 46. 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”
  47. 47. 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
  48. 48. Alta disponibilidad – Como? •  Almacenamiento Unificado •  Se puede manejar: •  Externalizándolo •  SAN (Storaga Area Network) •  Fiber Channel •  iSCSI •  Servidor de Almacenamiento •  iSCSI •  NFS •  CIFS
  49. 49. 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
  50. 50. Alta disponibilidad - Redundancia
  51. 51. Alta disponibilidad – Ideal!!
  52. 52. 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)
  53. 53. Alta Disponibilidad - Ideal •  RDBMS que soportan ALTA DISPONIBILIDAD MYSQL / MariaDB / Percona / Drizzle PostgreSQL Ingres VoltDB FrontBase SciMore Cubrid
  54. 54. 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
  55. 55. Alta Disponibilidad - Ideal •  Base de datos NO RELACIONALES Apache Jackrabbit CouchDB MongoDB OrientDB Terrastore RavenDB Voldemort Sones SciDB
  56. 56. Alta Disponibilidad - Ideal •  Sistemas de archivos en red distribuidos (o en cluster) Ceph dCache Diaser GFS GlusterFS Lustre MooseFS OCFS2 (Oracle) OpenAFS Tahoe - LAFS
  57. 57. 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.
  58. 58. 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
  59. 59. 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
  60. 60. Alta Disponibilidad – DRDB •  DRDB, su objetivo sincronizar bloques
  61. 61. 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)
  62. 62. Alta Disponibilidad – PaceMaker
  63. 63. Alta Disponibilidad – PaceMaker
  64. 64. Alta Disponibilidad – PaceMaker
  65. 65. ALTO DESEMPEÑO
  66. 66. 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
  67. 67. 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
  68. 68. Alto Desempeño - Escalabilidad •  El crecimiento ya sucede de forma HORIZONTAL •  Objetivo: atender MUCHOS USARIOS con CALIDAD
  69. 69. Alta Desempeño – Que ocurre?
  70. 70. 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:
  71. 71. 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)
  72. 72. 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
  73. 73. 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.
  74. 74. 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
  75. 75. 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
  76. 76. 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
  77. 77. ADICIONAL VIRTUALIZACION
  78. 78. 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

×