La implementación en la nube es el proceso de implementar y administrar aplicaciones, servicios e infraestructura en un entorno de computación en la nube. La implementación en la nube brinda escalabilidad, confiabilidad y accesibilidad a través de Web, y permite que las organizaciones aprovechen los beneficios de la computación en la nube, como el ahorro de costos y una mayor flexibilidad.
Implementación de software program en un entorno de nube implica varios pasos, incluido el empaquetado del software program, la creación o el aprovisionamiento de la infraestructura, la configuración y el despliegue del software program, las pruebas y el seguimiento, y el escalado y la actualización. Es importante familiarizarse con las herramientas y los servicios que ofrece el proveedor de la nube que está utilizando y tener un plan para escalar y actualizar el software program según sea necesario.
¿Qué es el servicio de aplicaciones de Azure?
Azure App Service es un servicio de hospedaje para aplicaciones net basadas en HTTP, backends móviles y API REST. Puede desarrollar aplicaciones en su lenguaje preferido (.NET, .NET Core, Ruby, Java, Node.js, PHP, Python) y ejecutarlas y escalarlas fácilmente en entornos basados en Linux y Home windows. Se usa comúnmente para migrar aplicaciones. a la nube azul.
App Service agrega las características de la nube de Microsoft Azure a su aplicación, incluida la seguridad, el escalado automático, el equilibrio de carga y la administración automática. Además, proporciona DevOps capacidades como la implementación continua (con tecnología de GitHub, Azure DevOps y Docker Hub), administración de paquetes, dominios personalizados, entornos de ensayo/prueba y certificación TLS/SSL.
Mejores prácticas de implementación de software program en Azure
Usar espacios de implementación
Utilice ranuras de implementación siempre que sea posible al implementar nuevas versiones de producción. Con el nivel del plan de App Service estándar o superior, puede implementar una aplicación en el entorno de prueba, ver los cambios y ejecutar pruebas de humo. Cuando esté listo, puede cambiar los espacios de prueba a espacios de producción: intercambie las instancias de los trabajadores para eliminar el tiempo de inactividad precalentando un entorno de producción completo.
Implementar código continuamente
Si un proyecto tiene ramas designadas para pruebas, ensayo y management de calidad, cada rama debe implementarse continuamente en un espacio de ensayo. Esto facilita que las partes interesadas evalúen y prueben las sucursales implementadas.
No habilite la implementación continua para espacios de producción. En su lugar, la rama de producción (por lo common, la rama principal) debe implementarse en un espacio que no sea de producción. Cuando los desarrolladores estén listos para lanzar la rama principal, reemplácela con una ranura de producción. Cambiar a producción en lugar de implementarlo evita el tiempo de inactividad y le permite revertir fácilmente los cambios (simplemente cambia).
Microsoft Defender para la nube y Azure Sentinel
Microsoft Defender for Cloud mejora la visibilidad y el management de la seguridad de los recursos de Azure, incluidas las aplicaciones net, para ayudar a prevenir, detectar y responder a las amenazas. Microsoft Defender for Cloud ayuda a detectar amenazas que pueden pasar desapercibidas.
Centinela de Microsoft es una solución de seguridad escalable y nativa de la nube que proporciona gestión de eventos e información de seguridad (SIEM), así como orquestación, automatización y respuesta de seguridad (SOAR). Estas soluciones brindan inteligencia de amenazas y análisis de seguridad avanzados, incluida la detección de ataques, la búsqueda proactiva, la visibilidad de amenazas y la respuesta a amenazas.
Microsoft Sentinel utiliza inteligencia synthetic impulsada por Azure para potenciar la investigación y la detección. Microsoft proporciona sus datos de inteligencia de amenazas y usted puede traer sus propios feeds de inteligencia de amenazas.
Implementación continua de contenedores
por encargo contenedores desde un registro de contenedor como Docker, puede implementar las imágenes del contenedor en ranuras de prueba y reemplazarlas con una instancia de trabajador de producción para evitar el tiempo de inactividad.
Para cada rama implementada en la ranura, puede configurar la automatización para realizar estas tareas para cada confirmación en la rama:
- Cree una imagen y etiquétela: etiquete imágenes con ID de confirmación de git, marcas de tiempo u otra información de identificación como parte de su proceso de creación. No utilice la etiqueta “más reciente” predeterminada; de lo contrario, el código implementado será más difícil de rastrear y depurar.
- Empuje la imagen: después de crear y etiquetar la imagen, la canalización puede empujar la imagen a un registro de contenedor. A continuación, la ranura de implementación extraerá la imagen del registro.
- Asegúrese de que la ranura de implementación esté actualizada con la etiqueta de la imagen. Una vez que haya actualizado esta propiedad, la aplicación se reinicia automáticamente y extrae la nueva imagen.
Implementar almacenamiento en caché native
Todo el contenido de Azure App Service se almacena en Azure Storage y se entrega como un recurso compartido de contenido persistente. Sin embargo, algunas aplicaciones requieren un espacio de almacenamiento de contenido de alto rendimiento y de solo lectura que pueda operar con alta disponibilidad; estas aplicaciones se benefician de un caché native.
Sin embargo, tenga en cuenta que no se recomienda el almacenamiento en caché native para sitios de administración de contenido como WordPress. Además, utilice siempre el almacenamiento en caché native con ranuras de implementación para evitar el tiempo de inactividad.
Aproveche Azure DevOps
App Service incluye una función integrada para entregar contenedores de forma continua a través de un Centro de implementación. En Azure Portal, vaya a su aplicación y, en Implementaciones, seleccione Centro de implementación. Siga las instrucciones, seleccione un repositorio de contenedores y una rama. Esto configura su compilación de DevOps y permite que la canalización de lanzamiento automatice la creación, el etiquetado y la implementación de contenedores cuando los desarrolladores envían nuevas confirmaciones a la rama de su elección.
Instalar un cortafuegos de aplicaciones net
Las aplicaciones net suelen ser objeto de ataques que explotan vulnerabilidades. Los ataques comunes incluyen inyección SQL y ataques de secuencias de comandos entre sitios. Prevenir por completo estos ataques en el código de su aplicación puede ser difícil, porque muchas capas de una topología de aplicación pueden requerir un mantenimiento, aplicación de parches y supervisión rigurosos.
Un WAF centralizado ayuda a simplificar la gestión de la seguridad. En lugar de proteger las aplicaciones net individuales, las soluciones WAF también pueden abordar las amenazas de seguridad parcheando las vulnerabilidades conocidas desde una ubicación central. Azure Software Gateway WAF protege de forma centralizada el tráfico de aplicaciones net de ataques y vulnerabilidades comunes.
Conclusión
La implementación de software program en Azure es una forma eficaz y rentable de crear y ejecutar aplicaciones net, backends de aplicaciones móviles y API RESTful.
Al seguir las mejores prácticas, puede garantizar el éxito y la seguridad de su implementación. Estas mejores prácticas pueden ayudarlo a automatizar la implementación de sus recursos, garantizar la coherencia en sus entornos, solucionar problemas, monitorear el rendimiento de su implementación, proteger sus aplicaciones y datos, salvaguardar y administrar claves criptográficas y secretos, probar su aplicación en un entorno de ensayo y asegúrese de que su implementación continúe funcionando correctamente.
Por Gilad David Maayan