Pisd 511 Material

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 57

PISD- 511

Tecnología de
Virtualización

Ingeniería de
Soporte de TI

Semestre V

Ingenieria de Soporte de TI 1
MODELOS DE SERVICIOS EN CLOUD
COMPUTING

El cloud computing o computación en la nube es un término amplio que abarca


todo lo relacionado con los servicios que se encuentran alojados en internet.
Entre sus principales características y ventajas podemos destacar:

• Los usuarios pueden aumentar los recursos a demanda, liberando de


ese trabajo a los administradores.

• Las empresas pueden incrementar o disminuir los recursos en función


de los picos y valles de demanda. Con esto no se hace necesario
contratar grandes cantidades de almacenamiento con vistas a futuro si
no lo necesitamos en ese momento.

• Se paga sólo por los recursos que se utilizan.

• Los proveedores implementan recursos que garantizan un servicio


resistente a fallos que siempre funcione.

• Se facilitan los métodos para migrar datos y servicios de o desde la nube


o entre nubes, de forma automática o manualmente por el usuario.

Características
Existen varias características de la computación en la nube, y según el autor o
la fuente pueden variar. Por ejemplo la NIST 4 especifica que existen
características esenciales de una nube:

• Autoservicio bajo demanda: un consumidor puede aprovisionar por sus


propios medios capacidades informáticas, como cómputo, almacenamiento
y redes, en forma automática sin requerir la interacción humana del
proveedor de servicios.
• Acceso amplio y ubícuo a toda la red: todas las capacidades están
disponibles a través de la red y se accede a ellas a través de mecanismos
estándares y plataformas heterogéneas como por ejemplo: teléfonos
móviles, tabletas, computadoras portátiles y estaciones de trabajo.
• Ubicación transparente y agrupación de recursos: los recursos
informáticos del proveedor de servicios se agrupan para brindar servicio a
múltiples consumidores, con diferentes recursos físicos virtualizados que se
asignan y reasignan dinámicamente de acuerdo con la demanda. Existe una

Ingenieria de Soporte de TI 2
sensación de independencia de ubicación en el sentido de que el cliente
generalmente no tiene control o conocimiento sobre la ubicación exacta de
los recursos proporcionados, pero puede especificar la ubicación en un nivel
más alto de abstracción (por ejemplo, país, estado o centro de datos).
Ejemplos de recursos: almacenamiento, procesamiento, memoria y ancho de
banda de red.
• Rápida elasticidad: los recursos se pueden aprovisionar y liberar
rápidamente según la demanda. Para el consumidor, las capacidades
disponibles para el aprovisionamiento a menudo parecen ser ilimitadas y
pueden ser apropiadas en cualquier cantidad en cualquier momento.
• Servicio medido: quizás una de las características determinantes. Los
sistemas en la nube tienen mecanismos de medición en alguno de los niveles
de abstracción para el tipo de servicio (por ejemplo, almacenamiento,
procesamiento, ancho de banda y cuentas de usuario activas). El uso de los
recursos se puede monitorear, controlar e informar, proporcionando
transparencia tanto para el proveedor como para el consumidor del servicio
utilizado. A veces esta posibilidad de medición deriva en una cobranza por
parte del proveedor hacia el cliente según el uso final. En otros casos, el
servicio medido sirve para alocar un valor referencial a un centro de costos,
bajo una medida pre-acordada.
En un sentido más ampliado y basándose en varias fuentes, la computación en
la nube presenta las siguientes características clave:

• Autorreparable: en caso de desperfecto, los proveedores posibilitan


procesos de respaldo de información, que consiste en crear una copia de
seguridad automática de la última reservación de datos, por lo tanto, es
prácticamente imposible que exista una pérdida de información. 5
• Agilidad: capacidad de mejora para ofrecer recursos tecnológicos al usuario
por parte del proveedor.
• Costo: los recursos en la nube suelen tener costos menores a los que un
aprovisionamiento físico local podría representar. Generalmente, la inversión
inicial que representaría tener un aprovisionamiento local se ve anulada
debido a la naturaleza bajo demanda de la nube.
• Escalabilidad y elasticidad: aprovisionamiento de recursos sobre una base
de autoservicio casi en tiempo real, sin que los usuarios necesiten cargas de
alta duración.
• Independencia entre el dispositivo y la ubicación: permite a los usuarios
acceder a los sistemas utilizando un navegador web, independientemente de
su ubicación o del dispositivo que utilice (por ejemplo, PC, teléfono móvil).
• Virtualización: la tecnología de virtualización permite compartir servidores y
dispositivos de almacenamiento y una mayor utilización. Las aplicaciones
pueden ser fácilmente migradas de un servidor físico a otro. El usuario posee
la libertad de manejar la plataforma que considere necesaria y en

Ingenieria de Soporte de TI 3
cualquier sistema operativo, ya sea Windows, Unix o Mac, entre otros; y si
utiliza alguna de las aplicaciones informáticas de la nube, su trabajo se verá
afectado en lo mínimo posible; en otras palabras, mantiene las mismas
características.6
• Disponibilidad de la información: el usuario no tendrá inconvenientes para
acceder a la información, debido a que esta permanecerá en Internet y su
acceso se permite desde cualquier dispositivo conectado en la red (previa
autorización); de manera que no es necesario almacenar copias de
documentos en dispositivos de almacenamiento físico. 7
• Rendimiento: los sistemas en la nube controlan y optimizan el uso de los
recursos de manera automática, dicha característica permite un seguimiento,
control y notificación del mismo. Esta capacidad aporta transparencia tanto
para el consumidor o el proveedor de servicio.
• Seguridad: puede mejorar debido a la centralización de los datos. La
seguridad es a menudo tan buena o mejor que otros sistemas tradicionales,
en parte porque los proveedores son capaces de dedicar recursos a la
solución de los problemas de seguridad que muchos clientes no pueden
permitirse el lujo de abordar. El usuario de la nube es responsable de la
seguridad a nivel de aplicación. El proveedor de la nube es responsable de
la seguridad física.8
• Mantenimiento: en el caso de las aplicaciones de computación en la nube,
es más sencillo, ya que no necesitan ser instalados en el ordenador de cada
usuario y se puede acceder desde diferentes lugares.

Tipos de nube

Cloud computing puede implementarse según los siguientes modelos de nube:

Nube pública

Este tipo de nube ofrece sus servicios a cualquier usuario de internet. Sus
servidores y almacenamiento pertenecen al proveedor del servicio y el cliente
sólo paga generalmente por el espacio de almacenamiento o el ancho de banda
que consumen.

Nube privada

Estas nubes ofrecen sus servicios a un número limitado de usuarios a través de


una red de una empresa. Esta red puede localizarse en las propias instalaciones
de la empresa o en las de un proveedor externo.

Ingenieria de Soporte de TI 4
Nube híbrida

Como su propio nombre indica, este tipo de nube es fruto de una combinación
de las dos anteriores. En esta se almacenan datos en nubes públicas o privadas
en función de las necesidades. Por ejemplo, se puede guardar la información
más delicada en la nube privada y la menos crítica en la pública o también usar
la nube pública para cuando haya picos de trabajo que exijan un mayor
rendimiento.

Multicloud

Se trata de una opción que está siendo adoptada por muchas entidades y que
consiste en varias nubes entre las que se desplazan los distintos servicios y que
pueden trabajar simultáneamente. Con multicloud los clientes se blindan ante
posibles interrupciones del servicio.

Modelos de Servicios de cloud computing

Podemos agrupar los tipos de servicios que proporciona la computación en la


nube en tres grandes bloques.

IaaS (Infrastructure as a Service) o Infraestructura como Servicio.

En él, el cliente adquiere del proveedor externo todos los recursos, como son
servidores, espacio de almacenamiento en un centro de datos o el equipamiento
para redes. Normalmente se lleva a cabo mediante una plataforma de
virtualización. De los tres tipos de servicios, es el que mayor control otorga al
usuario y, por ende, el que tiene mayor complejidad de uso.

IaaS es ideal para desarrolladores, que pueden escoger Sistema Operativo,


cantidad de almacenamiento y otras posibilidades gracias a la total transparencia
del servicio. Ejemplos de IaaS son Microsoft Azure y Amazon Web Services.

PaaS (Platform as a Service) o Plataforma como Servicio

Con este modelo el proveedor proporciona la plataforma para el desarrollo de


aplicaciones, así como su mantenimiento y gestión. En otras palabras, ofrece
todo lo que se necesita para completar el ciclo de vida y despliegue de dichas
aplicaciones o servicios web.

Ingenieria de Soporte de TI 5
Aquí el usuario carece de control sobre la infraestructura de almacenamiento o
redes. PaaS mantiene la escalabilidad automática, en función de lo que exija la
situación. Ejemplo de Paas es Google App Engine, donde los desarrolladores
pueden crear sus aplicaciones en Java o Python.

SaaS (Software as a Service) o Software como Servicio

En este caso el cliente solamente puede hacer uso de un software que se


encuentra alojado en la nube. Por tanto, todo lo relacionado con el
mantenimiento, desarrollo, soporte y operaciones es responsabilidad de la
empresa que ofrece el servicio.

El cliente usará el sistema alojado por esa empresa, la cual mantendrá la


información del cliente en sus sistemas y proveerá los recursos necesarios para
explotar esa información. En este grupo podemos poner como ejemplo cualquier
servicio web de correo electrónico, como Gmail.

PROFUNDIZANDO LOS CONCEPTOS.

Ni todas son aplicaciones ni todas son de alto nivel, la "nube" así como la
atmósfera, se divide en capas, y de acuerdo al servicio brindado las soluciones
se ubican en una de las tres capas posibles:

1. Software como Servicio. En el marketing de siglas, se lo conoce como SaaS


(Software as a service), y es la más conocida. Implica la capacidad de brindar en
la nube los servicios de las aplicaciones de alto nivel (todas las que
mencionamos anteriormente entrarían en esta capa, tanto las usadas como
herramientas personales como empresariales).

2. Plataforma como Servicio. Los consumidores de este tipo de servicios, en


general, son desarrolladores de aplicaciones, las cuales se "aprovechan" de los
proveedores de estos servicios para agregar a sus soluciones capacidades extra
brindadas por un tercero. Por ejemplo, hay aplicaciones que usan interfaces de
GoogleMaps -que residen en la nube-, para agregar la gestión de mapas a sus
funcionalidades, así como también, otros servicios brindados por GoogleApps,
Facebook, u otros.

3. Infraestructura como Servicio. Se encuentra en la capa inferior y es la


capacidad de brindar servicios de almacenamiento, procesamiento, cómputo y
otros a través de la red, por ejemplo, a través de la tecnología de virtualización.

Ingenieria de Soporte de TI 6
Este servicio de Infraestructura como Servicio se encuentra en alza respecto a
su demanda, sobre todo por parte de empresas pequeñas que no pueden
asignar mucho presupuesto para la inversión en hardware, licencias de sistemas
operativos o motores de base de datos, dado que alcanza con el "alquiler" de
procesamiento, gigabytes de memoria o de disco en un proveedor, e ir
incrementando la disponibilidad de estos recursos a medida que se van
necesitando.

Si bien mediante esta modalidad les resolveríamos la inversión de hardware, los


recursos deben ser administrados por las empresas, asignando recursos
operativos a tareas como administración de base de datos, backup o seguridad
de acceso. El esquema de Software como Servicio es más integrador, dado que
no sólo la infraestructura de hardware se consume en la nube, sino que la
aplicación toda reside bajo este esquema, y así definitivamente la compañía se
desentiende no sólo de la disponibilidad de la infraestructura, sino también, de
los recursos operativos para el mantenimiento de hardware y de software.

