CLOUD COMPUTING

CONTRATOS DE SERVICIOS CLOUD

Antes incluso de aceptar los SLA para los servicios que incluyamos en el contrato con el o los proveedores, debemos tener muy claros una serie de puntos antes de firmar el contrato.

Hay determinados aspectos legales clave que pueden impedirnos –no técnicamente, sí legalmente- hacer uso de determinados servicios de un proveedor, bien sea por garantías mínimas que legalmente deben cumplir dependiendo del tipo de servicio – datos, ubicuidad, backup, auditoría…- o bien sea por restricciones propias de nuestro negocio o sector.

La Guía para Clientes que contraten Servicios de “Cloud Computing”, de la Agencia Española de Protección de Datos, es lectura casi obligada antes de firmar ningún contrato de este tipo, y la recomendación es dejar en expertos legales la comprobación de todos los puntos, entre los cuales, los más importantes son:

Portabilidad de la Información

Debemos asegurarnos que toda la información, datos y software propio que montemos en un servicio IaaS, PaaS y SaaS sean portables. Es decir, que el propio servicio nos provea una herramienta para poder descargar o llevar a otro proveedor toda la información propia, en el formato original que nosotros hemos proporcionado en caso de software implantado sobre IaaS o PaaS, y en formatos estándar en caso de tratarse de datos sobre servicios SaaS, Storage, etc.

Localización del proceso y de los datos

El proveedor del servicio debe garantizarnos la ubicación física donde residen los procesos que vayamos a hacer uso, así como la ubicación física de los datos que guardemos o generemos desde sus sistemas o almacenemos en sus sistemas, y si existe tránsito internacional de los mismos fuera del Espacio Económico Europeo (Unión Européa, Islandia, Liechtenstein y Noruega).

Es conveniente pedir un certificado o declaración jurada a este respecto, puesto que, si se tratan de datos de Carácter Personal, es responsabilidad del cliente del servicio el cumplimiento de toda la normativa vigente y de pedir y garantizar las medidas de seguridad y cumplimiento.

Recordemos que en caso de que almacenemos datos de carácter personal en un proveedor cloud, debemos solicitar el permiso a nuestro usuario de cesión de datos, especificando el fin de esta cesión.

Confidencialidad de los Datos

El proveedor del servicio de cloud debe comprometerse a garantizar la confidencialidad utilizando los datos sólo para los servicios contratados. Asimismo, debe comprometerse a dar instrucciones al personal que depende de él para que mantenga la confidencialidad.

Garantía Contractual

La contratación de servicios de cloud computing se realizará a través de un contrato de prestación de servicios.

Resulta imprescindible que ese contrato incorpore entre sus cláusulas las garantías a las que obliga la Ley Orgánica de Protección de Datos.

Atendiendo a la relación contractual establecida entre el cliente y el proveedor de la nube, también este contrato se puede clasificar como negociado o de adhesión. Podemos decir que un contrato entre el cliente y el proveedor es negociado si el primero –el cliente- tiene, o se le ofrece, la capacidad para fijar las condiciones de contratación en función del tipo de datos que se van a procesar, las medidas de seguridad exigibles, el esquema de subcontratación, la localización de los datos, la portabilidad de los mismos y cualquier otro aspecto de adecuación a la regulación española y a las restricciones que esta regulación implica.

Clasificación de contratos:

Negociado:

Capacidad de fijar condiciones de contratación. De adhesión:

Cláusulas contractuales cerradas, con condiciones iguales para todos los clientes del proveedor.

En la mayoría de los casos, sin embargo, lo que se oferta son contratos de adhesión, constituidos por cláusulas contractuales cerradas, en las que el proveedor de cloud fija las condiciones con un contrato tipo igual para todos sus clientes, sin que el usuario tenga ninguna opción para negociar sus términos. Este último caso es el más común, sobre todo cuando se encuentra el cliente en una situación de desequilibrio (p.ej.: una pyme frente a un gran proveedor), aunque hay que tener en cuenta que esto no eximirá, a ninguno de los dos, de las responsabilidades que determina la LOPD.

INGENIERÍA Y SERVICIOS IT, SEGURIDAD

NORMA ISO/IEC 27017 – CONTROLES DE SEGURIDAD PARA SERVICIOS CLOUD

NORMA ISO/IEC 27017 – CONTROLES DE SEGURIDAD PARA SERVICIOS CLOUD. Tecnología de la información – Técnicas de seguridad – Código de prácticas para los controles de seguridad de la información en base a la norma ISO/IEC 27002 para los servicios en la nube.

