Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Migración de aplicaciones .NET
La migración de sus aplicaciones.NET AWS le permite crear cargas de trabajo de alta disponibilidad con capacidades de escalado elásticas, reducir la sobrecarga operativa y aumentar la agilidad empresarial al centrarse en su valor diferenciador.
Esta sección se centra en las diferentes opciones para alojar sus aplicaciones.NET. AWS Puede elegir entre utilizar una máquina virtual, una solución gestionada, por ejemplo AWS Elastic Beanstalk
Evaluación
La elección de una ruta de migración para su carga de trabajo de .NET depende de los siguientes factores clave:
-
Busque la versión de .NET utilizada: Microsoft admite dos implementaciones de .NET diferentes: .NET Framework (1.0 a 4.8) y .NET (.NET Core 1.0 a 3.1 y .NET 5 y versiones posteriores). Ambas comparten muchos de los componentes y pueden ejecutar código de aplicación escrito en los distintos lenguajes de programación de .NET (como C#, F# y VB.NET). La elección de una estrategia de migración y un servicio de alojamiento depende del tiempo de ejecución utilizado, ya que .NET Framework se ejecuta en Windows, mientras que el nuevo .NET es multiplataforma. En el caso de .NET Framework, puede alojarlo en un sistema operativo Windows o refactorizar el código para utilizar el .NET más reciente. El .NET más reciente también se puede alojar en servicios basados en el sistema operativo Linux. Al modernizar las cargas de trabajo basadas en .NET Framework, puede utilizar el Asistente de portabilidad para .NET
o el conjunto de herramientas de AWS para la refactorización de .NET para analizar el código y generar un informe de evaluación de la compatibilidad. Al comprobar si hay algún .NET Framework incompatible al que APIs haga referencia tu proyecto, puedes planificar la complejidad de un proyecto de migración y decidir si refactorizar el código para usar un entorno de ejecución más reciente y cuándo. -
Revise su implementación actual: compruebe si la carga de trabajo actualmente migrada tiene CI/CD canalizaciones existentes que puedan actualizarse para implementar las mismas cargas de trabajo en la nube. El uso de una canalización de creación e implementación existente puede reducir el tiempo necesario para implementar la aplicación en la nube, ya que automatiza los pasos necesarios para crear, configurar e implementar las cargas de trabajo.
-
Revise su hoja de ruta: según el estado actual del proyecto, es posible que ya esté pensando en rediseñar sus aplicaciones. Cualquier modernización que se lleve a cabo debe tener en cuenta la hoja de ruta del producto. Por ejemplo, la decisión de contenedorizar el código existente o refactorizar una arquitectura monolítica para convertirla en microservicios debería formar parte de la hoja de ruta del producto y estar en consonancia con otros esfuerzos de desarrollo.
Movilización
Hay tres rutas de migración diferentes que se deben tener en cuenta al migrar las cargas de trabajo de.NET. AWS Puede elegir entre las distintas opciones en función de la complejidad de su base de código actual, el tiempo asignado a la migración y el tamaño del equipo asignado para respaldar el esfuerzo de migración. Al considerar la modernización como parte de la migración, se recomienda ajustarse a la hoja de ruta del producto.
-
Rehospedar (levantar y cambiar): puede elegir este enfoque si su prioridad es una migración más rápida AWS con pocos o ningún cambio. Puede realojar sitios web basados en ASP.NET en Internet Information Services (IIS) que se ejecuten en instancias de Amazon. EC2 Puede realojar sus aplicaciones de escritorio (como Windows Presentation Foundation, Web Forms y.NET MAUI) en una de las plataformas informáticas para usuarios finales, como Amazon 2.0 AppStream
o Amazon. WorkSpaces -
Redefinición de la plataforma: la redefinición de la plataforma es la opción más adecuada para aquellos casos en los que se quiere alojar la aplicación mediante un servicio administrado sin realizar cambios en el código, pero se quiere reducir la sobrecarga operativa al evitar el trabajo pesado indiferenciado, como la instalación, la aplicación de revisiones, las actualizaciones y la administración de instancias. Esta estrategia también es adecuada para los equipos que desean pasar a cargas de trabajo basadas en contenedores. Puede cambiar la plataforma de sus aplicaciones existentes a Elastic Beanstalk
o utilizar contenedores Docker alojados en Amazon ECS, Amazon EKS o. AWS App Runner -
Refactorizar: elija este enfoque si puede invertir tiempo y esfuerzo en realizar cambios en el código y la arquitectura que reduzcan la sobrecarga operativa y logren una mejor escalabilidad, alta disponibilidad y recuperación ante desastres mediante el uso de servicios nativos de la nube. AWS La refactorización implica modernizar la base de código mediante la migración de las aplicaciones de .NET Framework existentes a .NET (anteriormente .NET Core) o la modernización de una base de código existente para que funcione mejor en la nube. Puede usarlo AWS SDK para .NET
para llamar a muchos servicios AWS en la nube desde su código.NET. Herramientas como Porting Assistant para .NET se AWS Microservice Extractor for .NET pueden utilizar para portar el código base de .NET Framework a.NET y dividir una aplicación monolítica en microservicios. Al refactorizar sus cargas de trabajo de.NET existentes para que se ejecuten AWS Lambda , puede utilizar la informática sin servidor para evitar el aprovisionamiento y la administración de la infraestructura.
Migración
Los pasos de la migración de las cargas de trabajo de .NET dependen de la ruta de migración que haya elegido durante la fase de evaluación y del tipo de aplicación.
Realojamiento de aplicaciones .NET
Elija esta ruta de migración si desea migrar su aplicación sin realizar ningún cambio en el código, pero desea beneficiarse del escalado automático, el equilibrio de carga y la elasticidad en la nube. En el caso de los sitios web basados en Windows, realojarlos normalmente implica ejecutarlos en Internet Information Services (IIS). AWS En el caso de las aplicaciones de escritorio, debe instalar la aplicación y permitir que los usuarios se conecten a la aplicación desde el exterior.
Servicios de información de Internet en AWS
Internet Information Services (IIS) es un servidor web de Microsoft que se ejecuta en un sistema operativo Windows y se utiliza para alojar sitios web y servicios web. IIS se puede instalar en cualquier EC2 instancia de Amazon que ejecute Windows Server. Una vez habilitado y configurado IIS, puede implementar sus sitios web y servicios de ASP.NET mediante el mismo mecanismo de implementación que utiliza para los entornos en las instalaciones.
Si aloja instancias de IIS en EC2 Windows, es importante seguir el marco de AWS Well-Architected mediante el balanceo
Alojar aplicaciones de escritorio en AWS
Muchos clientes necesitan acceder a aplicaciones de cliente pesado basadas en Windows. Puede elegir entre tres plataformas diferentes:
-
Amazon EC2
: elija esta opción si desea que sus usuarios se conecten a un entorno basado en Windows Server mediante Microsoft Remote Desktop. Con esta opción, usted es responsable de crear las revisiones y mantener su sistema operativo. También debe adquirir licencias de acceso de cliente (RDS CALs) adicionales de los Servicios de Escritorio Remoto para sus usuarios y Software Assurance (SA) activo . Para obtener más información, consulte Licencias de Microsoft AWS en la AWS documentación. -
Amazon WorkSpaces
: elija esta opción si necesita una infraestructura de escritorio virtual (VDI) totalmente gestionada para sus usuarios. Puede utilizarla WorkSpaces para proporcionar una experiencia de escritorio de Windows persistente a sus usuarios. También puede personalizar su WorkSpaces entorno e instalar aplicaciones.NET mediante una imagen personalizada o utilizarlas AWS Systems Manager para entregar sus aplicaciones.NET a sus WorkSpaces entornos. Los usuarios pueden conectarse mediante su navegador o el WorkSpacescliente de Amazon . -
Amazon AppStream 2.0
: elija esta opción para proporcionar un acceso seguro, fiable y escalable a aplicaciones y escritorios no persistentes desde cualquier ubicación. Puede usar la AppStream versión 2.0 para permitir que sus usuarios accedan a sus aplicaciones.NET desde la web. Si ya tiene un RDS CALs y una SA activa, puede usar esas licencias con la AppStream versión 2.0 mediante License Mobility .
Redefinir la plataforma
La redefinición de la plataforma implica cambiar el entorno de alojamiento con pocos o ningún cambio en el código. Elija esta estrategia para reducir sus gastos operativos y usar las capacidades y los servicios de la nube.
AWS Elastic Beanstalk
Puede utilizarlas AWS Elastic Beanstalk
Para obtener más información, consulte los siguientes recursos:
-
Creación e implementación de aplicaciones.NET en Elastic Beanstalk (documentación de Elastic Beanstalk)
-
Trabajar con .NET Core en Linux (documentación de Elastic Beanstalk)
-
Soporte multiaplicación con dominios personalizados para.NET y AWS Elastic Beanstalk(blog de herramientas para
AWS desarrolladores)
Contenedorización de las aplicaciones existentes
Puede utilizar Amazon ECS o Amazon EKS para alojar sus aplicaciones en contenedores basadas en Docker. AWS administra ambos servicios. La elección entre los dos depende de los conocimientos y preferencias existentes. Ambas opciones pueden ejecutar contenedores basados en Linux o contenedores basados en Windows.
Para obtener más información, consulte los siguientes recursos:
-
Contenedores de Amazon EC2 Windows (documentación de Amazon ECS)
-
Habilitar el soporte de Windows para su clúster de Amazon EKS (documentación de Amazon EKS)
-
Ejecución de contenedores de Windows con Amazon ECS en AWS Fargate
(blog de AWS) -
Agilice los tiempos de lanzamiento de los contenedores de Windows con el creador de EC2 imágenes y la estrategia de caché
de imágenes (AWS Blog) -
Inicio rápido: CI/CD para aplicaciones.NET en AWS Fargate
(AWS documentación)
La inclusión en contenedores de las aplicaciones basadas en .NET depende del entorno de ejecución de .NET utilizado. Considere lo siguiente:
-
Las aplicaciones basadas en .NET Framework se ejecutan en contenedores de Windows: para agregar compatibilidad con Docker a las aplicaciones existentes, se crea un archivo de Docker que describe cómo se debe contenedorizar la aplicación. Se puede utilizar AWS App2Container
para almacenar en contenedores y migrar fácilmente las aplicaciones existentes basadas en .NET Framework a. AWS App2Container escanea el servidor IIS para determinar los archivos necesarios y extrae la aplicación de destino para crear una imagen de Docker. También puede usar App2Container para crear los artefactos de despliegue necesarios para alojar su aplicación en. Nube de AWS -
.NET o.NET Core: además de ejecutar aplicaciones web nuevas basadas en .NET en Amazon ECS o Amazon EKS, también puede utilizar. AWS App Runner
App Runner es una solución sin servidor y totalmente administrada que ejecuta el código o la imagen del contenedor y administra el equilibrio de carga, el escalado automático, el registro, los certificados y las redes.
Refactorización o rediseño del código existente
Elija esta opción si su empresa tiene una necesidad imperiosa de añadir características, escalabilidad o rendimiento que, de otro modo, serían difíciles de conseguir en el entorno actual de la aplicación. En función de la hoja de ruta de la aplicación, puede optar por cambiar el código para utilizar el marco más reciente o los servicios nativos en la nube, o rediseñarlo para que funcione mejor en la nube.
La primera opción de refactorización disponible consiste en migrar la aplicación .NET Framework existente a .NET. La migración a .NET le ofrece la ventaja de poder ejecutarla en Linux en lugar de en Windows. Esto reduce el costo total de las licencias, le proporciona los marcos más recientes y ofrece las versiones más recientes de los lenguajes de programación .NET.
AWS SDK para .NET
AWS SDK para .NET
Modernización de las aplicaciones de .NET Framework
Puede migrar desde .NET Framework mediante el Asistente de portabilidad para .NET
Del monolito a los microservicios
Muchos equipos de desarrollo desean rediseñar sus aplicaciones monolíticas existentes para convertirlas en microservicios. Al adoptar arquitecturas basadas en microservicios, sus equipos de desarrollo pueden aumentar la agilidad del desarrollo, reducir los costes de procesamiento, escalar los servicios de forma individual y reducir los tiempos de implementación. AWS Microservice Extractor for .NET
Refactorización de las aplicaciones sin servidor
AWS Lambda
Recursos adicionales
-
Amazon CodeCatalyst
(CodeCatalystdocumentación) -
AWS Toolkit for Azure DevOps
(AWS documentación) -
Configuración de una CI/CD canalización mediante la integración de Jenkins con AWS CodeBuild y AWS CodeDeploy
(AWS DevOps Blog) -
Acerca de la herramienta de AWS implementación de.NET
()AWS GitHub -
.NET en AWS
(AWS documentación) -
aws/dotnet (
) GitHub