Middleware en la nube

Middleware es un término que ha surgido de manera mucho más frecuente en


los últimos años. El término se aplicó una vez al software que conectaba
computadoras con bases de datos. Sin embargo, el término se ha vuelto mucho
más amplio en los últimos tiempos. Si no ha escuchado este término antes, o si
recién está comenzando a entender lo que esto podría significar, probablemente
se esté preguntando "¿qué es el middleware?"

Una definición simple de middleware: software que conecta computadoras y


dispositivos a otras aplicaciones. También se puede denominar barra oblicua o
punto de conexión en cliente / servidor. Otra forma de definir el middleware es
decir que es un software que actúa como enlace entre las aplicaciones y las
redes. El término se usa a menudo en el contexto de la computación en la nube,
como la nube pública o privada .

Sin embargo, estas definiciones son simplistas y pueden no responder


completamente a la pregunta de ¿qué es el middleware? Como ejemplo de lo
que está mal con estas definiciones, el middleware no es solo un enlace entre
aplicaciones y redes. Es un enlace entre las aplicaciones y otras aplicaciones,
software o incluso bases de datos.

Otra definición de middleware es decir que actúa como intermediario. A menudo


se usa para admitir aplicaciones complicadas y distribuidas. Puede ser un
servidor web, un servidor de aplicaciones, un sistema de administración de
contenido u otra herramienta que admita el desarrollo y la entrega de

Ingenieria de Soporte de TI 7
aplicaciones. También puede ser una aplicación de software que conecta dos o
más aplicaciones para que los datos puedan compartirse entre ellas.

Otra forma de definir el middleware es decir que es un software que permite que
otro software interactúe entre sí. Esta es quizás una definición más completa
aunque simplista de lo que realmente es el middleware. Es el campo de juego
que las aplicaciones usan para interactuar entre sí.

Hay muchos tipos diferentes de middleware, y cada tipo tendrá su propia


definición específica. Sin embargo, todo el middleware cumple con las
definiciones enumeradas anteriormente. Algunas de estas definiciones pueden
parecer un poco confusas, pero una vez que ingrese a los diferentes tipos de
middleware, todo comenzará a tener sentido lentamente.

En realidad, el concepto mismo de middleware es bastante complejo, y adaptar


una definición simple es bastante difícil. Esto se debe a que es tan complicado y
tiene tantos usos que una definición simplista simplemente no le hace
justicia. Para comprender la definición completa de este término, debe
familiarizarse con los muchos tipos de middleware y sus usos. Entonces, y solo
entonces, puedes llegar a apreciar lo que esto puede hacer por ti.

API Management
Los productos de API Management y en general la gestión de APIs están
cobrando cada vez más importancia en las arquitecturas software modernas, y
es rara la organización que a día de hoy no tiene en su hoja de ruta IT la
implantación de un sistema bajo este propósito.

En este post hablaremos de este tipo de herramientas, y de cómo las


organizaciones están adoptando sus estrategias IT en el ámbito de las Web
APIs, especialmente en cubrir y extender su propiedad intelectual, e incluso
como fuente de ingresos. ¿Pueden mis APIs financiar mis desarrollos futuros?

Definición de API

Una API (application programming interface) especifica cómo deberían


interactuar los diferentes componentes software. Además de para facilitar el
acceso a componentes hardware o bases de datos, una API puede utilizarse
para facilitar el trabajo de desarrollo.

En la práctica, las APIs a menudo incluyen dentro de sus librerías


especificaciones para manejar subrutinas, tipos de datos, clases y variables. En
algunos casos, especialmente en servicios web, una API es únicamente una
especificación para que los usuarios remotos puedan consumir los servicios.

Ingenieria de Soporte de TI 8
En términos generales, las APIs hacen posible la interconexión de módulos y
aplicaciones, facilitando el acceso a sus backends y permitiendo la reutilización
de servicios.

Es importante distinguir API "de servicio", siendo una API la manera con la que
se interactúa y se consume dicho servicio. Haciendo una analogía con un
ejemplo cotidiano, una API podría ser el enchufe de nuestra casa y el servicio la
electricidad que nos proporciona la empresa distribuidora.

Un gran número de organizaciones, cada vez más amplio, está centrando sus
esfuerzos en la publicación de APIs. Cada vez más empresas e incluso
organismos del sector público quieren rentabilizar sus APIs, no llegándose a
alcanzar este objetivo en muchas ocasiones.

Ello es debido a que es necesario entender, en primer lugar, la complejidad


tecnológica que este tipo de estrategias acarrea, y en segundo a valorar en su
justa medida los servicios ofertados y la facilidad de uso de las APIs expuestas.

La estrategia empresarial en la gestión de sus APIs debe ser la palanca sobre la


que pivotar otro tipo de estrategias IT: Mobility, IoT, Cloud…

Expansión y crecimiento de las APIs

Ingenieria de Soporte de TI 9
Ingenieria de Soporte de TI 10
API Economy

El ecosistema de APIs especifica de qué manera el uso de estas micro


aplicaciones por terceros puede beneficiar a una organización, bien por alquiler
o por venta de sus propios desarrollos:

• Pay per use ("API as a Service"): Obtención de beneficios mediante la exposición

Ingenieria de Soporte de TI 11
de APIs de servicios que son valiosos para terceros y están dispuestos a pagar
por su uso.

• API Products: Desarrollo de herramientas encargadas de facilitar la exposición e


integración de aplicaciones a través de sus APIs.

Para hacernos una idea de los beneficios que una API Strategy puede aportar a
una organización, es importante recordar el ejemplo de Amazon. Alrededor de
2002, Jeffrey Preston Bezos, director ejecutivo de Amazon, envió un correo a
sus empleados con los siguientes puntos:

• Todos los equipos expondrán sus datos y funcionalidad a través de interfaces de


servicios.

• Los equipos deben comunicarse entre sí a través de estas interfaces.

• No se permitirá otra forma de comunicación: ni vinculación directa, ni acceso


directo a bases de datos de otros equipos, ni memoria compartida ni utilización
de ningún tipo de puerta trasera. Sólo se permitirán comunicaciones a través de
llamadas que utilicen interfaces de red.

• La tecnología empleada por cada equipo no debe ser un problema.

• Todas las interfaces de los servicios, sin excepción, deben ser diseñadas con el
objetivo de ser externalizables. Esto es, el equipo debe planear y diseñar sus
interfaces para los desarrolladores del resto del mundo. Sin excepciones.

El correo finalizaba de la siguiente manera: “Todo aquel que no siga las


directrices será despido. Gracias, ¡pasad un buen día!”. Desde hace ya varios
años Amazon es el primer proveedor IaaS mundial distanciado
significativamente de sus competidores.

Ingenieria de Soporte de TI 12
API Managament System

En general, un API Managament System está conformado de los siguientes


componentes:

• Intercambiador de APIs: Componente cuya principal función es la de habilitar la


interconexión entre los servicios y los consumidores, a través de las APIs
publicadas en él.

• Gestor de APIs: Componente cuya principal responsabilidad es la de ofrecer a


los proveedores capacidades de alta configuración y publicación de sus APIs en
el componente API Gateway.

• Portal de APIs: Componente dedicado a recopilar toda la información necesaria


para los consumidores sobre las APIs publicadas en el API Gateway.

Ingenieria de Soporte de TI 13
Elementos de un API Gateway

• Routing: Enrutamiento de mensajes a diferentes destinos dependiendo del


contexto o del contenido del mensaje.

• Soporte muti-protocolo: Protocolos soportados tanto para la publicación de APIs


en el componente Gateway como para el enrutamiento a los servicios internos.

Ingenieria de Soporte de TI 14
• Soporte multi-formato: Componentes destinados a transformar los datos de un
formato a otro, o de su enmascaramiento.

• Monitoring: Monitorización del tráfico de entrada y salida.

• Políticas de seguridad: Otorga a las API características de autenticación,


autorización y cifrado utilizando estándares o tecnologías conocidas como el
cifrado de transporte mediante HTTPS, la suite de seguridad WS-Security para
SOAP o el estándar de autorización OAuth para interfaces REST. Compatibilidad
con sistemas de gestion de identidades: Active Directory, LDAP, JDBC, etc.

• Políticas de uso: Capacita a las APIs para gestionar políticas de consumo,


rendimiento, fallos, etc. para asegurar SLAs y sistemas de pago por uso.

Elementos de un API Manager

• Publicación: Publica las APIs en el componente API Gateway definiendo su


endpoint.
• Edición: Herramienta para el diseño tanto de la interfaz de la API.
• Gestor del ciclo de vida: Permite gestionar los diferentes estados por lo que pasa
una API, así como su versión o deprecación.
• Gestor de politicas de uso: Herramienta para la configuración de reglas de uso
tales como pay per use, SLAs, QA, etc.
• Consumo: Monitorización del uso de las APIs y sistema de configuración de
alertas según los parámetros de consumo.
• Gestor de políticas de seguridad: Gestiona todas la configuración de seguridad
de una API.

Elementos de un API Portal


• Comunidad de desarrollo: Publicaciones de noticias y comentarios referentes al
uso, configuración, errores y soluciones de las APIs pubicadas.
• Navegador interno: Buscador de API registradas en el sistema, con varios filtros
de consulta como estado, version, mejor valoración, etc.
• Tienda: "APIs' Store", donde se localizan las API publicadas, accesos directos a
las comunidades de consumidores, herramientas de testing, monitorización,
recomendaciones de usuarios, etc.
• Probador: Sistema integrado de testeo de cada API.
• Documentación: Repositorio de documentación referente a las APIs publicadas.
• Estadísticas de uso: Sistemas de monitorización y análisis desde la perspectiva
del consumidor: timing, status…

Ingenieria de Soporte de TI 15
Ingenieria de Soporte de TI 16
Lenguajes de modelado de APIs

Cada uno de estos lenguajes presenta sus pros y contras, siendo muy importante
a la hora de seleccionar un API Managamanet System estudiar qué lenguaje/s
de modelado soporta y si se adaptan a los requisitos de la organización.

MAQUINAS VIRTUALES

Probablemente hayas oído más de una vez eso de las "máquinas virtuales" y, si
estás leyendo en este texto, lo más probable es que no estés seguro de qué son
exactamente. No te dejes engañar por su misterioso nombre, pues aunque su
funcionamiento interno es muy complejo, el concepto en sí es sencillo y las usas
cada día.

Una máquina virtual no es más que un software capaz de cargar en su interior


otro sistema operativo haciéndole creer que es un PC de verdad. Tal y como su
nombre indica, el concepto es tan sencillo como crear una máquina (PC, consola,
móvil o lo que sea) que en vez de ser física es virtual o emulada.

¿Qué es una máquina virtual?

Una vez nos ha quedado claro que una máquina virtual no es realmente ninguna
máquina llena de engranajes con un casco de realidad virtual, sino un software,
entremos más en detalle sobre qué son las máquinas virtuales.

Lo primero que debes saber es que hay dos tipos de máquinas virtuales
diferenciadas por su funcionalidad: las de sistema y las de proceso, si bien la gran
mayoría de las veces que oigas hablar de una máquina virtual casi seguro que
se estarán refiriendo a las de sistema.

Máquinas virtuales de sistema

Una máquina virtual de sistema es aquella que emula a un ordenador completo.


En palabras llanas, es un software que puede hacerse pasar por otro dispositivo
-como un PC- de tal modo que puedes ejecutar otro sistema operativo en su
interior. Tiene su propio disco duro, memoria, tarjeta gráfica y demás
componentes de hardware, aunque todos ellos son virtuales.

