0% encontró este documento útil (0 votos)
21 vistas10 páginas

Actividades Practicas

El documento aborda los tipos de sistemas web y cloud computing, explicando conceptos como RPC, SOA y REST, así como las características de las nubes pública, privada e híbrida. También se discute el impacto de DevOps en SaaS, PaaS e IaaS, y se presentan diversas herramientas para la orquestación de contenedores, incluyendo Kubernetes, OpenShift y Docker Swarm. Finalmente, se describen las características y beneficios de cada herramienta en el contexto de la automatización y gestión de aplicaciones en la nube.

Cargado por

yisasruiz94
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
21 vistas10 páginas

Actividades Practicas

El documento aborda los tipos de sistemas web y cloud computing, explicando conceptos como RPC, SOA y REST, así como las características de las nubes pública, privada e híbrida. También se discute el impacto de DevOps en SaaS, PaaS e IaaS, y se presentan diversas herramientas para la orquestación de contenedores, incluyendo Kubernetes, OpenShift y Docker Swarm. Finalmente, se describen las características y beneficios de cada herramienta en el contexto de la automatización y gestión de aplicaciones en la nube.

Cargado por

yisasruiz94
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

UNIVERSIDAD NACIONAL DE INGENIERIA

FACULTAD DE CIENCIAS Y SISTEMAS

INGENIERIA DE SISTEMAS

Asignatura: Diseño de sistemas en internet

Docente: Lazaro Antonio Gonzales López

Tema: Tipos de Sistemas Web

Integrantes: Harvin de Jesús Ñurinda Ruiz


James Alexander Samayoa Bucardo

Grupo: 5TN2-IS
1. Revise los siguientes conceptos y explique si son o no servicios WEB:
Remote Procedure Calls
Es una herramienta básica para establecer estructuras colaborativas y operativas en redes
y arquitecturas cliente-servidor. El protocolo que se utiliza para esta llamada es un gran avance sobre
los sockets de Internet usados hasta el momento. De esta manera el programador no tenía que estar
pendiente de las comunicaciones, estando estas encapsuladas dentro de las RPC.

Arquitectura Orientada a Servicios


La Arquitectura Orientada a Servicios (SOA) es un marco de trabajo que permite diseñar la integración
de las aplicaciones, donde se incluyen en la mayoría de los escenarios sistemas legados con
herramientas modernas en función de optimizar los procesos del negocio con una mayor
interoperabilidad y que se considera agregan valor para el negocio.

La importancia de la Arquitectura Orientada a Servicios SOA es que otorga la posibilidad de convertir


las tecnologías en auténticos habilitadores de negocio, obteniendo una gran flexibilidad en su
mantención y evolución, aspectos que sin duda resultan fundamentales para las empresas que buscan
alcanzar el éxito en un mercado digital cada vez más competitivo.

REST (Representation State Transfer)


REST es una interfaz para conectar varios sistemas basados en el protocolo HTTP (uno de los protocolos
más antiguos) y nos sirve para obtener y generar datos y operaciones, devolviendo esos datos en
formatos muy específicos, como XML y JSON. El formato más usado en la actualidad es el formato
JSON, ya que es más ligero y legible en comparación al formato XML. Elegir uno será cuestión de la
lógica y necesidades de cada proyecto.

REST se apoya en HTTP, los verbos que utiliza son exactamente los mismos, con ellos se puede hacer
GET, POST, PUT y DELETE. De aquí surge una alternativa a SOAP. Cuando hablamos de SOAP hablamos
de una arquitectura divididas por niveles que se utilizaba para hacer un servicio, es más complejo de
montar como de gestionar y solo trabajaba con XML. Ahora bien, REST llega a solucionar esa
complejidad que añadía SOAP, haciendo mucho más fácil el desarrollo de una API REST, en este caso
de un servicio en el cual nosotros vamos a almacenar nuestra lógica de negocio y vamos servir los datos
con una serie de recursos URL y una serie de datos que nosotros los limitaremos, es decir, será nuestro
BACKEND nuestra lógica pura de negocios que nosotros vamos a utilizar.

