Desplegar aplicaciones ASP.Net en Oracle Cloud Infrastructure

ASP.Net es un marco web de código abierto, creado por Microsoft, para crear aplicaciones y servicios web modernos con .Neto Puede utilizar este marco para configurar rápidamente un pipeline de despliegue automatizado para aplicaciones de ASP.Net en Oracle Cloud Infrastructure. Esta arquitectura de referencia muestra una aplicación ASP.Net simple y proporciona el andamio para configurarlo.

Arquitectura

En esta arquitectura, estamos desplegando una aplicación ASP.Net en varios dominios de errores. La arquitectura utiliza una red virtual en la nube (VCN) con una subred pública para las instancias de aplicación y una subred privada para el nivel de base de datos. Un equilibrador de carga colocado en la subred pública distribuye el tráfico entre los nodos.

Puede aprovechar el equilibrador de carga flexible de Oracle Cloud Infrastructure, seleccionar un ancho de banda mínimo personalizado y un ancho de banda máximo opcional; ambos deben estar entre 10 Mbps y 8,000 Mbps. El ancho de banda mínimo siempre está disponible y ofrece preparación instantánea para sus cargas de trabajo. En función de los patrones de tráfico entrantes, el ancho de banda disponible se ampliará a medida que aumente el tráfico.

Para las aplicaciones desplegadas en máquinas virtuales, los clientes pueden aprovechar las instancias de máquinas virtuales flexibles. Las máquinas virtuales flexibles pueden aumentar o disminuir la capacidad en minutos agregando CPU y memoria. Una VM flexible se puede configurar con entre 1 y 64 núcleos y entre 1 y 64 GB de memoria por núcleo, hasta un máximo de 1024 GB por instancia.

La base de datos Microsoft SQL se despliega con una base de datos primaria y en espera distribuida en dos dominios de errores para proporcionar alta disponibilidad.

El siguiente diagrama ilustra esta arquitectura de referencia.

A continuación se muestra la descripción de ha-aspnet-oci-arch.png
Descripción de la ilustración ha-aspnet-oci-arch.png

