10 puntos para lograr exitosamente la migración a la nube

Migración a la nube: desafíos

Mis últimos años me dediqué y pasé mucho tiempo ayudando a los equipos y empresas a migrar sus aplicaciones importantes y esenciales a la nube, como así también desarrollando nuevas en ambientes de la nube.

Es un proceso difícil que implica “educar” la cultura de la empresa y los equipos técnicos.
Hoy las tecnologías y herramientas necesarias para operar en la nube no son las mismas que las de hace tres o cinco años atrás.

En los ecosistemas de la nube los centros de cómputos no funcionan de la misma forma que los servidores locales y “on-premise” o que los servidores de hosting único.
El modelo de suscripción a la nube funciona de una forma particular y requiere equipos especializados para operar en ellos, como así también para diseñarlos, cotizarlos y mantenerlos. El plan de servicio se puede adaptar a nuestro presupuesto o también puede ser en demanda.

La nube incluso brinda las mejores prácticas para construir, probar, desplegar y operar aplicaciones pero la mayoría de las empresas no se han mantenido al día o por querer llegar primero, invierten mal o cometen grandes errores.

Las empresas más avanzadas en tecnología necesitan gente especializada en la nube calificados y aprender y enseñar a sus especialistas día a día.
Mantener las aplicaciones y los datos seguros también es cada vez más difícil en los entornos de la nube.

El paradigma de desarrollo de software ha dado un giro a la ingeniería de software y requiere profesionales con amplios conocimientos, tanto en seguridad, infraestructura, diseño, arquitectura, patrones y buenas prácticas. Esto permite un mejor uso de los recursos que siempre se ajustará a la demanda y además propone un nuevo modelo de negocio basado en el “pay-as-you-go”.

Pasos para migrar a la nube

1) Determinar las aplicaciones adecuadas para migrar

Es posible que su empresa tenga muchas aplicaciones para migrar o quiera migrar todas sus aplicaciones, pero es esencial hacer un análisis de cuáles deben migrarse en primer lugar. Algunas requieren refactorizarse o incluso ya pueden ser obsoletas para un modelo en la nube. También hay que tener en cuenta la seguridad de los datos y adecuarse a diferentes modelos de seguridad, lo que implica cambios importantes en sus actuales aplicaciones.

Debe tener en cuenta los siguientes factores:

a) Estado actual de las aplicaciones

-¿Están bien diseñadas?
-¿Se puede migrar la pila tecnológica actual a la nube?
-¿Cumple los requisitos de seguridad?

b) Habilidades de equipo

-¿Qué habilidades se requieren para migrar cada aplicación?
-¿Las tiene en la empresa o necesita adquirirlas?
-¿Necesitamos contratar gente especializada o tenemos presupuesto y tiempo para capacitar?

c) Tiempo

-¿Cuánto tiempo llevaría migrar la aplicación?

d) Costo

-¿Qué costaría?
-¿Existen alternativas comerciales disponibles que podrían llevar a cabo la migración?
-¿Hay alternativas de bajo costo?

e) Comercial

-¿Qué aplicaciones son las más importantes para el negocio?
-¿Cuáles son las más fáciles de migrar?
-¿Qué movimientos tendrían el mayor impacto?
-¿Cuáles son las prioridades de las empresas interesadas?
-¿Cuál es el impacto de la empresa en los usuarios finales?

2) Prioridades

Hay que identificar las aplicaciones que ofrecerían más beneficios en la nube, las oportunidades de bajo costo en las que se puede obtener un alto valor de negocio rápidamente y las aplicaciones que NUNCA deberían migrar a la nube (tal vez desarrollando una nueva versión de la aplicación o nuevas soluciones de negocio).

3) Elegir la plataforma, el modelo de despliegue y las herramientas adecuadas

Tienes que averiguar dónde irán tus aplicaciones y qué herramientas usarás. No tienes que usar la misma plataforma de nube, herramientas o modelo de despliegue para todas tus aplicaciones, ya que tus clientes seguramente si lo harán.

Al elegir un proveedor de nube, debe preguntar:

a) Coste

-Presupuesto del cliente y costos básicos de los servicios del proveedor de la nube.
-¿Puedo prever los costes actuales?
-¿Cuales son los modelos de costos y suscripción?

b) Popularidad

-Servicios del proveedor de la nube, comunidad, apoyo y documentación.