Utilizada conjuntamente con la familia de normas ISO 27001, la norma ISO/IEC 27017 proporciona controles para proveedores y clientes de servicios en la nube. A diferencia de muchas otras normas relacionadas con la tecnología, ISO/IEC 27017 aclara las funciones y responsabilidades de ambas partes para ayudar a que los servicios en la nube sean tan seguros como el resto de los datos incluidos en un sistema de gestión de la información certificado.

La norma proporciona una guía con 37 controles en la nube basados en ISO/IEC 27002, pero también ofrece siete nuevos controles cloud que tratan los siguientes puntos:

  • Quién es responsable de lo que ocurre entre el proveedor del servicio cloud y el cliente cloud
  • La eliminación/devolución de activos cuando un contrato se resuelve
  • Protección y separación del entorno virtual del cliente
  • Configuración de una máquina virtual
  • Operaciones y procedimientos administrativos relacionados con el entorno cloud
  • Seguimiento de la actividad de clientes en la nube
  • Alineación del entorno de la red virtual y cloud

https://www.isotools.org/2017/03/16/iso-27017-controles-seguridad-servicios-la-nube/

CLOUD COMPUTING, REDES

GOOGLE CLOUD INTERCONNECT

intecGoogle admite varias maneras de conectar la infraestructura a Google Cloud Platform. Google Cloud Dedicated Interconnect (Interconexión dedicada) proporciona conexiones físicas directas entre su red local y la red de Google. Dedicated Interconnect permite transferir grandes cantidades de datos entre redes, que pueden ser más rentables que comprar ancho de banda adicional a través de Internet público.

¿Cómo funciona la interconexión dedicada?

Para la Interconexión Dedicada, proporciona una conexión cruzada entre la red de Google y su propio enrutador en una ubicación común. El siguiente ejemplo muestra una única conexión de interconexión dedicada entre una red GCP VPC y una red local:

graf.png

Para esta configuración básica, se proporciona una conexión cruzada entre la red de Google y el enrutador local en una instalación de colocación común. Esta conexión cruzada es una conexión de Interconexión Dedicada.

Para intercambiar rutas, se configura una sesión de BGP a través de la interconexión entre el enrutador de la nube y el enrutador local. Entonces, el tráfico de la red local puede llegar a la red VPC y viceversa.

Las siguientes definiciones explican los diferentes elementos que se introdujeron en la configuración básica.

  • Interconectar: La interconexión representa una conexión física específica entre Google y una red local. La interconexión existe en una instalación de colocación donde se encuentran la red local y la red de Google. Una sola interconexión puede ser un solo enlace 10G o un paquete de enlace, conectado a un solo enrutador de Google. Si tiene múltiples conexiones a Google en diferentes ubicaciones o en diferentes dispositivos, debe crear interconexiones separadas.
  • VLAN adjunto (también conocido como InterconnectAttachment): Un archivo adjunto VLAN es un túnel punto a punto virtual entre una interconexión y una región única en una red VPC. El archivo adjunto asigna una VLAN 802.1q específica en la interconexión. Use los archivos adjuntos VLAN para conectar una interconexión con una red VPC específica. Más específicamente, la conexión VLAN conecta una interconexión con un Enrutador Cloud en una red VPC.
  • Ubicación de interconexión: La ubicación de interconexión es la instalación de colocación donde se proporciona la interconexión. Aquí es donde su equipo de enrutamiento local se encuentra con la ventaja de Google. Cada ubicación de interconexión admite un subconjunto de regiones de Google Cloud Platform (GCP). Cuando crea el archivo adjunto VLAN, debe conectar la interconexión con un enrutador de nube en una de esas regiones.
  • Router de nube: El Cloud Router se usa para intercambiar rutas dinámicamente entre la red VPC y la red local a través de BGP. Establece una sesión BGP entre el enrutador local y Cloud Router. Toda la información para la sesión de BGP es provista por el archivo adjunto VLAN, como las direcciones IP pares y la identificación de VLAN. Cloud Router anuncia subredes en la red VPC y propaga rutas aprendidas a esas subredes. Para obtener más información acerca de Cloud Router, consulte la descripción general en la documentación de Cloud Router.

BASES DE DATOS, CLOUD COMPUTING

GOOGLE CLOUD DATASTORE

Cloud Datastore es un almacén de datos de NoSQL sin esquema en la nube de Google.