Esta arquitectura tiene los siguientes componentes:
  • Región

    Una región de Oracle Cloud Infrastructure es un área geográfica localizada que contiene uno o más centros de datos, denominados dominios de disponibilidad. Las regiones son independientes de otras regiones y las grandes distancias pueden separarlas (entre países e incluso continentes).

  • Dominios de disponibilidad

    Los dominios de disponibilidad son centros de datos independientes e independientes dentro de una región. Los recursos físicos de cada dominio de disponibilidad están aislados de los recursos de los otros dominios de disponibilidad, lo que proporciona tolerancia a fallos. Los dominios de disponibilidad no comparten infraestructura, como alimentación o refrigeración, ni la red interna del dominio de disponibilidad. Por lo tanto, un fallo en un dominio de disponibilidad es poco probable que afecte a los otros dominios de disponibilidad de la región.

  • Dominios de errores

    Un dominio de errores es una agrupación de hardware e infraestructura dentro de un dominio de disponibilidad. Cada dominio de disponibilidad tiene tres dominios de errores con alimentación y hardware independientes. Cuando distribuye recursos en varios dominios de errores, las aplicaciones pueden tolerar fallos del servidor físico, mantenimiento del sistema y fallos de alimentación dentro de un dominio de errores.

  • Compartimento

    Los compartimentos son particiones lógicas entre regiones dentro de un arrendamiento de OCI. Utilice compartimentos para organizar los recursos en Oracle Cloud, controlar el acceso a los recursos y definir cuotas de uso. Para controlar el acceso a los recursos de un compartimento determinado, defina políticas que especifiquen quién puede acceder a los recursos y qué acciones puede realizar. Red virtual en la nube

  • (VCN) y subredes

    Una VCN es una red personalizable y definida por software que se configura en una región de Oracle Cloud Infrastructure. Al igual que las redes del centro de datos tradicionales, las VCN le proporcionan un control total de su entorno de red. Una VCN puede tener varios bloques CIDR no solapados que puede cambiar después de crear la VCN. Puede segmentar una VCN en subredes, que se pueden acotar a una región o a un dominio de disponibilidad. Cada subred consta de un rango de direcciones contiguas que no se solapan con las otras subredes de VCN. Puede cambiar el tamaño de una subred después de la creación. Una subred puede ser pública o privada.

  • Listas de seguridad

    Para cada subred, puede crear reglas de seguridad que especifiquen el origen, el destino y el tipo de tráfico que se debe permitir dentro y fuera de la subred.

  • Equilibradores de carga

    El servicio Oracle Cloud Infrastructure Load Balancing proporciona una distribución automatizada de tráfico desde un único punto de entrada a varios servidores del backend. Gateway de Internet El gateway de Internet permite el tráfico entre las subredes públicas de una VCN y la red pública de Internet.

  • Volumen en bloque

    Con los volúmenes de almacenamiento en bloques, puede crear, asociar, conectar y mover volúmenes de almacenamiento, y cambiar el rendimiento de volumen para cumplir con los requisitos de almacenamiento, rendimiento y aplicaciones. Después de asociar y conectar un volumen a una instancia, puede utilizar el volumen como disco duro normal. También puede desconectar un volumen y asociarlo a otra instancia sin perder datos.

  • Servidor web - IIS

    Internet Information Services (IIS) para Windows® Server es un servidor web para el alojamiento .Aplicaciones netas.

  • Acciones y corredores de Github

    Las acciones de GitHub se utilizan para automatizar la creación y el despliegue de la aplicación ASP.NET en los servidores Windows. Las acciones de GitHub ayudan a automatizar las tareas dentro de un ciclo de vida de desarrollo de software y un ejecutor es la máquina en la que se ejecuta un trabajo de acciones de GitHub. Un ejecutor recibe los trabajos disponibles, se ejecuta de uno en uno y notifica el progreso, los logs y los resultados a GitHub.

    Los runners son ofrecidos como un servicio gestionado por GitHub, o se pueden autogestionar si necesita más flexibilidad y control del entorno; por ejemplo, como una imagen o contenedor de propiedad, una máquina más potente o para admitir varias arquitecturas como Arm. Los mismos procesos o comandos se pueden ejecutar desde cualquier sistema de creación y despliegue para obtener resultados similares. En este ejemplo, la creación se dispara mediante una confirmación en el repositorio o una solicitud de extracción. Cuando se activa el flujo de trabajo, la aplicación se crea. Los binarios incorporados están empaquetados y se ha iniciado el formato para actualizar la infraestructura y desplegar la aplicación. La clave de API de Oracle Cloud Infrastructure está gestionada por secretos de GitHub.

Recomendaciones