Que sus componentes sean virtuales no quiere decir necesariamente que no


existan. Por ejemplo, una máquina virtual puede tener unos recursos reservados
de 2 GB de RAM y 20 GB de disco duro, que obviamente salen de algún sitio:
del PC donde está instalada la máquina virtual, también llamado a veces el
hipervisor, el host o el anfitrión. Otros dispositivos podrían realmente ser

Ingenieria de Soporte de TI 17
inexistentes físicamente, como por ejemplo un CD-ROM que en verdad es el
contenido de una imagen ISO en vez de un lector de CD de verdad.

Para el sistema operativo que se ejecuta dentro de la máquina virtual toda esta
emulación es transparente e invisible. Todo funciona igual a si se estuviera
ejecutando en un PC normal, sin que sepa que en verdad está metido dentro de
una burbuja dentro de otro sistema operativo. De hecho, nada te impide hacer
como en la película Inception / Origen y crear otra máquina virtual dentro de la
anterior máquina virtual.

Ingenieria de Soporte de TI 18
Windows 10 dentro de Windows 10, dentro de Windows 10

En su burbuja, la máquina virtual no puede acceder al resto de datos de la máquina


anfitrión a pesar de estar físicamente funcionando en la misma, están aisladas.
No obstante, las principales aplicaciones de máquinas virtuales como VirtualBox
o VMWare disponen de atajos y herramientas para facilitar la tarea de pasar
archivos de una máquina a otra.

Para funcionar, una máquina virtual mapea los dispositivos virtuales que ofrece a
su invitado con los dispositivos reales presentes en la máquina física. Por ejemplo,
la máquina puede estar emulando una tarjeta de sonido Sound Blaster de 16 bit,
aunque en verdad está conectada con la tarjeta de sonido interna de la placa
base de tu PC portátil que es Realtek.

La virtualización puede ser por software o con apoyo mediante el hardware, en


cuyo caso se obtiene un mejor rendimiento. Desde 2005 es común que los
procesadores cuenten con tecnología de virtualización por hardware, aunque no
siempre está activada por defecto en la BIOS.

Máquinas virtuales de proceso

Una máquina virtual de proceso es menos ambiciosa que una de sistema. En vez
de emular un PC por completo, ejecuta un proceso concreto, como una
aplicación, en su entorno de ejecución. Suena algo esotérico, pero lo usas cada
vez que ejecutas una aplicación basada en Java o basada en .NET Framework.

Ingenieria de Soporte de TI 19
Esto es de utilidad a la hora de desarrollar aplicaciones para varias plataformas,
pues en vez de tener que programar específicamente para cada sistema, el
entorno de ejecución (es decir, la máquina virtual) es el que se encarga de lidiar
con el sistema operativo.

Las máquinas virtuales de proceso te permiten disfrutar de aplicaciones que se


comportan de forma igual en plataformas tan distintas como Windows, Mac o
Linux, pero tú como usuario normalmente no les prestarás mucha atención. Por
eso, salvo que seas programador, generalmente cuando se habla de máquinas
virtuales nos estamos refiriendo a las de sistema.

Ingenieria de Soporte de TI 20
Cloud SQL

Servicio totalmente gestionado de bases de datos relacionales de MySQL,


PostgreSQL y SQL Server

Cloud SQL es totalmente compatible con las aplicaciones que utilizan MySQL,
PostgreSQL y SQL Server. Puedes conectar esta solución con prácticamente
cualquier aplicación y desde cualquier parte del mundo. Cloud SQL automatiza
la copia de seguridad, la replicación y la conmutación por error. De ese modo, la
base de datos cuenta con la fiabilidad, la alta disponibilidad y la flexibilidad
indispensables para ofrecer el rendimiento que necesitas.

• Proporciona bases de datos relacionales, compatibles y fáciles de


gestionar en la nube.

• Puede conectarse con prácticamente cualquier aplicación desarrollada


para MySQL, PostgreSQL o SQL Server desde cualquier rincón del
planeta.

• Automatiza el aprovisionamiento de bases de datos, la gestión de la


capacidad de almacenamiento y otras tareas que requieren mucho
tiempo.

• Asegura la fiabilidad y la seguridad gracias a funciones integradas que


mantienen la alta disponibilidad de los sistemas y realizan copias y
actualizaciones de seguridad, todo ello de forma automatizada. Además,
cuenta con asistencia las 24 horas por parte de un equipo de SRE.

• Se integra fácilmente con tu estación de trabajo, al igual que con App


Engine, Compute Engine, Kubernetes y BigQuery.

Seguridad y cumplimiento

La solución ofrece encriptado de datos automático en reposo y en tránsito,


conectividad privada con la nube privada virtual (VPC) y acceso a la red
controlado por el usuario, que incluye la protección mediante cortafuegos.
Además, cumple las normativas SSAE 16, ISO 27001, HIPAA y PCI DSS v3.0.

Escalabilidad a tu medida

Gracias a las opciones de escalado flexible, no hace falta que realices un


aprovisionamiento previo ni planifiques la capacidad antes de ponerte manos a
la obra. Una sola llamada a la API basta para crear la base de datos, tanto si es

Ingenieria de Soporte de TI 21
de prueba como si quieres usarla en producción con alta disponibilidad
inmediatamente.

Cloud SQL para MySQL

Características

• Bases de datos completamente administradas de MySQL Community Edition en


la nube

• Instancias de segunda generación compatibles con MySQL 5.6 o 5.7 que


proporcionan hasta 416 GB de RAM y 30 TB de almacenamiento de datos,
además de la opción de aumentar el tamaño de almacenamiento de forma
automática según sea necesario

• Instancias de primera generación compatibles con MySQL 5.5 o 5.6 que


proporcionan hasta 16 GB de RAM y 500 GB de almacenamiento de datos

• Creación y administración de instancias en Google Cloud Console

• Instancias disponibles en EE.UU., UE, Asia o Australia

• Encriptación de los datos de clientes en las redes internas de Google, así como
en tablas de bases de datos, archivos temporales y copias de seguridad

• Compatibilidad con conexiones externas seguras mediante el proxy de


Cloud SQL o el protocolo SSL/TLS

• Compatibilidad con IP privadas (acceso privado a los servicios)

• Replicación de datos entre varias zonas con conmutación por error automática

• Importación y exportación de bases de datos con mysqldump o importación y


exportación de archivos CSV.

• Compatibilidad con el protocolo de cable de MySQL y los conectores estándar


de MySQL.

• Copias de seguridad automáticas y a pedido, además de recuperación de un


momento determinado.

• Clonación de instancias.

• Integración al registro y la supervisión de Stackdriver

• Cumplimiento de las normas ISO/IEC 27001

Ingenieria de Soporte de TI 22
Lenguajes compatibles

Puedes usar Cloud SQL para MySQL con aplicaciones de App Engine escritas
en Java, Python, PHP, Node.js, Go y Ruby. También puedes usar
Cloud SQL para MySQL con aplicaciones externas mediante el protocolo
estándar de MySQL.

Formas en las que puedes conectarte a instancias de Cloud SQL para MySQL

A continuación, se incluyen las opciones desde las que puedes conectarte a una
instancia de Cloud SQL para MySQL:

• Un cliente mysql.

• Herramientas de terceros como SQL Workbench o Toad para MySQL.

• Aplicaciones externas.

• Aplicaciones de App Engine.

• Aplicaciones que se ejecutan en Compute Engine.

• Aplicaciones que se ejecutan en Google Kubernetes Engine.

• Cloud Functions.

• Cloud Run.

• Secuencias de comandos de Google Apps Script.

No se admite la conexión a Cloud SQL mediante el Acceso privado a Google. Sí


se admite el acceso privado a los servicios.

Diferencias entre las funciones de Cloud SQL y MySQL estándar

En general, las funciones de MySQL que proporciona una instancia de


Cloud SQL son las mismas que las que proporciona una instancia de MySQL
que se aloja de forma local. Sin embargo, existen algunas diferencias entre una
instancia de MySQL estándar y una instancia de Cloud SQL para MySQL.

Características no compatibles

• Complemento de InnoDB en Memcached

• Motor federado

• Motor de almacenamiento de memoria

Ingenieria de Soporte de TI 23
• Privilegio SUPER

Instrucciones no compatibles

Si se envía cualquiera de los siguientes tipos de instrucciones de SQL, se


generará un error con el mensaje “Error 1290: El servidor MySQL se está
ejecutando con la opción de Google, por lo que no puede ejecutar esta
instrucción”:

• LOAD DATA INFILE

Ten en cuenta que LOAD DATA LOCAL INFILE es compatible.


• SELECT ... INTO OUTFILE
• SELECT ... INTO DUMPFILE
• INSTALL PLUGIN ...
• UNINSTALL PLUGIN
• CREATE FUNCTION ... SONAME ...

Instrucciones no compatibles con instancias de segunda generación

Las siguientes instrucciones no son compatibles porque las instancias de


segunda generación usan la replicación GTID:

• Declaraciones CREATE TABLE ... SELECT

• Declaraciones CREATE TEMPORARY TABLE en transacciones

• Transacciones o instrucciones que actualizan tablas transaccionales y no


transaccionales

Para obtener más información, consulta la documentación de MySQL.

Funciones no compatibles

• LOAD_FILE()

Características no compatibles del programa cliente

• mysqlimport sin usar la opción --local. Esto se debe a la restricción LOAD DATA
INFILE. Si necesitas cargar datos de forma remota, usa la función de
importación de Cloud SQL.
• mysqldump mediante la opción --tab o las opciones que se usan con --tab. Esto
se debe a que el privilegio FILE no se otorga a los usuarios de la instancia. El
resto de las opciones de mysqldump son compatibles.
• Si deseas importar bases de datos con datos binarios en la instancia de
Cloud SQL para MySQL, debes usar la opción --hex-blob con mysqldump.

Ingenieria de Soporte de TI 24
Aunque la marca hex-blob no es obligatoria cuando usas una instancia de
servidor MySQL local y el cliente mysql, sí lo es si deseas importar bases de
datos con datos binarios a la instancia de Cloud SQL

• No todas las opciones y parámetros de MySQL se pueden editar como


las marcas de Cloud SQL.
Para solicitar que se agregue una marca configurable de Cloud SQL, usa
el grupo de discusión sobre Cloud SQL.
• En el caso de las instancias de segunda generación, InnoDB es el único motor
de almacenamiento compatible..

Opciones destacadas de MySQL

Cloud SQL ejecuta MySQL con un conjunto específico de opciones. Si una


opción puede afectar la forma en que funcionan tus aplicaciones, la
especificamos aquí para que estés informado.

skip-name-resolve

Esta marca afecta cómo se resuelven los nombres de host para las conexiones
de clientes.

Dockers

La palabra "DOCKER" se refiere a varias cosas. Esto incluye un proyecto de la


comunidad open source; las herramientas del proyecto open source; Docker Inc.,
la empresa que es la principal promotora de ese proyecto; y las herramientas
que la empresa admite formalmente. El hecho de que las tecnologías y la
empresa compartan el mismo nombre puede ser confuso.

A continuación, le presentamos una breve explicación:

• "Docker", el software de TI, es una tecnología de creación de contenedores que


permite la creación y el uso de contenedores de Linux®.
• La comunidad open source Docker trabaja para mejorar estas tecnologías a fin
de beneficiar a todos los usuarios de forma gratuita.
• La empresa, Docker Inc., desarrolla el trabajo de la comunidad Docker, lo hace
más seguro y comparte estos avances con el resto de la comunidad. También
respalda las tecnologías mejoradas y reforzadas para los clientes empresariales.
Con DOCKER, puede usar los contenedores como máquinas virtuales
extremadamente livianas y modulares. Además, obtiene flexibilidad con estos
contenedores: puede crearlos, implementarlos, copiarlos y moverlos de un
entorno a otro, lo cual le permite optimizar sus aplicaciones para la nube.
Bien, pero ¿qué son los contenedores de Linux?

