Professional Documents
Culture Documents
Zoran Barać
Daniel Scott-Raynsford
Azure SQL Hyperscale Revealed: High-performance Scalable Solutions for Critical
Data Workloads
Zoran Barać Daniel Scott-Raynsford
Resolution Drive, Auckland, 0930, New Zealand Victory Road, Auckland, 0604, New Zealand
Introduction�������������������������������������������������������������������������������������������������������������xv
Part I: Architecture����������������������������������������������������������������������������������������� 1
Chapter 1: The Journey to Hyperscale Architecture in Azure SQL��������������������������� 3
SQL on Azure��������������������������������������������������������������������������������������������������������������������������������� 5
The Basics of Azure SQL���������������������������������������������������������������������������������������������������������� 5
Azure SQL Platform as a Service�������������������������������������������������������������������������������������������������� 7
Deployment Models����������������������������������������������������������������������������������������������������������������� 9
Purchasing Models and Service Tiers����������������������������������������������������������������������������������� 10
Availability Models and Redundancy������������������������������������������������������������������������������������� 13
Standard Availability Model: Locally Redundant Availability�������������������������������������������������� 15
General Purpose Service Tier: Zone-Redundant Availability�������������������������������������������������� 16
Premium and Business Critical Service Tier: Locally Redundant Availability������������������������ 18
Premium and Business Critical Service Tier: Zone-Redundant Availability��������������������������� 19
Protecting Against Regional Outages Using Failover Groups with
Geo-redundant Availability���������������������������������������������������������������������������������������������������� 21
The Hyperscale Service Tier������������������������������������������������������������������������������������������������������� 22
Hyperscale Architecture Overview���������������������������������������������������������������������������������������� 24
Deploying Your First Hyperscale Database���������������������������������������������������������������������������� 25
Cleaning Up��������������������������������������������������������������������������������������������������������������������������� 34
Summary������������������������������������������������������������������������������������������������������������������������������������ 35
iii
Table of Contents
iv
Table of Contents
Deploying the Starting Environment Using the Azure Cloud Shell��������������������������������������� 133
Creating a SQL Administrators Group���������������������������������������������������������������������������������� 136
Deploying a Highly Available Hyperscale Database into a Virtual Network������������������������������� 139
Basic Configuration of the Database����������������������������������������������������������������������������������� 141
Configuring Network Connectivity��������������������������������������������������������������������������������������� 146
The Final Configuration Tasks and Deployment������������������������������������������������������������������� 150
Deleting the Example Environment������������������������������������������������������������������������������������������� 155
Summary���������������������������������������������������������������������������������������������������������������������������������� 157
Chapter 6: Configuring Transparent Data Encryption to Bring Your Own Key������ 171
Enabling Customer-Managed Key Transparent Data Encryption����������������������������������������������� 172
Creating a User-Assigned Managed Identity����������������������������������������������������������������������� 174
Granting the Key Vault Crypto Officer Role to a User����������������������������������������������������������� 175
Generating a Key in the Azure Key Vault������������������������������������������������������������������������������ 178
Granting Access to the Key by the User-Assigned Managed Identity���������������������������������� 180
Assigning the User-Assigned Managed Identity to the Logical Server�������������������������������� 182
Enabling Customer-Managed TDE��������������������������������������������������������������������������������������� 184
Summary���������������������������������������������������������������������������������������������������������������������������������� 185
v
Table of Contents
Chapter 10: Deploying Azure SQL DB Hyperscale Using Bash and Azure CLI������� 241
Deploying Hyperscale Using the Azure CLI������������������������������������������������������������������������������� 241
The Azure CLI����������������������������������������������������������������������������������������������������������������������� 242
Deploying the Starting Environment������������������������������������������������������������������������������������ 243
The Complete Deployment Bash Script������������������������������������������������������������������������������� 245
Azure CLI Commands in Detail�������������������������������������������������������������������������������������������� 247
Summary���������������������������������������������������������������������������������������������������������������������������������� 264
Chapter 11: Deploying Azure SQL DB Hyperscale Using Azure Bicep������������������� 267
About Azure Bicep��������������������������������������������������������������������������������������������������������������������� 268
Deploying Using Azure Bicep���������������������������������������������������������������������������������������������������� 268
A Complete Azure Bicep Deployment���������������������������������������������������������������������������������� 268
Hyperscale Resources in Azure Bicep��������������������������������������������������������������������������������� 271
Summary���������������������������������������������������������������������������������������������������������������������������������� 284
vi
Table of Contents
vii
Table of Contents
viii
Table of Contents
Index��������������������������������������������������������������������������������������������������������������������� 461
ix
About the Authors
Zoran Barać is a cloud architect and data specialist
with more than 15 years of hands-on experience in
data optimization, administration, and architecture. He
is a Certified Microsoft Trainer (MCT) and Microsoft
Certified Solutions Expert (MCSE) with a master‘s degree
in information technology. Sharing knowledge and
contributing to the SQL Server community are his passions.
He is also an organizer of the Auckland SQL User Meetup
Group, an active blogger, and a speaker at different SQL events such as Data Summits,
SQL Saturdays, SQL Fridays, meetups, etc.
xi
About the Technical Reviewers
Jonathan Cowley is a cloud infrastructure engineer,
DevOps practitioner, and technical documentation writer
with more than 15 years of experience in various roles and
environments, in both small and large corporations and
public organizations. He has been Microsoft Azure and AWS
certified. He enjoys connecting people and information and
solving challenging problems.
xiii
Introduction
Azure SQL is a platform-as-a-service (PaaS) relational database management system
(RDBMS) that is provided as part of the Azure cloud and based on the Microsoft SQL
Server platform. This offering contains service tiers that make it suitable for a wide
range of use cases, from small single-user applications to mission-critical lines of
business workloads. However, there is only one service tier that provides the high level
of scalability and resilience that is required by some of today’s largest cloud-based
workloads: Hyperscale.
In this book, we’ll take you through the capabilities and basics of the Azure SQL
Database Hyperscale service tier. You’ll learn the basics of designing, deploying, and
managing Azure SQL Hyperscale databases. We’ll look in detail at the resilience (high
availability and disaster recovery) and scalability of Azure SQL Hyperscale databases and
how to tune them. We will also look at the different techniques you can use to deploy and
configure Azure SQL Hyperscale.
Monitoring and securing Azure SQL Hyperscale databases will also be covered to
ensure your workloads continue to perform and operate securely. This book will be your
guide to deciding when Hyperscale is a good fit for migrating your existing workloads
and what architectural considerations you should make in your application. Finally,
you’ll learn how to migrate existing workloads to Azure SQL Database Hyperscale.
This book is intended for data architects, software engineers, cloud engineers,
and site reliability engineers and operators to learn everything they need to know to
successfully design, deploy, manage, and operate Azure SQL Database Hyperscale.
You’ll learn what makes Azure SQL Database Hyperscale architecture different
from a more traditional database architecture and why it’s important to understand the
architecture.
To get the most out of this book, you should have a basic knowledge of public cloud
principles and economics as well as a fundamental knowledge of Azure, Microsoft SQL
Server, and RDBMSs. It is not required to have experience using Azure SQL Database.
This book will provide you with everything you need to know to effectively build and
operate the Hyperscale tier of Azure SQL Database without prior experience.
xv
Introduction
Although this book covers concepts that apply to Azure SQL Database in general,
it is intended to provide everything you need to know to run an Azure SQL Database
Hyperscale tier in Azure without requiring any other material. You may find content that
is covered in other more general books on running SQL in Azure, but this book looks at
these concepts through the Hyperscale lens. Hyperscale has special use cases that make
it unique, which also require specific knowledge to get the most out of it.
Thank you for venturing into the world of Hyperscale database technology.
A note about the recently announced automatic compute scaling with serverless for
Hyperscale in Azure SQL Database: At the time of writing this book, the possibility of
an automatically scaling Hyperscale with a serverless compute tier was merely an item
on the roadmap. We did not, therefore, cover it in detail, even though we were aware it
was planned. However, serverless Hyperscale has just arrived in public preview. This
development does not change the guidance provided in this book, but serverless should
be considered for Hyperscale workloads that need high levels of elasticity. It is yet another
tool in the amazing array of data storage services available in Microsoft Azure and should
be on your list of considerations when determining if Hyperscale is right for you.
Serverless Hyperscale automatically adjusts the compute resources of a database
based on its workload and usage patterns. It also allows different replicas of the
database to scale independently for optimal performance and cost efficiency. Serverless
Hyperscale is different from provisioned compute Hyperscale, which requires a fixed
number of resources and manual rescaling.
For more information on the serverless Hyperscale announcement, see this page
https://techcommunity.microsoft.com/t5/azure-sql-blog/automatic-compute-
scaling-with-serverless-for-hyperscale-in/ba-p/3624440.
xvi
CHAPTER 1
The Journey to
Hyperscale Architecture
in Azure SQL
Every day, many billions or even trillions of transactions are processed by the ever-
growing number of Azure SQL databases deployed globally in the Microsoft Azure public
and government clouds. The number of transactions and the size of these databases
are continuously increasing. The accelerating adoption of public cloud technology has
enabled new use cases for Azure SQL databases as well as the migration of larger line-of-
business applications from on-premises SQL servers.
As the public cloud continues to mature, businesses are moving more of their
mission-critical workloads to Azure. This results in the need to support larger and larger
databases.
Accompanying this move to the cloud, the demand for IT departments and
engineering teams to provide more application features with greater resilience and
security has also increased. This pressure has caused organizations to look at how
they can cut down on the operational costs of maintaining their infrastructure. The
requirement to reduce operational expenditure has led toward running more databases
as platform-as-a-service (PaaS) solutions—where the cloud provider takes care of the
day-to-day operations of the infrastructure—freeing the organization to focus on higher-
value tasks.
As well as the migration of enterprise-scale databases, an increase in the adoption
of software-as-a-service (SaaS) solutions by consumers and organizations has led to
SaaS providers needing larger databases, higher transaction throughput, and increasing
resilience—while also being able to scale quickly.
3
© Zoran Barać and Daniel Scott-Raynsford 2023
Z. Barać and D. Scott-Raynsford, Azure SQL Hyperscale Revealed,
https://doi.org/10.1007/978-1-4842-9225-9_1
Chapter 1 The Journey to Hyperscale Architecture in Azure SQL
This explosive shift by organizations to adopting SaaS has also facilitated a need by
SaaS providers to manage costs as they scale. This has often resulted in a change from a
single database per tenant to a multitenant approach. A multitenant approach can help
to reduce costs, but it also increases the need for larger capacities and throughput, while
being able to assure isolation and avoid challenges such as noisy neighbors. For an in-
depth explanation on that, see https://learn.microsoft.com/azure/architecture/
antipatterns/noisy-neighbor/noisy-neighbor.
The growth trend toward SaaS is expected to continue as organizations and SaaS
providers accommodate the expectations of their customers to gain greater value
from their data with analytics and machine learning. This growth in demand for better
analytics and machine learning abilities also facilitates the need to collect more data,
such as usage telemetry and customer behavior data.
New types of application workloads and patterns, such as event streaming
architectures and the Internet of Things (IoT), have also increased the demands on
relational database management systems. Although alternative architectures exist to
reduce the impact of these application workloads on the relational database, they don’t
completely mitigate the need for larger relational databases as a part of applications.
Customers are expecting solutions that can integrate with and accept data from other
services and data sources. This is leading organizations and SaaS providers to build a
greater level of integration into their software and also to be seen as platforms with an
ecosystem of third-party applications and extensions springing up around them. This is
further pushing the scale and elasticity required by the relational database management
system (RDBMS) underlying these platforms.
Applications are also consuming data from more and more systems and providing
their own combined insights and enhancements. For example, applications that
integrate with Microsoft Teams might retrieve calling and messaging data and combine
it with other data sources to provide additional functionality. As the volume of data
increases within these systems, so does the need for more capacity in the application
database that collects it.
Azure provides the Azure SQL Database service, a PaaS product, that includes
several different tiers offering options for capacity and resilience while also enabling a
high degree of scale.
The changing data landscape, driven by the cloud, SaaS, and newer workloads, has
resulted in the need for a design change to the Azure SQL Database architecture to be
pushed to the limit, requiring a completely new internal architectural approach: the
Hyperscale architecture.
4
Chapter 1 The Journey to Hyperscale Architecture in Azure SQL
Hyperscale is the newest service tier of the Azure SQL Database and provides
highly scalable compute and storage that enables it to significantly exceed the limits of
the other tiers of service. This is achieved by substantial alterations to the underlying
architecture. These changes are discussed in more detail in Chapter 2.
Tip Throughout this book we’ll often refer to the Azure SQL Database Hyperscale
service tier as just Hyperscale to make it easier on you, the reader.
SQL on Azure
It’s been a long and progressive journey of more than 12 years from the beginnings of
Azure SQL called CloudDB all the way up to the new Azure SQL Database Hyperscale
service tier and Hyperscale architecture.
Before we can get into the details of Hyperscale, we will start by looking at the
different ways that SQL workloads can be hosted in Azure. This will give us a view of
where Hyperscale fits within the portfolio and when it is a good choice for a workload.
5
Chapter 1 The Journey to Hyperscale Architecture in Azure SQL
Both Azure SQL deployment types (IaaS and PaaS) offer you redundant, secure, and
consistent cloud database services. However, with IaaS you are responsible for more of
the system, requiring a greater amount of effort from you in maintaining and ensuring
the system is resilient and secure.
Tip Azure SQL MI is a PaaS database service with a higher level of isolation and
compatibility with SQL Server on Azure VMs or on-premises SQL Servers.
Running SQL Server on Azure VMs provides you with the ability to configure every
aspect of the underlying infrastructure, such as compute, memory, and storage as well
as the operating system and SQL Server configuration. This high level of configurability
comes with an increased operational cost and complexity. For example, operating
system and SQL Server upgrades and patching are the user’s responsibility.
By comparison, Azure SQL DB (and Azure SQL MI) is a managed database service
where users do not need to worry about SQL Server maintenance tasks—such as
upgrades, patching, or backups—or service availability. The Azure platform abstracts
and manages these important aspects of your environment automatically, significantly
reducing operational costs and complexity. This often results in a much lower total cost
of ownership (TCO).
Generally, PaaS provides significant benefits that make it extremely attractive;
however, in some cases, IaaS is still required. Some applications might need access to the
underlying SQL instance or features of SQL Server that are not available on Azure SQL DB.
Tip For some workloads that need features that Azure SQL DB does not provide,
Azure SQL MI might still be an option. This could still allow the workload to be
moved to Azure, while leveraging the significant benefits of PaaS. For a comparison
between Azure SQL DB and Azure SQL MI features, see https://learn.
microsoft.com/azure/azure-sql/database/features-comparison.
Workloads that are being migrated from on-premises or a private cloud often require
IaaS when they are first migrated into Azure but will be able to be re-platformed onto
Azure SQL DB after some modernization. The benefits of this usually far outweigh the
engineering costs of modernization. Another reason that IaaS might be needed is to gain
a higher level of infrastructure isolation for regulatory compliance reasons.
6
Chapter 1 The Journey to Hyperscale Architecture in Azure SQL
Figure 1-1 compares the administration needs and costs of on-premises, private
cloud machines, IaaS, and PaaS. We can see that PaaS has lower administration needs
and costs than IaaS.
We will be focusing primarily on Azure SQL DB, as this is the only deployment model
that supports the newest service tier: Hyperscale.
7
Chapter 1 The Journey to Hyperscale Architecture in Azure SQL
There are four key decisions you need to make when deploying a SQL workload
on Azure.
1. Choose a deployment model.
2. Specify a purchasing model.
3. Specify a service tier.
4. Choose an availability model; this will depend on which service
tiers you deployed.
Figure 1-2 shows a map of the deployment models, purchasing models, service tiers,
and availability models available when selecting Azure SQL PaaS. As this book is all
about Hyperscale, the most important area is the Hyperscale service tier.
Figure 1-2. Azure SQL DB deployment models, purchasing models, service tiers,
and availability models
8
Chapter 1 The Journey to Hyperscale Architecture in Azure SQL
Deployment Models
The PaaS deployment models are divided into two types.
When you deploy an instance of Azure SQL DB, you have two deployment options:
a single database or elastic pools. When using elastic pools, you can allow multiple
databases to share a specified number of resources at a set price.
Tip Elastic pools are an excellent model for building SaaS applications, where
each tenant has their own database; however, elastic pools don’t currently support
Hyperscale.
Azure SQL MI offers both single-instance and instance pool deployment options.
Single instance supports only a single SQL Server instance, while instance pools allow
multiple SQL Server instances.
Table 1-1 shows the deployment options available with Azure SQL PaaS, as well as
the features and recommended use cases.
9
Chapter 1 The Journey to Hyperscale Architecture in Azure SQL
• Supports most on-premises instance/ • The most used SQL Server features are
database-level capabilities. supported.
• High compatibility with SQL Server • 99.99 percent to 99.995 percent availability
on-premises. guaranteed.
• At least 99.99 percent availability • Built-in backups, patching, recovery.
guaranteed. • Latest stable database engine version.
• Built-in backups, patching, recovery.
• Latest stable database engine version.
• Easy migration from SQL Server.
Tip You can use the Azure Portal to check the usage and properties for an
existing MI pool, but not to deploy a pool. Instead, use a PowerShell session or the
Azure CLI.
10
Chapter 1 The Journey to Hyperscale Architecture in Azure SQL
Figure 1-3 shows the compute tier and hardware configuration for the General
Purpose service tier for the Azure SQL Database deployment option.
Figure 1-3. Service and compute tier: Azure SQL DB General Purpose service tier
There are two different purchasing models—vCore and DTU—each with multiple
service tiers. The DTU purchasing model is based on data transaction units (DTUs).
DTUs are a blended measurement of a machine’s specifications—CPU, memory, reads,
and writes. Figure 1-4 shows available purchasing models and service tiers for single
Azure SQL Database deployment.
11
Chapter 1 The Journey to Hyperscale Architecture in Azure SQL
Figure 1-4. Single Azure SQL DB purchasing models and service tiers available
Tip For more information on DTU modeling, review this page: https://learn.
microsoft.com/azure/azure-sql/database/service-tiers-dtu.
There are multiple service tier options within the DTU purchasing model:
12
Chapter 1 The Journey to Hyperscale Architecture in Azure SQL
There are multiple service tier options within the vCore purchasing model.
• General Purpose
• Business Critical
• Hyperscale
You can choose the vCore purchasing model only for managed instances with the
General Purpose or Business Critical service tier.
13
Chapter 1 The Journey to Hyperscale Architecture in Azure SQL
Depending on which service tiers you deployed, it may leverage the Standard
availability architecture for the Basic, Standard, and General Purpose service tiers or the
Premium availability architecture for the Premium and Business Critical service tiers.
There are three types of redundancy when running SQL workloads in Azure.
14
Chapter 1 The Journey to Hyperscale Architecture in Azure SQL
Depending on which service tier you select, it may leverage either the Standard or
Premium availability architecture model.
15
Chapter 1 The Journey to Hyperscale Architecture in Azure SQL
16
Chapter 1 The Journey to Hyperscale Architecture in Azure SQL
Tip Be aware that with the General Purpose service tier, the zone-redundant
option is available only when the Gen5 (or newer) hardware configuration is
selected. Selecting zone redundancy incurs an additional cost.
Figure 1-6 shows the Azure SQL PaaS Standard availability model with zone
redundancy used by the General Purpose service tier.
Figure 1-6. Azure SQL PaaS Standard availability model with zone
redundancy enabled
17
Chapter 1 The Journey to Hyperscale Architecture in Azure SQL
18
Chapter 1 The Journey to Hyperscale Architecture in Azure SQL
19
Chapter 1 The Journey to Hyperscale Architecture in Azure SQL
Tip Azure SQL Database service tiers using the Standard availability model
provides a greater than 99.99 percent uptime availability guarantee. Nevertheless,
Premium and Business Critical service tiers—leveraging the Premium availability
model with zone-redundant deployments—provide a greater than 99.995 percent
uptime guarantee.
Figure 1-8 shows the Azure SQL PaaS Premium availability model with zone
redundancy enabled for the Premium and Business Critical service tiers.
20
Chapter 1 The Journey to Hyperscale Architecture in Azure SQL
Figure 1-8. Azure SQL PaaS Premium availability model with zone
redundancy enabled
21
Chapter 1 The Journey to Hyperscale Architecture in Azure SQL
Figure 1-9 shows geo-replication using failover groups via asynchronous replication
between multiple Azure regions.
Figure 1-9. Geo-replication between multiple Azure regions using failover groups
22
Chapter 1 The Journey to Hyperscale Architecture in Azure SQL
The goal of the new model has been to decouple compute, storage, and log services,
while at the same time offering highly scalable storage and compute performance tiers.
At the time of writing, there is an Azure SQL database deployment model and the
Hyperscale service tier under the vCore purchasing model, which leverages a new
architecture, which in this book we will call the Hyperscale architecture.
Table 1-2 compares the traditional Azure SQL architecture and the Azure Hyperscale
architecture.
Table 1-2. Traditional Azure SQL Architecture vs. Azure Hyperscale Architecture
Traditional Architecture Hyperscale Architecture
Tip The main question you should ask yourself is whether your data workload
demands are exceeding the limits of your current Azure SQL service tier—in which
case you might consider moving your data workload to a more suitable service tier
such as Azure SQL Hyperscale, leveraging the Hyperscale architecture scale-out
capability.
24
Chapter 1 The Journey to Hyperscale Architecture in Azure SQL
25
Chapter 1 The Journey to Hyperscale Architecture in Azure SQL
Tip Deploying services using the Azure Portal is a great way to get started,
but it is strongly recommended that as you mature in your use of Azure, you
adopt infrastructure as code. To learn more about infrastructure as code,
refer to https://learn.microsoft.com/devops/deliver/what-is-
infrastructure-as-code. We will favor using infrastructure as code in the
examples throughout this book.
You will need access to an Azure subscription that you have appropriate permissions
to create new services in. The Contributor or Owner role in the Azure subscription will
be adequate permissions. If you’re not the subscription owner, you should first check
with the account owner for the subscription if you may deploy a Hyperscale database as
there will be a cost for every hour that you have the service deployed.
Tip If you don’t have access to an Azure subscription, you can sign up for a free
Azure one with USD $200 credit to use within 30 days; see https://aka.ms/
AzureFree. After you have consumed the USD $200 credit, the free services will
still be available to you for one year, but unfortunately the Hyperscale tier of Azure
SQL DB is not currently among the free services.
The Azure Portal is under constant improvements, and it is quite possible that the
user interface you see by the time this book is released will be slightly different. But
the fundamental elements should remain. That is a reason why we will provide many
examples as code.
In our example, we’re going to deploy a zone-redundant Hyperscale database with
two vCores running on Gen5 hardware in the Azure East US region with one high-
availability secondary replica.
So, let’s get started.
1. Open your browser and navigate to https://portal.azure.com.
2. Sign in using credentials that give you access to the Azure
subscription you’ll be deploying your Hyperscale database into.
3. Click the “Create a resource” button in the home dashboard.
26
Chapter 1 The Journey to Hyperscale Architecture in Azure SQL
5. The Create a SQL Database blade will open showing the Basics
configuration options of our database.
27
Chapter 1 The Journey to Hyperscale Architecture in Azure SQL
7. Set the resource group to an existing resource group that you want
to create your Hyperscale database into or click New to create
a new resource group. In our example, we are going to create
our hyperscale resources in an existing resource group called
sqlhyperscalerevealed-rg that is in the Azure East US region.
28
Chapter 1 The Journey to Hyperscale Architecture in Azure SQL
10. Every SQL Database server must have a unique name, not just
within our environment, but globally. For this example, we are
using sqlhyperscalerevealed01, but you should use a name that
is likely to be globally unique.
11. Set the location to the Azure region in which you want to deploy
the SQL Database server. This is the Azure region where your
Hyperscale database will be stored and should usually be as
geographically close to your application or users as possible.
12. Set the authentication method to “Use only Azure Active Directory
(Azure AD) authentication.”
Tip You can choose to use SQL authentication or to use both SQL and Azure AD
authentication, but it is recommended you use Azure AD authentication to enable
the central management of identities. However, some third-party applications may
not support this. We will cover security best practices in detail in Chapter 15.
13. Click the “Set admin” button to select the Azure AD user or
group that will be granted the admin role on this SQL Database
server. But for this example, we will select our own Azure AD user
account to be the admin.
Tip It is good practice to set the admin role to a separate Azure AD group that is
created for this SQL Database server. Membership in this group should be carefully
governed.
29
Chapter 1 The Journey to Hyperscale Architecture in Azure SQL
30
Chapter 1 The Journey to Hyperscale Architecture in Azure SQL
23. Specify Yes when asked if you would like to make this database
zone redundant.
25. We will return to the Create SQL Database blade again. We will not
change any of the other deployment options, such as Networking
and Security for this example, as we can change most of them
after deployment.
31
Chapter 1 The Journey to Hyperscale Architecture in Azure SQL
27. Review the estimated cost per month and scan through the
configuration to confirm we’re configuring what we expected.
There are ways to reduce the estimated cost per month (such
as purchasing reserved capacity), but these will be discussed in
Chapter 16.
Important The Azure SQL Database Hyperscale tier is billed hourly. So, once the
resources are deployed, you’ll begin to be billed. Deleting the database resource
will cause you to stop being billed, but you will be charged for at least one hour.
29. After a few seconds, our resources will begin to be deployed, and a
deployment progress window will be displayed.
32
Chapter 1 The Journey to Hyperscale Architecture in Azure SQL
30. Once the deployment has been completed, we can click the
sqlhyperscalerevealed01/hyperscaledb resource (or whatever
you called it in your subscription) to be taken directly to the
database.
Congratulations! You have deployed your first Hyperscale database and can begin
to use it. There are other administrative tasks we would typically do from here, such
as granting access to the database and opening network access to our applications
and users, but they will all be covered in later chapters. For now, this is enough to
demonstrate just how easy it is to get a Hyperscale database up and running in Azure.
33
Another random document with
no related content on Scribd:
Gebel the principal constituents of the sudd are the papyrus and the
‘um soof’ reed. Both these plants grow with their roots bedded in the
soil below the shallow water of the lagoons. Strong gales are
prevalent in these latitudes, and these loosen the roots, so that, if the
storms are accompanied by flood, large masses of the plants are set
free, and begin drifting over the lagoons. Quantities of earth remain
clinging to their drifting roots, and thus they are driven backwards
and forwards by the wind. The storms come generally just before the
flood, and thus there is plenty of water for the reeds to float in.
Eventually they are driven, whole acres at a time, into the channel of
the river, and are carried down the stream. But the channel being
very narrow and winding, they soon get caught up, and a block
occurs. New masses come down, and these are sucked by the
stream under the original block, till a dense mass is formed,
sometimes as much as over 20 feet thick, and so solid that a man
can walk over it. If left to themselves, these blocks may last a very
long time, and cause the river to change its course; or else by
increased pressure the block is burst, and a great wave passes
down the river, which sweeps all other blocks away. Years of high
flood are generally followed by a great deal of sudd.
It appears that the conditions on the river between Lake No and
Shambe are much more favourable to blocking by sudd than they
used to be. In 1840 Mehemet Ali sent a scientific expedition under
D’Arnaud to explore the White Nile. At that time the main stream
through the sudd country was much bigger and stronger. No mention
is made of the Bahr el Zeraf at all, which looks as though it was of
much less importance, at any rate. They noticed, however, a number
of openings in the banks between the river and the swamps, some
natural, but some artificial, made by the natives for fishing purposes.
It is plausibly argued by Sir W. Willcocks that these openings were
later widened by the natives to enable them to escape in their
canoes from the slave-dealers, and then by the slave-dealers
themselves, escaping in their turn from Government patrol boats. All
these spills would drain into the Bahr el Zeraf, which gradually
became a navigable stream in its lower part. In 1863 Sir Samuel
Baker ascended the Bahr el Gebel without any difficulty; but in that
year there was a very high flood and a great deal of sudd. Returning
in 1865, Baker found the river north of Lake No considerably
blocked. In 1870 Baker was unable to ascend the Bahr el Gebel with
his expedition to Equatoria, and went by the Bahr el Zeraf. He cut
through the sudd in that stream with prodigious labour, and had
finally to cut a ditch through 2,000 feet of solid clay. Even then the
Bahr Zeraf level was so much below that of the Bahr el Gebel that he
could not get his boats through until he had dammed the Zeraf
behind them so as to lift them up. In 1873 he says he found the
canals much improved by the force of the stream. All this naturally
contributed to weaken the power of the main stream and render it
very liable to sudding.
In 1874, when the river was low, the sudd was cleared away by
Ismail Pasha Ayoub, then Governor-General of the Soudan, and all
through Gordon’s time in Equatoria there was free passage, but the
channel had dwindled very much. The heavy flood of 1878 brought
the sudd down again worse than ever, where it remained until
cleared by Marno in 1880. It was in that year that Gessi, on his way
back from his province, was caught and suffered such hardships in
the sudd on the Bahr el Ghazal. He was only rescued by the
appearance of Marno. Unfortunately, no record has been left of the
methods which Marno employed in the work, but he spoke of it as
quite an easy matter.
Little is known of the state of the sudd during the years of the
Mahdi and the Khalifa; but in 1898 Lord Kitchener found the Bahr el
Gebel blocked by sudd immediately above Lake No; and about the
same time Colonel Martyr, coming from Uganda, was unable to
penetrate more than 20 miles north of Shambe for the same reason.
As soon as the Khalifa had been finally crushed, operations to clear
the channel were immediately undertaken. In the first three months a
length of 80 miles of river had been cleared, including 5 miles of
actual sudd in eleven blocks, besides three more blocks which broke
away of themselves. The blocks that came away of themselves
represented a very large amount of sudd. After one of them had
burst, the floating weed took thirty-six hours to pass a given point.
The effect produced by the sudd in damming up the river is
illustrated by the fact that when the third block, which was nearly 20
feet thick, was removed, the upstream level fell 5 feet in four days,
and all the swamps and lagoons began to drain into the river.
The amount of labour was prodigious. At one place, owing to the
enormous masses of um soof and papyrus that kept pressing into
the river, no less than eleven clearances had to be made in one year.
Five gunboats and 800 dervish prisoners, besides officers and
guards, were employed. Sir W. Garstin gives an interesting
description of the methods by which the sudd was removed:
‘In the first place, the papyrus and reeds on its surface were burnt (curious to
relate, these green reeds burn readily when the marsh is dry), and in a few hours’
time the surface of the sudd was an expanse of blackened stalks and ashes. As
soon as the fire had died down, gangs of men were landed from the steamer and
employed in cutting trenches on the surface of the sudd. These trenches averaged
from 0·60 to 0·80 metre in width, and from 1 to 1·25 metres in depth—i.e., as deep
as the men could work. The surface was thus divided into a number of rectangular
blocks some 3 metres by 4 metres. To these blocks were attached, one by one,
steel hawsers and chains. This done, the steamer downstream went full speed
astern. It invariably took several pulls to detach a block, and in some instances as
many as nine were necessary. Both hawsers and chains kept constantly breaking,
although the former were calculated to stand a strain of 35 tons per square inch,
and the latter as much as 60 tons. As soon as a block was detached from the
mass, it was allowed to float downstream. It was curious to see the green reeds
and papyrus which had been confined beneath it reappear on the surface of the
water. A horrible stench prevailed from the rotting vegetation.’
‘Surely the hand of the Almighty has traced it across the desert that it might be
the union of distant nations. . . . Its mission is not yet accomplished; it is waiting to
be the road to civilize Africa. But it is not an Eastern nation, and not the
Mohammedan religion that can do it; and I am one of those who hope and believe
that Providence will destine it for England. An English Government and a handful
of Englishmen could do it. Cities would rise up at Assouan and Khartoum, whose
influence would be felt over the whole interior. . . . I know, alas! the spirit of the age
is against such thoughts, and there are even men who would wish to abandon our
Empire; but I speak the voice of thousands of Englishmen who, like myself, have
served their country abroad, and who do not love her least, who will never consent
to relinquish an Empire that has been won by the sword, and who think the best
way to preserve it is often by judicious extension.’
As with modern Egypt, so with the modern Soudan: the name of the
Albanian tobacco-seller is writ large upon the pages of her history. In
spite of the ancient connection between Egypt and Ethiopia, in spite
of the dependence of Egypt upon the Soudan for her water, the
warlike tribes of the south remained for more than 1,000 years free
from any attempt at domination by their neighbours. It was Mehemet
Ali who, in the year 1819, laid the foundations of the empire which
reached its furthest limits under the Khedive Ismail, an empire of
which the brief but disastrous history brought nothing but misery and
ruin to the Soudanese, and made the Soudan a name of fear and
trembling to every Egyptian peasant.
About A.D. 700 Arabs of the tribe of Beni Omr, driven out of Arabia,
crossed the Red Sea, and began to settle about Sennar, on the Blue
Nile. By degrees these fugitives, reinforced by other tribes, some
from Arabia direct, some, it is said, by way of Egypt and the
countries further west, swelled to an invading host and permeated
the whole of the Northern Soudan, and the original inhabitants were
largely converted to Islam. In the Sennar region the two principal
negro tribes were the Fung and the Hameg. The conquerors, while
they imposed their language and religion on the conquered, seemed
to have been absorbed into their ranks; for the distinction between
Arab and negro diminished, and the old tribal names reappeared. In
1493 Amara Dunkas, a sheikh of one of the Fung tribes, was
recognised as king of all the Fungs, and conquered all the country
on both sides of the Blue Nile from Khartoum to Fazokhl. The
negroes who remained in the country were merged in the Fungs.
The remainder emigrated to the mountains of Southern Kordofan,
where, under the name of Nubas, they have ever since maintained
themselves in a somewhat precarious independence against the
raids of the Arabs of the plains. About the same time was founded
the Sultanate of Darfur, which in time extended its dominion to the
banks of the Nile. South of these two powers the Shilluks and other
negro tribes continued, as before, generally engaged in some petty
warfare, and regarded as a convenient reservoir of slaves by their
Arab neighbours.
The Fung dynasty lasted 300 years, and attained a very
considerable position. About A.D. 1600 in the reign of Adlan, Sennar
even became famous for learning, and was the resort of many
scientists and philosophers from Cairo and Bagdad. In the reign of
King Baadi, 1719-1758, the fame of the kingdom of Sennar reached
its height. A quarrel arose with Abyssinia on account of some
presents from the King of France which had been intercepted by
Baadi. The Abyssinian King invaded Sennar with a great host, but
met with the most signal defeat. So great an event was heralded
throughout the Mohammedan East. The bazaars of Constantinople
and Delhi were alike filled with the renown of Sennar. Once more
crowds of learned and celebrated men flocked into the country from
every quarter. But it was the last flicker of sunlight before the night
fell. Baadi himself was deposed and exiled on account of his bad
administration. The Hameg tribe, long subject to the Fungs, began to
lift their heads. By 1790 the kingdom of the Fungs had disappeared,
and for thirty years the Hameg continued supreme. Fire and sword
was their sole notion of supremacy; it was no mere theory with them.
The country was utterly given over to anarchy when Mehemet Ali
determined to interfere.
The motives that prompted him were many; possibly, ardent
irrigationist that he was, the desire to secure the upper waters of the
Nile may have been among them; but beyond a doubt, like
Cambyses of old, his principal object was gold. Extraordinary
rumours were current as to an El Dorado in the south. Every officer
and man who took part in the expedition entertained the most
extravagant notions of gold-strewn districts. By means of this, and
also by securing the profitable traffic in slaves, Mehemet hoped to be
able to win sufficient resources to carry out his ambitious schemes in
Asia and Europe. It was also very convenient at the moment to find
employment for his irregular troops. It would be a mistake, however,
to explain his action wholly by such reasons as these. All through his
life ran the dream of posing as a second Napoleon. It is curious to
find that along with the army he sent a number of learned men and
skilled artisans, while it was announced that the object of the
invasion was to introduce the benefits of a regular government of
civilization. Mehemet Ali had closely studied the methods of his great
model.
But of all these designs only one, and that the worst, was destined
to be fulfilled. The slave-trade had always flourished in the Soudan.
The Arab States were founded upon slavery. Along the great Arbain
road, the desert ‘track of the forty days’ from Darfur to Assiout, yearly
caravans containing slaves as well as other merchandise passed
into Egypt; the Nile route served the same purpose, and from the
Red Sea ports there was a constant export trade to Arabia and
Turkey. All this was nothing compared to the dimensions which the
trade assumed under Egyptian rule. It became practically the sole
trade of the country; it reached like a pestilential blight even as far as
the Equator. Bitterly did the Soudan suffer for the Napoleonic ideas
of Mehemet, and bitter, but deserved, was the penalty which Egypt
had to pay for her misgovernment in the end. Even to-day among the
remotest tribes the name of ‘Turk’ stands for loathing and terror.
The army, commanded by Ismail, son of the Viceroy, reached
Sennar without opposition. Thence, accompanied by his brother
Ibrahim, he advanced to Fazokhl in search of the famous gold-mines
in the Beni Shangul. But the gold proved disappointing. Ibrahim
returned to Egypt, destined to win fame as the butcher of the
Peloponnese in the Greek War of Independence. The Arabs rose
against Ismail, and he had to return to defeat them. Unsuccessful in
his quest for gold, he had devoted all his energy to the slave-trade,
but his cruelties and barbarities were too much even for a people
familiar with the Hameg. The local chief at Shendi, appropriately
named El Nemr (the Tiger), invited him to a banquet. While he and
his followers, contrary to the precepts of their own Koran, drank
freely of the forbidden wine, straw was silently piled high about the
house and fired. To a man they perished in the flames.
Meantime, Achmet Bey, the Defterdar, had conquered the
province of Kordofan from the Sultan of Darfur. Hearing of Ismail’s
fate, he marched towards Shendi to avenge him. The story of what
happened, as told by the Egyptians, wears an ugly look. The details
are wanting, but, at any rate, few were left to tell the other side of the
story. At Metemmeh, on the bank of the Nile opposite Shendi, the
people sent messengers to sue for pardon. It was granted. But when
the Defterdar marched into the town a lance was thrown at him. The
pardon was at once rescinded, and a general massacre ensued. El
Nemr himself, however, had fled to Abyssinia. He, at any rate, had
no faith in Egyptian promises. The Defterdar then marched towards
Khartoum, and at Tuti Island another great slaughter took place. It
was a bad beginning. To the native Soudanese the distinction
between the benefits of a regular government of civilization and the
fire and sword of the Hameg must have seemed slight indeed.
To build aright on such foundations would have been difficult for a
nation of born administrators. For the Egyptians it was impossible.
There were among the Egyptian Governors of the Soudan honest
and righteous men, but, amid a crowd of officials bred and trained in
an atmosphere of corruption and slavery, their spasmodic efforts
after good only gave fresh opportunities for evil. Military stations
were established in various parts of the country for the sake of
security, and they became fountains of slave recruits to swell the
ranks of the army. The navigation of the White Nile was declared
free, and it became the favourite route of the slave-traders.
Khartoum, from a village of skins and reeds, rose to be a city of
bricks and the capital of the Soudan, but also a convenient and
central market for a huge slave-trade. The Abyssinians, who
espoused the cause of the Sennar rebels, were beaten back into
their mountains, but the savage methods of warfare only brutalized
and demoralized the victors. It speaks volumes for the barbarous
character of the times that when Adlan, the leader of the
Abyssinians, was captured by Kurshid, reputed the best of the
Governors of the Soudan, he was immediately impaled. The annals
of these years are filled with stories of famine and rebellion, and, to
add to the general desolation, cholera and other diseases constantly
ravaged the country.
But worse was to come. Down to 1853 the southernmost Egyptian
station was only 120 miles south of Khartoum. The annexed
provinces of Kordofan, Sennar, and Kassala (or Taka) groaned under
oppression and tyranny, but the negro inhabitants of the Upper White
Nile and the Bahr el Ghazal were still comparatively unmolested. In
that year the English Consul in the Soudan started a trading
expedition up the river. Other traders followed, who established
stations far up the country. Peaceful trading soon succumbed to the
temptations of the slave-trade. For the sake of protection, it began to
be found necessary to employ bands of armed Arabs or Nubians.
Gradually the European traders disappeared; by 1860 the last of
them had sold their stations to their Arab agents. No greater curse
was ever let loose upon a country than these human locusts, and the
Egyptian Government was directly responsible. Under the shallow
pretence of legitimate commerce, trading monopolies were leased to
these traders in various districts. The fact that the Government had
not a shadow of claim even by right of conquest to the territories
leased was no obstacle. All the country south of Kordofan and Darfur
along the White Nile or the Bahr el Ghazal was regarded as
peculiarly suitable for these nefarious bargains. The Khartoumers, as
they were called, because they had their headquarters in the capital,
established themselves everywhere, and became practically
independent potentates. With their armed bands of brigands they
raided the native tribes, and even used them to fight against each
other. Only the Dinkas, protected by the impenetrable marshes of the
sudd region, and the powerful and warlike Azande, or Niam-Niam, in
the south, were able to maintain themselves. But the Bongo, a
numerous and peaceful agricultural people, were easily reduced.
The fact that they had attained a higher civilization than their
neighbours (for they smelted the iron found in their swamps with
furnaces of clay and rude bellows, and worked it with stone
hammers on anvils of granite, made pottery, and even had some
acquaintance with surgery) only made them the more valuable in the
slave-market. The Jur, Dembo, and Golo tribes were likewise among
the principal sufferers. Anarchy is but a mild term for the condition of
affairs.
Some of these unhappy victims may have heard the news on their
way to the northern slave-market that slavery was abolished in the
Soudan. If so, it cannot have done much to sweeten their bondage
or to heal the strokes of the lash, yet a viceregal decree to that effect
had been solemnly promulgated at Berber in 1857. It was
characteristic of many of the descendants of Mehemet Ali that they
inherited great part of his intellectual vigour and wide sweep of
imagination without any of his executive capacity. Said Pasha, who
became Viceroy in 1854, visited the Soudan and clearly recognised
the failure of his foreign empire. A large force had to be maintained
to screw exorbitant demands out of a discontented population.
Agriculture was depressed, and every other industry was perishing
under a system of taxation vicious in itself, and collected by methods
which might have made a Verres blush. He determined to evacuate
the country. But the burden of the Soudan, so lightly taken up in
greed of gain, was not to be so lightly laid aside. Egypt was now
holding a wolf by the ears. The officials who battened on the ruin of
the country opposed a strenuous resistance. Things had come to
such a pass that the sheikhs and notables of the provinces
themselves feared that the withdrawal of one devil would be followed
by the entry of many. Said contented himself with reorganizing the
government and announcing a number of reforms of a drastic and
far-reaching nature, and then returned to Egypt. It was the first of
many reorganizations and many reforms, all of which were as
effective as the decree for the abolition of slavery. The plan of much
talking and little doing became a fixed principle of Soudan policy.
The story of the tax on sakiehs (water-wheels) affords a good
illustration of Egyptian methods. One of Said’s reforms was to fix this
tax at 200 piastres per annum. In less than nine years it had risen to
500 piastres. Jaaffar Pasha, who finally raised it to this extent,
declared openly that he fixed it at that rate in order to see how much
the peasants would really pay, and he hoped after a three years’ trial
to be able to arrive at a just assessment. It was not a very scientific
plan of taxation in any case, but, unfortunately, Jaaffar was removed
before the scheme had time to work out, and his successors,
absolutely indifferent to his motives, retained the tax, and even
further increased it. It was calculated that on average land the tax
often far exceeded the net returns for one sakieh. Even a ruined
wheel was liable to the full amount, and if an owner returned to it
after an interval he was saddled with the whole of the arrears. On the
same principle taxes continued to be charged on land and trees that
had long since been carried away by the floods. The natural results
followed. Many cultivators were ruined and reduced to beggary,
others fled the country, and much land went out of cultivation. In
1881 more than 2,000 sakiehs were lying derelict in Berber and
Dongola.
By the time Ismail Pasha came to the throne in 1863 it had
become abundantly clear that the Egyptians were unfit to govern the
Soudan. It looked as though in a few years the whole country would
have become a wilderness, totally uninhabited save for a few
wanderers, whose sole occupation would be selling each other into
slavery. And yet the next few years witnessed an enormous
extension of the Egyptian Empire, and Ismail himself enjoyed, until
the bubble burst, a great reputation as a genuine and whole-hearted
reformer. Nor was that reputation wholly undeserved. Strange
compound that he was of vast ambitions but changeable resolution,
of far-reaching sagacity but reckless carelessness, a Westerner in
the conception of his ideals but an Oriental in every sense in his
pursuit of them, he proved himself in his treatment of the Soudan, as
in other spheres, to possess many of the elements of greatness. If
he failed, it was partly because the evil was beyond cure: the
impending catastrophe was too great to be averted. His employment
of Baker and Gordon and other Europeans showed that he realized
the incapacity of Egypt to perform the task by herself. That was in
itself a great step forward; undoubtedly it staved off for a little the day
of retribution. His eager support of the project of a railway to
Khartoum, first mooted by his predecessor, Said, showed a sound
appreciation of the position, though his ineffective attempts to carry it
out showed his weakness as clearly. But the whole hierarchy of
Egyptian officialdom was rotten to the core. The best of rulers
without good ministers is predestined to failure.
To add to a falling house must always be a desperate remedy. No
other course seemed open to Ismail, if he was really to cope with the
slave-trade. So long as the basin of the Upper Nile remained in the
hands of the ‘Khartoumers,’ the sources of the traffic flowed as
briskly as ever, and at the same time the Red Sea ports afforded
every facility for export. Accordingly, in 1866 Ismail purchased the
districts of Suakin and Massowah from the Turks by an increase of
tribute. In 1869 he took a still more important step, and determined
to annex the whole basin of the Nile. He invested Sir S. Baker with
absolute and despotic powers over the whole country south of
Gondokoro. No better choice could have been made. An
administrator of the best type, energetic and high-minded, Baker was
also no stranger to the scene of his mission. He had already in 1861
conducted an expedition up the White Nile to join hands with Speke
and Grant in their investigations of the sources of the Nile, and in
1864 he had discovered the Albert Nyanza.
A strong man was needed. The Khedive seemed in earnest, but
he was occupied with the Suez Canal and other matters nearer
home. His representatives in Khartoum took quite another view; it
was the custom of the Soudan Government to take away with one
hand what it gave with the other. Baker’s appointment bore the
ominous date of April 1, and the fact may well have recurred to him
when, on arriving at Khartoum towards the close of the year, he
discovered that the territory he was sent to annex had already been
leased by the Governor-General to a couple of notorious slave-
dealers. Every conceivable obstacle was put in his way by the
officials. But, in spite of all opposition, he organized his expedition,
and after a journey of incredible difficulty and labour, for the real
channel of the river was blocked by sudd, he reached Gondokoro in
May, 1871, and formally annexed it as ‘Ismailia.’ Next year he
passed south, and proclaimed Unyoro an Egyptian province,
organized a number of military posts, and entered into friendly
relations with M’tesa, King of Uganda. For the time the slave-traffic in
these new provinces was crushed. In 1873 Baker returned to Cairo
with a record of successful work behind him, which must have
astonished no one more than the Khedive himself.
But once the strong hand was removed, the stone which had
been heaved uphill with so much labour rolled swiftly down again.
Less than a year elapsed between the departure of Baker and the
arrival of Colonel Gordon, on his appointment as Governor-General
of Equatoria. Even in that short time the Egyptian occupation had
become merely nominal. Two posts only were held, Gondokoro and
Fatiko. Three large slave-trading stations were in full swing on the
Bahr el Zeraf alone, whilst on the Bahr el Ghazal the notorious
Zubehr had established himself as a practically independent
potentate, and was even preparing on his own account an invasion
of Darfur. The situation called forth Gordon’s fullest energies. Never
did he perform better work than during his three years in Equatoria.
As far as it could be done under Egyptian supremacy, he checked
the slave-trade and laid the foundations of good government. The
country was organized and divided into districts with proper
garrisons both along the Sobat and the White Nile. The tribes were
peaceful and contented. Communication was established with the
great lakes; Lake Albert Nyanza was for the first time
circumnavigated. A treaty was made with M’tesa, King of Uganda,
recognising his independence, and Emin Bey was sent to represent
Egypt at his Court. In 1876 Gordon returned to England.
In Egypt, meantime, the Khedive’s reckless extravagance was
fast hurrying him to disaster. But the more involved he became, the
more he extended his ambitions, like a ruined spendthrift who must
keep up his credit at any cost. Extension of his Empire became a
mania. After Equatoria came the turn of Darfur in 1874. Darfur had
maintained its independence for over 400 years under an unbroken
line of Sultans. One of them, Abd-el-Rahman the Just, had entered
into correspondence with Napoleon during his occupation of Egypt,
and congratulated him upon his defeat of the Mamelukes. Napoleon
replied in a remarkable letter:
‘To the Sultan of Darfur, 12 Messidor, Year VII. In the Name of God,
compassionate and merciful; there is no other God but God! To the Sultan of
Darfur, Abd-el-Rahman.
‘I have received your letter, and understand its purport. When your caravan
arrived I was absent in Syria punishing and destroying my enemies. I pray you
send me by the first caravan 2,000 black slaves, over sixteen years of age, healthy
and strong. I will buy them from you. Order your caravan to come immediately,
without delay. I have given orders for its protection all along the route.
‘Bonaparte, ‘Commander-
in-Chief.’