Mirá también  Paneles de rastrojo de trigo: del campo a la casa
c) Disponibilidad de las personas

Es importante el conocimiento del equipo sobre las herramientas y el proveedor de la plataforma o la forma en que se entrena o se emplea a los profesionales.

d) SLAs

El nivel de SLA del proveedor es un tema importante para tener un acuerdo de soporte y responsabilidad de respuesta, seguridad y responsabilidad del servicio.

e) Caso de uso

-¿La nube funciona para tu caso de uso?
-¿Realmente entiendes lo suficiente para validar la necesidad de una plataforma de nube?

f) Bloqueo

Nivel de bloqueo de la plataforma y ¿se acoplará su aplicación a esa plataforma?

g) Política de la empresa

Proveedor favorito en el lado de la empresa o partnership o beneficios con algún proveedor particular por acuerdos.

4) Modelos de despliegue

También debes tener en cuenta los modelos de despliegue y de infraestructura que vas a necesitar.

a) Nube pública

El hardware físico es propiedad del proveedor de la nube y el acceso a las aplicaciones es público. Permite la escalabilidad y el intercambio de recursos que una sola organización requeriría un esfuerzo muy grande.

b) Nube privada

El hardware físico puede ser propiedad del proveedor de la nube o del cliente, se puede personalizar. El acceso a las aplicaciones es privado. Permite un fuerte acceso de seguridad para datos particulares o aplicaciones que requieren una limitación de acceso por parte de la empresa.

c) Nube híbrida

Es la combinación de nube pública y privada. El acceso puede ser público, privado o ambos. Se utiliza en casos en los que puede ser necesario limitar el acceso a determinados recursos.

5) Pila de tecnologías

Tendrá que seleccionar las tecnologías y herramientas que utilizará para crear su aplicación, como el ciclo de vida de la aplicación, los frameworks de trabajo, la gestión de la tecnología, las herramientas, los lenguajes de programación, la gestión de las integraciones, el control del código, las herramientas de prueba, la automatización, la gestión de la configuración, los servicios de despliegue, etc.

6) Especialización del equipo

Tendrá que analizar la especialización y capacidad del equipo en las cuestiones técnicas involucradas para migrar y mantener en la nube.

a) Entrenamiento del equipo

Invertir en entrenamientos enfocados en la nube (nuevos lenguajes, nuevas herramientas, nuevos procesos, CI/CD, automatización, pruebas, nuevos motores de datos).

b) Ramp up & follow up

Especializa a tu equipo y síguelos para entrenar en la brecha tecnológica y especializar a cada uno en diferentes áreas de la tecnología de nubes.

c) Especialista en nubes

Miembros especializados en entornos de nubes, infraestructura, herramientas, apoyo y ciclo de vida de desarrollo.

d) Arquitecto de nubes

Miembros especializados en arquitectura de software con especialización en nubes, migración de aplicaciones heredadas y en diseño de arquitecturas de nubes y modernización de procesos.

e) Liderazgo en la nube

Miembros especializados en liderar el equipo de desarrollo con especialización en legado y nubes.

f) Especialista en Desarrollo y/o NoOps

Miembros especializados en procesos de CI/CD, scripting y codificación para automatizar procesos manuales, seguridad de entornos y pipelines de despliegue, integración de aplicaciones y flexibilidad de infraestructura.

g) Ingenieros de Automatización de Pruebas

Miembros especializados en automatización de pruebas. Diseño de arquitectura de pruebas, pruebas de rendimiento, gestión de la configuración y agilidad de las pruebas manuales.

h) Especialista en seguridad de redes

Miembros especializados en tratamientos de seguridad y en la resolución de problemas de seguridad.

i) Arquitecto de datos

Miembros especializados en arquitectura de datos con especialización en la nube.

j) Desarrolladores de la nube

Miembros especializados en el desarrollo de aplicaciones en la nube.

7) Participación de los usuarios finales e interesados

La comunicación continua es el pilar de los trabajos de modernización. Su equipo obtendrá la capacidad de desarrollar las características en lotes más pequeños con mayor frecuencia, por lo que es muy importante la práctica de incluir al usuario final y a los interesados en cada ciclo de desarrollo día a día.

Mirá también  ¿Por qué aumentó el fraude cibernético?

8) Proceso Agile + DevOps + NoOps