datastore

  • Las aplicaciones utilizan Datastore para consultar los datos mediante consultas del tipo SQL compatibles con filtros y con la ordenación de elementos.
  • Datastore replica los datos en varios centros de datos, lo que reporta un alto nivel de disponibilidad de lectura/escritura.
  • Datastore también ofrece capacidad de ajuste automático del tamaño, mayor coherencia para lecturas y consultas de antecedentes, coherencia eventual para el resto de consultas, transacciones atómicas y ningún tiempo de inactividad planificado.

https://support.google.com/cloud/answer/6250992?hl=es

CLOUD COMPUTING, GIS

GOOGLE MAPS PLATFORM

Es la integración de APIs enfocadas al uso de la información geográfica, cuenta con un 99% de cobertura del mundo y está construido con datos exhaustivos y confiables de más de 200 países y territorios.MAP.png

Ya que está soportada en la infraestructura Cloud, esta plataforma y todos los proyectos asociados crecerán y se adaptarán según las necesidades. Permite la ubicación exacta de un dispositivo basada en las torres de Wi-Fi o de telefonía celular, así como la Geocodificación, o sea que convierte direcciones en coordenadas geográficas o a la inversa.

Está conformado por los siguientes productos:

  • Maps. Muéstrales a los usuarios el mundo real con imágenes de Street View y mapas personalizados.
  • Routes. Crea rutas eficientes para bajar los costos y mejorar las experiencias de los clientes
  • Places. Proporciona nombres, direcciones y otros detalles interesantes, como clasificaciones, opiniones o información de contacto para más de 100 millones de lugares.
CLOUD COMPUTING

BIG QUERY

BigQuery es el almacén de datos empresarial de bajo costo, altamente escalable y sin servidores de Google, diseñado para hacer que los procesos de análisis de datos sean productivos. Debido a que no se debe administrar ninguna infraestructura, se puede enfocar en el análisis de datos para encontrar información valiosa con el lenguaje SQL.

BigQuery permite analizar todos los datos, mediante la creación de un depósito de datos lógico sobre el almacenamiento de columnas administrado, así como los datos del almacenamiento de objetos y las hojas de cálculo. BigQuery facilita el intercambio de información valiosa de manera segura dentro de la organización y más, como conjuntos de datos, consultas, informes y hojas de cálculo. BigQuery permite a las organizaciones capturar y analizar datos en tiempo real con su potente capacidad para la transferencia de transmisiones para que tu información valiosa esté siempre actualizada.

La API de inserción de transmisión de alta velocidad de BigQuery proporciona una base poderosa para el análisis en tiempo real. BigQuery permite analizar lo que está ocurriendo ahora haciendo que tus últimos datos comerciales estén disponibles de inmediato para el análisis. La replicación gratuita de datos y cómputo en múltiples ubicaciones significa que los datos están disponibles para consultarlos incluso en el caso de modos de falla extrema. BigQuery ofrece de manera transparente y automática alta disponibilidad, y almacenamiento duradero y replicado sin cargos extra ni configuración adicional.

BigQuery admite un dialecto SQL estándar que cumple con ANSI:2011, lo que reduce la necesidad de reescritura de código y te permite aprovechar las funciones avanzadas de SQL. BigQuery proporciona controladores ODBC y JDBC gratuitos para garantizar que tus aplicaciones actuales puedan interactuar con el potente motor de BigQuery.

BIG.png

BASES DE DATOS, CLOUD COMPUTING

FIREBASE REALTIME DATABASE

Almacena y sincroniza datos con la base de datos NoSQL alojada en la nube. Los datos se sincronizan con todos los clientes en tiempo real y se mantienen disponibles cuando la app no tiene conexión.

social.png

irebase Realtime Database es una base de datos alojada en la nube. Los datos se almacenan en formato JSON y se sincronizan en tiempo real con cada cliente conectado. Cuando se compila apps multiplataforma con los SDK de iOS, Android y JavaScript, todos los clientes comparten una instancia de Realtime Database y reciben actualizaciones automáticamente con los datos más recientes.

Firebase Realtime Database permite compilar aplicaciones ricas y colaborativas, ya que permite el acceso seguro a la base de datos directamente desde el código del cliente. Los datos persisten de forma local. Además, incluso cuando no hay conexión, se siguen activando los eventos en tiempo real, lo que proporciona una experiencia adaptable al usuario final. Cuando el dispositivo vuelve a conectarse, Realtime Database sincroniza los cambios de los datos locales con las actualizaciones remotas que ocurrieron mientras el cliente estuvo sin conexión, lo que combina los conflictos de forma automática.