2. Describa los Tipos de Cloud Computing según privacidad, especificando sus


características.
Los tipos de cloud computing que existen pueden diferenciarse o bien por el grado de
propiedad, o bien por el nivel en el que operan.

➢ Tipos de cloud computing por el grado de propiedad


• Nube pública.
• Nube privada.
• Nube híbrida.

• Nube Publica
El proveedor proporciona sus recursos de forma abierta a quienes lo deseen: particulares,
empresas, organismos, etc. Hablamos de proveedores como Amazon, Azure o Google Engine.

En este caso se contrata a un tercero, quien se encarga de la parte técnica y operativa. Sin
embargo, no se tiene control sobre qué otros clientes están alojados en las mismas
infraestructuras, lo que implica depositar cierta confianza en el partner con el que se ha
contratado el servicio.

• Nube Privada
La nube privada, por otro lado, es de acceso exclusivo o privado, como su propio nombre
indica. Generalmente son empresas, grandes organizaciones y entidades las que se decantan
por este tipo de sistema de almacenamiento en la nube porque tienen un alto nivel de
complejidad y tienen la necesidad de centralizar sus recursos.

• Nube Hibrida
Por último, la nube híbrida, que es una mezcla de las dos anteriores y se compone de una parte
pública y otra privada.

Este tipo de soluciones tienen mucho potencial y están en pleno apogeo, ya que permiten ir
contratando y/o ampliando el servicio según las necesidades que se tengan.

Generalmente, la empresa utiliza la nube privada para el día a día, pero para cuando es
necesario cuenta también con conexión a los servicios púbicos de terceros, como podría ser
en momentos de picos e trabajo.

Esta solución cuenta, por lo tanto, con el control y la seguridad que ofrece la nube privada y la
escalabilidad y flexibilidad de la pública.

3. Indique como afecta DevOps a SaaS, PaaS o IaaS y si es implementable en el


entorno de Cloud Computing.
Para el emprendedor moderno de SaaS cuya base empresarial y operativa completa es la nube, las
siguientes son algunas de las ventajas que tiene DevOps desde un punto de vista técnico.

• La automatización de DevOps tiene la capacidad de hacer posible la entrega continua e


ininterrumpida.

• La automatización en sí misma tiene beneficios en términos de números e innovaciones. Un


buen ejemplo de esto sería el equipo de firmware de LaserJet en Hewlett
Packard. Simplemente a través de la automatización, el equipo pudo liberar más tiempo para
la innovación y el desarrollo de nuevas funciones por un margen del 700 por ciento.

• La escalabilidad de las aplicaciones SaaS, así como de cualquier software importante, se puede
incrementar a niveles de expansión sin precedentes a través de la automatización DevOps y el
desarrollo de back-end.
• La resiliencia, que siempre ha sido un problema con las aplicaciones basadas en la nube, puede
estar arraigada en el proceso de desarrollo en sí, produciendo así un producto final que sea
resistente y confiable para el cliente.

• Cuando se integra con la funcionalidad y practicidad de los servicios de computación en la


nube líderes en su clase, como Amazon Web Services (AWS), la escalabilidad, la resistencia y
la entrega ininterrumpidas mencionadas anteriormente se pueden lograr con mucha más
facilidad.

4. Revise las siguientes herramientas para la orquestación de


contenedores.

1. Kubernetes
Kubernetes es una plataforma de código abierto que originalmente fue diseñada por Google y
ahora mantenida por Cloud Native Computing Foundation. Kubernetes admite tanto la
configuración declarativa como la automatización. Puede ayudar a automatizar la
implementación, el escalado y la administración de cargas de trabajo y servicios en
contenedores.

La API de Kubernetes ayuda a establecer la comunicación entre los usuarios, los


componentes del clúster y los componentes externos de terceros. El plano de control de
Kubernetes y los nodos se ejecutan en un grupo de nodos que juntos forman el clúster. La
carga de trabajo de la aplicación consta de uno o más pods que se ejecutan en los nodos
de trabajador. El plano de control administra los pods y los nodos de trabajo.

Empresas como Babylon, Booking.com, AppDirect utilizan ampliamente Kubernetes.

