Book Review: A Developer's Guide to Cloud Apps Using Microsoft Azure

A while back, I received another book from my friends at PackT. It was A Developer’s Guide to Cloud Apps Using Microsoft Azure by Hamida Rebai Trabelsi. I have been meaning to get a chance to read it, and I finally did.
I don’t know Hamida. I think I need to add her to my LinkedIn contacts though, as she clearly has similar interests in many areas. Hamida is a fellow MVP from Tunisia and currently working in Canada. Her MVP award was for developer technologies.
Background
When I first saw the title, I didn’t realize how much of a focus on containers the book had, but the sub-title on the book cover made that apparent: Migrate and modernize your cloud-native applications with containers on Azure using real-world case studies.
Most examples are in C# and based on .NET, so a background in those is helpful for covering the material, along with a setup that involves VS2022 or VSCode, Docker Desktop, and .NET. I was pleased to see that code examples were available from a GitHub repository.
The book is structured in four sections:
First Book Section
The book starts by discussing cloud-native applications and focusses on migrating to using those. Hamida explains the core concepts of DevOps, Containers, and Microservices along with how they fit together with cloud-native apps. Early on in the book, she makes the case for the development of applications by using microservices. I know that’s becoming a more contentious area lately, but the arguments are well-presented here. There is also a reasonable discussion on serverless architectures. (Overall, I am a fan of these).
Cloud Adoption Framework
The next part of the content discusses the Microsoft Cloud Adoption Framework in some detail. Much of this I agree with, but not all. I’ve written posts on the Microsoft site covering some areas where I differ from the framework.
I find that the Microsoft framework is a little too keen to get apps and services into the cloud, with a view to transforming them later. That can lead to a problem where companies have a poor experience during migration, and yet don’t get the benefit that would have come with transformation, because before that happens, they have run out of interest or funds.
Regardless, the discussion in the book around the framework is sound.
After discussing the overall concepts, practical advice is given for migrating ASP.NET applications and databases. This is the area where a discussion on containers starts, primarily to ease app migration. Hamida then presents some case studies.
Book Timing
It’s hard to know what the timing was for this book, but I was surprised that even though VS2022 was used extensively, SQL Server was only at 2019 and not 2022. That might have just been a timing issue.
Second Book Section
The second section of the book gets into cloud patterns. This is a good choice at this point of the book and I was pleased to see security starting to appear in this section. I can’t tell you how many sites I’ve been to where this is the weakest point in what teams are creating. Containers and orchestration are then introduced further.
Chapter 6 starts practical advice on setting up an environment to build and deploy cloud-based solutions, and covers many tools: VS2022, VSCode, Azure, Azure Cloud Shell, Docker Hub, Docker Desktop, Podman, Podman Desktop, Git, Azure DevOps, and GitHub along with advice on basic configuration of each. Even though the book primarily tackles Windows-based environments, there is a discussion on how to do this in Linux as well.
Chapter 7 introduces the Azure App Service, and how to configure it, along with some detail on deployment slots. Hamida has added some details on available SKUs and pricing. That’s something I’d avoid in a book like this, as it’s constantly changing. An example of this is the changes that have happened to standard SKUs since this book was written.
Third Book Section
The third section of the book discusses PaaS vs CaaS to deploy containers in Azure. It shows how to build and deploy a containerized app. Azure Container Instances and the Azure Container Registry are introduced, along with the typical contents of a Dockerfile.
Following this, an introduction to Kubernetes and orchestration is provided, along with some details on how Kubernetes clusters are organized. And then a chapter is dedicated to the practicalities of setting up an AKS cluster several ways including by using the Azure CLI, and by using the Azure portal. It also shows how to deploy these with Azure DevOps.
Formatting
Overall the formatting and quality is great. I should mention that I found some of the screenshots in this section a bit hard to read though. Here is an example:
I would like to have seen that formatted to make it more readable. This is only a minor issue. Most screenshots and code samples are very clear.
Fourth Book Section
The fourth section of the book discusses how to enable CI (continuous integration) and CD (continuous deployment) on Azure. It provides a further introduction both Azure DevOps and to GitHub, then shows how to create a development pipeline in Azure DevOps.
Given Microsoft’s directions on this, it was good to see YAML based pipelines being used rather than classical pipelines, even though the average user still seems to prefer the latter.
Summary
At the end of the book, there is a chapter called Assessments. I found this odd. It was a question and answer section, but it only covered one question from each of chapters 2 and 6. That felt quite incomplete.
I liked the way that throughout the book, Hamida also presents a good set of references for additional reading.
For many years, I was an author on the Microsoft DevOps Expert exam AZ-400. As I read this book, I kept thinking how much information in this book would be good background for people taking that exam.
The verdict?
Great book that covers a broad topic in the right level of depth for people getting started in these areas, and looking for practical advice.
8 out of 10
2024-12-16