The Distributed SQL Blog

Thoughts on distributed databases, open source and cloud native

Introducing Yugabyte Platform on Azure – Beta Release Announcement

We have been hard at work expanding our ecosystem to be available across major cloud infrastructure providers so we can power applications in any cloud or across clouds. In addition to deploying the Yugabyte Platform, our commercial database-as-a-service (DBaaS) offering, natively in AWS and GCP, we’re excited to announce the beta release of the Yugabyte Platform on Microsoft Azure. While it’s true Yugabyte Platform can already be deployed on Azure as an on premise cloud provider, with this release, the Yugabyte Platform is natively integrated with Azure to simplify deploying, monitoring, and managing YugabyteDB deployments. This feature automates several operations, including orchestration of instances, secure deployments, online software upgrades, scheduled backups, monitoring, and alerting.

With the Yugabyte Platform on Azure, developers can focus on building applications, not managing database infrastructure. They can enjoy cloud native capabilities to quickly harness the power of YugabyteDB to build modern applications and deliver the level of digital experiences that their customers expect. This offers true freedom of choice for enterprises looking to develop a fully cloud native DBaaS. You can use Yugabyte Platform on the cloud of your choice, including all public cloud platforms (AWS, GCP, and Azure), private cloud environments (on premises), and any Kubernetes distribution.

The process for configuring a Yugabyte environment on Azure looks like the following:

  • Prepare the Azure cloud environment.
  • Install Yugabyte Platform.
  • Configure the Azure cloud provider in Yugabyte Platform.
  • Create a three node multi-zone universe.

Prepare the Azure cloud environment

Create a resource group and network security group

We will create a new resource group to manage Yugabyte Platform resources.

in Azure, create a new resource group to manage Yugabyte Platform resources

To access the Yugabyte Platform from outside the Azure environment, we will assign an appropriate network security group to the Yugabyte Platform machine, including:

  • Access the Yugabyte Platform instance over SSH (port tcp:22)
  • Check, manage, and upgrade Yugabyte Platform (port tcp:8800)
  • View the Yugabyte Platform console (port tcp:80)

Register an application with Azure AD & create a service principal

For the Yugabyte Platform to manage YugabyteDB nodes, it requires limited access to your Azure infrastructure. This can be accomplished by registering an app in the Azure portal so the Microsoft identity platform can provide authentication and authorization services for your application.

Follow these steps to create the app registration:

  • Sign in to the Azure portal.
  • Search for and select the Azure Active Directory.
  • Under Manage, select App registrations, then New registration.

Register an application with Azure AD & create a service principal, yugabyte platform azure beta

  • When registration completes, the Azure portal displays the app registration’s Overview pane, including its Application (client) ID. Also referred to as just client ID, this value uniquely identifies your Microsoft identity platform application.
  • App authentication: Select Certificates & secrets > New client secret.
  • Select a duration.
  • Record the secret’s value to be used later for configuring the platform – it’s never displayed again after you leave this page.

Record the new client's secret value to be used later for configuring the platform, yugabyte platform azure beta

Assign a role to the application

Access to Azure infrastructure resources in a subscription (virtual machines, network configurations) is restricted by the roles assigned to your application, giving you control over which resources can be accessed and at which level. We are going to set permissions over a resource group that was created in the previous step.

  • In the Azure portal, navigate to the resource group and select Access control (IAM).
  • Select Add role assignment.

assign a role to the application, yugabyte platform azure beta tutorial

  • Select “Network Contributor” and “Virtual Machine Contributor” roles.
  • Select your application created in the previous step.
  • Select Save to finish assigning the role. You see your application in the list of users with a role for that scope.

Your service principal is set up, and now you can start using it for configuring the platform.

Provision an instance for Yugabyte Platform

Now we will create an Azure VM to run the Yugabyte Platform server. To do so, go to Virtual Machines > Add and Fill in the following values.

  • Choose your active subscription and resource group.
  • Provide a name for the virtual machine.
  • Choose a region where you want to deploy the platform.
  • Ignore the availability options.
  • Change the disk image to Ubuntu 16.04.
  • Choose “Standard_D4s_v3” – 4 CPU/16GB memory instance.
  • Select the authentication type as “ssh public key.” This is important for enabling ssh access to this machine.
  • Select public inbound ports based on network configuration. You can disable public access if you wish to access the instance from within a private network.
  • On the disks page, you can select any OS disk type.
  • Increase the data disk size to at least 100GiB by creating an “attached new disk.”
  • Continue to the next networking section and fill out the details for the virtual network and security group created in the previous steps.