Realtime Database proporciona un lenguaje flexible de reglas basadas en expresiones, llamado reglas de seguridad de Firebase Realtime Database, para definir cómo se deberían estructurar los datos y en qué momento se pueden leer o escribir. Integrar Firebase Authentication permite que los programadores definan quién tiene acceso a qué datos y cómo acceden a ellos.

Realtime Database es una base de datos NoSQL y, como tal, tiene diferentes optimizaciones y funcionalidades en comparación con una base de datos relacional. La API de Realtime Database está diseñada para permitir solo operaciones que se puedan ejecutar rápidamente. Eso permite crear una excelente experiencia de tiempo real que puede servir a millones de usuarios sin afectar la capacidad de respuesta. Es importante pensar cómo deben acceder a los datos los usuarios y estructurarlos según corresponda.

BASES DE DATOS, CLOUD COMPUTING

CLOUD SQL

Cloud SQL es un servicio de base de datos totalmente administrado que facilita la  configuración, el mantenimiento y la administración de bases de datos relacionales de PostgreSQL BETA y MySQL en la nube. Cloud SQL ofrece alto rendimiento, escalabilidad y comodidad. Cloud SQL se aloja en Google Cloud Platform y proporciona una infraestructura de base de datos para aplicaciones que se ejecutan en cualquier ubicación.google-cloud-sql

Características De Cloud Sql:

  • Escalabilidad: Ajusta la escalabilidad fácilmente hasta un máximo de 64 núcleos de procesador y más de 400 GB de RAM. Para realizar un escalamiento horizontal rápido, puedes agregar réplicas de lectura.
  • Alto rendimiento: Diseñado para realizar un escalamiento desde cargas de trabajo de poco desarrollo hasta cargas de trabajo de rendimiento intensivo.
  • Integrado: Las instancias de Cloud SQL son accesibles desde casi cualquier aplicación y desde cualquier lugar. Puedes conectarte fácilmente desde App Engine, Compute Engine y tu puesto de trabajo.
  • Administración total: Google se encarga de la replicación, la administración y las copias de seguridad para que puedas aprovechar mejor el tiempo.
  • Seguridad: Los datos de Cloud SQL se encriptan cuando se incorporan a las redes internas de Google y cuando se almacenan en tablas de bases de datos, en archivos temporales y en copias de seguridad. Todas las instancias de Cloud SQL incluyen un firewall de red, lo que te permite controlar el acceso de red a tu instancia de base de datos.
  • API estándar. Implementa y desarrolla más rápidamente en la nube, ya que Cloud SQL ofrece bases de datos estándar de MySQL y PostgreSQL BETA. Usa controladores de conexión estándar y herramientas de migración integradas para comenzar rápido.
  • Protección de la disponibilidad. La migración en vivo de instancias de Compute Engine permite que sea transparente el mantenimiento de nuestra infraestructura subyacente. En el caso de que falle una zona, la configuración de alta disponibilidad protege los datos y comienza a ejecutar los sistemas en otra zona rápidamente.
CLOUD COMPUTING

GOOGLE COMPUTE ENGINE

Google Compute Engine suministra máquinas virtuales ubicadas en los innovadores centros de datos de Google y su red mundial de fibra óptica. Las herramientas y el soporte para flujos de trabajo de Compute Engine hacen posible el escalamiento de instancias únicas a una red global de procesamiento de nube con balanceo de cargas.

Las VM de Compute Engine se inician rápidamente, incluyen almacenamiento en discos persistentes y brindan un rendimiento uniforme. Los servidores virtuales están disponibles en muchas configuraciones, incluidos tamaños predefinidos o la opción de crear tipos personalizados de máquinas optimizados según tus necesidades específicas. Los precios flexibles y los descuentos automáticos por uso continuo convierten a Compute Engine en el líder en términos de precio y rendimiento.Google_Compute_Engine_logo.png

Las VM de Compute Engine se inician con rapidez y brindan un rendimiento sistemáticamente alto. Compute Engine también ofrece rendimiento líder en la industria en discos SSD locales. Compara el rendimiento de ofertas similares de IaaS y verás la diferencia que nuestros servidores virtuales podrían marcar para tus cargas de trabajo.

CLOUD COMPUTING

GOOGLE APP ENGINE

APP.pngPlataforma que permite ejecutar las aplicaciones en la infraestructura de Google. Nació en el 2008, incluyendo a Python como lenguaje a usar en la plataforma. En el 2009 se incluye a Java y otros lenguajes.

