NubeNativa BuasafCangaMoreno

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

La Nube Nativa

Buassaf, Yara Canga, Arturo Moreno, Ernesto


Escuela Ingenierı́a Informática Escuela Ingenierı́a Informática Escuela Ingenierı́a Informática
Universidad Católica Andrés Bello Universidad Católica Andrés Bello Universidad Católica Andrés Bello
Puerto Ordaz, Venezuela Puerto Ordaz, Venezuela Puerto Ordaz, Venezuela
[email protected] [email protected] [email protected]

Abstract—Este informe presenta un acercamiento a las tec- computación en la nube, se produce una transformación en
nologı́as y prácticas utilizadas en el desarrollo orientado en la la computación corporativa, creando un entorno basado en el
nube pago por consumo, ubicación compartida o exclusiva, y la
Index Terms—nube, desarrollo, operaciones, infraestructura
creación de múltiples máquinas virtuales según la necesidad.
I. I NTRODUCCION Esto cambia la forma en que se ven los grandes centros de
datos empresariales, los desafı́os de las actualizaciones de
La nube moderna, también conocida como la computación software base y los problemas de obsolescencia tecnológica,
nativa (cloud native), ha revolucionado la forma en que se ya que todo esto queda en manos de un proveedor externo de
integran y adaptan los modelos tradicionales de servicios confianza.
en la nube. Este avance ha dado lugar a nuevos mode- La primera transición hacia la computación en la nube
los de computación, incluyendo la computación sin servidor se da con el concepto de ”Infraestructura como servicio”
(serverless computing), ası́ como nuevos componentes como (IaaS), que implica simplificar la administración haciendo más
microservicios, contenedores y orquestadores. fácil la configuración y gestión del hardware a través de
La computación sin servidor es un modelo en el que un servidores virtuales y redes compartidas. En este escenario, el
proveedor en la nube gestiona dinámicamente el alojamiento proveedor se hace responsable y custodio de la infraestructura
de los recursos computacionales, eliminando la necesidad de para asegurar un entorno de computación confiable para las
que los desarrolladores se ocupen de la administración de empresas.
la infraestructura. Esto permite a los desarrolladores crear La segunda transición se refleja en el ocultamiento de los
aplicaciones más rápidamente y centrarse en la lógica del servidores y la creación de entornos de programación para
negocio, ya que no tienen que preocuparse por la gestión de desarrolladores, lo que se conoce como ”Plataforma como
servidores. Aunque los servidores fı́sicos siguen existiendo, su servicio” (PaaS) y ”Software como servicio” (SaaS). En esta
administración queda en manos del proveedor del servicio, lo etapa, las máquinas y el software se presentan como marcos
que permite a los desarrolladores enfocarse en escribir código de trabajo simplificados que permiten a los desarrolladores
sin tener que gestionar servidores. avanzar rápidamente en los despliegues de aplicaciones y
El modelo de serverless computing permite facturar al productos especializados.
usuario solo por el tiempo en que se ejecuta el código, lo que En un tercer momento, se produce una evolución hacia
ofrece mayor flexibilidad y eficiencia en el uso de recursos. lo que se conoce como ”Computación sin servidor” (CSS),
Aunque el nombre puede ser engañoso, ya que la información donde se ocultan los servidores y la programación de las
se guarda en servidores fı́sicos, su verdadero valor radica aplicaciones. Actualmente, la CSS se presenta en dos versiones
en liberar a los usuarios de la carga de administrar dichos diferentes: ”backend como servicio” (BaaS) y ”función como
servidores. servicio” (FaaS). El BaaS proporciona a los desarrolladores un
En resumen, la computación sin servidor ayuda a aumentar conjunto de servicios y herramientas para facilitar el desarrollo
la productividad de los equipos, acelerar el lanzamiento de de aplicaciones móviles y web, mientras que el FaaS permite
productos al mercado y optimizar el uso de recursos, permi- a los desarrolladores desplegar y ejecutar sus funciones en la
tiendo a las organizaciones centrarse en la innovación y en nube.
aportar más valor al núcleo principal del negocio.
B. FaaS
II. F UNCIONES COMO SERVICIO
III. D ESARROLLO Y O PERACIONES EN LA NUBE
A. Los modelos de servicio tradicionales
La ”Computación sin servidor” es una evolución de la A. El concepto de DevOps
computación en la nube que forma parte de un ejercicio para Durante años los conceptos de los desarrollos de sistemas
hacer más transparente tanto para los clientes como para los informáticos y las operaciones de mantenimiento se trabajaban
desarrolladores el uso y la gestión de recursos informáticos, como conceptos separados, es decir, distintos departamentos
independientemente de su ubicación. En el contexto de la que realizaban tareas que a veces tenı́an principios en común
entregas más frecuentes, ası́ como monitorear la ejecución de
estas prácticas.
1) Integración Contı́nua: Mientras que anteriormente los
desarrolladores realizaban cambios en distintas ramas e inte-
graban a distintas ramas solo cumpliendo con ciertas pruebas
de humo, en la cultura DevOps se intentan realizar los cambios
en ramas correspondientes al requerimiento funcional que se
está realizando o la corrección y los cambios se combinan
a una sola rama dependiendo del cumplimiento de pruebas
de unidad e integración. La integración contı́nua incluye un
conjunto de revisores de código que se encargan de validar el
código a ser integrado; ası́ como posteriormente se realizan de
Fig. 1. Ciclo DevOps según la empresa Atlassian
manera automatizada construcciones de versiones y pruebas.
[3]
pero de manera desacoplada en base a metodologı́as de 2) Entrega contı́nua: Esta tarea se ejecuta al igual que
desarrollo. Sin embargo, con la aplicación de metodologı́as la integración continua, de manera automatizada. La entrega
ágiles [1] surgió la necesidad de realizar operaciones de contı́nua está dedicada a la construcción, ensamblado y de-
mantenimiento y despliegue más frecuentes y acorde al flujo spliegue automatizado de las distintas versiones armadas luego
de trabajo de las actividades de desarrollo; de esta manera de la integración contı́nua. Tradicionalmente durante la fase
los departamentos de desarrollo y operaciones se fusionaron, de despliegue se dedicaba tiempo a la asignación de opciones
trabajan en una misma sintonı́a y compartiendo las respons- en la configuración de manera manual; la entrega contı́nua es
abilidades de ambos equipos en un nuevo rol llamado DevOps lograda hoy en dı́a gracias la automatización de esta asignación
(del inglés ”Development” y ”Operations”). dependiendo de las distintas versiones.
Hoy en dı́a DevOps es más que un rol o un departamento, 3) Monitoreo de servicios: Parte de las responsabilidades
sino que se entiende como una filosofı́a o una cultura [2] que tradicionales de los departamentos de operaciones era la de-
trasciende de las metodologı́as de desarrollo, permitiendo a los tección y mantenimiento de sistemas una vez en los entornos
equipos de desarrollo acelerar sus ciclos de entrega y lograr de producción o preproducción; DevOps utiliza herramientas
entregas escalables y de mayor calidad a través de una mejora que automatizan la toma de registros de consumo del sistema
entre la comunicación. en los entornos de producción para agilizar la atención al
cliente y la detección de errores, ası́ mismo al estar autom-
B. El ciclo de vida DevOps atizado se ofrece una contı́nua disponibilidad 24/7 sobre el
monitoreo, permitiendo obtener registros más exactos sobre
Cuando los equipos de desarrollo y operaciones trabajan
la calidad del sistema y la percepción de los usuarios en la
de forma separada, se entiende que un equipo se encarga
plataforma.
del diseño y desarrollo del sistema informático, mientras
que otro se encarga de tareas de configuración, entrega y
mantenimiento. La cultura DevOps implica que estas respon- D. Infraestructura como Código
sabilidades empiezan a superponerse entre los miembros del Gran parte del trabajo DevOps corresponde a la realización
equipo, obligando a un cambio en el ciclo de trabajo. de tareas clave de desarrollo y operación del sistema, debido
Como bien se mencionó, DevOps no está atado a ninguna a la velocidad en los procesos de construcción, entrega y
metodologı́a de desarrollo, que si bien en apariencia es ágil, despliegue se requiere del uso de distintas herramientas pro-
su aplicación no necesariamente lo es. Los ciclos de desarrollo gramables que automatizen estas tareas, ahorrando tiempo vital
DevOps corresponden a un ciclo de retroalimentación que en la realización de tareas crı́ticas en las distintas fases del
comprende desde las tareas tradicionales de desarrollo como ciclo de desarrollo.
lo son el diseño, la construcción del sistema la realización de La automatización de estas tareas es realizada mediante
pruebas; y las tareas tradicionales de operaciones como lo son herramientas agrupadas bajo el nombre de ”Infraestructura
la implantación y despliegue; añadiendo al final tareas refer- como Código” (IaC, por sus siglas en inglés). Estas herramien-
entes al monitoreo y la retroalimentación del funcionamiento tas permiten a los desarrolladores DevOps definir mediante
del sistema. código opciones de configuración y automatizar acciones
según las condiciones y versiones especı́ficas [4]. Actualmente,
C. Tareas DevOps múltiples plataformas de cloud computing incluyen soporte
La aplicación de la filosofı́a DevOps implica el cambio en directo a herramientas IaC; ası́ mismo incluso servicios de
la realización de múltiples tareas a través de la automatización control de versiones ofrecen herramientas IaC como GitHub
de ellas o la división en múltiples segmentos. Los ingenieros Actions, las cuales tienen soporte directo a plataformas cloud
DevOps suelen ser los encargados de configurar y mantener las como Microsoft Azure; otras herramientas open source, como
herramientas dedicadas a estos procesos permitiendo realizar Jenkins [5], también poseen integración en múltiples servicios
cloud como AWS o Google Cloud; además de las herramientas • Desventajas: Los servicios basados en contenedores de
propietarias de cada uno de los proveedores en nube. Google Cloud Function son menos avanzados que los de
otros proveedores de FaaS.
IV. P ROVEEDORES DE FAA S
A. AWS Lambda D. IBM Cloud
Lanzado por Amazon a finales del año 2014, es una her- IBM Cloud procede de SoftLayer, una plataforma de nube
ramienta muy popular entre los usuarios ya que para el cuarto pública que IBM compró en junio de 2013. IBM convirtió la
trimestre de 2021 el 33% de los usuarios de la nube utilizaban plataforma en Bluemix y la lanzó como herramienta PaaS en
por lo menos un servicio de AWS [6]. julio de 2014. Desde entonces, IBM ha rebautizado el servicio
como IBM Cloud y ha ampliado sus funciones a FaaS. En el
• Caracterı́sticas: se conecta con otras herramientas de
cuarto trimestre de 2021, el 4% de los usuarios de la nube
AWS, monitoriza el rendimiento de programas en Ama-
han utilizado IBM Cloud. Se ejecuta en el ecosistema Apache
zon CloudWatch, posee mas de 200 integraciones con
OpenWhisk [6].
herramientas SaaS y recientemente fue agregada una
funcionalidad en 2020 para poder desplegar contenedores. • Caracterı́sticas: puedes conectar tu programa con otros