Características

• Servicio de descubrimiento y equilibrio de carga


• Orquestación de almacenamiento
• Implementaciones y reversiones automatizadas
• Escala horizontal
• Gestión de secretos y configuraciones
• La autosanación
• Ejecución por lotes
• Pila doble IPv4 / IPv6
• Embalaje automático de contenedores

2. OpenShift
Ofertas de Redhat OpenShift Plataforma de contenedores como servicio (PaaS). Ayuda en
la automatización de aplicaciones en recursos seguros y escalables en entornos de nube
híbrida. Proporciona plataformas de nivel empresarial para crear, implementar y
administrar aplicaciones en contenedores.

Está construido sobre el motor de Redhat Enterprise Linux y Kubernetes. Openshift tiene
varias funcionalidades para administrar clústeres a través de la interfaz de usuario y la CLI.
Redhat ofrece Openshift en dos variantes más,

• Openshift Online - ofrecido como software como servicio (SaaS)


• OpenShift dedicado - ofrecidos como servicios gestionados.
Openshift Origin (Origin Community Distribution) es un proyecto de comunidad ascendente
de código abierto que se utiliza en OpenShift Container Platform, Openshift Online y
OpenShift Dedicated.

3. Nómada
Nómada es un orquestador de cargas de trabajo simple, flexible y fácil de usar para
implementar y administrar contenedores y aplicaciones no contenedores en las
instalaciones y en la nube a escala. Nomad se ejecuta como un único binario con una
pequeña huella de recursos (35 MB) y es compatible con macOS, Windows, Linux.

Los desarrolladores utilizan infraestructura declarativa como código (IaC) para


implementar sus aplicaciones y definir cómo se debe implementar una aplicación. Nomad
recupera automáticamente las aplicaciones de las fallas.

Nomad Orquesta aplicaciones de cualquier tipo (no solo contenedores). Proporciona


soporte de primera clase para Docker, Windows, Java, VM y más.

Características

• Simple y confiable
• Modernice las aplicaciones heredadas sin reescribir
• Federación fácil a escala
• Escalabilidad comprobada
• Multi-nube con facilidad
• Integraciones nativas con Terraform, Consul y Vault

4. Enjambre Docker
Enjambre Docker utiliza un modelo declarativo. Puede definir el estado deseado del servicio y
Docker mantendrá ese estado. Docker Enterprise Edition ha integrado Kubernetes con Swarm.
Docker ahora ofrece flexibilidad en la elección del motor de orquestación. La CLI del motor de
Docker se usa para crear un enjambre de motores de Docker donde se pueden implementar
servicios de aplicaciones.

Comandos de Docker se utilizan para interactuar con el clúster. Las máquinas que se unen al
clúster se conocen como nodos y el administrador de Swarm maneja las actividades del clúster.

Enjambre Docker consta de dos componentes principales:

Administrador: los nodos de administrador asignan tareas a los nodos trabajadores en el


enjambre. Un líder es elegido en base a un algoritmo de consenso de Raft. El líder maneja todas
las decisiones de gestión del enjambre y orquestación de tareas para el enjambre.
Nodo trabajador: el nodo trabajador recibe tareas del nodo administrador y las ejecuta.

Características
• Gestión de clústeres integrada con Docker Engine
• Diseño descentralizado
• Modelo de servicio declarativo
• Piel escamosa
• Reconciliación estatal deseada
• Redes de hosts múltiples
• Descubrimiento de servicio
• Balanceo de carga
• Seguro por defecto
• Actualizaciones continuas

5. Docker Compose
Docker Compose es para definir y ejecutar aplicaciones de varios contenedores que funcionan
juntas. Docker-Compose describe grupos de servicios interconectados que comparten
dependencias de software y están orquestados y escalados juntos.

Puede utilizar un archivo YAML (dockerfile) para configurar los servicios de su aplicación. Luego,
con un comando docker-compose up, crea e inicia todos los servicios desde su configuración.