Ingenieria de Soporte de TI 25
¿Cómo funciona Docker?

La tecnología Docker usa el kernel de Linux y las funciones de este,


como Cgroups y namespaces, para segregar los procesos, de modo que puedan
ejecutarse de manera independiente. El propósito de los contenedores es esta
independencia: la capacidad de ejecutar varios procesos y aplicaciones por
separado para hacer un mejor uso de su infraestructura y, al mismo
tiempo, conservar la seguridad que tendría con sistemas separados.

Las herramientas del contenedor, como Docker, ofrecen un modelo de


implementación basado en imágenes. Esto permite compartir una aplicación, o
un conjunto de servicios, con todas sus dependencias en varios entornos. Docker
también automatiza la implementación de la aplicación (o conjuntos combinados
de procesos que constituyen una aplicación) en este entorno de contenedores.

Estas herramientas desarrolladas a partir de los contenedores de Linux, lo que


hace a Docker fácil de usar y único, otorgan a los usuarios un acceso sin
precedentes a las aplicaciones, la capacidad de implementar rápidamente y
control sobre las versiones y su distribución.

¿La tecnología Docker es la misma que la de los contenedores de Linux


tradicionales?

No. Al principio, la tecnología Docker se desarrolló a partir de la tecnología LXC,


lo que la mayoría de las personas asocia con contenedores de Linux
"tradicionales", aunque desde entonces se ha alejado de esa dependencia. LXC
era útil como virtualización ligera, pero no ofrecía una buena experiencia al
desarrollador ni al usuario. La tecnología Docker no solo aporta la capacidad de
ejecutar contenedores; también facilita el proceso de creación y diseño de
contenedores, de envío de imágenes y de creación de versiones de imágenes
(entre otras cosas).

Ingenieria de Soporte de TI 26
Los contenedores de Linux tradicionales usan un sistema init que puede
gestionar varios procesos. Esto significa que las aplicaciones completas se
pueden ejecutar como una sola. La tecnología Docker pretende que las
aplicaciones se dividan en sus procesos individuales y ofrece las herramientas
para hacerlo. Este enfoque granular tiene sus ventajas.

Ventajas de los contenedores Docker

Modularidad
El enfoque Docker para la creación de contenedores se centra en la capacidad
de tomar una parte de una aplicación, para actualizarla o repararla, sin necesidad
de tomar la aplicación completa. Además de este enfoque basado en los
microservicios, puede compartir procesos entre varias aplicaciones de la misma
forma que funciona la arquitectura orientada al servicio (SOA).

Ingenieria de Soporte de TI 27
Control de versiones de imágenes y capas
Cada archivo de imagen de Docker se compone de una serie de capas. Estas
capas se combinan en una sola imagen. Una capa se crea cuando la imagen
cambia. Cada vez que un usuario especifica un comando,
como ejecutar o copiar, se crea una nueva capa.

Docker reutiliza estas capas para construir nuevos contenedores, lo cual hace
mucho más rápido el proceso de construcción. Los cambios intermedios se
comparten entre imágenes, mejorando aún más la velocidad, el tamaño y la
eficiencia. El control de versiones es inherente a la creación de capas. Cada vez
que se produce un cambio nuevo, básicamente, usted tiene un registro de
cambios incorporado: control completo de sus imágenes de contenedor.

Restauración
Probablemente la mejor parte de la creación de capas es la capacidad de
restaurar. Toda imagen tiene capas. ¿No le gusta la iteración actual de una
imagen? Restáurela a la versión anterior. Esto es compatible con un enfoque de
desarrollo ágil y permite hacer realidad la integración e implementación
continuas (CI/CD) desde una perspectiva de las herramientas.

Implementación rápida
Solía demorar días desarrollar un nuevo hardware, ejecutarlo, proveerlo y
facilitarlo. Y el nivel de esfuerzo y sobrecarga era extenuante. Los contenedores
basados en Docker pueden reducir el tiempo de implementación a segundos. Al
crear un contenedor para cada proceso, puede compartir rápidamente los
procesos similares con nuevas aplicaciones. Y, debido a que un SO no necesita
iniciarse para agregar o mover un contenedor, los tiempos de implementación
son sustancialmente inferiores. Además, con la velocidad de implementación,
puede crear y destruir la información creada por sus contenedores sin
preocupación, de forma fácil y rentable.

Por lo tanto, la tecnología Docker es un enfoque más granular y controlable,


basado en microservicios, que prioriza la eficiencia.
Obtener más información sobre las ventajas de Docker
¿Hay limitaciones para el uso de Docker?

En sí mismo, Docker es una excelente herramienta para la gestión de


contenedores individuales. Al comenzar a utilizar cada vez más contenedores y
aplicaciones en contenedores, divididas en cientos de piezas, la gestión y la
organización se pueden tornar muy difíciles. Finalmente, debe retroceder y
agrupar los contenedores para ofrecer servicios, como redes, seguridad,
telemetría, etc., en todos sus contenedores. Es aquí donde aparece Kubernetes.
Obtener más información acerca de la organización de contenedores con
Kubernetes

Ingenieria de Soporte de TI 28
Con Docker no se obtiene la misma funcionalidad tipo UNIX que se obtiene con
los contenedores Linux tradicionales. Esto incluye poder usar procesos como
cron o syslog dentro del contenedor, junto con su aplicación. También hay
limitaciones, por ejemplo, en cuanto a la eliminación de procesos nieto después
de terminar con los procesos hijo; algo que se gestiona de forma inherente en
los contenedores de Linux tradicionales. Estas cuestiones se pueden mitigar
mediante la modificación del archivo de configuración y el ajuste de esas
habilidades desde el comienzo (algo que no es inmediatamente obvio a simple
vista).

Asimismo, existen otros subsistemas y dispositivos de Linux que no tienen


espacios de nombres. Estos incluyen SELinux, Cgroups y dispositivos /dev/sd*.
Esto implica que si un atacante obtiene control de estos subsistemas, el host se
ve comprometido. Para permanecer liviano, compartir el kernel del host
con contenedores abre la posibilidad de una vulnerabilidad de la seguridad. Esto
difiere de las máquinas virtuales, las cuales están mucho más segregadas del
sistema host.
¿Los contenedores Docker son realmente seguros?
El daemon de Docker también puede ser una preocupación en materia de
seguridad. Para usar y ejecutar los contenedores Docker, es muy probable que
utilice el daemon de Docker, un tiempo de ejecución persistente para los
contenedores. El daemon de Docker requiere privilegios de raíz, por lo que se
debe prestar especial atención a quiénes obtienen acceso al proceso y en dónde
reside este. Por ejemplo, un daemon local tiene una superficie de ataque más
pequeña que uno que se encuentra en un sitio más público, como un servidor
web.

Kubernetes

Kubernetes es una plataforma portable y extensible de código abierto para


administrar cargas de trabajo y servicios. Kubernetes facilita la automatización y
la configuración declarativa. Tiene un ecosistema grande y en rápido
crecimiento. El soporte, las herramientas y los servicios para Kubernetes están
ampliamente disponibles.
Google liberó el proyecto Kubernetes en el año 2014. Kubernetes se basa en la
experiencia de Google corriendo aplicaciones en producción a gran escala por
década y media, junto a las mejores ideas y prácticas de la comunidad.
¿Por qué necesito Kubernetes y qué puede hacer por mi?

Kubernetes tiene varias características. Puedes pensar en Kubernetes como:


• una plataforma de contenedores

• una plataforma de microservicios

• una plataforma portable de nube y mucho más.

Ingenieria de Soporte de TI 29
Kubernetes ofrece un entorno de administración centrado en contenedores.
Kubernetes orquesta la infraestructura de cómputo, redes y almacenamiento
para que las cargas de trabajo de los usuarios no tengan que hacerlo. Esto ofrece
la simplicidad de las Plataformas como Servicio (PaaS) con la flexibilidad de la
Infraestructura como Servicio (IaaS) y permite la portabilidad entre proveedores
de infraestructura.

¿Qué hace de Kubernetes una plataforma?

A pesar de que Kubernetes ya ofrece muchas funcionalidades, siempre hay


nuevos escenarios que se benefician de nuevas características. Los flujos de
trabajo de las aplicaciones pueden optimizarse para acelerar el tiempo de
desarrollo. Una solución de orquestación propia puede ser suficiente al principio,
pero suele requerir una automatización robusta cuando necesita escalar. Es por
ello que Kubernetes fue diseñada como una plataforma: para poder construir un
ecosistema de componentes y herramientas que hacen más fácil el desplegar,
escalar y administrar aplicaciones.

Las etiquetas, o Labels, le permiten a los usuarios organizar sus recursos como
deseen. Las anotaciones , o Annotations, les permiten asignar información
arbitraria a un recurso para facilitar sus flujos de trabajo y hacer más fácil a las
herramientas administrativas inspeccionar el estado.
Además, el Plano de Control de Kubernetes usa las mismas APIs que usan los
desarrolladores y usuarios finales. Los usuarios pueden escribir sus propios
controladores, como por ejemplo un planificador o scheduler, usando sus
propias APIs desde una herramienta de línea de comandos.
Este diseño ha permitido que otros sistemas sean construidos sobre Kubernetes.

Lo que Kubernetes no es

Kubernetes no es una Plataforma como Servicio (PaaS) convencional. Ya que


Kubernetes opera a nivel del contenedor y no a nivel del hardware, ofrece
algunas características que las PaaS también ofrecen, como deployments,
escalado, balanceo de carga, registros y monitoreo. Dicho esto, Kubernetes no
es monolítico y las soluciones que se ofrecen de forma predeterminada son
opcionales e intercambiables.
Kubernetes ofrece los elementos esenciales para construir una plataforma para
desarrolladores, preservando la elección del usuario y la flexibilidad en las partes
más importantes.
Entonces, podemos decir que Kubernetes:

• No limita el tipo de aplicaciones que soporta. Kubernetes busca dar soporte a un


número diverso de cargas de trabajo, que incluyen aplicaciones con y sin estado

Ingenieria de Soporte de TI 30
así como aplicaciones que procesan datos. Si la aplicación puede correr en un
contenedor, debería correr bien en Kubernetes.

• No hace deployment de código fuente ni compila tu aplicación. Los flujos de


integración, entrega y deployment continuo (CI/CD) vienen determinados por la
cultura y preferencia organizacional y sus requerimientos técnicos.

• No provee servicios en capa de aplicación como middleware (por ejemplo, buses


de mensaje), frameworks de procesamiento de datos (como Spark), bases de
datos (como MySQL), caches o sistemas de almacenamiento (como Ceph). Es
posible correr estas aplicaciones en Kubernetes, o acceder a ellos desde una
aplicación usando un mecanismo portable como el Open Service Broker.

• No dictamina las soluciones de registros, monitoreo o alerta que se deben usar.


Hay algunas integraciones que se ofrecen como prueba de concepto, y existen
mecanismos para recolectar y exportar métricas.

• No provee ni obliga a usar un sistema o lenguaje de configuración (como jsonnet)


sino que ofrece una API declarativa que puede ser usada con cualquier forma de
especificación declarativa
• No provee ni adopta un sistema exhaustivo de mantenimiento, administración o
corrección automática de errores

Además, Kubernetes no es un mero sistema de orquestación. De hecho,


