Los beneficios de desarrollar software en la nube incluyen mayor flexibilidad y confiabilidad, mayor eficiencia y costos reducidos. Pero el desarrollo basado en la nube también presenta una serie de desafíos. Saber a qué prestar atención es el primer paso para proteger sus aplicaciones y esfuerzos de desarrollo. Aquí hay 10 obstáculos a considerar antes de desarrollar, probar o implementar aplicaciones en la nube.
10 razones para pensarlo dos veces antes de desarrollar en la nube
- Problemas de rendimiento y latencia
- Amenazas a la ciberseguridad y la protección de datos
- Dependencia de un proveedor
- Costos desbocados
- Requisitos de cumplimiento normativo
- Problemas de compatibilidad e integración
- Demandas de escalabilidad
- Colaboración y comunicación distribuidas.
- Obstáculos de prueba e implementación
- Desarrollando para un mercado global
Problemas de rendimiento y latencia
Si bien los servicios en la nube son generalmente confiables en términos de disponibilidad y rendimiento, las interrupciones del servicio o los problemas de rendimiento pueden afectar los esfuerzos de desarrollo.
«Desafortunadamente, las aplicaciones en la nube a menudo sufren problemas de rendimiento debido a factores como la congestión de la red, los recursos compartidos en entornos multiinquilino y la distancia geográfica entre los usuarios y los centros de datos en la nube», dice Erik Gaston, CIO de la empresa de seguridad de endpoints Tanium.
Para ayudar a remediar esto, los desarrolladores deben asegurarse de que el código de la aplicación esté optimizado y aprovechar las redes de entrega de contenido (CDN) para almacenar en caché el contenido más cerca de los usuarios finales”, afirma Gaston.
Otras formas de mejorar el rendimiento podrían incluir la suscripción a servicios de computación en la nube de baja latencia, como computación de borde, dice Gastón. «De todos modos, el rendimiento de las aplicaciones va mucho más allá del simple diseño y construcción cuando se trata de la nube, y hay muchos factores a considerar», afirma.
Para ayudar a reducir la latencia, las organizaciones también pueden considerar el uso de servicios de nube distribuidos en múltiples centros de datos o regiones, dice Aleksa Krstic, CTO de Localizely, que proporciona una plataforma de traducción de software como servicio (SaaS).
Amenazas a la ciberseguridad y la protección de datos
Como ocurre prácticamente con todos los aspectos de TI, la seguridad y la privacidad de los datos son preocupaciones clave para las iniciativas de desarrollo de la nube. Estos son particularmente desafiantes dada la creciente variedad e incidencia de amenazas.
«El desarrollo de la nube requiere protocolos de seguridad estrictos para proteger los datos y las aplicaciones confidenciales del acceso no autorizado y las amenazas cibernéticas», dice Prabhsharan Singh, desarrollador de software de Clinicspots, una plataforma médica que conecta instalaciones y médicos con pacientes.
«La naturaleza compartida y bajo demanda de los servicios en la nube añade capas de complejidad al mantenimiento de prácticas de seguridad sólidas», afirma Singh.
Entre las soluciones para mitigar los riesgos de seguridad se encuentran el cifrado de datos, la implementación de mecanismos de control de acceso y la actualización periódica de los protocolos de seguridad, afirma Krstic. “Además, es esencial realizar una investigación exhaustiva de los proveedores de servicios en la nube para garantizar el cumplimiento de las regulaciones de la industria”, afirma.
Debido al modelo de responsabilidad compartida de la computación en la nube, “las organizaciones suelen ser responsables de la seguridad a nivel de las aplicaciones, incluso cuando los proveedores de la nube protegen la infraestructura”, dice Matt Aird, CTO de Custom Neon, un minorista y fabricante de luces de neón LED diseñadas a medida. y señales.
«Abordamos esto implementando procedimientos de seguridad estrictos, realizando auditorías de seguridad frecuentes y manteniéndonos al día con las pautas de cumplimiento», dice Aird.
Dependencia de un proveedor
En general, la nube ofrece una flexibilidad sin precedentes para las organizaciones. Pero eso no significa que las opciones serán ilimitadas en el entorno de desarrollo y pruebas.
“La gran preocupación es quedar atrapado en un proveedor específico y no poder salir o migrar sin arruinarse”, dice Gaston. «Si bien esto plantea muchos desafíos, se puede ayudar adoptando arquitecturas independientes de la nube y estableciendo estándares claros siempre que sea posible».
Un buen ejemplo de esto es el empleo contenedorización tecnologías como Estibador y Kubernetesque hacen que las aplicaciones y cargas de trabajo sean altamente portátiles y ambientalmente independientes, lo que les permite migrar fácilmente, afirma Gaston.
«Implementar capas adecuadas de abstracción de la nube y adherirse a interfaces estandarizadas ayuda a mitigar el riesgo de dependencia de un proveedor», añade Krstic.
Costos desbocados
Los servicios y el uso de la nube pueden conllevar costos ocultos, y las operaciones de desarrollo y prueba de software no son una excepción.
“Cuando la nube apareció por primera vez en escena, todos pensaron que los entornos multiinquilino escalados equivalían directamente a ahorros de costos”, dice Gaston. “Desafortunadamente, este no fue el caso y todavía no lo es. Como hemos visto, los costos de uso de la nube pueden rápidamente salirse de control si los contratos no se monitorean y administran adecuadamente”.
La implementación de recursos de manera ineficiente, las estimaciones de uso deficientes y la falta de gestión de la asignación de recursos tienen un impacto directo en el exceso de contratos y gastos inesperados, dice Gaston. «Para abordar este desafío, los desarrolladores deben estar muy familiarizados con los aspectos financieros del desarrollo y operación en la nube», afirma.
Esto incluye rastrear el uso de recursos con herramientas de monitoreo, implementar soluciones de escalado automático y revisar y optimizar periódicamente las configuraciones para mantener los costos bajo control.
El hecho de que la nube sea escalable también puede dificultar el control de gastos. «Los aumentos inesperados en el uso podrían generar costos más altos», dice Aird. «Para garantizar que solo pagamos por lo que necesitamos, optimizamos el uso de recursos, configuramos alarmas para actividades inesperadas y vigilamos atentamente nuestro uso».
Requisitos de cumplimiento normativo
Lo que pasa con trabajar en la nube es que los datos pueden residir en cualquier cantidad de regiones y países, dependiendo de dónde esté ubicada la infraestructura de la nube. Esto puede presentar desafíos de cumplimiento para las operaciones de desarrollo, que deben garantizar que las aplicaciones alojadas en la nube cumplan con regulaciones y requisitos legales específicos.
“Elegir proveedores de servicios en la nube que ofrezcan certificaciones de cumplimiento integradas puede brindar seguridad”, afirma Krstic. «Trabajar en estrecha colaboración con expertos legales y de cumplimiento ayuda a comprender y cumplir las regulaciones pertinentes».
Los datos almacenados en la nube están sujetos a las leyes del país en el que reside el centro de datos, dice Singh, y esto puede generar complejidades legales con respecto a la soberanía de los datos y el cumplimiento de las regulaciones locales.
«Es fundamental utilizar políticas de gestión de datos y garantizar que los proveedores cumplan con las regulaciones pertinentes», dice Singh. «El empleo de estrategias híbridas o de múltiples nubes puede proporcionar un mayor control sobre dónde se almacenan los datos».
Los equipos de desarrollo deben mantenerse informados sobre los cambios regulatorios e implementar los controles necesarios.
Problemas de compatibilidad e integración
Desarrollar para la nube puede generar problemas de compatibilidad, donde el software diseñado para entornos de nube podría no funcionar de manera efectiva en diferentes servicios de nube debido a diferencias en la infraestructura y los servicios de plataforma, afirma Singh.
«Esto puede requerir un desarrollo adicional para garantizar la compatibilidad entre múltiples plataformas», afirma Singh.
Entre las posibles soluciones se encuentran la adopción de contenedores y el uso de herramientas de orquestación para ayudar a gestionar la compatibilidad y facilitar la implementación en varios servicios en la nube, afirma Singh.
Los desarrolladores también pueden encontrar complejidades de integración cuando trabajan en la nube. «La integración de aplicaciones basadas en la nube con sistemas locales existentes plantea un desafío, ya que a menudo requiere lidiar con infraestructura y software heredados», afirma Singh. «Las diferencias en tecnologías pueden conducir a procesos de integración complejos».
Un enfoque para abordar este desafío es utilizar herramientas de administración de API y middleware para simplificar el proceso de integración, garantizando una comunicación perfecta entre la nube y los sistemas locales.
«Puede resultar difícil integrar aplicaciones en la nube con los sistemas locales actuales», afirma Aird. “Nuestro objetivo principal es desarrollar aplicaciones modulares impulsadas por API y utilizamos tecnología de middleware para permitir una integración fluida. Administrar y migrar datos a la nube de manera efectiva puede resultar difícil, especialmente cuando se trata de cantidades masivas de datos. Nos aseguramos de que nuestro personal tenga conocimientos sobre las técnicas de gestión de datos nativas de la nube y utilizamos herramientas y servicios de migración de datos ofrecidos por proveedores de la nube”.
Demandas de escalabilidad
Uno de los mayores beneficios potenciales del uso de servicios en la nube es la capacidad de aumentar y reducir la capacidad según sea necesario. Pero los equipos de desarrollo pueden enfrentar problemas de escalabilidad al crear, probar e implementar software en la nube, y deben abordarlos.
«En mi experiencia, lo más importante es diseñar una arquitectura para la escala desde el principio, enfatizando el acoplamiento flexible, la independencia de los componentes y un enfoque modular», dice Maria Opre, experta en ciberseguridad y analista senior de Earthweb, quien ha diseñado sistemas escalables. para algunas de las implementaciones de nube más grandes.
«Una arquitectura de microservicios que sigue estos principios ha demostrado ser muy eficaz», afirma Opre. “Cada servicio discreto puede escalarse de forma independiente según la demanda y las fallas están aisladas. Esto permite que el software aumente y disminuya automáticamente su escala sin problemas”.
También es una buena práctica implementar infraestructura inmutable y automatización a través de contenedores y gestión de configuración, afirma Opre. “Hacer que la infraestructura sea declarativa y desechable elimina la fricción en el proceso de escalamiento”, afirma.
Es fundamental monitorear el rendimiento y el uso de manera efectiva para escalar proactivamente antes de que aparezcan cuellos de botella, en lugar de escalar reactivamente después de que surjan los problemas, afirma Opre. “La adopción de una mentalidad de ‘ampliación, no ampliación’ desde las primeras fases del diseño ha dado lugar a sistemas que pueden ampliarse enormemente para los clientes”, afirma.
Colaboración y comunicación distribuidas.
La capacidad de comunicarse y colaborar de forma eficaz es esencial para los equipos de desarrollo de software. ¿De qué otra manera pueden los miembros del equipo saber dónde están las cosas en el proceso de desarrollo?
Pero facilitar una colaboración eficaz entre equipos de desarrollo distribuidos que trabajan en la nube puede ser un desafío, afirma Phil Portman, director ejecutivo y fundador de la empresa de software Textdrip.
Los equipos deben adoptar herramientas de colaboración, implementar metodologías ágiles y fomentar una comunicación clara a través de reuniones periódicas y documentación, afirma Portman.
Obstáculos de prueba e implementación
Si bien muchos de los peligros potenciales de la nube afectan el desarrollo, las pruebas y la implementación de aplicaciones pueden presentar su propio conjunto de dificultades.
“Probar sistemas basados en la nube puede ser un desafío, especialmente si son complejos y están distribuidos”, dice Juan Nassif, arquitecto de soluciones de la firma de consultoría y servicios de TI BairesDev. “Los equipos pueden utilizar herramientas y procesos de prueba para ayudarles a probar sus sistemas basados en la nube. También pueden utilizar herramientas de automatización para ayudarles a automatizar sus procesos de prueba”.
Probar aplicaciones en la nube requiere un enfoque diferente al del software tradicional, debido a la naturaleza distribuida de los servicios en la nube, afirma Singh. «La implementación también puede ser un desafío cuando se trata de múltiples entornos y configuraciones», afirma.
Implementar integración continua y entrega continua (CI/CD) Las canalizaciones pueden agilizar los procesos de prueba e implementación y ayudar a mantener la coherencia en todos los entornos, afirma Singh.
Desarrollando para un mercado global
Algunos equipos pueden carecer de la experiencia y/o los recursos para diseñar aplicaciones en la nube que estén listas para el mercado mundial.
Aunque pueden ser responsables del éxito mundial de sus productos, los diseñadores, gerentes de productos y personal técnico que diseñan aplicaciones en la nube a menudo carecen de los recursos necesarios o tienen poca o ninguna experiencia internacional”, dice Rebecca Ray, directora de CSA Research.
Una solución es colaborar con los equipos de localización durante varias fases para garantizar que los diseños de productos estén listos para el mundo, afirma Ray. Estas fases incluyen la ideación, la priorización de los requisitos del producto y el diseño de la interfaz de usuario.
«Siempre hay demasiadas características y funciones para caber en cualquier versión de la nube, sin importar cuán pequeña sea la solicitud o cuán ágil sea el proceso», dice Ray.
«El liderazgo en localización posee la experiencia para desarrollar criterios ponderados basados en casos de uso internacionales, prácticas comerciales locales, entornos regulatorios nacionales y diversos panoramas competitivos».
Copyright © 2024 IDG Communications, Inc.