Características:

  • Lenguajes populares: Compila la aplicación en Node.js, Java, Ruby, C#, Go, Python o PHP, o usa un propio tiempo de ejecución de lenguaje.
  • Abierto y flexible: Los tiempos de ejecución personalizados permiten usar cualquier biblioteca y marco de trabajo en App Engine mediante el suministro de un contenedor de Docker.
  • Completamente administrado: Con un entorno completamente administrado, se puede enfocar en el código, mientras que App Engine se encarga de resolver los problemas de infraestructura.
  • Supervisión, registro y diagnóstico: Google Stackdriver ofrece un método de diagnóstico de aplicaciones potente para depurar y supervisar el estado y rendimiento de la app.
  • Control de versiones de aplicaciones: Aloja distintas versiones de la app y crea entornos de desarrollo, pruebas y producción sin dificultades.
  • División del tráfico: Dirige las solicitudes entrantes a distintas versiones de la app, realiza pruebas A/B e implementa funciones nuevas de forma incremental.
  • Seguridad para aplicaciones: Define reglas de acceso con el firewall de App Engine para proteger la aplicación y usa de forma predeterminada los certificados SSL/TLS administrados en tu dominio personalizado sin costo adicional.
  • Ecosistema de servicios: Descubre el creciente ecosistema de servicios de GCP desde la aplicación, que incluye un excelente conjunto de herramientas para desarrolladores en la nube.

App Engine incluye las siguientes funciones:

  • Servidor web dinámico, totalmente compatible con las tecnologías web más comunes.
  • Almacenamiento permanente con funciones de consulta, clasificación y transacciones.
  • Escalado automático y distribución de carga.
  • API para autenticar usuarios y enviar correo electrónico a través de Google Accounts.
  • Un completo entorno de desarrollo local que simula Google App Engine en el equipo local.
  • Colas de tareas que realizan trabajos fuera del ámbito de una solicitud web.
  • Tareas programadas para activar eventos en momentos determinados y en intervalos regulares.

Arquitectura De Microservicios En Google App Engine

Microservicios se refiere a un estilo arquitectónico para desarrollar aplicaciones. Los microservicios permiten que una gran aplicación se descomponga en partes independientes, y cada parte tiene su propio ámbito de responsabilidad. Para servir a un solo usuario o solicitud de API, una aplicación basada en microservicios puede llamar a muchos microservicios internos para componer su respuesta.

Una aplicación basada en microservicios correctamente implementada puede lograr los siguientes objetivos:

  • Definir contratos fuertes entre los diversos microservicios.
  • Permita ciclos de implementación independientes, incluida la reversión.
  • Facilite la realización simultánea de pruebas de liberación A / B en subsistemas.
  • Minimice la automatización de la prueba y la sobrecarga de garantía de calidad.
  • Mejore la claridad del registro y la supervisión.
  • Proporcione una contabilidad de costos minuciosa.
  • Aumente la escalabilidad y confiabilidad de la aplicación en general.

App Engine Services Como Microservicios

En un proyecto de App Engine, se pueden implementar múltiples microservicios como servicios separados, anteriormente conocidos como módulos en App Engine. Estos servicios tienen un aislamiento completo del código; la única forma de ejecutar código en estos servicios es a través de una invocación HTTP, como una solicitud de usuario o una llamada API RESTful. El código en un servicio no puede llamar directamente el código en otro servicio. El código se puede implementar en servicios de forma independiente, y se pueden escribir diferentes servicios en diferentes lenguajes, como Python, Java, Go y PHP. Los tipos de instancias de autoescalado, equilibrio de carga y máquina se administran independientemente para los servicios.

Además, cada servicio puede tener múltiples versiones implementadas simultáneamente. Para cada servicio, una de estas versiones es la versión de servicio predeterminada, aunque es posible acceder directamente a cualquier versión desplegada de un servicio, ya que cada versión de cada servicio tiene su propia dirección. Esta estructura abre una miríada de posibilidades, incluidas las pruebas de detección de humo de una nueva versión, las pruebas A / B entre diferentes versiones y las operaciones simplificadas de avance y retroceso. El marco de App Engine proporciona mecanismos para ayudar con la mayoría de estos elementos.

Aunque en su mayoría están aislados, los servicios comparten algunos recursos de App Engine. Por ejemplo, Cloud Datastore, Memcache y Task Queues son todos recursos compartidos entre servicios en un proyecto de App Engine. Si bien este intercambio tiene algunas ventajas, es importante que una aplicación basada en microservicios mantenga el aislamiento de códigos y datos entre microservicios. Hay patrones de arquitectura que ayudan a mitigar el intercambio no deseado.

MS