Search icon CANCEL
Subscription
0
Cart icon
Your Cart (0 item)
Close icon
You have no products in your basket yet
Save more on your purchases now! discount-offer-chevron-icon
Savings automatically calculated. No voucher code required.
Arrow left icon
Explore Products
Best Sellers
New Releases
Books
Videos
Audiobooks
Learning Hub
Conferences
Free Learning
Arrow right icon
Arrow up icon
GO TO TOP
A Developer's Guide to Cloud Apps Using Microsoft Azure

You're reading from   A Developer's Guide to Cloud Apps Using Microsoft Azure Migrate and modernize your cloud-native applications with containers on Azure using real-world case studies

Arrow left icon
Product type Paperback
Published in Feb 2023
Publisher Packt
ISBN-13 9781804614303
Length 274 pages
Edition 1st Edition
Tools
Arrow right icon
Author (1):
Arrow left icon
Hamida Rebai Hamida Rebai
Author Profile Icon Hamida Rebai
Hamida Rebai
Arrow right icon
View More author details
Toc

Table of Contents (20) Chapters Close

Preface 1. Part 1 – Migrating Applications to Azure
2. Chapter 1: An Introduction to the Cloud-Native App Lifecycle FREE CHAPTER 3. Chapter 2: Beginning Your Application Migration 4. Chapter 3: Migrating Your Existing Applications to a Modern Environment 5. Chapter 4: Exploring the Use Cases and Application Architecture 6. Part 2 – Building Cloud-Oriented Applications Using Patterns and Technologies in Azure
7. Chapter 5: Learning Cloud Patterns and Technologies 8. Chapter 6: Setting Up an Environment to Build and Deploy Cloud-Based Applications 9. Chapter 7: Using Azure App Service to Deploy Your First Application 10. Part 3 – PaaS versus CaaS to Deploy Containers in Azure
11. Chapter 8: Building a Containerized App Using Docker and Azure Container Registry 12. Chapter 9: Understanding Container Orchestration 13. Chapter 10: Setting Up a Kubernetes Cluster on AKS 14. Part 4 – Ensuring Continuous Integration and Continuous Deployment on Azure
15. Chapter 11: Introduction to Azure DevOps and GitHub 16. Chapter 12: Creating a Development Pipeline in Azure DevOps 17. Assessments 18. Index 19. Other Books You May Enjoy

The challenges of cloud-native applications

Cloud-native applications take advantage of the cloud operating model, the benefits of which we discussed previously. However, as well as benefits, there are also challenges with cloud-native development that every organization should consider before beginning their move to it.

Although the theory behind the development of cloud-oriented applications seems clear and simple enough, problems remain at the level of implementation, especially if an enterprise has longstanding legacy applications.

Let’s take a look at some of the most common challenges faced by enterprises in their cloud-native journeys.

The challenges of service discovery and CI/CD pipelines for microservices applications

If we have several microservices that communicate with each other, these microservices run in different instances. The number of service instances and their locations change dynamically. The number of service instances and their locations change dynamically. The service discovery mechanism helps us to locate each instance.

CI encourages continuous code merging and testing, leading to the early detection of bugs. Other benefits include less time wasted dealing with merge issues and faster feedback to the development team.

CD is an extension of CI. It is a semi-manual process that allows developers to deploy all changes to their customers with a simple click of a button. It also allows you to auto-deploy code changes to diverse environments (development, staging, testing, QA, production, and so on…) so that companies can quickly troubleshoot and fix bugs and respond to changing business needs.

This challenge of service discovery and CI and CD for a microservices application involves being able to identify where dynamically deployed microservices are deployed, especially in the case of additional instances.

Microservices are composed of a set of separate components and services, each managed by a separate team with an independent lifecycle and an independent CI/CD pipeline.

There are many challenges in the implementation of microservices:

  • Low visibility into the quality of changes introduced in each service’s pipeline in the application
  • Uncertainty about whether each launched pipeline meets security and compliance requirements
  • The independence of each pipeline can pose a pipeline control problem – for example, security vulnerabilities, performance issues, a flawed automated testing system, version control, and technological limitations
  • Infrastructure duplication caused by multiple services and pipelines

Security and observability challenges

Cloud-native applications present additional challenges for security and risk management because they are inherently complex.

Several independent services to secure

Especially if we’re using a combination of containers, Kubernetes, and serverless functions to take advantage of microservices, we’ll have multiple services to protect in multiple environments throughout the application lifecycle.

Regular changes in environments

In the agile methodology, teams unveil a new version every week (or even daily, in order to correct a bug, for example). This presents a challenge in terms of the security of what is deployed, which makes the task of security personnel more difficult in terms of taking control of these deployments without slowing down the speed of release each time.

Zero trust and service identity

Unlike monolithic applications that use a physical machine or a virtual machine as a reference point or the stable node of a network, cloud-native applications and, especially, services are deployed in different places. They can even be replicated in several places, providing us with the ability to stop and then restart them at any time. The security of these services requires a network security model that takes into consideration the context of the application, the identity of the microservices, and their networking requirements. This leads us to build a model of zero trust around these requirements.

Zero trust is a strategic approach that consists of protecting organizations by eliminating implicit trust and continuously validating all phases of digital interactions. Zero-trust security is an IT security model that requires strict identity verification for all persons and devices attempting to access resources on a private network, whether inside or outside the network perimeter.

You have been reading a chapter from
A Developer's Guide to Cloud Apps Using Microsoft Azure
Published in: Feb 2023
Publisher: Packt
ISBN-13: 9781804614303
Register for a free Packt account to unlock a world of extra content!
A free Packt account unlocks extra newsletters, articles, discounted offers, and much more. Start advancing your knowledge today.
Unlock this book and the full library FREE for 7 days
Get unlimited access to 7000+ expert-authored eBooks and videos courses covering every tech area you can think of
Renews at $19.99/month. Cancel anytime