Nesta sessão, você aprenderá como modernizar seus aplicativos Windows usando os serviços da AWS, além de entender qual estratégia de migração escolher para atender o seu negócio. Principais tópicos apresentados:
Principais temas apresentados:
- Por que escolher a AWS para suas aplicações Windows e quais as opções de migração;
- Como reduzir o tempo dedicado ao gerenciamento de ambientes Microsoft usando serviços gerenciados pela AWS;
- Execute e modernize seus aplicativos .NET com containers Windows no Amazon Elastic Container Service (ECS);
- Ofereça suas aplicações legadas para os usuários finais sem reescrever código usando o Amazon AppStream 2.0.
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.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 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.
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.
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.
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.
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.
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.
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.