Kubernetes elimina la necesidad de orquestar. Orquestación se define como la
ejecución de un flujo de trabajo definido: haz A, luego B y entonces C.
Kubernetes está compuesto de un conjunto de procesos de control
independientes y combinables entre si que llevan el estado actual hacia el estado
deseado. No debería importar demasiado como llegar de A a C. No se requiere
control centralizado y, como resultado, el sistema es más fácil de usar, más
poderoso, robusto, resiliente y extensible.
¿Por qué usar contenedores?

¿Te preguntas las razones para usar contenedores?

La Manera Antigua de desplegar aplicaciones era instalarlas en un servidor


usando el administrador de paquetes del sistema operativo. La desventaja era
que los ejecutables, la configuración, las librerías y el ciclo de vida de todos estos
componentes se entretejían unos a otros. Podíamos construir imágenes de
máquina virtual inmutables para tener rollouts y rollbacks predecibles, pero las
máquinas virtuales son pesadas y poco portables.

La Manera Nueva es desplegar contenedores basados en virtualización a nivel


del sistema operativo, en vez del hardware. Estos contenedores están aislados
entre ellos y con el servidor anfitrión: tienen sus propios sistemas de archivos,

Ingenieria de Soporte de TI 31
no ven los procesos de los demás y el uso de recursos puede ser limitado. Son
más fáciles de construir que una máquina virtual, y porque no están acoplados a
la infraestructura y sistema de archivos del anfitrión, pueden llevarse entre nubes
y distribuciones de sistema operativo.

Ya que los contenedores son pequeños y rápidos, una aplicación puede ser
empaquetada en una imagen de contenedor. Esta relación uno a uno entre
aplicación e imagen nos abre un abanico de beneficios para usar contenedores.
Con contenedores, podemos crear imágenes inmutables al momento de la
compilación en vez del despliegue ya que las aplicaciones no necesitan
componerse junto al resto del stack ni atarse al entorno de infraestructura de
producción. Generar una imagen de contenedor al momento de la compilación
permite tener un entorno consistente que va desde desarrollo hasta producción.
De igual forma, los contenedores son más transparentes que las máquinas
virtuales y eso hace que el monitoreo y la administración sean más fáciles. Esto
se aprecia más cuando los ciclos de vida de los contenedores son administrados
por la infraestructura en vez de un proceso supervisor escondido en el
contenedor. Por último, ya que solo hay una aplicación por contenedor,
administrar el despliegue de la aplicación se reduce a administrar el contenedor.
En resumen, los beneficios de usar contenedores incluyen:

• Ágil creación y despliegue de aplicaciones: Mayor facilidad y eficiencia al


crear imágenes de contenedor en vez de máquinas virtuales
• Desarrollo, integración y despliegue continuos: Permite que la imagen de
contenedor se construya y despliegue de forma frecuente y confiable, facilitando
los rollbacks pues la imagen es inmutable
• Separación de tareas entre Dev y Ops: Puedes crear imágenes de contenedor
al momento de compilar y no al desplegar, desacoplando la aplicación de la
infraestructura
• Observabilidad No solamente se presenta la información y métricas del sistema
operativo, sino la salud de la aplicación y otras señales
• Consistencia entre los entornos de desarrollo, pruebas y producción: La
aplicación funciona igual en un laptop y en la nube
• Portabilidad entre nubes y distribuciones: Funciona en Ubuntu, RHEL,
CoreOS, tu datacenter físico, Google Kubernetes Engine y todo lo demás
• Administración centrada en la aplicación: Eleva el nivel de abstracción del
sistema operativo y el hardware virtualizado a la aplicación que funciona en un
sistema con recursos lógicos
• Microservicios distribuidos, elásticos, liberados y débilmente acoplados: Las
aplicaciones se separan en piezas pequeñas e independientes que pueden ser
desplegadas y administradas de forma dinámica, y no como una aplicación
monolítica que opera en una sola máquina de gran capacidad
• Aislamiento de recursos: Hace el rendimiento de la aplicación más predecible

Ingenieria de Soporte de TI 32
• Utilización de recursos: Permite mayor eficiencia y densidad

¿Qué significa Kubernetes? ¿Qué significa K8S?

El nombre Kubernetes proviene del griego y significa timonel o piloto. Es la raíz


de gobernador y de cibernética. K8s es una abrevación que se obtiene al
reemplazar las ocho letras “ubernete” con el número 8

Microservicios

La arquitectura de microservicios (en inglés, Micro Services Architecture,


MSA) es una aproximación para el desarrollo de software que consiste en
construir una aplicación como un conjunto de pequeños servicios, los cuales se
ejecutan en su propio proceso y se comunican con mecanismos ligeros
(normalmente una API de recursos HTTP). Cada servicio se encarga de
implementar una funcionalidad completa del negocio. Cada servicio es
desplegado de forma independiente y puede estar programado en distintos
lenguajes y usar diferentes tecnologías de almacenamiento de datos.
Se suele considerar la arquitectura de microservicios como una forma específica
de realizar una arquitectura orientada a servicios.

Características
En el mundo real, no todas las implementaciones de este estilo de arquitecturas
siguen las mismas características, pero la mayor parte de las arquitecturas de
microservicios tienen la mayor parte de las siguientes características:

• Los componentes son servicios. La principal manera de crear


componentes (unidad de software independientemente reemplazable y
actualizable) es mediante la inserción de un botón que automáticamente por
detrás, gestione la decomposición en servicios en lugar de bibliotecas. Los
servicios son componentes separados que se comunican mediante
mecanismos como los servicios web o los RPC en lugar de usar llamadas a
funciones en memoria como hacen las bibliotecas.
• Organizada en torno a las funcionalidades del negocio. El sistema se
divide en distintos servicios donde cada uno está organizado en torno a una
capacidad del negocio. Es muy importante limitar la responsabilidad de cada
servicio. Cada servicio implementa toda la funcionalidad del negocio que
agrupa desde la interfaz de usuario, la persistencia en el almacenamiento y
cualquiera de las colaboraciones externas.
• Productos, no proyectos. En esta arquitectura normalmente se sigue la
idea de que un equipo debe estar a cargo de un componente (servicio)
durante todo el ciclo de vida del mismo, desde la etapa de diseño y
construcción, la fase de producción y hasta la de mantenimiento. Esta
mentalidad se acopla bien con la vinculación a una capacidad del negocio.

Ingenieria de Soporte de TI 33
En lugar de ver el software como un conjunto de funcionalidades terminadas
se ve como una relación continua, donde la pregunta es cómo puede el
software ayudar a sus usuarios a mejorar la funcionalidad del negocio que
implementa. Esto es facilitado por el bajo nivel de granularidad que ofrecen
los microservicios.
• Extremos inteligentes, tuberías bobas. Las aplicaciones creadas desde
microservicios pretenden ser tan disociadas y cohesivas como sea posible,
ellas poseen su propia lógica de dominio y actúan como filtros en el clásico
sentido UNIX: recibe una solicitud, aplica la lógica apropiada y produce una
respuesta. Estos pasos son coreografiados usando protocolos simples
(típicamente HTTP con REST o mensajería liviana
como RabbitMQ o ZeroMQ) en lugar de protocolos complejos como WS-
BPEL.
• Tener gobierno descentralizado permite usar tecnologías que se
adapten mejor a cada funcionalidad. Con el sistema con múltiples servicios
colaborativos, podemos decidir utilizar diferentes lenguajes de programación
y tecnologías dentro de cada servicio. De esta forma podemos elegir la
herramienta adecuada para cada tipo de trabajo en lugar de tener una
estandarizada. Por ejemplo si una parte del sistema necesita mejorar su
rendimiento es posible usar una tecnología, quizás más complicada, que
permita alcanzar el nivel de rendimiento requerido. Otro ejemplo sería usar
para ciertas cosas (reflejar interacciones entre usuarios) una base de datos
orientada a grafos, y usar para otra bases de datos orientadas a documentos.
la arquitectura de microservicios permite adoptar nuevas tecnologías más
rápido y en aquellos lugares donde se puede aprovechar su potencial ya que
se acota el impacto.
• Gestión de datos descentralizada. Los microservicios prefieren dejar a
cada servicio que gestione su propia base de datos, sean estos diferentes
instancias de la misma tecnología de base de datos o sistemas de base de
datos completamente diferentes. Por ejemplo podríamos tener Redis para
sesiones de usuarios (base de datos en memoria), MySQL (relacional) para
los datos de pago, MongoDB (orientada a documentos) para el catálogo de
productos, Neo4j (orientada a grafos) para las recomendaciones y Apache
Cassandra (orientado a clave-valor) para el análisis de logs y analíticas. El
estilo de microservicios tiene implicaciones en el manejo de las
actualizaciones las cuales tradicionalmente han usado transacciones para
garantizar la consistencia. Las transacciones impone un acoplamiento
temporal lo que se vuelve problemático cuando hay varios servicios. Como
las transacciones distribuidas son mucho más difíciles de implementar, las
arquitecturas de microservicios promueven la coordinación no transaccional
entre servicios, con el reconocimiento explícito que la consistencia puede ser
una consistencia eventual y los problemas son compensados
operativamente. El sistema merece la pena siempre y cuando el costo de
solucionar los errores sea menor que el costo de perder negocios por una

Ingenieria de Soporte de TI 34
mayor consistencia. Los microservicios no obligan a tener distintas
tecnologías de almacenamiento, solo lo permiten.
• Diseño tolerante a fallos. Las aplicaciones necesitan ser diseñadas de
modo que puedan tolerar las fallas de los distintos servicios. Cualquier
llamada de servicio puede fallar y el cliente tiene que ser capaz de responder
a esto con la mayor facilidad y eficacia posible, evitando los muy habituales
fallos en cascada de las arquitecturas distribuidas. Patrones más importantes
para conseguir estabilidad que se usan en la arquitectura de microservicios:
o Usar tiempos de espera máximos. Es un mecanismo simple que
permite dejar de seguir esperando por una respuesta que consideramos
que ya no vendrá. Asociado al vencimiento de un tiempo de espera es
frecuente que aparezcan:
▪ Reintento. Consiste en repetir una operación para el cual finalizó su
tiempo de espera
▪ Encolar para reintentar la operación para ser realizada más tarde
o Disyuntores. Funcionan de forma similar a los interruptores automáticos
accionados por sobrecargas que hay en las instalaciones eléctricas. En
el software existen para permitir que un subsistema ante una falla no
destruya el sistema entero por sobrecarga y una vez que el peligro ha
pasado pueda reestablecerse. Este mecanismo se suele usar para
envolver operaciones peligrosas con un componente y así poder esquivar
las llamadas cuando el sistema no esté operativo. Si el disyuntor detecta
que las fallas superan una frecuencia umbral el disyuntor salta abriéndose
y las llamadas fallan sin realizar ningún intento de ejecutar una operación
real. Después de esperar un tiempo adecuado se decide que la operación
tiene una oportunidad y pasa a un estado de semiabierto en el que la
próxima llamada es permitida, si tiene éxito entonces el disyuntor se
vuelve a cerrar y todo vuelve a funcionar normalmente, si falla el disyuntor
se vuelve a abrir y se vuelve a esperar el tiempo adecuado para intentar.
o Compartimentos estancos para contención de daños manteniendolos
aislados. La forma más común de tenerlos es usando redundancia física
teniendo por ejemplo varios servidores y dentro de cada servidor varias
instancias. A gran escala podríamos tener varias granjas de servidores.
• Automatización de la infraestructura. La mayoría de los productos y
sistemas desarrollados con el enfoque de microservicios han sido
construidos por equipo que usan entrega continua y su precursor
la integración continua. Para conseguir esto es necesario:
o Automatizar todo el proceso, desde el chequeo del código, pruebas,
despliegue, ...
o Control de versiones y gestión de configuración. Todo el software
tiene que estar versionado y poder gestionar las distintas configuraciones
para conseguir la entrega continua.
o Arquitectura adecuada. La arquitectura tiene que permitir realizar