Un docker-compose.yml se ve así:
Puedes usar Docker Compose factorizar el código de la aplicación en varios servicios de
ejecución independiente que se comunican mediante una red interna. La herramienta
proporciona CLI para administrar todo el ciclo de vida de sus aplicaciones. Docker Compose se
ha centrado tradicionalmente en el desarrollo y los flujos de trabajo de prueba, pero ahora se
centra en funciones más orientadas a la producción.

El motor de Docker puede ser una instancia independiente aprovisionada con Docker Machine
o un clúster de Docker Swarm completo.

Características

• Múltiples entornos aislados en un solo host


• Conservar los datos de volumen cuando se crean contenedores
• Solo vuelva a crear contenedores que hayan cambiado
• Variables y movimiento de una composición entre entornos

6. MiniKube
Minikube permite a los usuarios ejecutar Kubernetes localmente. Con Minikube, puede
probar aplicaciones localmente dentro de un clúster de Kubernetes de un solo nodo en
su computadora personal. Minikube tiene soporte integrado para Panel de Kubernetes.

Minikube ejecuta la última versión estable de Kubernetes y admite las siguientes


funciones.
• Balanceo de carga
• Multicúmulo
• Volúmenes persistentes
• NodePorts
• ConfigMaps y secretos
• Container Runtime: Docker, CRI-O y containered
• Habilitación de CNI (interfaz de red de contenedores)

7. Maratón
Maratón es para Apache Mesos que tiene la capacidad de organizar aplicaciones y marcos.

Apache Mesos es un administrador de clústeres de código abierto. Mesos es un proyecto


de Apache que tiene la capacidad de ejecutar cargas de trabajo en contenedores y no en
contenedores. Los componentes principales en un clúster de Mesos son Mesos Agent
Nodes, Mesos Master, ZooKeeper, Frameworks - Frameworks se coordina con el maestro
para programar tareas en los nodos de agente. Los usuarios interactúan con el marco de
Marathon para programar trabajos.
El programador de Marathon usa ZooKeeper para localizar el maestro actual para enviar
tareas. El programador de maratones y el maestro Mesos tienen un maestro secundario en
ejecución para garantizar una alta disponibilidad. Los clientes interactúan con Marathon
utilizando la API REST.

Características

• Alta disponibilidad
• Aplicaciones con estado
• Interfaz de usuario hermosa y poderosa
• Limitaciones
• Descubrimiento de servicios y equilibrio de carga
• Los controles de salud
• Suscripción a eventos
• Métrica
• API REST

8. Cloudify
Cloudify es una herramienta de orquestación en la nube de código abierto para la
automatización de la implementación y la gestión del ciclo de vida de contenedores
y microservicios. Proporciona características como clústeres a pedido, reparación
automática y escalado a nivel de infraestructura. Cloudify puede administrar la
infraestructura de contenedores y organizar los servicios que se ejecutan en
plataformas de contenedores.

Se puede integrar fácilmente con Docker y administradores de contenedores


basados en Docker, incluidos los siguientes.

• Docker
• Enjambre Docker
• Docker Compose
• Kubernetes
• Apache Meses

Cloudify puede ayudar a crear, reparar, escalar y derribar grupos de contenedores. La


orquestación de contenedores es clave para proporcionar una infraestructura
escalable y de alta disponibilidad en la que los administradores de contenedores
pueden ejecutar. Cloudify brinda la capacidad de organizar servicios heterogéneos en
todas las plataformas. Puede implementar aplicaciones mediante la CLI y Cloudify
Manager.

9. Rancher
Rancher es una plataforma de código abierto que utiliza la orquestación de
contenedores conocida como ganado. Le permite aprovechar los servicios de
orquestación como Kubernetes, Swarm, Mesos. Rancher proporciona el software
necesario para administrar contenedores de modo que las organizaciones no
necesiten crear plataformas de servicios de contenedores desde cero utilizando un
conjunto distinto de tecnologías de código abierto.

Rancher 2.x permite la administración de clústeres de Kubernetes que se ejecutan en


los proveedores especificados por el cliente.
Comenzar con Rancher es un proceso de dos pasos.

Prepare un host de Linux


