Pisd 511 Material
Pisd 511 Material
Pisd 511 Material
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
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:
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:
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
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
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.
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.
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.
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:
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.
Middleware en la nube
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í.
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.
Definición de API
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.
Ingenieria de Soporte de TI 9
Ingenieria de Soporte de TI 10
API Economy
Ingenieria de Soporte de TI 11
de APIs de servicios que son valiosos para terceros y están dispuestos a pagar
por su uso.
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:
• 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.
Ingenieria de Soporte de TI 12
API Managament System
Ingenieria de Soporte de TI 13
Elementos de un API Gateway
Ingenieria de Soporte de TI 14
• Soporte multi-formato: Componentes destinados a transformar los datos de un
formato a otro, o de su enmascaramiento.
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 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.
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
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.
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.
Ingenieria de Soporte de TI 20
Cloud SQL
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.
Seguridad y cumplimiento
Escalabilidad a tu medida
Ingenieria de Soporte de TI 21
de prueba como si quieres usarla en producción con alta disponibilidad
inmediatamente.
Características
• 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
• Replicación de datos entre varias zonas con conmutación por error automática
• Clonación de instancias.
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.
• Aplicaciones externas.
• Cloud Functions.
• Cloud Run.
Características no compatibles
• Motor federado
Ingenieria de Soporte de TI 23
• Privilegio SUPER
Instrucciones no compatibles
Funciones no compatibles
• LOAD_FILE()
• 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
skip-name-resolve
Esta marca afecta cómo se resuelven los nombres de host para las conexiones
de clientes.
Dockers
Ingenieria de Soporte de TI 25
¿Cómo funciona Docker?
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.
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.
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).
Kubernetes
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.
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
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.
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:
Ingenieria de Soporte de TI 32
• Utilización de recursos: Permite mayor eficiencia y densidad
Microservicios
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:
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.
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:
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.
Ingenieria de Soporte de TI 39
4 de las mejores prácticas para 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.
Ingenieria de Soporte de TI 41
• Gestión de la información
• Almacenamiento
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.
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.
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.
Proteger el móvil
NEXT CLOUD
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.
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.
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.
ownCloud
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:
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.
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.
Ingenieria de Soporte de TI 50
ownCloud: seguridad y protección
Nextcloud
Ingenieria de Soporte de TI 51
embargo, en términos de requisitos de software, Nextcloud no difiere mucho de
su predecesor:
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:
Ingenieria de Soporte de TI 53
de actualizaciones durante tres años.
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:
Ingenieria de Soporte de TI 55
Nextcloud vs. ownCloud: las diferencias más notables
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.
Ingenieria de Soporte de TI 56
ownCloud vs. Nextcloud: tabla comparativa:
Ingenieria de Soporte de TI 57