Ingenieria de Soporte de TI 35
cambios sin que afecten al resto del sistema. La arquitectura de
microservicios lo hace posible.
• Diseño evolutivo. Cuando se divide el sistema en servicios hay que tener
en cuenta que cada uno tiene que poder ser reemplazado o actualizado de
forma independiente. Es decir, tiene que permitir una fácil evolución. El
diseño del servicio tiene que ser de tal forma que evite en lo posible que la
evolución de los servicios afecte a sus consumidores.

Integración de servicios
Cuando tratamos con problemas complejos, es necesario tratar con el problema
de manejar procesos de negocio que involucran a varios servicios. Hay dos
formas de abordar este tipo de problemas: Orquestación y coreografía.

• Con orquestación lo que hacemos es tener un software que guíe y dirija el


proceso, de forma similar a como lo hace un director de orquesta.
• Con coreografía lo que hacemos es dejar que cada parte del sistema realice
su trabajo y se les deja trabajar en los detalles, como hacen los bailarines en
un ballet. Es más adaptado a la arquitectura de microservicios que cada
servicio sepa cómo actuar en cada momento, e interactúe con otros, en lugar
de tener a alguien que los coordine. Por eso para integrar se suele preferir
tener coreografía.
Ejemplo
Veamos un ejemplo de un sistema en el que cuando doy de alta un cliente tengo
que:

• Acreditarle una cantidad de puntos de bienvenida en su cuenta de fidelidad.


• Enviarle un kit de bienvenida a través del correo postal.
• Enviarle un correo electrónico de bienvenida al cliente.
La estrategia a tomar con un mecanismo de orquestación sería que el servicio
cliente contenga la lógica de control y en la creación este se comunicaría con el
Banco de puntos de fidelidad, el Servicio de correo postal y el Servicio de correo
electrónico a través de una serie de llamadas petición/respuesta. Por tanto el
Servicio Cliente realiza el seguimiento de las tareas y sabe si el proceso se ha
completado sin problemas. El problema de este enfoque es que el Servicio de
Cliente se puede convertir en una autoridad de gobierno central demasiado
fuerte donde toda la lógica gira alrededor de él.
La estrategia a tomar con un mecanismo de coreografía sería informar a cada
parte del sistema de su trabajo, y dejarlos trabajar en los detalles, como los
bailarines en un ballet que se encuentran en su camino y reaccionan ante otros
a su alrededor. Para ello el servicio cliente emitiría un mensaje asincrónico
cuando se crea un cliente. Así el Servicio de Correo Electrónico, el Servicio
Postal, y el Banco de puntos de Fidelidad, solo es necesario que se suscriban a

Ingenieria de Soporte de TI 36
esos eventos y reaccionar en consecuencia. Si algún otro servicio necesita llegar
a la creación de un nuevo cliente, simplemente tiene que subscribirse a los
eventos y hacer su trabajo cuando sea necesario. Este diseño implica que se
necesita de trabajo adicional para asegurarnos de que se han sucedido las cosas
correctas. Por ejemplo, saber si el banco de puntos de fidelidad tuvo un error y
por alguna razón no estableció correctamente los puntos. Para solucionar este
problema, normalmente es necesario crear un sistema de monitoreo que
refleje explícitamente la vista del proceso de negocio, y a su vez, haga un
seguimiento de lo que cada uno de los servicios realiza como entidad
independiente que le permite ver excepciones mapeadas al flujo de proceso más
explícito.
En general, los sistemas que utilizan el enfoque del tipo coreografía, están
débilmente acoplados, son más flexibles y más susceptibles de cambiar. Sin
embargo, es necesario realizar el trabajo extra de monitorear y seguir los
procesos a través de los límites del sistema.

Críticas
El enfoque de microservicios está sujeto a críticas por una serie de problemas:

• Los servicios forman barreras de información.


• Los mensajes entre servicios sobre la misma red tienen un costo mayor en
términos de latencia y tiempo de procesamiento de mensajes comparado con
un proceso de servidor monolítico.
• Las pruebas y el despliegue son más complicados en el modelo de
microservicios.
• Mover responsabilidades entre servicios es difícil. Puede requerir
comunicación entre distintos equipos, reescribir funcionalidades en
diferentes lenguajes o cambiar la funcionalidad para que funcione en otra
infraestructura.
• Contemplar el tamaño de los servicios como el principal mecanismo de
estructuración puede llevar a utilizar demasiados servicios cuando una
estrúctura de modularización interna puede llevar a un diseño más simple.
Carga cognitiva
La arquitectura introduce complejidad adicional y nuevos problemas a resolver,
como latencia en la red, formato de los mensajes, balanceo de carga y tolerancia
a fallos.
Una aplicación compuesta por un número de microservicios tiene que acceder a
su propio ecosistema, lo que puede crear complejidad innecesaria.9 Este tipo de
complejidad puede reducirse estandarizando el mecanismo de acceso. La Web,
considerada como un sistema, estandarizó el mecanismo de acceso a través de
mantener el mismo sistema de acceso entre el navegador y los recursos de
aplicación sobre los últimos 20 años. Utilizando el número de sitios web

Ingenieria de Soporte de TI 37
indexados por Google, se creció desde 26 millones de páginas en 1998 a
alrededor de 60 trillones de páginas individuales en 2015 sin necesitar cambiar
el mecanismo de acceso. La Web en sí misma es un ejemplo de cómo la
complejidad inherente a un sistema tradicional de software monolítico puede
superarse.

Tipos de nube
Cloud computing puede implementarse según los siguientes modelos de nube:

Nube pública
Este tipo de nube ofrece sus servicios a cualquier usuario de internet. Sus
servidores y almacenamiento pertenecen al proveedor del servicio y el cliente
sólo paga generalmente por el espacio de almacenamiento o el ancho de banda
que consumen.

Nube privada
Estas nubes ofrecen sus servicios a un número limitado de usuarios a través de
una red de una empresa. Esta red puede localizarse en las propias instalaciones
de la empresa o en las de un proveedor externo.

Nube híbrida
Como su propio nombre indica, este tipo de nube es fruto de una combinación
de las dos anteriores. En esta se almacenan datos en nubes públicas o privadas
en función de las necesidades. Por ejemplo, se puede guardar la información
más delicada en la nube privada y la menos crítica en la pública o también usar
la nube pública para cuando haya picos de trabajo que exijan un mayor
rendimiento.

Multicloud
Se trata de una opción que está siendo adoptada por muchas entidades y que
consiste en varias nubes entre las que se desplazan los distintos servicios y que
pueden trabajar simultáneamente. Con multicloud los clientes se blindan ante
posibles interrupciones del servicio.

SEGURIDAD EN LA NUBE

Ingenieria de Soporte de TI 38
La seguridad en la nube abarca una amplia gama de controles, tecnologías,
normas y procedimientos que se utilizan para proteger los datos, infraestructura
y aplicaciones basados en la nube.
El Cloud computing para empresas ha generado una nueva necesidad: la de
asegurar los datos y accesos en la nube para poder utilizar una serie de servicios
que potencien nuestras actividades productivas.
Esta seguridad orientada a la nube es una abstracción de la seguridad tradicional
en los centros de datos on-premise, con el beneficio de ahorro de costos
operativos para mantener las instalaciones y el hardware.
Los proveedores de servicios en la nube ponen en práctica medidas de
seguridad cloud para proteger la privacidad y la seguridad de los datos, así como
para cumplir con las normas internacionales. La seguridad en la nube es un
esfuerzo conjunto donde el cliente como el mismo proveedor tienen
responsabilidades similares.

¿Comó funciona la seguridad en la nube?

Una de las garantías para que la seguridad en la nube sea efectiva, es la


combinación de los esfuerzos de seguridad del proveedor y del cliente, para así
satisfacer ambas necesidades, desde las más básicas hasta las más exigentes,
como PCI-DSS, HIPAA, FINRA y otros requisitos legales y del sector.
Respaldar los servidores en la nube es fundamental para muchas organizaciones
actualmente, ya que almacenan la mayor parte de los datos y aplicaciones indispensables
en servidores Cloud.

El respaldo de archivos y la recuperación en caso de desastre es el segundo uso


principal del Cloud Computing entre las empresas medianas y grandes, según
una encuesta reciente de Clutch. El 62% de las empresas que participaron en la
encuesta usan la nube con este fin, solamente superado por el almacenamiento
de archivos (70%).
Diferencias entre la seguridad en la nube y la seguridad tradicional

Ingenieria de Soporte de TI 39
4 de las mejores prácticas para la seguridad en la nube

Existen un sinfín de buenas prácticas para la seguridad en la nube, sin embargo,


nombraremos las más relevantes para nosotros:
1. Establecer un sólido acuerdo de nivel de servicios (SLA)
Esta práctica es fundamental a la hora de contratar un proveedor Cloud, ya que
en este acuerdo se establecen las responsabilidades de las partes involucradas,
donde se fijan los niveles de control sobre los servicios y productos a contratar
así como la seguridad de los mismos.
2. Establecer el diseño de la arquitectura de seguridad
Ambas partes deben alinearse y detallar el contrato de arquitectura en seguridad
utilizada en el entorno a contratar. Es necesario asegurarse de que el proveedor
suministre las condiciones mínimas como un firewall, antivirus, proteccion anti
DDos, entre otros.
3. Solicitar protecciones avanzadas del perímetro
La seguridad perimetral juega un papel importante en el resguardo de la
información, por ello recomendamos solicitar servicios de seguridad avanzados:
Una solución de correo electrónico en la nube debe tener lo siguiente:
• Antivirus.
• AntiSpam.
• Control de fugas de información.
• Posibilidad de crear reglas específicas para el bloqueo, incluyendo los
archivos adjuntos.
• Monitoreo de correo electrónico.
Una solución de aplicación en la nube debe tener lo siguiente:
• Herramientas de detección de intrusos
• Firewall de aplicaciones (WAF)
• Firewall de nueva generación (NGFW)
• Herramientas de mitigación de ataques para DDoS;
• Correlación de registro
• Red de entrega de contenido (CDN)

4. Permitir el Ethical Hacking


Se debe permitir el análisis de vulnerabilidades y corrección ética planificada
adecuadamente para la nube. Este tipo de análisis debe ser hecho por una
empresa subcontratada por el proveedor que la empresa considere confiable.

¿Porqué usar la seguridad en la nube?

Mayor escalabilidad
La posibilidad de ampliar o reducir las prestaciones de seguridad en la nube es
una gran ventaja de adoptar esta tecnología que permite acomodarse según las

Ingenieria de Soporte de TI 40
necesidades del negocio a una velocidad mayor, reduciendo los costos y
mejorando el desempeño.
Ahorro de costos por adelantado
Es una realidad que la seguridad basada en la nube es menos costosa que On-
premise, porque en el primer caso se están alquilando los servicios de la
#TelcoCloud. Por el contrario en el segundo caso es necesario que las empresas
deban construir, comprar, instalar configurar y mantener los equipos de
seguridad propios en sus centros de datos.
Menores gastos permanentes
Con los centros de datos propios las empresas deben pagar por los recursos de
seguridad quieran o no. En cambio con una #TelcoCloud solo se paga por la
seguridad que efectivamente usan, ahorrando gastos innecesarios en amortizar
los equipos que poco se usan.
Siempre actualizados
Como empresa de telecomunicaciones que siempre busca brindar soluciones
seguras, debemos estar muy alertas sobre las actualizaciones de los sistemas
de seguridad avanzados que usamos. Y no solo eso, también mantenemos a
nuestros recursos humanos en constante actualización de la mano con los
partners de seguridad para brindar un servicio de punta en todos los aspectos.