Finally, click Review+create to launch the Yugabyte Platform VM.

Install Yugabyte Platform

Install Replicated

Connect to the Yugabyte Platform instance and do the following:

$ curl -sSL https://get.replicated.com/docker | sudo bash

After the Replicated installation completes, verify that it is running by running the following command:

$ sudo docker ps

You should see an output similar to the following:

verify Replicated is running - yugabyte platform azure beta release tutorial

Launch the Replicated UI by going to http://YOUR_IP:8800 to upload the license and finish the installation. Replicated will perform preflight checks to ensure that the host is set up correctly for the Yugabyte Platform.

Create the admin user

To create an admin account, go to http://YOUR_IP/register.

create a yugabyte platform admin account, azure beta tutorial

After you click Submit, you are automatically logged into the Yugabyte Platform console. Proceed to configure cloud providers.

Configure the Azure cloud provider

Click on “Configs” to add a config for Azure and enter information from your Azure cloud environment.

Click on “Configs”  to add a config for Azure and enter information from your Azure cloud environment, yugabyte platform azure beta tutorial

Using your custom Azure virtual network is supported. This allows you the highest level of customization for your network setup.

We will use the US West 2 (Washington) region with 3 AZs for this demo.

  • Select a region and provide a virtual network name from your Azure portal.
  • Security group is only needed if the database VM is in a different network than the platform.
  • Provide the mapping of what Subnet IDs to use for each Availability Zone you wish to deploy. This is required to ensure the Yugabyte Platform can deploy nodes in the correct network isolation that you desire in your environment.

specify region information into yugabyte platform - azure beta tutorial

Click Save, and it will take a few minutes for the cloud provider to be configured. After that, you will be ready to create a YugabyteDB universe on Azure.

Create the universe

Click “Create Universe” to create a universe. The Provider, Regions, and Instance Type fields were initialized based on the cloud providers configured. As soon as Provider, Regions, and Nodes are entered, an intelligent Node Placement Policy kicks in to specify how the nodes should be placed across all the Availability Zones so that maximum availability is guaranteed. We are going to enter the following values to create a multi-zone universe:

  • Enter a universe name (azure-dev)
  • Choose the region (US West 2)
  • Change instance type (Standard_D4s_v4)

create a multi-zone universe Yugabyte Platform Azure beta tutorial

All other options are set to the default values (replication factor = 3, number of nodes = 3). Click Create.

Browse to the Azure Virtual Machines page and search for instances that have azure-dev (universe name) in their name. You should see something as follows; this shows that database instances are orchestrated and provisioned by the platform.

Browse to the Azure Virtual Machines page and search for instances that have azure-dev (universe name) in their name - Yugabyte Platform Azure beta release tutorial

Connect to a database node

Once the universe is ready, you can click on the Connect button.

connect to a database node -- bring up a dialog showing how to connect to the nodes. Now your SQL and NoSQL clients can connect to this database using these IP addresses -- yugabyte platform azure beta tutorial

This will bring up a dialog showing how to connect to the nodes. Now your SQL and NoSQL clients can connect to this database using these IP addresses.

dialog box showing how to connect to database nodes yugabyte platform azure beta tutorial

That’s it! Your Azure deployment is ready. Now you can now create tables, objects, and manipulate data in the database.You can also manage Day 2 operations directly from the Yugabyte Platform including orchestration of instances, secure deployments, online software upgrades, scheduled backups, monitoring, and alerting.

Conclusion

That’s all there is to creating a Yugabyte Platform deployment in Azure. Spinning up a scalable and resilient distributed SQL database for cloud native application development has never been easier. If you want to try out a robust, highly available database without any upfront infrastructure investment and easy and easy-to-use APIs for SQL and NoSQL workloads, you can certainly have a closer look at Yugabyte Platform on Azure. The beta integration is available immediately for the Yugabyte Platform 2.3.3 release and can be accessed from within the UI. Existing subscribers can reach out to Yugabyte support to turn on beta access. If you’re not yet a Yugabyte Platform subscriber and would like to try the Azure integration in beta, get in touch with us to start your free trial today. We’re very interested in collecting feedback during the beta period. We are keenly focused on bringing an integrated developer experience before reaching general availability, so please share your thoughts with us in the Yugabyte community Slack channel. If you have any ideas, comments, or support questions, the Yugabyte team would love to hear from you.

What’s next

Related Posts