• Ventajas: se puede construir un backend propio utilizando programas a través de las API de IBM Watson y es
la API Lambda o la puerta de enlace de la API de compatible con Node.js, Python, Swift, PHP, Go, Ruby,
Amazon, se puede desplegar funciones de imágenes de Java y .NET Core.
contenedor, se puede conectar a bases de datos rela- • Ventajas: es ideal para crear aplicaciones móviles, es fácil

cionales con Amazon RDS Proxy, se puede elegir cuánta de aprender a usar y se puede monitorear las aplicaciones
memoria dedicar a cada función. a través de IBM Cloud Monitoring.
• Desventajas: AWS puede llevar un tiempo de adaptación • Desventajas: limita el tiempo de memoria de tu función

para los no experimentados. a diez minutos o 2048MB

B. Microsoft Azure E. Alibaba Cloud


Microsoft Azure Functions es una capacidad de Microsoft Alibaba Cloud no es tan conocida como otras opciones
Azure, que Microsoft lanzó por primera vez como ”Windows de computación en la nube, pero sigue teniendo una cuota
Azure” en febrero de 2010. Azure Functions te permite de mercado decente del 6%. Lanzada por Alibaba en 2008,
ejecutar código basado en eventos a través de FaaS. En el Alibaba Cloud está orientada a los negocios en lı́nea y a
cuarto trimestre de 2021, el 21% de los usuarios de la nube quienes utilizan otros servicios de Alibaba.
utilizaban Azure [6]. FaaS es una de las ofertas de Alibaba Cloud, junto con
• Caracterı́sticas: Puedes conectar tus funciones a mas de una Red de Entrega de Contenidos (CDN), almacenamiento
250 conectores en Azure Logic Apps, permite el uso de datos y procesamiento de big data [6].
de distintos lenguajes ampliamente utilizados como Java, • Caracterı́sticas: se integra con otros servicios de Alibaba,
JavaScript, C#, F#, PHP, Python, etc... a prueba de catástrofes ya que Alibaba aloja funciones
• Ventajas: Azure Functions utiliza un modelo de progra- en clusters en múltiples áreas,posee razonamiento de IA
mación integrado, es muy adecuado para los equipos que y admite Node.js, Python, Java, PHP y C#.
utilizan DevOps. • Ventajas: ofrece una opción gratuita para quienes no nece-
• Desventajas: Azure Functions no es compatible con sitan ejecutar grandes cantidades de código, es altamente
Node.js o Ruby escalable y puede utilizar muchos tipos de activadores.
• Desventajas: puede ser difı́cil trasladar las funciones de
C. Google Cloud Alibaba a otro proveedor de FaaS
Google Cloud es la tercera solución de computación en la
nube más popular, por detrás de AWS y Azure. Actualmente V. C ONCLUSI ÓN
tiene una cuota de mercado del 10%. Google Cloud Functions Además de transformar el desarrollo de aplicaciones en la
es una función FaaS de Google Cloud, un servicio que ofrece nube, la Función como Servicio (Fas) también ha provocado
más de 100 productos para una amplia gama de usos [6]. cambios en las prácticas de DevOps. FaaS ha facilitado una
• Caracterı́sticas: la depuración y el registro ya vienen colaboración más estrecha entre los equipos de desarrollo y
integrados en Google Cloud Functions a través de operaciones, eliminando los obstáculos tradicionales entre el
CloudTrace y CloudDebugger, se pueden utilizar dis- diseño y la implementación.
paradores desde Google Assistant, Google Cloud, Fire- Los equipos de DevOps pueden concentrarse en la gestión
base o cualquier aplicación que utilice HTTP. centralizada de funciones y flujos de trabajo, en lugar de
• Ventajas: Los que necesiten capacidades multi-nube o operaciones basadas en servidores, gracias a la naturaleza sin
hı́bridas pueden utilizarlo, se puede pasar con facilidad a servidor de FaaS. Esto aumenta la velocidad de desarrollo e
otra plataforma ya que es de código abierto, Google pro- implementación al promover una integración continua (CI) y
porciona muchos recursos gratuitos a los nuevos usuarios. una entrega continua (CD) más fluidas.
Las directrices de DevOps se reflejan en FaaS, ya que
favorece la escalabilidad automática, la flexibilidad y la ca-
pacidad de respuesta a eventos en tiempo real. Los equipos de
desarrollo y operaciones trabajan juntos en estrecha colabo-
ración para optimizar el ciclo de vida del desarrollo, desde la
codificación/implementación hasta el monitoreo/optimización
continua. Los enfoques de función como servicio y DevOps
están impulsando una ”cultura de colaboración, automati-
zación y mejora continua” en el desarrollo de aplicaciones
en la nube; creando soluciones más ”ágiles/eficientes” y ori-
entadas a resultados.
Mondongo
R EFERENCES
[1] IBM, “¿qué es devops?” 2021. [Online]. Available:
https://www.ibm.com/mx-es/topics/devops
[2] A. W. Services, “¿qué es devops?” [Online]. Available:
https://aws.amazon.com/es/devops/what-is-devops/
[3] C. Ebert, G. Gallardo, J. Hernantes, and N. Serrano, “Devops,” IEEE
Software, vol. 33, no. 3, pp. 94–100, 2016.
[4] M. Learn, “What is infrastructure as code (iac)?” [On-
line]. Available: https://learn.microsoft.com/en-us/devops/deliver/what-
is-infrastructure-as-code
[5] J. Schwarz, A. Steffens, and H. Lichter, “Code smells in infrastructure
as code,” in 2018 11th International Conference on the Quality of
Information and Communications Technology (QUATIC), 2018, pp. 220–
228.
[6] M. Duò. (2022) Función como servicio (faas): Todo lo que
necesitas saber. Function as a Service. [Online]. Available:
https://kinsta.com/es/blog/funcion-como-servicio/

También podría gustarte