El desarrollo y las metodologías ágiles combinan el desarrollo y las operaciones para enfatizar la comunicación, la colaboración y la cohesión entre el desarrollador y los equipos de operaciones de TI. DevOps ayuda a una empresa a desplegarse con mayor frecuencia, mantener la estabilidad del servicio y ganar la velocidad necesaria para una mayor innovación.

CI/CD es un enfoque en el que los equipos trabajan juntos para producir software en ciclos cortos y luego asegurar que el software pueda ser liberado de manera confiable en cualquier momento. Un proceso de CI/CD exitoso conecta el trabajo de todos (gestión de productos, arquitectura, desarrollo de software, QA, DevOps, Operaciones, Pruebas, Seguridad y Soporte). El resultado es un conjunto de procesos eficientes, repetibles, rentables, escalables y de alta calidad que proporcionan aplicaciones consistentemente excelentes.

Una migración exitosa implica no sólo mover la aplicación a la infraestructura de la nube, sino también modernizar la aplicación. Esto implica inyectar tecnologías modernas y principios arquitectónicos, para que su equipo pueda continuar mejorando y manteniendo la aplicación a lo largo del tiempo.

9) Desarrollo de la pila completa

La atomización de la funcionalidad, los componentes y los servicios y que cada uno utilice una tecnología diferente requiere que todos los desarrolladores involucrados conozcan una pila tecnológica diferente y variada. Es importante saber sobre el frontend (web, móvil o cualquier otro), sobre el backend (API, microservicios, datos), sobre las pruebas, saber cómo automatizar, scripting, sobre la infraestructura y sobre las operaciones y la seguridad. Esto no significa que se especialicen en todo, pero sí saber cómo interactuar con todo esto.

10) Arquitectura de nube completamente moderna

  • Código refactorizado.
  • Componentes de la infraestructura refactorizada.
  • Seguridad refactorizada.
  • Inyectar nuevas técnicas modernas de software.
  • De microservicios a funciones especializadas.
  • APIs para gestionar el intercambio de datos entre aplicaciones.
  • La analítica moderna para maximizar la comprensión.
  • Varios productos y componentes de software integrados.
  • Implementar una solución ágil, de desarrollo, de seguridad en la nube, de automatización y de entrega continua.

Varias empresas están en proceso de migración, aunque entre los principales problemas se encuentran la dificultad de llevar aplicaciones específicas a la nube, la inseguridad de que los datos privados puedan ser procesados en máquinas externas (algo parcialmente solucionable con las nubes privadas) o la dependencia de los proveedores de servicios, aparte de la de los proveedores de Internet (convirtiéndose en un parámetro crítico).

En otros casos que brindan servicios con productos que resuelven un problema, les cuesta cambiar o modernizar su código ya que poseen estructuras duras en su organización que les cuesta desligar de algunos miembros de los equipos o que no quieren cambiar arquitecturas o diseños del producto actual porque no se han especializado o no quieren delegar esa responsabilidad a otro.

En definitiva, y al ritmo que evoluciona y mejora la “computación en la nube”, se espera que en unos 3 años el 80% de los directores ejecutivos utilicen tecnologías de “nube”.

Sobre el autor

Matí­as Creimerman


Artículo original (fuente autorizada)

 

Mati­as Creimerman LinkedIn

Matias Creimerman WordPress


Especialista en diseño, desarrollo y gestión de soluciones de software con 20 años de experiencia. Migración a la nube, servicios de tecnología, modernización de aplicaciones, transformaciones digitales de negocios (transformación digital). Consultoría en tecnologías Azure y Microsoft.
✔ Servicios de mejora de procesos y desarrollo de soluciones.
✔ Cotizaciones de soluciones. Aumento de personal y formación de equipos de proyectos.
✔ Soporte técnico especializado. Soluciones técnicas.
✔ Solución de problemas
✔ Desarrollo de software.
✔ Cursos y formación técnica
✔ Certificado en tecnologías de Microsoft (MCP).
✔ Experto en tecnologías .NET / Azure y Microsoft.
✔ Experiencia y habilidades en el diseño de soluciones en una amplia gama de áreas comerciales, industriales y de producción.
✔ Diseño de arquitecturas, software, aplicaciones y procesos.
✔ Estimación, cotización, propuestas y diseño de soluciones.

 

Dejá tu comentario

Contenido Patrocinado

Contenido Patrocinado: