Book Image

A Developer's Guide to Building Resilient Cloud Applications with Azure

By : Hamida Rebai Trabelsi
Book Image

A Developer's Guide to Building Resilient Cloud Applications with Azure

By: Hamida Rebai Trabelsi

Overview of this book

To deliver software at a faster rate and reduced costs, companies with stable legacy systems and growing data volumes are trying to modernize their applications and accelerate innovation, but this is no easy matter. A Developer’s Guide to Building Resilient Cloud Applications with Azure helps you overcome these application modernization challenges to build secure and reliable cloud-based applications on Azure and connect them to databases with the help of easy-to-follow examples. The book begins with a basic definition of serverless and event-driven architecture and Database-as-a-Service, before moving on to an exploration of the different services in Azure, namely Azure API Management using the gateway pattern, event-driven architecture, Event Grid, Azure Event Hubs, Azure message queues, FaaS using Azure Functions, and the database-oriented cloud. Throughout the chapters, you’ll learn about creating, importing, and managing APIs and Service Fabric in Azure, and discover how to ensure continuous integration and deployment in Azure to fully automate the software delivery process, that is, the build and release process. By the end of this book, you’ll be able to build and deploy cloud-oriented applications using APIs, serverless, Service Fabric, Azure Functions, and Event Grid technologies.
Table of Contents (18 chapters)
1
Part 1: Building Cloud-Oriented Apps Using Patterns and Technologies
5
Part 2: Connecting Your Application with Azure Databases
13
Part 3: Ensuring Continuous Integration and Continuous Container Deployment on Azure

Exploring cloud databases

A cloud database is a database service created and accessed through a cloud platform.

A cloud database is a collection of information, structured or unstructured, that is hosted in a private, public, or hybrid cloud computing infrastructure platform. There is no structural or conceptual difference between a cloud or on-premises database, it’s just the location that’s different.

Cloud databases are divided into two broad categories: relational and non-relational.

As in the case of databases with traditional ancestors, we have the same definition for a relational database, which is written in Structured Query Language (SQL). It is composed of tables organized in rows and columns with relationships between them, called fields. This relationship is specified in a data schema.

Non-relational databases, also called NoSQL, use a different storage concept based on documents. They do not use a table model to store content as in the traditional approach; they use a single document instead.

A non-relational database is recommended for unstructured data – for example, for social media content, photos, or video storage. There are two models of cloud database environments: traditional (which we discussed earlier) and database as a service (DBaaS).

For the first case, we can host a virtual machine, install the cloud database management system (DBMS), and the database runs on this machine, so the management and monitoring of the database are managed by the organization. On the other hand, the DBaaS model is a paid subscription service in which the database runs on the physical infrastructure of the cloud service provider.

Azure offers a set of fully managed relational, NoSQL, and in-memory databases:

  • Azure SQL Database: This is used for applications that scale with intelligent, managed SQL databases in the cloud
  • Azure SQL Managed Instance: This is used to modernize your SQL Server applications with a managed, always up-to-date SQL instance in the cloud
  • SQL Server on Azure Virtual Machines: This is used to migrate SQL workloads to Azure while maintaining full SQL Server compatibility and OS-level access
  • Azure Database for PostgreSQL: This is used to build scalable, secure, fully managed enterprise-grade applications using open source PostgreSQL, scale PostgreSQL with single-node and high performance, or move your PostgreSQL and Oracle workloads to the cloud
  • Azure Database for MySQL: This used to provide high availability and elastic scaling for your open source mobile and web apps with the managed community MySQL database service or move your MySQL workloads to the cloud
  • Azure Database for MariaDB: This is used to build applications anywhere with guaranteed low latency and high availability at any scale, or move Cassandra, MongoDB, and other NoSQL workloads to the cloud
  • Azure Cache for Redis: This is used to run fast and scalable applications with open source compatible in-memory data storage
  • Azure Database Migration Service: This is used to accelerate your move to the cloud with a simple, self-paced migration process
  • Azure Managed Instance for Apache Cassandra: This is used to modernize existing Cassandra data clusters and apps and enjoy flexibility and freedom with the Managed Instance service