Book Image

Migrating Applications to the Cloud with Azure

By : Sjoukje Zaal, Amit Malik, Sander Rossel, Jason Marston, Mohamed Waly, Stefano Demiliani
Book Image

Migrating Applications to the Cloud with Azure

By: Sjoukje Zaal, Amit Malik, Sander Rossel, Jason Marston, Mohamed Waly, Stefano Demiliani

Overview of this book

Whether you are trying to re-architect a legacy app or build a cloud-ready app from scratch, using the Azure ecosystem with .NET and Java technologies helps you to strategize and plan your app modernization process effectively. With this book, you’ll learn how to modernize your applications by using Azure for containerization, DevOps, microservices, and serverless solutions to reduce development time and costs, while also making your applications robust, secure, and scalable. You will delve into improving application efficiency by using container services such as Azure Container Service, Azure Kubernetes Service (AKS), and more. Next, you will learn to modernize your application by implementing DevOps throughout your application development life cycle. You will then focus on increasing the scalability and performance of your overall application with microservices, before learning how to add extra functionality to your application with Azure serverless solutions. Finally, you’ll get up to speed with monitoring and troubleshooting techniques. By the end of this book, you will have learned how to use the Azure ecosystem to refactor, re-architect, and rebuild your web, mobile, and desktop applications.
Table of Contents (22 chapters)
Free Chapter
1
Planning Application Modernization
4
Implementing Containerization and DevOps in a Development Cycle
8
Building a Web and Microservices Architecture on Azure
12
Going Serverless and Deploying to the Cloud
17
Planning for Security, Availability, and Monitoring

Upgrading applications on AKS

One of the key reasons for container adaption is the ability to release and deploy applications faster and release them every week, if not every day. 

In Kubernetes, there are multiple ways to release an update to existing applications. Let's look at them now:

  • Recreate: In this strategy, you delete your existing deployment and perform a new deployment with the new version. As we can see, downtime will be involved in this approach. One use case where you'd want to go with this approach would be a scenario where your application doesn't support running multiple versions of the application at the same time.
  • Rolling upgrade: This is the default upgrade approach in Kubernetes. Here, you'll roll out an update by introducing pods with newer versions one at a time and take down the old ones. This approach ensures outage-free upgrades...