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 en AWS. Puede elegir entre usar una VM, una solución administrada, como 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 su proyecto APIs hace referencia a algún .NET Framework incompatible, puede planificar la complejidad de un proyecto de migración y decidir si refactorizar el código para utilizar 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 a 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 Applications WorkSpaces
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 redefinir la plataforma de las aplicaciones existentes a Elastic Beanstalk
o utilizar contenedores de 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 utilizar AWS SDK para .NET
para llamar a muchos servicios en la nube de AWS desde su código .NET. Se pueden utilizar herramientas como el Asistente de portabilidad para .NET y AWS Microservice Extractor for .NET para migrar el código base de .NET Framework a .NET y dividir la aplicación monolítica en microservicios. Al refactorizar las cargas de trabajo de .NET existentes para que se ejecuten en AWS Lambda , puede utilizar la computación 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, volver a alojar en general implica ejecutarlos en Internet Information Services (IIS) en 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 administrada 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 WorkSpaces Applications
: elija esta opción para proporcionar un acceso seguro, fiable y escalable a aplicaciones y escritorios no persistentes desde cualquier ubicación. Puede usar WorkSpaces las aplicaciones para permitir a los usuarios acceder a sus aplicaciones.NET desde la web. Si ya tiene un RDS CALs y una SA activa, puede usar esas licencias con las WorkSpaces aplicaciones 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 utilizar AWS Elastic Beanstalk
Para obtener más información, consulte los siguientes recursos:
-
Creating and deploying .NET applications on Elastic Beanstalk (documentación de Elastic Beanstalk)
-
Working with .NET Core on 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)
-
Enabling Windows support for your Amazon EKS cluster (documentación de Amazon EKS)
-
Running Windows Containers with Amazon ECS on AWS Fargate
(blog de AWS) -
Acelerar 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. Puede utilizar AWS App2Container
para agrupar en contenedores y migrar con facilidad 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 utilizar App2Container para crear los artefactos de implementación necesarios para alojar la aplicación en la 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 agregar características, escalabilidad o rendimiento que, de otro modo, serían difíciles de lograr 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 costos 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
-
Kit de herramientas de AWS para Azure DevOps
(documentación de AWS ) -
Cómo configurar una CI/CD canalización mediante la integración de Jenkins
con y (Blog) AWS CodeBuild AWS CodeDeployAWS DevOps -
Acerca de la herramienta de AWS implementación de.NET
()AWS GitHub -
.NET en AWS
(AWS documentación) -
aws/dotnet (
) GitHub