Logo Studenta

Resumen - Lectura 3 - Appscale - OCHOA PRECIADO ENRIQUE DE JESUS

¡Estudia con miles de materiales!

Vista previa del material en texto

Facultad de Ingeniería Electromecánica 
 
Resumen 
“An Evaluation of Distributed Datastores Using 
the AppScale Cloud Platform” 
 
Bases de Datos Avanzadas 
 
Presenta 
Enrique de Jesús Ochoa Preciado 
 
Profesor 
Rosales Busquets Enrique Carlos 
Manzanillo, Col., México, 06 de septiembre de 2022 
 
 
Índice 
 
Resumen 1 
1 
Resumen 
 
La computación en la nube es una utilidad atractiva de computación paradigma 
basado en acuerdos de nivel de servicio (SLA) que está experimentando una rápida 
aceptación en el comercio sector. Los sistemas en la nube ofrecen acceso público 
de bajo costo a una gran cantidad recursos informáticos, de almacenamiento y de 
red patentados. 
Estos sistemas proporcionan aislamiento y personalización por usuario y por 
aplicación a través de una interfaz de servicio que es implementado típicamente 
usando tecnología de lenguaje de alto nivel tecnologías, API bien definidas y 
servicios web. 
Un componente clave de la mayoría de las plataformas en la nube (p. Google App 
Engine (GAE), Microsoft Azure, Force.com), e infraestructuras (por ejemplo, 
Amazon Web Services (AWS) y Eucalyptus [20]), es escalable y gestión de datos 
estructurados tolerante a fallos. Además del modelo de datos, estas ofertas (ambas 
relacional y no relacional) varían ampliamente y pueden diferir en el lenguaje de 
consulta, la topología (maestro/esclavo frente a igual a igual), la política de 
consistencia de datos, la política de replicación, las interfaces de programación y 
las implementaciones en diferentes lenguajes de programación. 
Los componentes principales de AppScale son AppController, AppServer, 
AppLoadBalancer y, la contribución de este documento, la compatibilidad con bases 
de datos conectables. 
Controlador de aplicaciones. AppController es un servidor SOAP que se ejecuta en 
todos los nodos del sistema. Un AppController conoce el diseño de la nube e inicia 
los servicios necesarios en el orden requerido. AppController puede personalizar un 
nodo con cualquier componente y servicio disponible en AppScale. Si el nodo crea 
una instancia de una base de datos que requiere archivos de configuración, 
AppController escribe los archivos en las ubicaciones correctas. El AppController 
2 
también usa iptables para permitir solo Nodos de AppScale para acceder a puertos 
de componentes. El primer AppController en el sistema juega un papel especial en 
la nube, enviando un mensaje de latido cada diez segundos a todos los nodos del 
sistema y registrando si el nodo está vivo o no. También perfila los otros nodos, 
registrando métricas como el uso de CPU y memoria para escalar dinámicamente 
la nube. 
Servidor de aplicaciones. 
El componente AppServer es el SDK de GAE de código abierto que los usuarios 
emplean para probar, depurar y generar índices de base de datos para su aplicación 
antes de cargarla en la nube de Google. Reemplazamos las implementaciones de 
API no escalables en el SDK con sistemas eficientes, distribuidos y de código 
abierto. Utilizamos las bibliotecas Python y Java disponibles para muchos de los 
servicios (por ejemplo, Memcache, Imágenes), el sistema local para otros (Correo) 
y herramientas hechas a mano para otros (Tareas). Para la API de Datastore, 
modificamos el SDK para abrir un socket y reenviar el búfer de protocolo a un 
servidor remoto (el SDK simplemente coloca/obtiene búferes de protocolo a/desde 
un archivo). Eliminamos todas las restricciones de programación y cuotas que 
Google coloca en las aplicaciones GAE que se ejecutan dentro de su nube y hemos 
agregado nuevas API, incluida una que brinda a las aplicaciones acceso a Hadoop 
Streaming para el cálculo de MapReduce definido por el usuario. 
AppScale automatiza la implementación de tecnologías de bases de datos 
distribuidas. Para habilitar esto, lanzamos AppScale como una imagen del sistema 
operativo que los usuarios pueden crear instancias directamente sobre tecnologías 
de virtualización sin ninguna configuración o implementación manual. Esto 
proporciona una funcionalidad similar a la de Hadoop-on-Demand (HOD) [11] para 
cada almacén de datos. AppScale genera automáticamente todos los archivos de 
configuración necesarios, los argumentos de la línea de comandos y las variables 
de entorno. Además, AppScale inicia los servicios necesarios para cada almacén 
de datos en el orden correcto. Esto generalmente requiere cierta coordinación entre 
los AppControllers en el sistema, ya que, aunque algunos almacenes de datos se 
3 
ejecutan en una configuración de igual a igual, un igual en el sistema siempre debe 
iniciarse primero y permite que los otros iguales se localicen fácilmente entre sí. en 
el sistema y gestionar los datos. 
Existen diferentes sistemas distribuidos como: 
- Cassandra 
- Hbase 
- Hypertable 
- MemcacheDB 
- MongoDB 
- Voldemort 
- MySQL 
Las opciones de los sistemas distribuidos o bases de datos distribuidas siempre 
tienen que ser tomadas a consideración de cada proyecto de software y las 
necesidades que este tenga. 
Para evaluar los diferentes almacenes de datos, usamos Active Cloud DB [2], una 
aplicación de Google App Engine que expone una API REST a las operaciones 
primitivas de la API de Datastore. Luego medimos el tiempo de respuesta de 
extremo a extremo (tiempo de ida y vuelta hacia/desde el almacén de datos a través 
del AppServer).

Continuar navegando