Utilice las siguientes recomendaciones como punto de partida. Tenga en cuenta que los requisitos pueden diferir de la arquitectura que se describe aquí.
  • Cloud Guard

    Clone y personalice las recetas por defecto proporcionadas por Oracle para crear recetas de detector y respondedor personalizadas. Estas recetas permiten especificar qué tipo de violaciones de seguridad generan una advertencia y qué acciones se pueden realizar en ellas. Por ejemplo, un cubo de almacenamiento de objetos puede tener visibilidad definida como pública.

    Aplique Cloud Guard en el nivel de arrendamiento para abarcar el ámbito más amplio y reducir la carga administrativa de mantener varias configuraciones.

    También puede utilizar la función de lista gestionada para aplicar determinadas configuraciones a los detectores.

  • Zonas de seguridad

    Para los recursos que requieren máxima seguridad, Oracle recomienda utilizar zonas de seguridad. Una zona de seguridad es un compartimento asociado a una receta definida por Oracle de políticas de seguridad basadas en las mejores prácticas. Por ejemplo, los recursos de una zona de seguridad no deben ser accesibles desde el Internet público y deben cifrarse mediante claves gestionadas por el cliente. Al crear y actualizar recursos en una zona de seguridad, Oracle Cloud Infrastructure valida las operaciones con respecto a las políticas de la receta de zona de seguridad y deniega las operaciones que violan cualquiera de las políticas.

  • VCN

    Al crear una VCN, determine el número de bloques CIDR necesarios y el tamaño de cada bloque según el número de recursos que planea asociar a subredes de la VCN. Utilice bloques CIDR que estén dentro del espacio de direcciones IP privadas estándar.

    Seleccione bloques CIDR que no se superpongan con ninguna otra red (en Oracle Cloud Infrastructure, su centro de datos local u otro proveedor en la nube) a la que desee configurar conexiones privadas.

    Después de crear una VCN, puede cambiar, agregar y eliminar sus bloques de CIDR.

    Al diseñar las subredes, tenga en cuenta los requisitos de flujo de tráfico y seguridad. Conecte todos los recursos de un nivel o rol específico a la misma subred, que puede servir como límite de seguridad.

    Utilizar subredes regionales.

  • Listas de seguridad

    Utilice listas de seguridad para definir reglas de entrada y salida que se aplican a toda la subred.

Consideraciones

Tenga en cuenta los siguientes puntos al desplegar esta arquitectura de referencia.

  • Seguridad

    Considere la posibilidad de agregar el firewall de aplicaciones web para proteger la aplicación frente a ataques maliciosos.

  • Disponibilidad de Aplicación

    Los dominios de errores proporcionan la mejor resiliencia dentro de un único dominio de disponibilidad. Además, la implementación de instancias informáticas que realizan las mismas tareas en varios dominios de errores proporciona redundancia y evita un único punto de fallo.

  • Costo

    Seleccione la unidad de máquina virtual en función de los núcleos, la memoria y el ancho de banda de red que necesite para la aplicación. Puede comenzar con una unidad de dos núcleos para los servidores. Si necesita más rendimiento, memoria o ancho de banda de red para el nodo, puede cambiar la unidad de VM más adelante.

  • CI/CD

    Puede desplegar corredores de Github Action alojados automáticamente en OCI y agregarlos a su repositorio, organización o empresa de Github. Para obtener más información sobre los corredores autónomos de acciones de GitHub y las plataformas y arquitecturas soportadas, consulte "Alojamiento de sus propios corredores" en la documentación de GitHub (consulte el tema Explorar más para obtener un enlace a este documento).

Desplegar

El código de Terraform para esta arquitectura de referencia está disponible como pila de ejemplo en Oracle Cloud Infrastructure Resource Manager. También puede descargar el código de GitHub y personalizarlo para que se ajuste a sus requisitos específicos.

  • Desplegar mediante la pila de ejemplo en Oracle Cloud Infrastructure Resource Manager:
    1. Haga clic en Despliegue en Oracle Cloud.

      Si aún no ha iniciado sesión, introduzca las credenciales de arrendamiento y usuario.

    2. Seleccione la región en la que desea desplegar la pila.
    3. Siga las indicaciones de la pantalla y las instrucciones para crear la pila.
    4. Después de crear la pila, haga clic en Acciones de Terraform y seleccione Plan.
    5. Espere a que termine el trabajo y revise el plan.

      Para realizar cambios, vuelva a la página Detalles de pila, haga clic en Editar pila y realice los cambios necesarios. A continuación, vuelva a ejecutar la acción Plan.

    6. Si no es necesario realizar más cambios, vuelva a la página Detalles de pila, haga clic en Acciones de Terraform y seleccione Aplicar.
  • Realice el despliegue con el código de Terraform en GitHub:
    1. Vaya a GitHub.
    2. Clone o descargue el repositorio en su equipo local.
    3. Siga las instrucciones del documento README.

Explorar más

Para obtener más información, consulte los siguientes recursos: