Welcome to T316. We're going to talk about what's new in the AWS modernization tool set for Microsoft workloads. My name is Murtaza and I have my two colleagues with me presenting today, Harsh and Gerald.
In this session, we are going to talk about modernization and its benefits. We'll talk about what modernization is, how it can help enterprises. What you're going to experience in this session is that we're going to take a fictitious enterprise, representative of our customers as an example, talk about the business needs of that organization and my colleague, Gerald would be playing the role of the CTO of that organization and Harsh and myself, we are product managers answering questions that you may have in terms of how to help meet the business needs, the technical needs, how to take the application through the transformation process and how it aligns with the business goals of the organization.
What you will see is a dialogue between us and the CTO of a representative customer enterprise in terms of how those conversations happen and what we recommend in terms of the journey, the tooling and taking the applications through that workflow of transforming the entire portfolio.
Let's perhaps hear from Gerald what this organization does and what the business needs are.
Gerald: I really appreciate you Harsh and Mutaz coordinating this meeting so that we can talk about our journey and just to set the context and set the stage. At AnyOrganization, what we do is we essentially create or simplify the process for authors. Because what we do is we are an online bookstore and we have a marketplace and we simplify the process for authors to publish their amazing content for readers.
Essentially, of late, we've known that we can take advantage of more opportunities in the market. And what we want to do is transform that marketplace to be able to introduce AI to make it easier for our authors to be able to publish anytime they do publish their content. What essentially they're going to do is be able to publish that in 11 languages to cover more users and more readers across the globe.
A bit about our architecture and our application portfolio. Essentially 95% of our workloads are built in .NET and those .NET applications are hosted on Windows Server and also backended by SQL Server.
Some things that we've recently accomplished is we've had an acquisition and that acquisition has introduced new business opportunities for us. However, we've also had some challenges too because we've got an operations kind of lag for us, so to speak, where it's hard for us to roll out our, our new changes and new features because we have some stale technical techniques and software techniques that we have in place. So we need to, we have to improve on that so we can be reliable and in getting content out and getting changes out faster.
Also we, we've gotten board approval, which is key for us. However, one thing that they've noted is that they're only gonna provide funding for 85% of what we've budgeted this modernization strategy that we're gonna be going through. So how we're gonna basically make up the difference is in finding optimizations and what we do in terms of our design and then being able to reinvest those optimizations to cover that remaining 15%.
So looking for the partnership with you all to be able to achieve those business objectives.
Murtaza: I see. So what I am hearing from you is very typical of what we hear from customers in terms of reducing cost, optimizing and finding the investment so that you can move forward in terms of leveraging latest technologies, in terms of AI, ML, generative AI, large language models. And the starting point of that is typically modernizing the architecture, modernizing to open source alternatives modernizing to purpose built cloud services.
So I'd love to hear from you. Have you explored modernization? And if you put a thought on it, definitely, it's, it's something that we've had to do as an organization. We have to level set the understanding of what modernization means to any organization. And essentially we've, we've settled on the fact that we have to train our teams so that they're thinking about using higher level cloud services and so that they can use those services to be able to take a reliable approach at getting new deployments out faster. And then also being able to meet the needs of our business teams who are trying to meet the needs of our, our authors in our marketplace.
Murtaza: Yeah, that's, that's pretty spot on in terms of what we hear from customers and the discussions that we have in terms of taking the architecture to a state that can be easily scaled, more performant, is more cost effective. And that means leveraging purposeful cloud services going on a journey. It's also important to understand that it's not a one time thing, it's a continuous process and you can keep on optimizing and modernizing and you know, transforming your application and along with it, your business so that you can ship more features, you can, you know, some of the things that you shared about revenue and other things, those come together along with how your application behaves.
And some of the things that we are hearing from customers is very similar in terms of the interest for modernization. We, we are hearing there is huge growing interest in terms of where modernization stands in the order of priority. You can see, 84% of customers, they are saying that they, this is one of the highest priority thing that they are considering in the next two years. And the other shift that we are seeing is that while this has been a consideration for application owners, software architects, et cetera for a long time, folks like you CXO and the leaders, we are increasingly seeing them being more interested in the modernization of the technology stack because it aligns with the business objectives.
And I'd like to share an IDC research that says that how modernization can help customers can modernize either while they're migrating to the cloud, they can modernize along with migration or they can do it later, they can migrate as is without any change to the form factor of their application. And from there deepen the use of purpose cloud services and open source software. So there is a lot of flexibility and we are going to talk about the different ways in which we can achieve those things.
But tell me Gerald, you, your team has explored modernization. What's stopping you from undertaking this journey? What are the challenges that your team is facing?
Gerald: It's a good question. I mean, as we, as we think about modernization, we, we're faced with some decisions that we have to make and then we're also faced with some challenges that we're expecting. One of the challenges that we're expecting is around cost funding. What's, what's gonna be the TCO how do we make this known to our, our CFO of the business in order to continuously get support for this? Also challenges around licensing. We have various licenses. We have relationships with various folks and we need to account for those licenses. What can we use and how do we deal with that going forward?
And some decisions that we have to make are what's, what's our journey like? How are we gonna take this journey forward? What are the things that we're gonna, we think we need to do and we don't want to make mistakes. That's why we're looking to you to use your past experiences to take us forward.
And while we understand this from the executive team, in terms of why it is that we should be thinking about modernization, but helping us get that story across to our engineering team. So collectively we're moving forward, you know, with across the culture.
Murtaza: Certainly, we will work together on this as we work with your teams in this journey. But to get started and maybe as a starting point, what are the key challenges that are hindering the teams from getting started? I think, help us modernize, help us get that story out, help us establish our journey, our journey. And then also what's next? What do we do next? Where do we begin?
Gerald: I see. So let me invite Harsh to talk about why modernize so Gerald, you shared some interesting insight about your business. Seems like you are trying to capitalize on some of the changes happening in technology world. You want to optimize cost. Seems like you have 95% Microsoft workload, .NET applications and SQL Server, right? You also mentioned you want to achieve some efficiency in your software development areas, right?
So modernization really can help you provide you benefits in four areas. First, let's look at the cost saving, you can utilize optimal infrastructure, you can use cloud solution efficiently and only pay for what you use. You can reduce overhead instead of utilizing on premises resources, you can reduce that and hence minimize your physical infrastructure need as well as maintenance and the power usage it can provide you business agility.
Seems like you wanting to utilize some of the AI/ML technologies. It can accelerate time to market for you. You can utilize cloud solutions, deploy them swiftly and that gives you a competitive advantage in the marketplace. You can adapt fast depending on changes happening in the marketplace. You can scale your solution up or down and utilize those solutions and meet your business needs.
You can have greater operational resilience. Traditionally, customers tend to utilize high availability and disaster recovery environment and spend a lot of money on it. You can use multi-regional deployment and mitigate risk of certain region going down, right? For disaster recovery, you can utilize automated backup and recovery mechanisms to avoid data loss, safeguard against data loss and account for unforeseen events.
And finally, it can actually improve your staff productivity. Your technical team can focus on what is most important to your business and focus on that aspect. Instead of maintaining infrastructure, you can build very collaborative environment and remove silos from team and build cloud solutions together.
Now that you've heard about some of these benefits from modernization, does that align with some of your objectives?
Gerald: Definitely it does because obviously, as you know, with an organization revenue is important. And for 2024 we're gonna be thinking about how we take our revenue opportunities and take advantage of our revenue opportunities, especially as I talked about the AI opportunity that we have also around ops, right? Helping us with our operations, you just called it out. All of those things definitely agree with.
And then lastly, in terms of the reducing or, you know, costs, licensing is that thing. We need help and we're open to obviously hearing about open source, but we know about open source, but we want to hear some specifics. We're always hearing the term and we dabble but specifics, we want to hear about what you, what you all have and what you can provide from your experience to help us offset some our licensing costs by adopting some specific services that you can actually recommend.
Harsh: Sure, sure. Let, let me talk about the journey that your teams can take the typical modernization journey. And this we have built this with our experience working with customers for for many years. We have been providing Windows/.NET/SQL Server on AWS and over time. .NET has evolved to be more cross functional and has enabled modernization as well.
So what typically is the first step is the assessment knowing and that resonates with some of the challenges that you call out. What do I have in my environment? How, what what are my prioritized applications? What are my crown jewels and what pathways do I take for for my applications? So it starts with the assessment of your environment, an assessment of your organizational readiness in terms of any training needs any skilling gaps that your team has, that's gonna be key with the training, definitely need some help there.
And, and we have tools to help you with the whether it is a discovery capability that runs across your environment to tell you what kind of applications you have across your portfolio. And also recommend pathways that, that your team can take in terms of taking them further in the journey of transformation.
Gerald: Ok. And once those things are there, the mobilized phase, the second phase is about getting the organization ready, the technical needs in terms of pathways, the organization needs in terms of readiness training and putting together the plan. So that the last phase which is modernization can be carried out swiftly. And that's where the execution happens. Whether you are bringing applications from on premises to the cloud migrating and modernizing along the way or you are taking an application which is already running on a cloud on, on, let's say a virtual machine and taking them further deeper into a purpose built service.
So with that, let me talk about some of the pathways that your applications can take. You mentioned, you have 95% .NET based workloads, Windows, workloads with state full data on SQL Server. And that's what we typically see for Microsoft workloads. If you're migrating, if you are running applications on premises, you can re hosts them if you do not want to make changes as you migrate. Or if you're an urgency to migrate, if you want to modernize and, and all these pathways apply both, whether you are on premises, you are migrating or you are already running on the cloud and you want to go, go deeper into higher value architecture.
So first one is re hosts, then you can relat container, containerization and containers. They have become the de facto standards in terms of portability in terms of efficiency of servers, in terms of even servicing, leveraging devo c i cd pipeline, even security to, to a large extent. And then for databases you can move to manage services. Some of the things that Harsh talked about in terms of in terms of monitoring, in terms of disaster recovery. So the, so the managed services have functionality where you can configure those over API and your teams do not have to spend the time and effort to for the operational work on that.
Gerald: One thing I want to just quickly check back on you said around containers, we have, we have really skilled. It's a small subset of our team, really skilled in understanding containers and we want to be able to get the rest of our, our engineering staff to be able to be comfortable with it. If I'm jumping ahead, please let me know but would like to really see if you have something that can kind of help us upscale to get folks to be able to get those containers deployed. While our you know, really strong engineers can build that design strategy for what our future containers design will be. So anything there you guys would be able to cover to see for sure.
Harsh: So the repla pathway is to enable use cases like that. Ok. So repla what you can do in that pathway is that with minimal to no source code changes, you can take your application package them by inspecting the binaries, inspecting the dependencies, creating a new package and deploy it on ecs eks or far. Ok? And that can help your team see how containerization can help you scale your workloads, be more perform and be more cost efficient. While you make source code changes later to to to be more cross platform.
Gerald: Got you. Ok? One thing to note though in plm since there's no source code change happening, it still remains reliant on the windows infrastructure. And the later step refactor is where you can put the code from .NET Framework, to .NET Core and you can make it compatible to run on linux operating system. You can even containerize them. Same goes for databases, you can go to manage databases and then go into purpose build databases. You can even improve your architecture, in terms of event driven solution, even driven architecture, leveraging all the services that AWS has to offer.
Harsh: So with that, why did you talk about the different types of tooling options?
Murtaza: Yeah. So AWS likes to meet customer where they are, you have multiple options, you could start on your own and you can work with partners, partners develop their own tools and AWS provide some tooling as well. These tools can help you accelerate your modernization journey.
So with that, let me quickly provide you overview of some of the tools, AWS not only provides tools in each stages of the modernization journey, but also for each type of modernization recommendation, you can utilize tool to implement that modernization strategy.
Now we like to think a w uh modernization as a journey for each customer. That journey could be different, right? Some of the modernization pathways could be simpler compared to other one, right?
For windows application modernization, here are some of the tools that we offer. Often customer ask us, hey, in new modernized state, how much it's gonna cost me? What is my infrastructure cost?
AWS Modernization Calculator offers you ability to quickly estimate modernized architecture, infrastructure cost, you know, um you can work with solution architects, um your own architects work with aws organization um to figure out that modernized architecture suitable for you.
Now, how many applications do you have in your portfolio? We have about 100 and 10 or so. Um applications most uh small medium large organizations have 100 plus applications um modernizing all those applications. Where do you start? Right.
Migration Hub Strategy Recommendation is the assessment tool that automatically assess your application portfolio and recommend modernization strategies. Uh if you don't know where to start start here, this is the tool that will enable you to find common patterns in your modernization journey.
Is that a onesie choosey thing? Like like the number i said, you know, it's an enterprise grade enterprise scale absolutely strategy recommendation tool is created for enterprise grade application, portfolio assessment. Ok. Right.
Um now, as you assess tool provides you different modernization strategy and it also suggests what tool to use to implement certain strategy. For example, you mentioned about containerization um app to container is a tool, command line tool that takes your a sp.net or java application uh makes a container out of it. It even produces uh deployment artifact to deploy it in services like eks ecs or app runner, right?
Um now we talked about relat modernization strategy where a to c can help, right? In the ref factor area, porting assistant for.net is an open source tool. You can use that to assess your.net application for the compatibility of.net core framework where you can then take that application and run on linux platform by doing so you are saving cost on operating system right now as your developer understand the compatibility aspect, what newgate packages are incompatible, what api s are incompatible? It gives you a starting point, tool does heavy lifting for you and you will still have to do some manual work. But your developer can right away start in the tool called toolkit for.net refactoring where you can test some of that modification, deploy it in aws service and test your code. It's a visual studio extension.
That's nice. So it's easy for our folks to adapt because we're already used to visual studio on our side. So, absolutely, absolutely.
Now, you also mentioned some of the things that you want to achieve as you are um as you are taking some of these new initiatives, microservice extractor is a tool helps you break down your monolith code into microservices, right? And i'm going to show some of that in our demo. Ok.
Now we've been talking to your team just like windows modernization tool, aws also offer sql server database modernization tool. Let's quickly run down to some of these tools d ms is a migration tool that helps you bring your database to aws while this migration is happening, the source database is running without any interruption. So there is no uh it is reducing the downtime for applications that are depending on that database and it supports almost all commercial and open source database and uh migrate data from, from um on premises to uh aws environment.
Now, babish compass is a tool it's an open source tool. It's assessment tool that assess your tt sql sql and ddl script for compatibility with babish aurora, right.
Um aws schema conversion tool helps you in uh predictably migrating your database to target database. So such as sql server can migrate to aorta po sql. It not only converts the schema but also all the database objects, stored procedure views function uh to the target database um uh version.
Now, next relat forming assistant, you said a lot of sql server windows operating system. This is a scripting tool helps you take sql server running on windows environment to linux environment. And finally babish aurora for post rescue enables you to run micro microsoft sql server application with aurora. Post gray q. There is a translation layer that handles microsoft t sql queries and allows you to continue to work with open source as well as your existing application, removing dependency on drastic changes in your application.
Now, 75 to 80% of aws product road map is driven by customers like you, right. Um we've been innovating in this area. Um recently, we've done some features in some of these tools, aws migration hub strategy recommendation. Um up until now we required customers to provide source code access and database access for database analysis. Now we introduce a feature called binary analysis, you.net dll s. We can look at it, do the binary analysis and provide you um the compatibility aspect to for.net core portability.
Um in order to assess some of your servers, we required um a ds service dependency. Um you can also import some of server information through uh cs v file. Now, we just added a new collector strategy recommendation itself can act as a collector. It utilizes we center api s to discover all your servers and then assess the processes running on that server.
We recently had a feature in a app to container as customer migrating from on premises to aws, they have option to consider some of those applications, right?
Porting assistant for.net, we've heard a lot of customer having a sp um web forms applications as well as w cf applications. Boating assistant. Now helps you assess compatibility with blazer as well as co w cf aspect, right?
And finally, this is a big one, aws microservice extractor now can handle up to 50 k classes for your monolith through microservice extraction effort. So pretty enterprise grade. So tools like boating assistant can help you start at a smaller application for a scale kind of discussion. Microservice extractor to break down the monolith from all complex applications is the tool to go.
So what's important to note here is that we talked about the different phases earlier, assess mobilize and modernize and these tools help along the journey. So binary analysis, it is a very important feature to understand the incompatibilities of your existing application, whether they're running on premises or whether they're running on virtual machines, on aws incompatibilities.
You asked about open source earlier, whether they are compatible to run on linux or not, whether they are compatible to run on containers or not, you, you no longer have to provide source code access. You can uh you can simply assess your environment and it will assess the binaries and provide you an incompatibility report if you're already in the cloud and if you are on premises, it will also provide you anti patterns in terms of cloud readiness for your applications.
And uh you asked about how do i help my team get more familiar with the containerization process? Now, not only can you really rela your applications as you are modernizing them that are already running on cloud but also on your way into a w bs at the time of migration, you can, you can do that.
And the other two tools we are scaling out, we are adding more supportability and with microservice extractor, it's uh it's, it's now supports bigger scale. So with that, you see how they are coming together in terms of the journey, the tools and uh uh coming to the aspect of readiness and skilling gaps that your team might have.
So we will work with you, we work closely with our partner teams and with, with your teams, we will work as well uh so that we can bridge any gaps that may, that may be there in terms of the mobilized phase. Ok.
Ok. Uh i think the, the tools, you know, again, as cto i don't have that level of depth like the engineers, but i've heard them talk about the awareness of, of some of these tools. I think uh the one thing we wanna understand is how much of this is self service, how much can we do? How much can we be enabled? And then also to what are the uh any kind of cost or charges that we have to incur as we plan out? You know, our um you know, funding.
Excellent question. Um all aws uh modernization tools are self service and with no additional cost to you, you only pay for some of the resources that you use in your aws account. Ok. So, ok. And i think what also would be pretty cool too is just to kind of see some of this in action, like actually put it there any chance.
Uh oh, absolutely. Very nice. We're gonna show you some of these tools and a brief demo. Let's just get started. All right.
So um we talked about um aws modernization calculator uh for microsoft workload. This calculator helps you estimate your um modernized infrastructure cost. So you will see some of the things that this calculator can do in few easy steps.
Now, this um aws pricing calculator is very well known brand. Uh customers knows about it right on the service page, there is a calculator link. Um i've been working with your team. Uh neo books um is a multi tier website. Um so let's just look at, you know, some of the simple steps that you can take.
So it takes the architecture pattern. It's a multi tier app we selected that. Let's go to. Now, here you can answer some basic questions about um usage characteristics. How's the application used? You can provide information like number of users, monthly users, how much data is there and what is the projected growth? Right? We take that into account to then recommend you the modernized architecture size.
This is the estimated size and based on that it suggests you some of the modernized architecture. So in this case, um several using aws lambda or you have container expertise. So there is eks option and of course um amazon elastic container service option.
Now you will notice there is learn more skill like that enables your team to understand some of the details of this architecture. It's a one pager information provides you information about the architecture may look like what are the different services involved? What are some of the implementation steps that you need to worry about making your team a little bit more educated in the process.
Now let's go to the next step, right? On the next step, you can see the monthly cost for that architecture. Remember this is estimate. So based on some of the conversation i had with the team, we model that you can work with our aws solution architect and fine tune some of these things, right?
You can see there is aurora post rescue compatible db, right? Some of the additional services cognito fargate and you if you know what you're doing along with aws expert, you can actually change some of these parameters that can influence the cost of that infrastructure, right? And once you are satisfied, you can save this estimate.
And the my estimate page is where you can see the breakdown of all these services, right? And you can continue to build this estimate for a number of other applications by adding new workload in it. Got you often customer asked us about support cost consideration. It allows you to add support cost and you can see that support breakdown.
So you can easily estimate, you can start building that and you can estimate the cost of that infrastructure, right? And you can export this for offline viewing in excel file and you can even share with your team, a link with aws expert as well, making it much more transparent conversation.
What i like about this is this addresses that whole tc discussion, like helping us figure out what you know, to prepare and budget and plan. And also when you're working with the team, i saw some pricing up there. It looks to be about maybe 30% cheaper than what we are now. But like you said, it's an estimate, so we have to dive in a little deeper but definitely going to be key and taking and i like the exporting feature because then we can have the conversation with our other decision makers and stakeholders.
Fantastic. Let's go to the next tool which is which we are very excited. And that is migration hub strategy recommendation. It's the assessment tool that automatically assess your application portfolio. Um this tool let's quickly run through a demo of this tool in aws console migration hub strategy recommendation.
Um service is located as you can see there and you can get started with four simple steps. Decide your data source a ds services or import cs v file. Um define your business preferences. What are some of the business goals? You have maybe licensing cost reduction, optimization of um um infrastructure things of that nature. Uh optionally provide source code um access or database access and then do the recommendation.
Now, in this step, we are asking you to configure data source. So in this case, i have already configured a service as my source of bringing server for the assessment. As i go on further, you can see i i got a new books servers now for the demonstration, i just have very few servers but you can bring um hundreds of servers for assessment purposes.
Next, you can provide your business goals, speed of migration, modernization, infrastructure, licensing reduction. These are business goals, you can prioritize ok. And you may have preferences on application tier. You may have, you may want to pick certain aws services for your application tier. For example, uh fargate for container deployment or uh similarly for database, you may prefer to go to manage services. You may prefer to choose open source database such as aurora post res qr. Ok.
Now you can review all this and then ask for recommendation. Let's view the recommendation. Here's the dashboard, you can quickly see summary application components and servers that that it assessed. I can see 33 components. As we saw there were three servers it assessed and i can already see there are recommendations such as three v host, four repla and seven re factor.
So at this point, um strategy recommendation already assess all these servers look through all the processes and figured out what are some of the modernization recommendation uh suitable for you based on your business preferences, based on your application and database preferences, right?
Let's look at quickly the application view
You can see there are 25 applications discovered, you know, 4 websites and SQL Server as well. This view provides you strategies as well as anti-patterns. Anti-patterns are things that may come in your modernization efforts. These are some of the blockers that you may have to address right now.
Let's look at some of the websites, the web apps we found. Let's filter on IIS. I see any your books already there. Let's look at the recommendations. Let's click on View Details. You see it already identified the recommendations. In the strategy options, there are additional recommendations like lift and shift to containers using App2Container, and even refactoring using Porting Assistant.
This is good - it will give us clarity on where to begin with lifting and shifting versus refactoring. Absolutely, this guidance helps versus trying to figure it out ourselves.
Similarly, for databases, it will provide recommendations like refactoring using schema conversion tools. Again, if you don't know where to start, this is a great tool to start your assessment.
Now let's dive into App2Container. Before I go further, I talked about anti-patterns. The strategy recommendations also provide anti-pattern details - things you need to address.
App2Container is a command line tool that helps build containers. We are targeting a server where the app is running. There are four simple steps:
-
Inventory the application by running the "inventory" command. It creates an inventory.json file with details.
-
Run "analyze" - this figures out dependencies and creates an analysis.json file.
-
Run "extract" to produce a container package - a zip file with folders, files and dependencies.
-
Run "containerize" to create a Dockerfile and deployment.json for ECS or EKS.
You can then use the files to deploy the container to AWS. The tool creates a container, puts the Dockerfile into ECR, generates an ECS task definition, and a CloudFormation template to deploy the infrastructure.
This is like a checklist for building containers. Discover, analyze, extract and containerize to deploy.
Let's briefly talk about Porting Assistant - it helps assess .NET apps for .NET Core compatibility. I onboarded the ebook solution - it will assess and figure out incompatibilities.
It provides a dashboard with details, suggests compatible packages and APIs, and does some automatic updates. It shows where manual changes are needed in source files. This helps plan your porting efforts. You can then use the .NET Porting Toolkit to test and deploy the ported code.
Microservice Extractor helps break down monoliths into microservices. Again, it assesses .NET Core compatibility and provides a visual graph.
The visualization shows nodes, namespaces and dependencies to identify business logic for microservices. I specified the ReferenceDataService as a new microservice group. It shows the dependencies that will come with it.
When I extract, it creates the new .NET 8 microservice project with an HTTP endpoint. It provides the modified application code to call the new endpoint.
So in summary, these tools help assess, extract, port and refactor to modernize. There are also database tools we can overview later. Please use the resources and reach out to us with any questions!