¿Quienes confían en la seguridad en la nube?

Ninguna empresa es muy grande o muy pequeña para utilizar la posibilidades


que brinda la nube y una de ellas es la seguridad de la información, como en los
casos de:
Grandes compañías: Netflix es un gigante del entretenimiento por Internet, con
una plataforma robusta, es una de las pioneras en confiar en los servicios Cloud
de Amazon Web Services (AWS), sus necesidades de seguridad las administran
los proveedores y esto les permite centrarse más en el negocio, convirtiéndose
en una de las plataformas streaming más poderosas en la actualidad.
Gobiernos: Tal es el nivel de seguridad en la nube que hasta algunos
departamentos gubernamentales como la NASA manejan datos altamente
confidenciales en la nube. La nube les permite mantener los requisitos de
conformidad sin preocuparse por nada.
Startups: Los entornos Cloud son los predilectos de las startups, ya que estos
permiten una elasticidad de los requerimientos del negocio, permitiendo escalar
las necesidades a la par con el crecimiento de la organización.
Banca y finanzas: Este sector prácticamente depende de los sistemas
informáticos para funcionar, por lo tanto la nube está ganando terreno en
diferentes procesos como:
• Pagos con tarjeta o a través de dispositivos móviles
• Marketing y relaciones con los clientes
• Core bancario
• Recursos humanos

Ingenieria de Soporte de TI 41
• Gestión de la información
• Almacenamiento

DEFENSA ANTE LOS CIBERATAQUES

Algunos consideran que su información no sirve al ciberdelincuente o que la


ciberseguridad solo preocupa a las grandes multinacionales. Ambas
concepciones son equivocadas. Lo demuestra el último informe global de
Kaspersky Lab donde se refleja que los ataques a las pymes crecieron un 36
por ciento durante el pasado año. Sin duda el hecho de que la nube sea
accesible para todo tipo de empresas es una tendencia que anima a los
delincuentes informáticos a atacar a los negocios más pequeños.

Es más, el pasado año dos de cada tres ataques de ciberseguridad que


afectaron a las pymes estaban relacionados con diferentes servicios en la
nube y generaron de media pérdidas de más de 150.000 euros. En la misma
línea está otro estudio de Symantec que señala que más de 70 millones de
registros fueron robados directamente de los servicios de cloud computing el
pasado año.

Vaya por delante que este dato no quiere decir que la nube sea insegura y que
no represente una oportunidad a aprovechar por las empresas. De hecho, los
problemas siempre están relacionados con la utilización del ordenador de
escritorio y el tipo de información que se almacena en los servidores cloud.
Sea como sea, lo que las cifras evidencian con notoria claridad es que invertir
en ciberseguridad es una obligación para todos los negocios, nuevos o
antiguos, más grandes o más pequeños. Un buen punto de partida a tener en
cuenta para detectar si se está invirtiendo lo suficiente es partir del presupuesto
que se posee para tecnología y retirar un 33 por ciento del montante para la
seguridad informática.

No obstante, las pymes aún gozan de una importante ventaja en este aspecto y
es que los esfuerzos que tendrán que hacer para defenderse de los
ciberataques son muy sencillos de poner en práctica y, en la mayoría de los
casos, baratos.

Mantenerse al día con las actualizaciones


La mayoría de las actualizaciones del sistema operativo, de los programas
instalados en los ordenadores o de las aplicaciones del móvil se realizan por
motivos de seguridad. Así que minusvalorar la importancia de dicha
actualizaciones constituye un factor de riesgo potencial para los nuevos
negocios.

Ingenieria de Soporte de TI 42
Lo más básico: vigilar los adjuntos de los correos

Aunque parezca evidente, no está de más recordar que los documentos adjuntos
de remitentes desconocidos que llegan en los correos electrónicos pueden ser
virus que afecten a la seguridad industrial ya que pone en riesgo información
sensible de la empresa. Activar la función de correo no deseado en el mail
suele ser oportuna en este sentido.

Cuidado con los dispositivos externos

Muchas veces el archivo dañino logró instalarse en la memoria de un USB o DVD


y está a la espera de que el dispositivo sea conectado a un ordenador de la
empresa para comenzar a realizar su trabajo. De ahí que por norma general se
deba huir de cualquier dispositivo externo a la hora de compartir archivos.
Mejor recurrir a herramientas gratuitas como Google Drive. No obstante, si la
utilización del USB es necesaria, se debe analizar la memoria de los
dispositivos portátiles antes de utilizarlos para lo que será necesario quitar
el autoarranque.

Backups constantes y periódicos

Otra costumbre que los negocios no deben olvidar es la de realizar copias de


seguridad en la nube y en diferentes ubicaciones de la información de la
empresa. Será la única manera de minimizar el daño que un ataque informático
puede generar al negocio.

Concienciar a toda la organización

Es cierto que actualizar los equipos y realizar backups son buenas acciones en
aras de frenar a los delincuentes informáticos. Pero de nada servirán si no se
consigue que todos los miembros de una organización empresarial sean
cuidadosos con la información que manejan. De hecho, el estudio de Karpersky
indica que la mayoría de los robos de información no parten de internet sino
del teléfono al compartirse alegremente información con el interlocutor.

Ingenieria de Soporte de TI 43
Para evitarlo solo queda recurrir a la cultura empresarial y a una labor de
concienciación que eleve el celo y el cuidado de toda la plantilla con la utilización
de datos.

Ser consciente del riesgo de vivir en un mundo digital

Al hilo del apartado anterior dedicado a la conciencia de la empresa, es


importante añadir que dicha concienciación debe ser global. No es cuestión de
convertirse en seres paranoicos. Pero se debe ser consciente de que la
mayoría de los aparatos enchufados a la corriente eléctrica están
conectados a la red, lo que de por sí ya constituye un riesgo.
Cafeteras, neveras, televisiones, robots de cocina, altavoces
inteligentes…. Todo, absolutamente todo lo que nos rodea es una puerta de
entrada para los ciberataques. Por tanto, se debe abogar por un uso responsable
de todo ello partiendo de que al instalar los dispositivos sea necesario
configurarlos (incluso con contraseñas) correctamente.

Proteger el móvil

A día de hoy el teléfono inteligente es el dispositivo más importante para la


mayoría de las personas. De ahí que resulte inconcebible que se protejan los
ordenadores pero se levante la mano con los móviles. Nadie debería
descuidar este aspecto y más en el caso de un empresario, ya que un ataque
exitoso a la información del teléfono puede suponer el robo de información básica
para la compañía.

NEXT CLOUD

Nextcloud es un software Open Source que nos permite alojar archivos en la


Nube y, además permite visualizarlos directamente desde un sitio web o apps,
compartirlos, etc. Forma parte del Catálogo de Aplicaciones de Arsys, por lo que
podemos desplegarlo muy fácilmente sobre Servidores Cloud, por lo
que contaremos con un entorno seguro, flexible y siempre disponible, tal y como
requieren este tipo de proyectos, y muy especialmente, en el entorno corporativo.

Ingenieria de Soporte de TI 44
En su rango de funcionalidades resulta muy similar a otros productos altamente
conocidos como Dropbox, OneDrive o Google Drive. Sin embargo, tiene algunas
particularidades que lo pueden hacer más adecuado sobre todo en el ámbito
empresarial. La principal diferencia es que los archivos almacenados con
Nextcloud permanecen en los servidores en los que lo instalemos y, por tanto,
se puede mantener un control minucioso y personalizado del tránsito y el acceso
a la información, así como integrar el servicio de almacenamiento en los
procesos específicos de la empresa.

Nextcloud es un fork de un software similar muy conocido, Owncloud. En el caso


de Nextcloud se ha cuidado con mayor detalle la interfaz de usuario de la web y
las aplicaciones, que tiene un aspecto más moderno. Pero sobre todo, la
principal diferencia es la posibilidad de configuración de la seguridad, de manera
más minuciosa. Nexcloud cubre los principales estándares de seguridad y al
estar desarrollado en Europa, es perfectamente adaptable a las normativas
internas como la GDRP.

Algunas de las principales funcionalidades de Nextcloud son las siguientes:

o Almacenamiento de todo tipo de archivos, con la posibilidad de


visualización online, incluso para documentos multimedia.
o Sincronización, de modo que los archivos se envían al servidor y se
comparten las actualizaciones con otros usuarios de manera automática.
o Acceso universal, tanto a través del sitio web como de las aplicaciones
móviles o desktop. Los clientes pueden manejar varias cuentas y notificar a
otros usuarios sobre su actividad.
o Seguridad. La transferencia de archivos se realiza encriptada, e incluso el
almacenamiento, si así se desea. Y como la solución se aloja en nuestros

Ingenieria de Soporte de TI 45
propios servidores, nunca se pierde el control.
o Integración con otras aplicaciones. Es capaz de funcionar con una gran
cantidad de servicios y tecnologías, como FTP, SharePoint, NFS, incluso se
integra con servicios similares como Dropbox.
o Configuración de acceso granular. Cada archivo puede tener su
configuración personalizada de acceso, con la posibilidad de compartir links
públicos protegidos por clave.
o Monitorización. Permite obtener reportes de uso del servicio, de modo que
los administradores puedan estar al día sobre la salud del sistema y el uso
de la información almacenada.
o Administración del workflow. Es posible crear reglas de negocio dentro de
la aplicación, de modo que los administradores pueden configurar el flujo o
acceso de la información de manera automática.

Este tipo de software resulta especialmente adecuado para instalarlo sobre


un Servidor Cloud. y más si es algo que podemos hacer en sólo unos clics, como
sucede en Arsys. Gracias a la posibilidad de mantener los recursos de los
servidores constantemente ajustados a las necesidades reales de la aplicación,
las empresas pueden ahorrar costes, ya que solo se paga por los recursos que
realmente se van a consumir. Es perfectamente posible comenzar con un
espacio en disco reducido e ir aumentando la capacidad de almacenamiento del
servidor a medida que se vaya haciendo necesario.

Además, en este caso de uso resulta especialmente interesante la posibilidad de


usar los espacios de almacenamiento de bloques o Block Storage de Cloudbuilder
Next, que nos permiten agregar espacios de alojamiento en los servidores de
manera ilimitada, cuando las necesidades de almacenamiento lo demanden. De
este modo, nunca nos quedaremos sin espacio, incluso en los escenarios más
exigentes.

OWNCLOUD VS. NEXTCLOUD: ALMACENAMIENTO EN LA NUBE


COMPARADO

Aquellos que actualmente quieran tener bajo control todo su arsenal personal de
documentos, imágenes, música y vídeos, recurren cada vez con más asiduidad
a las posibilidades de los programas de almacenamiento en la nube. Servicios
como Dropbox, Microsoft OneDrive o iCloud de Apple se presentan como

Ingenieria de Soporte de TI 46
alternativas atractivas y prácticas al almacenamiento local en el ordenador, la
tablet o el smartphone personales gracias a la accesibilidad permanente y
multidispositivo que Internet garantiza. Sin embargo,especialmenteen lo que
respecta a los datos sensibles, siempre surge la cuestión de la seguridad de los
archivos almacenados.

Para aquellos que quieran disfrutar de las ventajas de la nube y mantener el


