Mostrando entradas con la etiqueta web services. Mostrar todas las entradas
Mostrando entradas con la etiqueta web services. Mostrar todas las entradas

05 noviembre 2016

¿Hay vida más allá de Oracle? Ecosistema de Themyscira: Amazon Web Servicies

Entre historia y mito

Themyscira (Θεμίσκυρα) fue una antigua ciudad griega, emplazada a corta distancia de la costa sur del mar Negro, se ha recuperado en la modernidad para los cómics de Wonder Woman (publicados por DC Comics), como capital de Isla Paraíso, lugar escondido y protegido por una barrera mística caótica que impide que el mundo del Hombre penetre en ellas sin permiso y reino de las Amazonas.


Amazon Web Services: AWS
Adentrémonos en esta isla paraíso que ha revolucionado la forma de desarrollar aplicaciones y diseñar arquitecturas. 



Empecemos describiendo cada uno de los servicios que Amazon nos ofrece:
Amazon API Gateway.

Amazon API Gateway es un servicio totalmente administrado que facilita a los desarrolladores la creación, la publicación, el mantenimiento, la monitorización y la protección de API a cualquier escala. Con tan solo unos clics en la consola de administración de AWS, puede crear un API que haga las veces de puerta delantera para que las aplicaciones obtengan acceso a datos, lógica de negocio o funcionalidades desde sus servicios de back-end, como cargas de trabajo ejecutadas en Amazon Elastic Compute Cloud (Amazon EC2), código ejecutado en AWS Lambda o cualquier aplicación web. 



Amazon API Gateway administra todas las tareas involucradas en la aceptación y el proceso de llamadas de API simultáneas, entre ellas:
  • La administración del tráfico
  • El control de autorizaciones y acceso
  • La monitorización
  • La administración de la versión de API. 

AWS Lambda functions


AWS Lambda es un servicio de computación sin servidores que ejecuta el código como respuesta a eventos y administra automáticamente los recursos de computación subyacentes. Puede usar AWS Lambda para ampliar otros productos de AWS con lógica personalizada o puede crear sus propios servicios back-end:
  • Administración de la seguridad. 
  • Administración del desempeño. 
  • El escalado de AWS. 

AWS Lambda puede ejecutar código automáticamente en respuesta a varios eventos, como la modificación de objetos en buckets de Amazon S3 o la actualización de tablas en Amazon DynamoDB.

Lambda ejecuta el código en una infraestructura informática de alta disponibilidad y ejecuta la administración integral de los recursos informáticos, incluido el mantenimiento del servidor y del sistema operativo, el aprovisionamiento de capacidad y el escalado automático, la implementación de parches de seguridad y código, así como la monitorización y los registros. Lo único que tiene que hacer es proporcionar el código.


Amazon S3 buckets.

Amazon S3 es almacenamiento para Internet. Es un servicio de almacenamiento sencillo que ofrece a los desarrolladores de software una infraestructura de almacenamiento de datos de gran escalabilidad, fiable y de baja latencia con costos muy bajos.

Una infraestructura de almacenamiento de datos escalable y sofisticada como la de Amazon no estaba al alcance de los desarrolladores pequeños. Amazon S3 permite a cualquier desarrollador aprovechar los beneficios propios de Amazon de escala masiva sin una inversión inicial y sin poner en riesgo el desempeño. Ahora los desarrolladores pueden innovar sabiendo que, sin importar el éxito que alcancen sus negocios, será asequible y sencillo garantizar que siempre se pueda obtener acceso a sus datos con rapidez, que siempre estén disponibles y que estén seguros.

El volumen total de datos y el número de objetos que puede almacenar son ilimitados. El tamaño de los objetos individuales de Amazon S3 puede variar entre un mínimo de 0 bytes y un máximo de 5 terabytes. El objeto más grande que se puede cargar en un solo PUT es de 5 gigabytes. Para objetos de más de 100 megabytes, los clientes deben plantearse el uso de la capacidad de carga multiparte.

Amazon S3 es un sencillo almacenamiento de objetos basado en claves. Cuando almacena datos, asigna una clave de objeto única que puede utilizarse posteriormente para recuperar los datos. Las claves pueden ser cualquier cadena, y pueden establecerse de forma que imiten atributos jerárquicos.

Amazon S3 ofrece una sencilla interfaz de servicios web REST basada en estándares, que está diseñada para funcionar con cualquier conjunto de herramientas de desarrollo basado en Internet. Las operaciones se han hecho sencillas de forma intencionada para facilitar la tarea de adición de nuevos protocolos de distribución y capas funcionales.

Amazon DynamoDB non-relational database
DynamoDB permite el almacenamiento, la realización de consultas y la actualización de documentos. Mediante el uso de AWS SDK, puede escribir aplicaciones que almacenen los documentos JSON directamente en tablas de Amazon DynamoDB. Esta función reduce la cantidad de código nuevo que ha de escribirse para insertar, actualizar y recuperar documentos JSON y realizar operaciones potentes en la base de datos, como consultas JSON anidadas, que pueden efectuarse con tan solo unas líneas de código.

Amazon DynamoDB soporta estructuras de datos de valor de clave. Cada elemento (fila) constituye una pareja de valor de clave, en la que la clave principal es el único atributo necesario para los elementos de la tabla e identifica a cada uno de ellos. DynamoDB no contiene esquemas. Cada elemento puede poseer cualquier número de atributos (columnas). Además de consultar la clave principal, puede consultar atributos clave no principales utilizando los índices secundarios globales e índices secundarios locales.



Amazon DynamoDB ofrece un desempeño y escalado del almacenamiento perfectos mediante el API y la consola de administración de AWS. Prácticamente no existen límites en cuanto al rendimiento o almacenamiento que se pueden solicitar en un momento determinado.

Amazon DynamoDB ofrece alta disponibilidad con replicación de datos automática y sincrónica en tres instalaciones incluidas dentro de una misma región. De este modo, protege sus datos ante posibles errores en máquinas individuales o en las instalaciones.

Para los que nos gusta andar husmeando con tecnología hay una versión descargable  de Amazon DynamoDB aquí.

Amazon DynamoDB se integra con AWS Lambda para proporcionar activadores. Mediante los activadores, puede ejecutar automáticamente una función personalizada que detecte los cambios a nivel de elemento en una tabla de DynamoDB. Son nuetros viejos trigger de bases de datos relacionales

Existe una consola de administración de AWS para DynamoDB le permite crear, actualizar, eliminar y consultar tablas, ajustar el desempeño y definir alarmas con solo unos clics del mouse. Además, DynamoDB soporta una amplia funcionalidad con un número reducido de API. 
Amazon Cognito

Amazon Cognito le permite agregar el registro y el inicio de sesión de forma sencilla a sus aplicaciones web y móviles. Con Amazon Cognito, también tiene las opciones de autenticar a los usuarios a través de proveedores de identidad social, como Facebook, Twitter o Amazon, con soluciones de identidad SAML o a través de su propio sistema de identidad (IBM Tivoli, Oracle Identity Manager, ...). Además, Amazon Cognito le permite guardar datos de forma local en los dispositivos de los usuarios, lo que permite que sus aplicaciones funcionen incluso cuando los dispositivos están fuera de línea. A continuación, puede sincronizar los datos entre los distintos dispositivos de los usuarios para que disfruten de una experiencia uniforme con las aplicaciones independientemente del dispositivo que utilicen.