Únase a nuestros arquitectos de soluciones para aprender a migrar y modernizar sus cargas de trabajo de Windows mediante los servicios de AWS. Aprenderá cómo elegir la estrategia de migración adecuada para sus aplicaciones al migrar a la nube, cómo reducir su esfuerzo de administración para las bases de datos utilizando servicios de base de datos administrados, una estrategia para contener sus aplicaciones .NET y cómo brindar una experiencia SaaS para su aplicaciones de cliente-servidor heredadas.
Temas principales presentados:
- ¿Por qué elegir AWS para sus cargas de trabajo de Windows?;
- Estrategias de migración para aplicaciones de Windows;
- Contenedores ECS de Windows;
- AppStream;
- Systems Manager.
4. ¿Qué herramientas tienen para modernizar?
¿Cómo empiezo a modernizar?
¿Cómo modernizo mis cargas de trabajo?
¿Cuál carga de trabajo debería llevar a la nube?
¿Cómo puedo reducir mi dependencia en licenciamiento Microsoft?
¿Qué aplicaciones debería poner en contenedores,
cuales llevarlas a serverless?
¿Cómo puedo escalar mis aplicaciones?
¿Cómo puedo reducir mi costo de Windows?
¿Qué estamos escuchando de nuestros clientes?
7. https://zkresearch.com/blog/2018/11/comparing-sql-server-deployments-on-microsoft-azure-and-amazon-web-services
12 AÑOS INNOVANDO PARA NUESTROS CLIENTES
Años de experiencia
en migraciones
12+
Innovación y Experiencia
.NET Core & PowerShell on AL2/Ubuntu
Windows Deep Learning AMI
.NET Core on Linux AMIs
Lambda Support for PowerShell Core
Amazon ECS for Windows Containers
Amazon EKS for Windows
Mono support on AL2
App Modernization
AWS Tools for Windows PowerShell
.NET SDK
DynamoDB Accelerator SDK for .NET
.NET on Lambda & AWS CodeBuild
.NET Core 2.1 Support with Lambda & X-Ray
X-Ray .NET SDK
.NET Developer Hub
AWS X-Ray .NET Core Support
CloudWatch AppInsights for .NET and SQL
.NET Developer Hub
Joined .NET Foundation
.NET
SQL 2017 AMI AL2/Ubuntu
SQL Server 2008 R2 Amazon RDS adds SQL Server
SQL Server 2017
SQL Server 2012
SQL Server 2008 R2
SQL Server 2016
SQL Server 2008 Upgrade
AWS Launch Wizard for SQL Server SQL Server 2019 on EC2
SQL Server
AWS Directory Service
Visual Studio Toolkit
Microsoft SCOM plug-in release.
Microsoft SharePoint 2016 (Marketplace)
Microsoft SCVMM Plug-in
SAP instance on AWS 2012
Trusted Advisor checks for Windows
Hyper-V support in SMS
Windows for Lightsail
Application-consistent Snapshots through VSS
Sessions Manager
Dedicated Host Enhancement Tag-On
EC2 Dedicated Hosts (BYOL)
EC2 Run Command
EC2 Systems Manager
EC2 Dedicated
Instances (BYOL)
EC2 Windows on Bare Metal/Hyper-V AMI
WS 2008 & SQL Server 2008
Windows Server 2008 R2
Windows Server 2012
Windows Server 2016
Windows Server 1803
Windows Server 2003
Application migration using AWS SMS
Active Directory Cross VPC Support AWS License Manager
Amazon FSx for Windows File Server
Azure to AWS Migration Support
Windows Server & EC2
2008 2010 2012 2014 2016 2018 Today
11. Decidir una estrategia de modernización
Aplicaciones
Windows
Bases
de
datos
SQL
Managed provisioning, backups,
patching, monitoring, and scaling
No code changes
Auto Serivicio -> Gestionado
RDS SQL
M I G R A R A L A N U B E
Apps/DBs enVMs
Sin cambios de código
El usuario opera toda la infraestructura
VMC en AWS Windows en
EC2
SQL en EC2
On-prem Nube
Relocate/rehost
High performance and scalability
Purpose-built database services
Licensing savings
SQL Aurora/DynamoDB/etc.
Aurora DynamoDB Neptune Redshift
M O V E R S E A O P E N - S O U R C E
License freedom/savings
Performance improvement
Cross-platform support
.NET Framework .NET 5
Refactor/rewrite
C O N T E N E R I Z A R
A P L I C A C I O N E S
Develop and deploy faster
Application portability
No code changes
VMs Containers
Replatform
ECS Fargate EKS
15. Migrar servidores a AWS usando CloudEndure
On-premises Target region
Server
Target subnet
Staging area subnet
Server
CloudEndure user console
Continuous block-
level data replication
(compressed
and encrypted)
Replication server configuration and ongoing monitoring
APIs to create staging area
and launch target machines
CloudEndure
agent handshake
Launched target
EC2 instance
Launched target
EC2 instance
Target
EBS volumes
Target
EBS volumes
Staging area
replication servers
(lightweight Linux
EC2 instances)
CloudEndure
migration
CloudEndure
migration
16. Migrando aplicaciones en sistemas operativos fuera de
soporte utilizando EMP
Source Target
Legacy Application
Newer
Operating
System
EMP Compatibility
Package
Intercepts Windows API calls as the application
interacts with local operating system returning the
resources expected by the application regardless
of OS
Runs older versions of runtimes that can only be
accessed by packaged application
Compatibility
Redirection
Isolation
Resolves OS incompatibilities while maintaining
integration with other applications and services
Older Windows OS
(2003 SP2, 2008 and
2008 R2
Legacy Application
Compatibility package features
17. Estrategias de migración: Replatform
Rehost
Refactor
Costo,
esfuerzo,
habilidades
Tiempo para migrar
18. Cambio de Plataforma
Ventajas:
• Menor gestión de
sistemas operativos,
parches y copias de
seguridad
• Escalabilidad mayor y
más sencilla
Retos:
• Mayor esfuerzo de
migración
19. Cambiando a Active Directory de plataforma
Microsoft
AD
AWS-managed
Microsoft AD
AWS AD
connector
20. Microsoft AD gestionado por AWS
Infraestructura
gestionada por
AWS
Soporta AD
trust
SSO
Alta disponibilidad y
copia de seguridad
automatica
Unión a dominio
de EC2
automatizable
AWS Site-to-Site
VPN
AWS Direct Connect
Trust (1- or 2-way)
Corporate data center
Domain: example.com
Region 1
AWS Managed
Services
Controladores de
dominio
AD
Av. Zone 1 Av. Zone 2
Amazon EC2
AWS-managed
Microsoft AD
Domain: na.example.com
SharePoint
server
.NET
apps
SQL Server
Always On
Amazon
EC2 Linux
Amazon RDS
for SQL Server
Amazon RDS
for Oracle
Amazon RDS
for
PostgreSQL
Amazon FSx for
Windows File Server
21. AWS AD Connector
Autenticar utilizando
credenciales on-
premises
Autenticación
multifactor
Potentially another AWS
account or Region
AWS Direct Connect
or
Corporate data center AWS Cloud
AD on-premises
AWS Site-to-Site VPN
Managed AD
Amazon EC2
AD connector
22. Cambiando los servidores de archivos de plataforma
Amazon
FSx for
Windows
File Server
Windows
File Storage
Archivos compartidos
gestionados construidos
sobre Windows
23. Migrando a file shares gestionados
• DataSync establece y gestiona una conexión segura a los shares en FSx para Windows
• Se usa el mismo protocolo SMB, no cambia la arquitectura de la aplicación
Sistema de archivos
compartidos
NetApp, Isilon, IBM, Windows File Servers
SMB
AWS DataSync
Amazon FSx para
Windows
SMB
AWS Region
On-Premises
24. SQL Server a Amazon RDS
On-premises
Microsoft
SQL Server
Amazon RDS
para SQL Server
Gestionado
Alta disponibilidad
gestionada
Backup y
actualizaciones
gestionadas
Amazon EC2
Auto gestionado
Acceso completo al
S.O. y Motor DB
Backup y
mantenimiento manual
Soporta BYOL
25. Migrando SQL Server usando AWS DMS
AWS DMS
DMS replication instance
On-premises
Base de datos actual
AWS
Base de datos en RDS
27. Llevando aplicaciones ASP.NET a contenedores
usando App2Container
Convierte
automáticamente la
aplicación a un
contenedor Windows
Cambios
mínimos o nulos
en el código
Rápido y fácil de
instalar
.NET Replatforming
28. Llevando aplicaciones ASP.NET a contenedores
usando App2Container: Cómo funciona
ASP.NET
application server
Upload the artifacts to
Amazon S3 bucket
Extract all necessary artifacts to
containerize the application
(Optional) Update database connection
strings
Analyze dependency and IIS
configuration
Select the IIS site
to be containerized
Run app2container inventory to discover all IIS
sites capable to be containerized Build and push
the container
image Amazon ECR
Amazon S3 bucket
AWS Cloud
App2Container workspace
Amazon EC2 instance
(Windows server with
Docker installed)
Amazon ECS
Register
ECS
task
definition
Amazon EKS
Generate service /
deployment file to
be used on
Kubernetes
30. Aplicaciones Cliente-Servidor
Retos:
• Cómo habilitar el trabajo en
casa sin VPNs?
• Cómo mantener las
aplicaciones al día?
• Como gestionar centralmente
estas aplicaciones?
• Cómo asegurar la privacidad
de mis datos corporativos?
32. Su aplicación en AppStream
Fleet
Streaming
Gateway
Application
Server
Identidad del usuario
via SAML
Streaming
VPCE
(optional)
Your VPC
AppStream 2.0 VPC (198.19.x)
1. Connectivity to AppStream 2.0 uses HTTPS via TCP443 over the internet
a) Using the optional streaming VPCE maintains the pixel, USB, user input, audio, clipboard, file
upload/download, and printer traffic within the customer VPC
b) The user needs internet access for the AppStream 2.0 web assets and authentication
2. Security groups are used to control network access to the customer VPC
3. AppStream 2.0 streaming instance access to the internet is through the customer VPC
1
1
2
AWS Cloud
Microsoft
Active
Directory
(optional)
File Server RDS
Database
33. Estrategias de migración: Refactor
Rehost
Replatform
Costo,
esfuerzo,
habilidades
Tiempo para migrar
35. ¿Por qué nuestros clientes quieren modernizar .NET?
Serverless
Linux
Containers
Utilizar contenedores Linux para aplicaciones
.NET
Migrar a aplicaciones serverless
Eliminar licenciamiento de Windows
.NET 5 es el futuro, Microsoft ha deprecado el
.NET Framework
Aprovechar procesadores ARM
36. Portando a .NET Core
Retos:
• Dependencias de paquetes y librerias incompatibles con .NET
Core
• Dificultad en entender el esfuerzo de migración
• Trabajo manual en realizar la migración
• Falta de experiencia en técnologias de despliegue: Linux,
Contenedores
37. Porting Assistant for .NET
Revisión y acompañamiento en la migración de aplicaciones .NET
Framework a .NET Core
38. Modernizando hacia serverless
No require
aprovisionamiento de
infraestructura
Escalamiento
automatico
Pago por uso
Altamente
disponible y
tolerante a fallos
39. Cómputo Serverless en AWS
Motor de cómputo serverless
para contenedores
Larga duración
Compatible con código existente .NET
Core
Orquestación de contenedores
gestionada
Fargate
Ejecución de código serveless
en respuesta a eventos
Corta duración
Soporta .NET Core (entre otros)
Integración de fuentes de datos
AWS Lambda
43. Amazon Aurora
Base de datos empresarial a costo de open-source
Base de datos como servicio gestionado
Amazon Aurora
Desempeño y disponibilidad de bases de datos comerciales
Simple y efectivo en costos
Compatible en API con MySQL y PostreSQL
Costeo simple en esquema pay-as-you-go
44. Migrando de SQL Server a Aurora
Microsoft SQL Server
on premises, EC2, or
RDS
AWS DMS Aurora
Step 1
Step 2
Microsoft SQL Server
on premises, EC2, or
RDS
Schema Conversion Tool Aurora
45. .NET apps a containers
1
.NET apps a serverless
2
• Mejor performance, facilidad de
actualizaciones
• Cambio a técnologias Open-Source
• Redución de costos entre 50-80%
• Mayor escalabilidad, flexibilidad,
reducción en paso a producción
.NET
Applications
SQL Server en Linux
3
• Eliminación de costo de licenciamiento
deWindows
4
SQL
Server
SQL Server a Aurora
• Base de datos nativa a la nube
• Eliminación de licenciamiento de
Windows y SQL Server
Beneficios de la migración
Talking points:
What is modernization of Windows applications
These are challenges that IT organizations that are hindered by having an older application stack, these challenges can be addressed by modernization.
- Innovation: to be able to increase the rate of innovation a company can move towards cloud infra, as it lowers the need to dedicate resources to maintaining infra and servers.
- Rising cost: by using cloud technologies you pay-per-value, and forgo capital expenses of hardware renewal, you can also reduce the amount of sysadmins that need to be dedicated to older infra.
- Scaling challenges: older applications are harder to scale, as they were created for single servers or fixed-size clusters, modernization can enable easier scalability of these applications.
- Tech debt is a real challenge to organizations, older applications may work-well-enough and be left to become older. Eventually, the team that created the application will be gone from the company or a third party application will become unsupported, this will lead to applications that are harder to adapt to ever changing requirements from the business, decreasing the value the business gets from these applications and encourages the creation or purchasing of newer applications.
- Resilience: business critical applications should be resilient to infrastructure problems, older applications designed for a single server or tighly coupled can be difficult to be made reliable in a single datacenter operation, the cloud can enable easier implementation of resilience applications due to its global and distributed computing power.
So, this is what we have been hearing from our customers, who can I innovate and make my applications more resilient and scalable, when there are legacy applications that most be maintained. How can I realize savings my moving to the cloud? In general, how do I modernize my legacy windows applications?
Customers have been running Windows workloads on AWS for over a decade. We run nearly 2x more Windows Server instances than the next largest cloud provider, according to an IDC report. Our experience running Windows applications has earned our customers’ trust and the number of AWS enterprise customers using Amazon EC2 for Windows Server has grown 5x since 2015. You can select from a number of Windows Server versions including the latest version, Windows Server 2019. In addition, AWS supports everything you need to build and run Windows applications including Active Directory, .NET, System Center, Microsoft SQL Server, Visual Studio and Windows desktop-as-a-service. AWS also has the first and only fully managed native-Windows file system available in the cloud with Amazon FSx for Windows File Server and is the only cloud provider to provide production support for Kubernetes on Windows.
Here are the key reasons why AWS is the best cloud to run Microsoft workloads:1. Breadth and Depth of Service: AWS supports the full Windows stack, including Active Directory, .NET, SQL Server, and Visual Studio. We offer unique capabilities such as FSx for Windows File Server and Managed Active Directory. We are also the only cloud to provide a cloud-like Dedicated Host experience!2. Reliability: With over 2x as many regions with multiple availability zones, AWS had 7x less downtime hours compared to Azure in 2018 and 2019!3. Performance: AWS’ extensive compute selection, coupled with the best-in-class storage and networking features, allow us to deliver nearly 2x better performance, and up to 40% better price-performance for running SQL Server on AWS, over Azure!4. Lower Total Cost of Ownership (TCO): Research firm, International Data Corp. (IDC), estimates that customers will realize an average return on investment of 442% over five years, when they bring their Windows workloads to AWS. Customers can bring their existing licenses to AWS, and save even more with Savings Plans and EC2 Spot Instances. Optimization and Licensing Assessments help provide AWS right-sized recommendations based on the customers’ on-premises utilization and Microsoft license consumption.Business Value of Efficiently Running High-Performing Windows Workloads in the AWS Cloud
5. Migration experience: Our unmatched migration experience has helped thousands of organizations, such as Hess, Ancestry, and Expedia easily migrate and modernize their Windows workloads on AWS. AWS has been running Windows for over 11 years, longer than Azure has existed, and we host nearly 2x more Windows Server Instances than Azure. Our programs, such as MAP and re:Think for Windows, have helped our customers reduce the risk and cost of moving to AWS. We are also offering a new Windows variant for MAP starting April 1st.
AWS offers a far broader selection of services along with much deeper functionality within most of these services than any other cloud provider. We have the widest selection of cloud services, including 48 services where comparable options are simply not available on the next largest cloud provider, including deeper functionality for Windows such as the AWS Deep Learning AMI for Microsoft Windows Server, the only production support for Kubernetes on Windows, and the first and only fully managed native-Windows file system available in the cloud with Amazon FSx for Windows File Server.
Amazon FSx for Windows File Server is the lowest cost file storage in the cloud for Windows workload at $0.013/GB-month (Single-AZ) and $0.025/GB-month (Multi-AZ).
We have the best global infrastructure for running workloads that require high availability with 69 Availability Zones (AZ) across 22 Regions. The AWS Region/AZ model has been recognized by industry analysts as the recommended approach for running enterprise applications that require high availability and AWS provides >2x more regions with multiple availability zones than the next largest cloud provider (22 vs. 10). This is one of the reasons why the next largest cloud provider had 7x more downtime hours than AWS in 2018*.
Amazon FSx for Windows File Server provides a highly available, high performance, multi-AZ shared storage option for customers running highly available SQL Failover Clustering (FCI) on AWS. Previously, customers wanting to run highly available SQL clusters on EC2 were limited to the Availability Groups (AG) option for HA. However, AG deployments typically requires more expensive SQL Enterprise licensing and do not provide as complete of a high availability solution as FCI deployments. Amazon FSx unblocks new SQL migration use cases, as well as simplify existing SQL server deployments.
DB Best, an enterprise database consulting company wrote two blogs – one for Azure and one for AWS – that showed how to get the best price/performance for running SQL Server in the cloud. ZK Research took these blogs and compared the results from DB Best to show an apples to apples comparison.
ZK Research points out that SQL Server on AWS consistently shows a 2X+ better price performance using HammerDB, a TPC-C-like benchmark tool compared to Azure! This first chart shows the cost of 1 billion transactions per month. For this, SMALLER IS BETTER, AWS is cheaper!
And then ZK Research dove into performance of SQL Server – and again-- SQL Server on AWS outperforms SQL Server on Azure when they looked it from a transaction per minute perspective. And it’s close to 3X. In this case the bigger the bar the better.
Net-Net – SQL Server on Amazon EC2 consistently outperforms Azure
AWS helps customers lower their overall costs of running Windows in the cloud with the most comprehensive family of EC2 instances and unique pricing models like Spot which can help customers save up to 90% on their Windows compute costs. Customer can also save money by moving their eligible Microsoft Licenses to dedicated hosts on AWS. Customers have the flexibility to choose from a variety of available licensing options, including buying fully compliant licenses from AWS with a pay-as-you-go model, or bringing their eligible licenses to AWS. Customers can use AWS License Manager to centrally manage their software licenses across their AWS and on-premises environments.
Again, Amazon FSx for Windows File Server is the lowest cost file storage in the cloud for Windows workload at $0.013/GB-month (Single-AZ) and $0.025/GB-month (Multi-AZ).
AWS has over a decade of unmatched experience, helping thousands of organizations, including global enterprises such as Sysco, Hess, Sony DADC, Ancestry and Expedia migrate and modernize their Windows workloads on AWS. AWS has translated this experience in our new Migration Acceleration Program (MAP) for Windows, which is based on our proven MAP methodology of best practices that is recognized by IDC** as the most extensive library of cases covering thousands of successful migrations. MAP for Windows also helps customers modernize their Windows, SQL, and .NET workloads on cloud native, Linux, and open source solutions.
The first step is identifing the application architecture that we want to modernize, these can be broadly categorized in two architectures:
A traditional 3-tier web application, usually based on technologies like ASP or ASP.net, hosted in IIS, using a SQL Server database for persistance. For these applications the biggest business driver for modernization is ensuring availability and scalability and dealing with older application stacks, like classic ASP, older versions of SQL server, older versions of the .NET framework while minimizing the personel required for management of the applications and hardware.
Older client server legacy apps that are installed in the employee Workstation, for these the biggest challenge is ensuring security in a remote-work environment, and ensuring updated versions of the application are timely deployed to the end users workstations. These applications have become more challenging from an IT perspective because of COVID, as these applications are designed for a low-latency network (they normally interact directly with the database) and more employees are working remotely over VPNs, where low latency to database servers is not ensured.
Both these kinds of applications will usually interact with middleware on our datacenters, usually Active Directory for application authentication, a File Server or NAS appliance for shared storage, and SQL Server databases for data persistance.
Depending on each application type and how it is used in the business the modernization strategy will differ.
For each application a modernization strategy must be chosen. When migrating to the cloud you can choose between:
Rehosting the application: this means moving the compute resource to the cloud as-is, this will allow you to ease the management of the application resources will be reduced because you wouldn’t have to manage the underlying hardware, and you will be able to scale more easily and opérate more reliably but you will not fully realice the benefits of cloud computing.
The next strategy is replatforming part of the whole of the application. In this strategy you move part of the application compute use to managed services, that will ease the cost of administration and allow less heavy lifting from you, while maintaining the overall application architecture and technology stack.
And the last, Refactoring the application will allow you to fully embrace cloud technologies, but will require rewriting parts of the application code and changing the overall services and middleware of the application. This will be the most beneficial strategy in the long run but will have a higher time-to value.
So what are the alternatives for each strategy for Windows workloads?
Rehosting Windows applications in the cloud means moving the servers to AWS, as EC2 instances (virtual machines) and operating the databases / middleware in a cloud environment.
Replatforming Windows workloads is moving towards application containers and managed database and middleware environments. This will reduce your administration costs as backups, patching and scaling these services will be handled by AWS.
Refactoring the applications will usually mean rewriting the application in .NET Core, the evolution of the .NET framework which will be supported onwards by Microsoft. Being multiplatfrom .NET Core will run on Linux which will reduce your licencing costs as compared to a Windows solution, it will also allow you to use technologies such as AWS Lambda (serverless event-driven functions) that will reduce the need for permanent infrastructure, further reducing costs. During the re-write you should also consider modernizing the database layer to cloud first technologies such as Amazon Aurora, a postgresql and MySQL compatible Enterprise database that costs a fraction as compared to SQL Server licensing, and use other purpose specific databases such as DynamoDB for NoSQL low latency workloads, Neptune for graph databases and Redshift for data warehousing.
So let’s start by discussing how to rehost a 3-tier web application.
When rehosting our example 3-tier architecture to AWS, we can take advantage of availability zones to increase our application availability, Availability Zones, an AWS Region consists on multiple Availability Zones, each composed of 1 or more datacenters, availability zones are located in independent flood planes, with independent power and conectivity, as such an non-availability event (power outage, natural disaster) in one will not likely affect the other.
We can also use the autoscaling capabilities of the cloud to scale the web and application tiers independently, based on metrics such as CPU or memory usage, as such we can downsize the required servers to the minimun specs required for the steady state of the application and automatically scale based on demand, which will lead to lower infrastructure costs.
The migration effort for these movement is small as we will move the servers to the cloud as is.
Using this strategy we have some challenges: How do we actually migrate these servers? And how do we deal with older opearting systems that are no longer supported by Microsoft.
In order to migrate we can use Cloud Endure, an AWS Service that will allow you to replicate your servers up to AWS and keep them synchronized until the cutover point. With CloudEndure you can replicate either physical servers or virtual machines to AWS by sending changed blocks in each machine to AWS, you can also use CloudEndure as part of your DRP strategy. Using CloudEndure you can test-lauch your application on the cloud before the failover to do unitary and functional testing before moving over.
If you have older applications that require unsupported Windows OS such as Windows 2003, 2008 or 2008 R2, you can use our EMP compatibility package to run this application in newer Windows OS, legacy applications such as SQL Server 2000 can be run in Windows 2019 by packaging them using EMP,using EMP a legacy application is wrapped in EMP Compatibility package which intercepts calls made by the application to underlying OS and resolves all incompatibilities while maintaining the complete application behavior as is. EMP Compatibility package achieves this due to its 3 key features – Redirection, Isolation and Compatibility.
DETAILED MESSAGE:
In the current state of the world, we see on the left hand side we have a legacy application deployed on older version of Windows Server. After going through the EMP process, the target state has the legacy application without any code changes wrapped in EMP Compatibility Package deployed on one of the newer Windows Server OS.
EMP Compatibility Package decouples the application from underlying OS and offers three key features
Redirection – Compatibility package intercepts any API call that legacy application makes to the OS and resolves in case of incompatibilities. For example, if the application depends on older version of .NET like .NET 1.0, this older runtime is included in the package itself and any call legacy application makes to the underlying OS for .NET runtime is redirected to the .NET runtime included in the package. Similarly, the package can perform redirections for registry keys, hard coded windows file paths, networking ports etc.
Isolation – This features allows the compatibility package to run several versions of a runtime on the same OS. The older runtime is isolated from the external environment and can only be accessed by the legacy application. This further improves the security posture.
Compatibility – EMP provides application to OS compatibility while maintaining the application behavior and integrations with other applications tiers, databases, services etc. Additionally, EMP solves for several OS incompatibilities like DEPOut, COM Virtualization, reporting different OS back to the application etc.
Now that we have gone through how to rehost the application on AWS (or even coming directly from your datacenter), you can start thinking about how to replatform parts of the application stack to managed services to reduce the management costs for your application.
Next up is how to replatform the application components. This will allow us to dedícate less time to managing the infrastructure and more time in creating value for our business. In this architecture we can swap the middleware components for managed AWS Services and containerize the frontend and application servers, this last part will allow us to consolidate our application further, making better use of the hardware and achieving higher costs savings.
Let’s start with the middleware components.
When re-platforming Active Directoy there are two directions we can take, we can move over to a completely manged Active Directory Service (AWS-Managed Microsoft AD) or we can connect our Cloud infrastructure with our exisiting on-premises active directory DCs using our AD connector. In both these services you do not have to manage the patching, availbility of your Active Directory infrastructure, as they are highly available services runinng in two availability zones.
First is using our Managed Active Directory service, in this service you can provision a managed domain, which you can connect to your exisiting on premises infrastructure using a domain trust over a VPN connection, the cloud infrastructure will be able to authenticate to either domain accounts on the Manged AD or through the domain thrust to on-premises resources.
With managed AD there are no servers to manage or update, and backups are taken automatically by the service.
If you do not want to create an additional domain on AWS you can use our AD connector, which will forward authentication requests from your cloud resources to your local AD on-premises, this AD connector also doesn’t require your team to manage additional domain controllers on the cloud.
Instead of provisioning File servers on the cloud or using NAS appliances on-premises you can leverage our FSx for Windows Service, with FSx you can create highly available SMB file shares, paying only for the storage you use while reducing the administration overhead, as with other managed services, backup, patching and high-availability are built-in
Moving to FSx from file servers or NAS appliances is easy, using AWS Datasync you can syncrhonize your current SMB shares your FSx automatically.
It’s expensive and complex to manage administrative functions including regular patching cycles, performance optimization, and backup and disaster recovery—all for constantly changing applications.
If you could automate time-consuming database administrative functions, you could get more leverage from your teams and focus on differentiation and improving your business
What if you could run relational databases in the cloud with lower cost and better availability?
If you could have high availability and disaster recovery across multiple data centers with a single API call or click of button, you could leverage enterprise-level scalability and durability
Using Amazon RDS you can achieve all these advantages for your SQL Server DBs.
Moving your databases over is also simple using our Database migration Service or DMS, which DMS you can synchronize your existing SQL Server database to RDS and keep it synchronized up to the cutover point leveraging Change Data Capture technologies present in SQL Server.
Now, let’s take a deeper look on how to replatform applications to containers. A container is a standard unit of software that packages up code and all its dependencies so the application runs quickly and reliably from one computing environment to another. A Docker container image is a lightweight, standalone, executable package of software that includes everything needed to run an application: code, runtime, system tools, system libraries and settings. This will allow you to have unified dev / qa/ and production environments, and minimize further the risk in updating the applications code.
You will further be able to leverage services such as ECS (Elastic container Service) to run your application, In ECS and Fargate you only need to worry about the container image for your application, not the underlying operating system, which will be manged by AWS, you can use Windows containers in ECS to run your web applications.
So, how to start? We know that moving applications over to containers can be a challenge, so we created App2Container, a tool that automatically scans you IIS server for applications and converts them into Windows containers, creating all the resources you need to run them in a managed containter service such as AWS ECS. Using Windows containers you can also lower your licensing spend as you can co-locate more of your workloads per server while ensuring isolation between them, ECS is also able to autoscale your container hosts depending on demand.
A bit of how it runs under the hood, app2container will scan all your sites in your current IIS server, analyze their dependencies, update database connection strings and containerize your application. Then you’ll be able to ship this image you a private container image repository such as Amazon ECR (Elastic Container Registry) and deploy them to ECS.
So what about our legacy client-server apps.
In client-server apps, the challenges are (read above)
For the backend we can use the same approaches to rehosting or replatforming the application servers, databases and middleware. However, since low latency access between the client is required between the client and the server, we will have much better user experience if we co-locate the client application in AWS, for this we can use AppStream.
Appstream is a managed application streaming service provided by AWS that will allow your users to access windows GUI applications through a web browser. The service manages the scaling of hosts to run your application according to demand, so that you only pay when your users are actually using your applications.
By using AppStream you don’t need to worry about how to update end clients as you can roll out updates centrally, you also can leverage appstream to provide access to end user applications that require older java sdks, or for those that require network connectivity to your cloud or on-premises environments without having to provide Vpn access to your workers.
Explain a bit how a fleet works in appstream here.
We can also refactor our applications, this will allow us to fully realize the banefits of cloud computing.
Many of our windows customers are currently using .NET applications, it is important to know that microsoft has endlined the classic Windows-Only .NET Framework adopting .NET 5, based on .NET Core to be the supported .NET forward, therefore if we are currently using .NET framework applications, we should start thinking of refactoring them to .NET 5.0 (meaning that we must port our application to .NET Core compatible packages and APIs.
Even though this task will take some time and effort, there are great strategic advantages in moving over.
One of them is being able to run these application on Linux instead of Windows, as the newer .NET 5 is multiplatform our server side applications will run as good as in windows or even with better performance on Linux. This has a direct impact on our costs as Linux instances are much less expensive in licensing as compared to Windows Server.
Moving over to .NET core will also allow us to decompose our monolithic application into services and run them in AWS lambda, a pay per value service that allows your developers to focus only on writing code that is triggered by events, in AWS lambda you do not have to worry about scalability, as this is handled by the service.
Finally, using Linux to run .NET containers will allow you to use our arm based instances, runnning AWS’s very own Graviton processors. Graviton-based instances offer an up to 40% better price / performance as compared to Intel-based instances.
There are some challenges, however when moving over to .NET core
…..
we know that porting over code to a newer version is hard, so we have created a tool that can help you make this process easier…
Introducing our porting assistant for .NET, this tool from AWS will scan your current .NET Framework applications for incompatible APIs and packages, will offer you suggestions of newer, compatible packages and will re-write some of the boiler plate code, so that your developers only need to focus on rewrting the minimum amount of code to port your current .net framework apps to .net core.
What is Amazon Aurora?
Amazon Aurora is a MySQL and PostgreSQL-compatible relational database built for the cloud, that combines the performance and availability of traditional enterprise databases with the simplicity and cost-effectiveness of open source databases.
5x throughput of standard MySQL and 3x of standard PostgreSQL; scale-out up to 15 read replicas
Fault-tolerant, self-healing storage. Six copies of data across three AZs. Continuous backup to Amazon S3Data encryption at rest and in transit; industry compliance and assurance programsIntroducing Amazon AuroraMySQL and PostgreSQL-compatible relational database built for the cloud
Performance and availability of commercial-grade databases at 1/10th the cost
Pay-as-you-go pricing for compute and storage
Running traditional relational databases at the level of performance required by modern cloud applications is challengingWhile a managed database service such as Amazon RDS can handle complex administrative functions, traditional relational databases are still difficult to optimize for performance andoperate at high scale.