Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
SISTEMAS E INFORMATICA
Área:
Ingeniería de Información
Docente:
Ing. Camilo Ernesto Suárez Rebaza
Ciclo:
VII
Integrantes:
Castillo Graus Rubén
Chirinos Carranza Luis
Cisneros Baca Benny
Lecca Reyna Edison
Sandoval Chauca Christian
1
1. Negocio
1.1. BPM
BPM tiene como objetivo, traer a colación la información relevante sobre cómo los
procesos se ejecutan de manera que se puedan hacer mejoras y para que los procesos
se puedan manejar, permitiendo una mejor toma de decisiones y visión de negocios
como un todo (Club-BPM, 2009).
Para soportar esta estrategia es necesario contar con un conjunto de herramientas que
den el soporte necesario para cumplir con el ciclo de vida de BPM. Este conjunto de
herramientas son llamadas Business Process Management Software (BPMS), y con ellas
se construyen aplicaciones BPM. Normalmente siguen una notación común,
denominada Business Process Modeling Notation (BPMN). Otras poseen una notación
propia y son capaces de generar código (Club-BPM, 2009).
1.2. BPMN
El modelado en BPMN se realiza mediante diagramas muy simples con un conjunto muy
pequeño de elementos gráficos. Con esto se busca que para los usuarios del negocio y
los desarrolladores técnicos sea fácil entender el flujo y el proceso. Las cuatro categorías
básicas de elementos son (Wikipedia, 2018):
2
Objetos de Flujo: Eventos, Actividades, Rombos de control de flujo (gateways); (Club-
BPM, 2009)
(Wikipedia, 2018)
2. Aplicaciones
2.1. Programación AOP
En AOP, a los elementos que son transversales a la estructura del sistema y se pueden
modularizar gracias a las construcciones que aporta el paradigma se les
denomina aspectos (aspects) (Wikipedia, 2018).
3
El principal objetivo de la POA es la separación de las funcionalidades dentro del sistema
(Wikipedia, 2018):
Conceptos Basicos:
4
de Cruce. Este proceso puede ocurrir a lo largo del ciclo de vida del Objeto
Destinatario (Ruelas, 2017).
Aspectos en Tiempo de Compilación, que necesita un compilador especial
(Ruelas, 2017).
Aspectos en Tiempo de Carga, los Aspectos se implementan cuando el Objeto
Destinatario es cargado. Requiere un ClassLoader especial (Ruelas, 2017).
Aspectos en Tiempo de Ejecución.
2.2. Microservicios
La Arquitectura de micro- servicios, conocido por las siglas MSA (del inglés Micro Services
Architecture) 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 (Wikipedia, 2018).
Estos servicios son aislados y autónomos, pero se comunican para proporcionar algunas
piezas de funcionalidad de negocio. Los microservicios son típicamente implementados
operado por pequeños equipos con suficiente autonomía que cada equipo y servicio puede
cambiar su implementación interna (¡incluida su sustitución inmediata!) con un impacto
mínimo en todo el mundo. el resto del sistema. (Posta, Microservices for Java Developers,
2015)
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 (Wikipedia, 2018):
5
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.
3. 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 a con la vinculación a una
capacidad del negocio. 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.
4. 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.
5. 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
aquello lugares donde se puede aprovechar su potencial ya que se acota el impacto.
6. Gestión de datos descentralizada. Los microservicios prefieren dejar a cada servicio
que gestione su propia base de datos, sean estas 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. la transacción impone un acoplamiento temporal lo que se vuelve
problemático cuando hay varios servicios. Como las transacciones distribuidas son
6
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 mayor consistencia.
Los microservicios no obligan a tener distintas tecnologías de almacenamiento, solo
lo permiten.
7. 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:
8. 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:
9. Reintento. Consiste en repetir una operación para el cual finalizó su tiempo de espera
10. Encolar para reintentar la operación para ser realizada más tarde
11. 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
realizan 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.
12. 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.
13. 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:
14. Automatizar todo el proceso, desde el chequeo del código, pruebas, despliegue.
7
15. 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.
16. Arquitectura adecuada. La arquitectura tiene que permitir realizar cambios sin que
afecten al resto del sistema. La arquitectura de microservicios lo hace posible.
17. 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. (Wikipedia, 2018)
En sistemas complejos, las cosas fallan. Los discos duros se caen, los cables de red se
desconectan, hacemos mantenimiento en la base de datos en vivo en lugar de las copias
de seguridad, y las VMs desaparecen. Las fallas simples pueden propagarse a otras partes
del sistema y resultar en fallas en cascada que toman un largo tiempo de propagación por
todo el sistema caído (Wikipedia, 2018).
las llamadas de red no pueden completarse con éxito, fallan inmediatamente, y sus avisos
de aplicación rápidamente (por ejemplo, a través de IOException). En este caso, podemos
tomar medidas correctivas rápidamente, proporcionar o simplemente responda con un
mensaje indicando la solicitud no pudo completarse correctamente y que los usuarios
deberían intentarlo de nuevo más tarde. (Posta, Microservices for Java developers, 2016)
8
Pero los errores en las solicitudes de red o en las aplicaciones distribuidas no siempre son
tan fáciles. ¿Qué sucede si la aplicación de flujo descendente a la que debe llamar tarda
más de lo normal en responder? Esto es mortal porque ahora su aplicación debe tener en
cuenta esta lentitud mediante la aceleración de las solicitudes, la temporización de las
solicitudes de flujo descendente y la posibilidad de que todas las llamadas se detengan a
través de su servicio. Esta copia de seguridad puede causar servicios ascendentes para
experimentar desaceleración y detenerse. Y puede causar fallos en cascada. (Posta,
Microservices for Java developers, 2016)
Los siguientes principios han surgido como mejores prácticas para desarrollar y trabajar
con una arquitectura basada en microservicios. Estos principios son útiles durante la
evaluación inicial y sirven como una lista de verificación para su proyecto greenfield
(Wikipedia, 2018).
9
Patrón de la tubería
En escenarios más complejos, una sola solicitud desencadena una serie completa de pasos
a ejecutar. En este caso, el número de servicios que tienen que ser llamados para una sola
respuesta es mayor que uno. El uso de un pipeline de servicios permite la ejecución de
diferentes operaciones sobre la solicitud entrante. Se puede desencadenar una sintonía de
pipeline de forma crónica o asincrónica, aunque las etapas de tratamiento son lo más
probable es que sean sincrónicos y dependan los unos de los otros. Pero si los servicios
están usando peticiones síncronas, el cliente tendrá que esperar a que el último paso en el
pipeline a terminar. (Eisele, 2016)
Recursos compartidos
10
2.3. Framework Spring
Spring ayuda a solventar este problema ya que cambia las responsabilidades y en vez de que
el propio desarrollador sea el encargado de generar los objetos de cada uno de los frameworks
es Spring basandose en ficheros xml o anotaciones el encargado de construir todos los objetos
que la aplicación va a utilizar (Alvarez, 2018).
11
De esta manera al ser Spring el encargado de inicializar todos los objetos de los distintos
frameworks, es también el responsable de asegurarnos que se integran de la forma correcta
(Wikipedia, 2017).
(Alvarez, 2018)
La primera versión fue escrita por Rod Johnson, quien lo lanzó junto a la publicación de su
libro Expert One-on-One J2EE Design and Development (Wrox Press, octubre 2002).
El framework fue lanzado inicialmente bajo la licencia Apache 2.0 en junio de 2003. El
primer gran lanzamiento fue la versión 1.0, que apareció en marzo de 2004 y fue seguida por
otros hitos en septiembre de 2004 y marzo de 2005. La versión 1.2.6 de Spring Framework
obtuvo reconocimientos Jolt Awards y Jax Innovation Awards en 2006 (Alvarez, 2018).
Spring Framework 2.0 fue lanzada en 2006, la versión 2.5 en noviembre de 2007, Spring 3.0
en diciembre de 2009, y Spring 3.1 dos años más tarde. El inicio del desarrollo de la versión
4.0 fue anunciado en enero de 2013. La versión actual es la 5.0 (Alvarez, 2018).
12
Modulos:
Spring Framework comprende diversos módulos que proveen un rango de servicios (Wikipedia, 2017):
13
2.4. Programación Reactiva
Los actores son entidades que intercambian mensajes asíncronos y realizan una
tarea en concreto. Los actores pueden agruparse en grupos de actores (clusters), lo
cual permite que el sistema sea escalable horizontalmente (McKee, 2016).
Los actores (supervisors) pueden crear otros autores (workers) para delegarles
trabajos más específicos. Si un worker se encuentra con un problema, se suspende
a sí mismo y notifica a su supervisor de la falla. De esta forma el sistema puede
manejar los errores de forma que no se vea afectado por estos (McKee, 2016).
14
Figura 1: Un actor (supervisor) crea otros actores (workers) (McKee, 2016)
RxJava 2
Esta librería, y su versión 1.x fueron las pioneras en el desarrollo reactivo Java. Se
encuentran completamente integradas en frameworks como Spring MVC, Spring
Cloud y Netflix OSS (CampusMVP, 2017).
Project Reactor
Fue concebida con la implicación del equipo responsable de RxJava 2 por lo que
comparten gran parte de la base arquitectónica. Su principal ventaja es que al ser parte
de Pivotal ha sido la elegida como fundación del futuro Spring 5 WebFlux Framework
(CampusMVP, 2017).
2.4.3. Usos
15
Aplicaciones con interfaz gráfica en la que el usuario interactúe con la
aplicación
Cuando se quiera procesar información en tiempo real como por ejemplo las
lecturas provistas por un termómetro, un sismógrafo o, en el caso de los
automóviles autónomos, la inmensa cantidad de información que reciben a
través de sus sensores.
El diseño web responsive o adaptativo es una técnica de diseño web que busca la correcta
visualización de una misma página en distintos dispositivos. Desde ordenadores de
escritorio a tablets y móviles (40deFiebre, s.f.).
2.5.1. Ventajas
16
Con una sola versión en HTML y CSS se pueden cubrir todas las resoluciones de
pantalla, con lo que el sitio web estará optimizado para distintos dispositivos y
resoluciones de pantalla.
También evita tener que desarrollar aplicaciones ad-hoc para cada sistema
operativo móvil.
2.6. UX-Design
La mayoría de los procesos que hacen Diseño Centrado en el Usuario tienen el siguiente
esqueleto (PMQuality, s.f.):
17
Imagen 2: Elementos de la experiencia de usuario (PMQuality, s.f.)
2.6.1. Elementos
Diseño visual: El propósito del diseño visual es utilizar elementos visuales como
colores, imágenes y símbolos para transmitir un mensaje a su audiencia.
Cumplimiento del WCAG: Seguir estas directrices hará que el contenido sea
accesible a una gama más amplia de personas con discapacidad y usuarios en
general.
18
Interacción hombre-computadora: Se refiere al diseño, evaluación e
implementación de sistemas de computación interactiva para uso humano y al
estudio de los principales fenómenos que los rodean.
2.7.1. Proveedores
AWS Lambda es el primero en el mercado que estuvo operativo hace ya 3 años. Uno
de los mejores puntos de este servicio es que es posible integrarlo con muchos de los
servicios de Amazon como RDS, Kinesis, DynamoDB y puede ser monitoreado con
Cloudwatch, así como integrarse con servicios de Amazon Alexa (Domingo, 2017).
Azure Functions
19
construcción de este servicio y lo demuestra por su capacidad de utilizar los
principales lenguajes de programación de Microsoft, desde .Net, C# hasta scripts
basados en Batch en PowerShell, JavaScript o Python (Domingo, 2017).
Al igual que Amazon es posible integrarlo con muchos de los servicios de Azure y
hasta con Cortana, pieza angular de la nueva guerra para llegar a los dispositivos
domésticos (Domingo, 2017).
Google Cloud Functions acaba de llegar a Google Cloud Platform y si bien por ahora
sólo admite código en JavaScript, tiene la gran característica de poder integrarse con
el resto de servicios de Google, desde Storage hasta Spanner. Y al igual que sus
competidores, puede monitorizarse a través de Stackdriver o herramientas de terceros
(Domingo, 2017).
2.7.2. Ventajas
Micro facturación
20
3. Gestión de datos
3.1. Bases de datos relacionales
Cada tabla (que a veces se llaman ‘relación’) contiene una o más categorías
de datos en columnas. Cada fila contiene una instancia única de datos para las
categorías definidas por las columnas. Por ejemplo, una base de datos típica
de ingreso de solicitudes de negocio incluiría una tabla que describiera a un
cliente con columnas para el nombre, dirección, número de teléfono, y así
sucesivamente. Otra tabla identificaría el pedido: producto, cliente, fecha,
precio de venta, y así sucesivamente. (Rouse, Search Data Center, 2015)
21
datos en las bases de datos relacionales tradicionales. (Rouse, Base de datos
en memoria, 2012)
Una base de datos en memoria (IMBD, según sus siglas en inglés, y también
conocida como base de datos en memoria principal o MMDB) es una base de
datos cuyos datos están almacenados en la memoria principal para facilitar
tiempos más rápidos de respuesta. Los datos de origen se cargan a la memoria
del sistema en un formato comprimido no relacional. Las bases de datos en
memoria optimizan el trabajo relacionado con el procesamiento de consultas.
22
Una IMDB es un tipo de base de datos analítica, que es un sistema de solo
lectura que almacena datos históricos sobre indicadores para aplicaciones de
inteligencia empresarial/análisis de negocios (BI/BA), usualmente como parte
de un almacén de datos o un data mart. (Rouse, Base de datos en memoria,
2012)
- transacciones distribuidas
- consultas distribuidas
- Soporte de SQL
- Integración Hibernate
23
3.5. In-Memory DataFabric
- Calcular cuadrícula
- Cuadrícula de servicio
- Streaming y CEP
24
4. Plataforma tecnológica
4.1. Cableado estructurado
Diseñar una LAN para el caso de uso del campus no es una propuesta de un solo diseño para
todos. La escala de LAN del campus puede ser tan simple como un solo interruptor y AP
inalámbrico en un sitio remoto pequeño o en un complejo grande, distribuido y de múltiples
edificios con puerto cableado de alta densidad y requisitos inalámbricos. La implementación
puede requerir una disponibilidad muy alta para los servicios ofrecidos por la red, con una
baja tolerancia al riesgo, o puede haber tolerancia para el enfoque de fallas de conexión con
interrupciones prolongadas del servicio para un número limitado de usuarios considerados
aceptables. Opciones de plataforma para estas implementaciones a menudo son impulsadas
por las necesidades de capacidad de red, el dispositivo y las capacidades de red que se
ofrecen, y también la necesidad de cumplir con los requisitos de cumplimiento que son
importantes para la organización. Tú impones la mayor parte de la complejidad del diseño
LAN alámbrico del campus al agregar grupos de interruptores de acceso mediante
interconectando las capas de acceso a las capas de distribución. Si los dispositivos que se
conectan a la capa de acceso tienen un requisito para comunicarse con una adyacencia lógica
de Capa 2 y esas conexiones cubren múltiples conexiones físicas armarios conectados a una
capa de distribución, entonces es posible adaptar el diseño tradicional de campus de varias
capas a abordar las necesidades de adyacencia de Capa 2. Sin embargo, los diseños
tradicionales manejan configuraciones más complejas con protocolos adicionales que deben
mantenerse consistentes en varios dispositivos. (CISCO, 2018)
Para mejorar el diseño, existen alternativas preferidas que hacen que la implementación sea
más fácil de administrar y menos propenso a errores, al tiempo que mejora el rendimiento
general de la red. Tales alternativas incluyen la distribución simplificada opción de capa
utilizando una pila de conmutadores o un sistema de conmutación virtual (VSS) o un sistema
StackWise Virtual, lo que hace que la implementación y la resolución de problemas sean
mucho más fáciles para el personal de soporte (CISCO, 2018).
25
Existe una alternativa de diseño disponible para organizaciones que no necesitan ampliar la
conectividad de Capa 2 a través de un límite de acceso a la agregación o tiene otros medios
para implementar esta funcionalidad, como cuando utilizando la tecnología Campus Fabric:
una parte integral de Cisco Software-Defined Access (SD-Access). La alternativa es extender
la conectividad de Capa 3 a la capa de acceso. La implementación de un acceso bien diseñado
de Capa 3 la red garantiza la coherencia, la configuración, el rendimiento, la escalabilidad y
la alta disponibilidad de la red frente al diseño tradicional de campus multicapa. (CISCO,
2018)
La motivación para las opciones de diseño recomendadas no es que sean las únicas opciones
disponibles sino que él las recomendaciones destacan las opciones preferidas dado el alcance
de los requisitos (CISCO, 2018).
Cuando integra los componentes inalámbricos del diseño del campus con los componentes
cableados, el diseño puede a menudo se trata como una superposición que depende de los
servicios proporcionados por la infraestructura subyacente del campus (CISCO, 2018).
Esto es especialmente evidente para las redes más grandes, ya que aumenta la capacidad con
dispositivos dedicados un requerimiento. Las redes más pequeñas, como las de sitios remotos
pequeños, ofrecen oportunidades de simplificación y optimización que también se refleja en
las elecciones de diseño que se muestran a continuación (CISCO, 2018).
Las opciones de diseño primarias se agrupan por escala, y luego las selecciones apropiadas
se basan en las capacidades deseadas. La selección del espectro de capacidades se basa en
las necesidades de una implementación específica (CISCO, 2018).
El diseño de redes TOPDOWN es una metodología para diseñar redes que comienza en las
capas superiores del modelo de referencia OSI antes de pasar a las capas inferiores. La
metodología de arriba hacia abajo se centra en aplicaciones, sesiones y transporte de datos
antes de la selección de enrutadores, conmutadores y medios que operan en las capas
inferiores. (CISCO, 2018)
26
El diseño de red descendente también es iterativo. El diseño de red de arriba hacia abajo
reconoce que el modelo lógico y el diseño físico pueden cambiar a medida que se recopila
más información (CISCO, 2018).
El diseño de redes descendentes es una disciplina que surgió del éxito de la programación de
software estructurado y el análisis de sistemas estructurados. El objetivo principal del análisis
de sistemas estructurados es representar con mayor precisión las necesidades de los usuarios,
que lamentablemente a menudo se ignoran o se tergiversan. Otro objetivo es hacer que el
proyecto sea manejable dividiéndolo en módulos que puedan mantenerse y modificarse más
fácilmente. (CISCO, 2018)
Analice los requisitos: en esta fase, el analista de red entrevista a los usuarios
y al personal técnico para comprender los objetivos comerciales y técnicos de
un sistema nuevo o mejorado. La tarea de caracterizar la red existente, que
incluye la topología lógica y física y el rendimiento de la red, se muestra a
continuación. El último paso en esta fase es analizar el tráfico de red actual y
futuro, incluidos el flujo de tráfico y la carga, el comportamiento del protocolo
y los requisitos de calidad de servicio (QoS).
Desarrollar el diseño lógico: esta fase trata sobre una topología lógica para
la red nueva o mejorada, el direccionamiento de capa de red, el nombramiento
y los protocolos de conmutación y enrutamiento. El diseño lógico también
incluye la planificación de seguridad, el diseño de administración de red y la
investigación inicial en la que los proveedores de servicios pueden cumplir
con los requisitos de acceso remoto y WAN.
27
Latinoamérica, o en España que lo llamamos centro de cálculo o centro de datos. (StackScale,
2018)
Un centro de datos dispone de espacios de uso exclusivo donde las empresas mantienen y
operan sus infraestructuras IT. Es ese espacio donde se pueden alojar los servidores y
sistemas de almacenamiento para ejecutar las aplicaciones que procesan y almacenan datos
de empresas. Algunas empresas disponen de una Jaula o de solo uno o varios racks (bastidor),
mientras que otras pueden disponer de salas privadas para alojar un número determinado de
armarios rack, dependiendo del tamaño de la empresa. (Wikipedia, 2018)
El centro de datos proporciona el espacio técnico preparado con falso suelo por debajo de
cual se instalan las tomas eléctricas para conectar los bastidores. (Wikipedia, 2018)
El control de clima para mantener unos parámetros de temperatura y humedad correctos que
garanticen el correcto funcionamiento y la integridad operativa de los sistemas alojados. Los
centros de datos cuentan con sistemas de alimentación eléctrica, alimentación de reserva,
refrigeración, cableado, detección y extinción de incendios, detectores de fugas de agua y
controles de seguridad (StackScale, 2018).
Un Datacenter físico puede alojar Datacenters virtuales, conocidos como cloud datacenters
o cloud privado, con un menor coste gracias a la capa de virtualización. Cada Centro de datos
virtual es totalmente independiente de otros, por lo que, cuenta con las máximas garantías de
seguridad, disponibilidad y flexibilidad (StackScale, 2018).
28
4.5. Hiperconvergencia
En los entornos computacionales modernos que se tienen que adecuar a las tendencias
informáticas modernas, se necesita sentar las bases de la infraestructura tecnológica sobre
una plataforma que centralice los diversos factores que entran a tallar en el plano del
desarrollo de la ya mencionada infraestructura. De esta manera se combina el
almacenamiento, la computación las redes y la administración de IT que funciona como un
sistema único. Lo descrito anteriormente es la convergencia, y tomándolo como punto de
partida para entender la convergencia que además de combinar lo ya dicho anteriormente,
esta reúne la virtualización y todas las tecnologías definidas por el software.
29
acceso bajo demanda a través de la red a un conjunto compartido de recursos de
computación configurables (como por ejemplo red, servidores, almacenamiento,
aplicaciones y servicios) que pueden ser rápidamente aprovisionados con el mínimo esfuerzo
de gestión o interacción del proveedor del servicio”.
Podemos dividir en niveles o modelos de servicios más habituales, los cuales podemos
ver en la siguiente imagen.
“En el caso del software como servicio, el proveedor no solo ofrece la infraestructura
hardware y los entornos de ejecución necesarios, sino también los productos software
que interaccionamos con el usuario desde un determinado portal o interfaz a través
de Internet”. (Viñals, 2012)
4.7.1. AWS
30
4.7.2. Google Cloud Plataform(GCP)
Según la página de Google, Google Cloud Plataform “te libera de los gastos
operativos relacionados con la administración de la infraestructura, el
aprovisionamiento de servidores y la configuración de redes. Así, los innovadores y
programadores de tu empresa pueden dedicarse a las tareas específicas de su
función”.
4.8.1. Docker
Docker es una plataforma que permite empaquetar el software y las librerías y demás
componentes en unidades llamadas contenedores.
“Hace unos años, Docker apareció con una solución elegante para entrega inmutable.
Docker nos permite empacar nuestras aplicaciones con todas las dependencias que
necesita (SO, JVM, otra aplicación, dependencias, etc.) en un formato de imagen liviano
y en capas.” (Posta, Microservices for Java developers, 2016)
Según la página web de Red Hat los principales beneficios de los contenedores Docker
son los siguientes:
31
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 hay un nuevo cambio, básicamente, usted tiene un registro de cambios
incorporado: control completo de sus imágenes de contenedor.
32
4.8.2. Kubernetes
Siendo de este modo una plataforma donde podemos desplegar nuestros contenedores y asi
agilizar el trabajo y la eficiencia en producción.
Hacer un mejor uso del hardware para maximizar los recursos necesarios para
ejecutar sus aplicaciones empresariales.
33
5. Bibliografía
40deFiebre. (s.f.). ¿Qué es el diseño responsive? Obtenido de 40deFiebre:
https://www.40defiebre.com/que-es/diseno-responsive/
CampusMVP. (4 de Diciembre de 2017). Qué son las arquitecturas sin servidor (Serverless
Computing) en la nube y por qué deberían interesarte. Obtenido de CampusMVP:
https://www.campusmvp.es/recursos/post/que-son-las-arquitecturas-sin-
servidor-serverless-computing-en-la-nube-y-por-que-deberian-interesarte.aspx
CISCO. (2 de Mayo de 2018). Campus LAN and Wireless LAN Design Guide. Obtenido de
CISCO:
https://www.cisco.com/c/dam/en/us/td/docs/solutions/CVD/Campus/CVD-
Campus-LAN-WLAN-Design-Guide-2018JAN.pdf
Fiz, J. M. (6 de Noviembre de 2017). ¿Por qué todos apuestan por Kubernetes? Obtenido
de paradigmadigital: https://www.paradigmadigital.com/techbiz/por-que-todos-
apuestan-por-kubernetes/
34
Heflo. (2015). ¿Qué es BPM? Obtenido de Heflo:
https://www.heflo.com/es/blog/bpm/que-es-bpm/
35
That C# guy. (s.f.). La programación reactiva. Obtenido de That C# guy:
https://thatcsharpguy.com/tv/reactiva/
Wikipedia. (23 de Enero de 2018). Business Process Model and Notation. Obtenido de
Wikipedia: https://es.wikipedia.org/wiki/Business_Process_Model_and_Notation
36