control total sobre todos sus datos, es conveniente que piensen en alojar y
gestionar su propio servicio de almacenamiento online. Para ello, el software
necesario puede encontrarse en el sector del código abierto: en concreto la
aplicación ownCloud y su proyecto paralelo, Nextcloud, ya han conseguido
hacerse un hueco como soluciones funcionales, por lo que a continuación te
ofrecemos todos los detalles sobre ambos servicios.

ownCloud vs. Nextcloud: una comparativa de ambos servicios

El 2 de junio de 2016 Frank Karlitschek, fundador de ownCloud, anunció que se


estaba trabajando en una escisión oficial del software de almacenamiento en
la nube, cuya primera versión fue publicada el mismo año bajo el nombre de
Nextcloud. Unas semanas antes, Karlitschek abandonó la empresa debido a
desacuerdos sobre la trayectoria de esta en el futuro, en lo que el tema de
las licencias tuvo un papel decisivo. Este punto de discordia es un rasgo
diferenciador clave de ambos servicios open source de almacenamiento en la
nube: mientras que los usuarios de ownCloud solo pueden acceder a algunas
funciones si adquieren la edición Enterprise, que tiene una licencia comercial,
todos los elementos de Nextcloud están disponibles bajo la licencia
libreAGPLv3.

A continuación te explicamos hasta qué punto se diferencian ambas soluciones


de almacenamiento online y cuáles son las características que las definen, pero
en primer lugar vamos a analizarlos por separado poniendo de relieve sus
ventajas e inconvenientes.

ownCloud

Como se ha mencionado anteriormente, el proyecto ownCloud surgió de la mano


de Frank Karlitschek en 2010, erigiéndose como una alternativa libre a los
servicios en la nube comerciales. El desarrollador de software nacido en
Alemania fue miembro de la comunidad KDE, dedicada al desarrollo de software
libre. El núcleo de ownCloud es la aplicación de servidor owncloud X, que puede
instalarse en cualquier navegador o espacio web. Sin embargo, la cantidad de
memoria RAM y de espacio en disco depende en gran medida de la utilización
del servidor cloud, de modo que es conveniente seleccionar los recursos
atendiendo a criterios como la cantidad de usuarios, el número y tamaño de los

Ingenieria de Soporte de TI 47
archivos almacenados y la actividad general del servidor. En función
del software adicional requerido, los fabricantes establecen lo siguiente:

Si el servidor de ownCloud está instalado y configurado (nuestra Guía Digital te


ofrece instrucciones para hacerlo en un Raspberry Pi), los archivos pueden
cargarse en él con ayuda de los clientes de escritorio. Además de los clientes
gratuitos para macOS, Windows y Linux, también hay aplicaciones
móviles para Android e iOS que están disponibles por menos de 1 euro en la
Google Play Store (0,79 €) y en la Apple App Store (0,99 €). Con ayuda de estas
aplicaciones, los usuarios de ownCloud pueden crear su propio directorio, que
puede sincronizarse posteriormente y en cualquier momento con el servidor en
la nube (siempre y cuando se tenga una conexión a Internet). Gracias a la opción
de filesharing se pueden compartir archivos con otros usuarios (y protegerse con
contraseña en caso necesario), de modo que estos también puedan tener acceso
a ellos.

Ingenieria de Soporte de TI 48
La interfaz del cliente de ownCloud proporciona información sobre los archivos
que ya están sincronizados y sobre los que no (“Not Synced”)
Para las empresas, el equipo de ownCloud ofrece opcionalmente asistencia
profesional y de pago, y para ello puede recurrirse a dos modelos de
suscripción: la suscripción estándar incluye asistencia por correo electrónico
en días laborables y cuesta, al año, 3.000 euros para 50 usuarios o 4.800 euros
para 100 usuarios. Este modelo está vinculado a la licencia libre AGPLv3,de
modo que todos los ajustes que se realizan en el software para el
almacenamiento en la nube también se comparten con la comunidad. Con la
cuota Enterprise, mucho más cara pues cuesta 7.200 euros para 50 usuarios y
11.520 para 100 usuarios al año y está vinculada a la licencia comercial de
ownCloud, las empresas no solo reciben asistencia por correo electrónico y
teléfono a nivel global, sino que también pueden acceder a una amplia gama de
módulos exclusivos que solo están disponibles en el paquete Enterprise.
Además, las aplicaciones cliente para iOS y Android son gratuitas en este
paquete.

ownCloud ofrece a los usuarios y a los administradores las siguientes funciones


adicionales con las que pueden optimizar la usabilidad de la plataforma en la
nube.

Ingenieria de Soporte de TI 49
Además, también hay funciones que pueden añadirse a través de aplicaciones
desde el ownCloud Marketplace. Los usuarios de Enterprise tienen acceso,
asimismo, a funciones exclusivas como la búsqueda de texto completo para
encontrar archivos, carpetas o contenidos de archivos más rápido, o el manejo
automatizado de archivos (workflow management). Por otro lado, la versión
Enterprise también permite modificar el diseño de la interfaz de la nube e integrar
branding propio.

El paquete de ownCloud se completa con las diferentes funciones de seguridad,


aunque se dan algunas diferencias entre la versión clásica y libre y la edición
Enterprise:

Ingenieria de Soporte de TI 50
ownCloud: seguridad y protección

Si no estás seguro de necesitar las funciones de la versión Enterprise para tu


propia nube, puedes probarla gratis durante 30 días. Para ello tendrás que
rellenar el formulario de contacto, tras lo cual recibirás el enlace de descarga por
correo electrónico.

Nextcloud

Cuando Nextcloud fue publicado en 2016 como una escisión de ownCloud, se


trataba de la edición open source de la versión de ownCloud de aquel entonces,
que fue dotada de un nuevo diseño. Desde entonces, la Nextcloud GmbH, a la
que se adhirieron Karlitschek y otros antiguos desarrolladores del proyecto
ownCloud, ha seguido adelante con la remodelación del software a un ritmo muy
rápido. La aplicación fundamental se llama servidor Nextcloud, y puede
instalarse en prácticamente todos los espacios web y servidores. Al igual que en
ownCloud X, los requisitos de hardware dependen del tráfico general del
servidor, de la cantidad de usuarios y del número y tamaño de los archivos
almacenados. Para un funcionamiento estable de la nube, el equipo de
desarrollo recomienda al menos 512 MBdeespacio de almacenamiento. Sin

Ingenieria de Soporte de TI 51
embargo, en términos de requisitos de software, Nextcloud no difiere mucho de
su predecesor:

Nextcloud: requisitos del sistema

Para cargar archivos en el servidor de Nextcloud ya configurado el software


facilita clientes de escritorio para los sistemas operativos más habituales. Para
los usuarios de Windows y macOS, los archivos de instalación necesarios se
encuentran en la página principal del programa open source y para los
usuarios de Linux (openSUSE, Archlinux, Fedora, Ubuntu, Debian) estos son
accesibles desde el sistema de gestión de paquetes de tu distribución. Para
acceder desde dispositivos móviles existen aplicaciones gratuitas para Android
y iOS, así como una aplicación para Windows Phone por 99 céntimos. Los
clientes permiten sincronizar una o varias carpetas locales con el servidor y,
gracias al gestor de archivos y a la función de intercambio de datos, pueden
visualizarse todos los archivos almacenados y compartirse con usuarios de otros
servidores o mediante enlaces públicos.

Ingenieria de Soporte de TI 52
Los clientes de Nextcloud no difieren de las aplicaciones de ownCloud ni a nivel
funcional ni óptico
Como ya hemos mencionado, todos los componentes de Nextcloud funcionan
sin excepción bajo la licencia libreGNU AGPLv3, puesto que una licencia
comercial no encajaría en la filosofía de los desarrolladores. Sin embargo, en su
portfolio, Nextcloud GmbH también ofrece un soporte profesional de pago para
los usuarios avanzados compuesto por tres modelos de precios diferentes:

1. Basic: el paquete básico, que cuesta anualmente 1.900 euros para 50


usuarios y 3.400 euros para 100 usuarios, incluye, además de asistencia
por correo electrónico (en un plazo de 72 horas) y el Nextcloud
Knowledge Portal, actualizaciones durante un año.

2. Standard: el paquete Standard, que cuesta anualmente 3.400 euros


para 50 usuarios y 6.100 euros para 100 usuarios, ofrece asistencia por
parte de desarrolladores profesionales, servicio de
instalaciones, soporte telefónico durante el horario de oficina y soporte

Ingenieria de Soporte de TI 53
de actualizaciones durante tres años.

Premium: el precio del paquete Premium asciende anualmente a 4.900 euros


para 50 usuarios y a 8.900 euros para 100 usuarios y ofrece mantenimiento
durante 10 años, asistencia por teléfono y correo electrónico 24/7 y, en caso
necesario, soporte para el escalado del almacenamiento en la nube. Nextcloud
no se limita solo a cargar y descargar archivos, sino que está dotado de diversas
funciones que ofrecen posibilidades adicionales y simplifican el almacenamiento
de datos tanto a los usuarios como a los administradores:

Ingenieria de Soporte de TI 54
Gracias a su estructura modular, uno de los puntos fuertes de la plataforma en
la nube está en su capacidad de ampliación. Así, por medio de las aplicaciones
de Nextcloud se pueden añadir diversas funciones de sectores como integración,
multimedia, oficina y texto o autentificación y autorización. La lista oficial de
aplicaciones soportadas puede consultarse en la App Store de Nextcloud, donde
los usuarios no solo encuentran documentación y enlaces de descarga, sino una
guía para los desarrolladores que quieran programar sus propios módulos.

Tan importante es tener una amplia gama de funciones como dotar de seguridad
a los datos que se almacenan en las nubes “privadas” con ayuda de software.
Por ello, Nextcloud ofrece a los gestores eficaces herramientas para
una protección óptima:

Nextcloud: seguridad y protección

Para probrar Nextcloud no es necesariodescargar e instalar el software. Desde


la página de inicio, los interesados pueden generar sus propias versiones demo
del sistema de almacenamiento online y probar sus funciones durante 60
minutos.

Ingenieria de Soporte de TI 55
Nextcloud vs. ownCloud: las diferencias más notables

En muchos aspectos es evidente que Nextcloud no es un software nuevo, sino


la variante libre de ownCloud. En cuanto al almacenamiento e intercambio de
archivos no hay diferencias notables entre ambas aplicaciones.

Los rasgos distintivos más importantes se dan, sin embargo, con respecto a las
funciones adicionales y de seguridad: por un lado, la política de licencias de
ownCloud se ocupa de que algunos componentes como la búsqueda de texto
completo, la gestión del flujo de trabajo o el branding solo estén disponibles para
los clientes del paquete Enterprise, limitación que no tienen los usuarios de
Nextcloud, pues solo la asistencia y las actualizaciones tienen un coste extra.
Por otro lado, las funciones más actuales, como las llamadas y las
videoconferencias, indican que el equipo de Nextcloud centra más su atención
enla mejora funcional de la aplicación, queriendo convertirla así en una
plataforma de colaboración online más compleja. Mientras tanto, ownCloud se
centra en la optimización de las características de seguridad, en lo que su
sucesor parece ir un paso por delante con funciones como la protección contra
ataques de fuerza bruta configurada automáticamente.

Como software relativamente nuevo, Nextcloud se enfrenta a los típicos


problemas iniciales, como por ejemplo, que la redacción en inglés de
los manuales online no es muy extensa hasta la fecha. Asimismo, las
actualizaciones no tienen lugar de una manera tan sencilla como en ownCloud.

Ingenieria de Soporte de TI 56
ownCloud vs. Nextcloud: tabla comparativa:

Ingenieria de Soporte de TI 57

También podría gustarte