Prepare un host Linux con Ubuntu 64 o 16.04 de 18.04 bits (u otra distribución de Linux
compatible y al menos 4 GB de memoria. Instale una versión compatible de Docker en el
anfitrión

Iniciar el servidor
Para instalar y ejecutar Rancher, ejecute el siguiente comando de Docker en su host:

$ sudo docker run -d --restart=unless-stopped -p 80:80 -p 443:443 rancher/Rancher

La interfaz de usuario de rancher permite la gestión de miles de clústeres y nodos de


Kubernetes.

10. Barco mercante


Barco mercante es para permitir la implementación y la gestión de la infraestructura de
Kubernetes de múltiples nubes. Es flexible para operar en entornos públicos, de nube privada
y locales desde una única herramienta. Permite el aprovisionamiento, la administración y el
monitoreo de sus clústeres de Kubernetes en todos los principales proveedores de nube.

Containership se construye con herramientas nativas de la nube, como Terraform para el


aprovisionamiento, Prometeo para monitoreo y Calico para gestión de redes y políticas.
Está construido sobre vainilla Kubernetes. La plataforma Containership ofrece un panel
intuitivo, así como una potente API REST para una automatización compleja.

Características
• Panel de control multicloud
• Registros de auditoria
• Compatibilidad con instancias de GPU
• Actualizaciones no disruptivas
• Maestros programables
• Métricas integradas
• Registro en tiempo real
• Implementaciones sin tiempo de inactividad
• Soporte de almacenamiento persistente
• Soporte de registro privado
• Ajuste de escala automático de cargas de trabajo
• Gestión de claves SSH

11. AZK
AZK es una herramienta de orquestación de código abierto para entornos de desarrollo a
través de un archivo de manifiesto (Azkfile.js), que ayuda a los desarrolladores a instalar,
configurar y ejecutar herramientas de uso común para desarrollar aplicaciones web con
diferentes tecnologías de código abierto.

AZK usa contenedores en lugar de máquinas virtuales. Los contenedores son como
máquinas virtuales, con mejor rendimiento y menor consumo de recursos físicos.

Los archivos Azkfile.js se pueden reutilizar para agregar nuevos componentes o crear
nuevos desde cero. Se puede compartir, lo que asegura una paridad total entre los
entornos de desarrollo en diferentes máquinas de programadores y reduce las
posibilidades de errores durante la implementación.
12. GKE
GKE proporciona una solución totalmente administrada para la orquestación de
aplicaciones de contenedores en Google Cloud Platform. Los clústeres de GKE funcionan
con la tecnología de Kubernetes. Puede interactuar con los clústeres mediante la CLI de
Kubernetes. Los comandos de Kubernetes se pueden usar para implementar y administrar
aplicaciones, realizar tareas de administración, establecer políticas y monitorear el estado
de las cargas de trabajo implementadas.

Las funciones de administración avanzada de Google Cloud también están disponibles con
los clústeres de GKE como el equilibrio de carga de Google Cloud, los grupos de nodos, el
ajuste de escala automático de los nodos, las actualizaciones automáticas, la reparación
automática de nodos, el registro y la supervisión con el paquete de operaciones de Google
Cloud.

Google Cloud proporciona herramientas de CI / CD para ayudarlo a crear y entregar


contenedores de aplicaciones. Puede usar Cloud Build para crear imágenes de contenedor
(como Docker) a partir de una variedad de repositorios de código fuente y Container
Registry para almacenar sus imágenes de contenedor.

GKE es una solución lista para la empresa con plantillas de implementación prediseñadas.

13. AKS
AKS es un servicio de Kubernetes totalmente administrado ofrecido por Azure, que ofrece
Kubernetes sin servidor, seguridad y gobernanza. AKS administra su clúster de Kubernetes y le
permite implementar fácilmente aplicaciones en contenedores. AKS configura
automáticamente todos los nodos y maestros de Kubernetes. Solo necesita administrar y
mantener los nodos del agente.

AKS es gratis; solo paga por los nodos de agente dentro de su clúster y no por los maestros.
Puede crear un clúster de AKS en Azure Portal o mediante programación. Azure también
admite características adicionales como redes avanzadas, integración de Azure Active
Directory y supervisión mediante Azure Monitor.

AKS también admite contenedores de Windows Server. Su clúster y el rendimiento de la


aplicación implementada se pueden monitorear desde Azure Monitor. Los registros se
almacenan en un área de trabajo de Azure Log Analytics.

AKS ha sido certificado como compatible con Kubernetes.

14. AWS EKS


AWS EKS es un servicio de Kubernetes completamente administrado. AWS le permite
ejecutar su clúster de EKS mediante AWS Fragrate, que es una computación sin servidor
para contenedores. Fragrance elimina la necesidad de aprovisionar y administrar
servidores, lo que permite pagar por recurso por aplicación.

AWS permite el uso de funciones adicionales con EKS, como Amazon CloudWatch,
Amazon Virtual Private Cloud (VPC), AWS Identity, Auto Scaling Groups y Access
Management (IAM), monitorear, escalar y aplicaciones de equilibrio de carga. EKS se
integra con la malla de aplicaciones de AWS y proporciona una experiencia nativa de
Kubernetes. EKS ejecuta la última versión de Kubernetes y está certificado en
conformidad con Kubernetes.
5. Indique las semejanzas y diferencias, o ventajas y desventajas de la
implementación de los Contenedores frente a las maquinas virtual.
En primer lugar, debemos tener en cuenta que, en el caso de los contenedores, el hecho de que no
necesiten un sistema operativo completo, sino que reutilicen el subyacente reduce mucho la carga que
debe soportar la máquina física, el espacio de almacenamiento utilizado y el tiempo necesario para
lanzar las aplicaciones. Un sistema operativo puede ocupar desde poco menos de 1GB para algunas
distribuciones de Linux con lo mínimo necesario, hasta más de 10GB en el caso de un sistema Windows
completo. Además, estos sistemas operativos, para funcionar requieren un mínimo de memoria RAM
reservada, que puede ir desde 1 hasta varios GB, dependiendo de nuestras necesidades. Por lo
tanto, los contenedores son mucho más ligeros que las máquinas virtuales.

Cuando definimos una máquina virtual debemos indicar de antemano cuántos recursos físicos le
debemos dedicar. Por ejemplo, podemos decir que nuestra VM va a necesitar 2 vCores (procesadores
virtuales), 4GB de RAM y un espacio en disco de 100 GB. En el caso de los procesadores, es posible
compartirlos entre varias máquinas virtuales (pero no conviene pasarse o irán fatal de rendimiento), y
el espacio en disco se puede hacer que solo ocupe lo que de verdad se esté utilizando, de modo que
crezca en función de las necesidades y no ocupe siempre tanto como habíamos reservado. Pero en el
caso de la memoria y otros elementos (acceso a unidades externas o dispositivos USB) la reserva es
total. Por eso, aunque nuestra aplicación no haga uso en realidad de los 4GB de RAM reservados da
igual: no podrán ser utilizados por otras máquinas virtuales ni por nadie más. En el caso de los
contenedores esto no es así. De hecho, no indicamos qué recursos vamos a necesitar, sino que es
Docker Engine, en función de las necesidades de cada momento, el encargado de asignar lo que sea
necesario para que los contenedores funcionen adecuadamente.

Esto hace que los entornos de ejecución de Docker sean mucho más ligeros, y que se aproveche mucho
mejor el hardware, además de permitir levantar muchos más contenedores que VMs en la misma
máquina física. Mientras que una VM puede tardar un minuto o más en arrancar y tener disponible
nuestra aplicación, un contenedor Docker se levanta y responde en unos pocos segundos (o menos,
según la imagen). El espacio ocupado en disco es muy inferior con Docker al no necesitar que
instalemos el sistema operativo completo.

Por otro lado, Docker no permite utilizar en un sistema operativo "host" contenedores/aplicaciones
que no sean para ese mismo sistema operativo. Es decir, no podemos ejecutar un contenedor con una
aplicación para Linux en Windows ni al revés. Lo cual puede suponer un impedimento en algunas
ocasiones.

También podría gustarte