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 pensar dos veces antes de desarrollar en la nube Problemas de rendimiento y latencia Amenazas de ciberseguridad y protección de datos Dependencia de proveedores Costos desbocados Requisitos de cumplimiento normativo Compatibilidad e integración problemas Demandas de escalabilidad Colaboración y comunicación distribuidas Obstáculos de prueba e implementación Desarrollar 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”, afirma Erik Gaston, CIO de la empresa de seguridad de endpoints Tanium. Para ayudar a remediar esto, los desarrolladores deben garantizar que la aplicación «El código está optimizado y aprovecha las redes de entrega de contenido (CDN) para almacenar en caché el contenido más cerca de los usuarios finales», dice 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 la informática de punta, dice Gaston. «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. , afirma 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 con prácticamente 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 agrega capas de complejidad para mantener prácticas de seguridad sólidas», dice 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, dice Krstic. «Además, es esencial realizar una investigación minuciosa 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 y letreros de neón LED diseñados a medida. «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 proveedores 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 de tecnologías de contenedorización como Docker y Kubernetes, que 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 de abstracción de nube adecuadas 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 prueba y desarrollo de software no son una excepción a esto. “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 impactan directamente el exceso de contratos y los gastos inesperados, Gaston dice. «Para abordar este desafío, los desarrolladores deben estar muy familiarizados con los aspectos financieros del desarrollo y la operación en la nube», dice. Esto incluye el seguimiento del uso de recursos con herramientas de monitoreo, la implementación de soluciones de escalamiento automático y la revisión y optimización periódica de las configuraciones para mantenga los costos bajo control. El hecho de que la nube sea escalable también puede dificultar el control de los 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 malo de trabajar en la nube es que los datos pueden residir en cualquier número de regiones y países, dependiendo de dónde se encuentre 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”, dice Krstic. «Trabajar estrechamente 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 soberanía de los datos y 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. «Emplear estrategias híbridas o de múltiples nubes puede brindar más 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 Los diseños diseñados para entornos de nube podrían no funcionar eficazmente en diferentes servicios de nube debido a diferencias en la infraestructura y los servicios de plataforma, dice Singh. «Esto puede requerir desarrollo adicional para garantizar la compatibilidad entre múltiples plataformas», dice Singh. Entre las posibles soluciones se encuentran adoptar la contenedorización y use herramientas de orquestación para ayudar a administrar la compatibilidad y facilitar la implementación en varios servicios en la nube, dice 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 las tecnologías pueden dar lugar a procesos de integración complejos». Un enfoque para abordar este desafío es utilizar herramientas de gestió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 ser difícil integrar aplicaciones en la nube con los sistemas locales actuales”, dice 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 escalabilidadUno de los mayores beneficios potenciales del uso de servicios en la nube es la capacidad de ampliar y reducir la capacidad a medida que necesario. Pero los equipos de desarrollo pueden enfrentar problemas de escalabilidad al crear, probar e implementar software en la nube, y necesitan 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 «Una arquitectura de microservicios que sigue estos principios ha demostrado ser muy efectiva», dice 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 y automatización inmutables 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 del 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, dice Opre. «La adopción de una mentalidad de ‘ampliación, no ampliación’ desde las primeras fases del diseño ha dado como resultado sistemas que pueden escalarse masivamente para los clientes», afirma. Colaboración y comunicación distribuidas La capacidad de comunicarse y colaborar de manera efectiva 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 la colaboración efectiva entre equipos de desarrollo distribuidos que trabajan en la nube puede ser un desafío, dice Phil Portman, director ejecutivo y fundador de la empresa de software Textdrip. Los equipos deben adoptar herramientas de colaboración. implemente metodologías ágiles y fomente una comunicación clara a través de reuniones periódicas y documentación, dice Portman. Obstáculos de prueba e implementaciónSi bien muchos de los obstáculos potenciales de la nube afectan el desarrollo, las pruebas y la implementación de aplicaciones pueden presentar su propio conjunto de dificultades. “Probar la nube Los sistemas basados ​​en tecnología pueden 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, dice Singh. «La implementación también puede ser un desafío cuando se trata de múltiples entornos y configuraciones», afirma. La implementación de canales de integración y entrega continuas (CI/CD) puede agilizar los procesos de prueba e implementación, y ayudar a mantener la coherencia en todos los entornos, afirma Singh. mercado globalAlgunos equipos pueden carecer de la experiencia y/o 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, dice 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. “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.

Source link