Virtual Training Series

Presented by Patrick Labbett for NAEO

Follow the presentation live!

Getting Started With The Cloud:
Microsoft Azure

Content Credits

Lab/training images and content from:

 https://docs.microsoft.com/en-us/learn/

Microsoft Azure

The Basics

Azure
Web Portal

Visit https://portal.azure.com and create a new account or login using your Microsoft account.

 

 

Learn Azure

Microsoft has stepped-up it's documentation game over the last 5 years.

 

 

https://docs.microsoft.com/en-us/learn/

Cloud Service Models

https://docs.microsoft.com/en-us/learn/modules/fundamental-azure-concepts/categories-of-cloud-services

Levels of Responsibility

https://docs.microsoft.com/en-us/learn/modules/fundamental-azure-concepts/categories-of-cloud-services

Azure Organization

Subscriptions, management groups, and resources

https://docs.microsoft.com/en-us/learn/modules/azure-architecture-fundamentals/overview

Azure Regions

https://docs.microsoft.com/en-us/learn/modules/azure-architecture-fundamentals/regions-availability-zones

Availability Zones

https://docs.microsoft.com/en-us/learn/modules/azure-architecture-fundamentals/regions-availability-zones

Region Pairs

https://docs.microsoft.com/en-us/learn/modules/azure-architecture-fundamentals/regions-availability-zones

Additional advantages of region pairs/geographies:

  • If an extensive Azure outage occurs, one region out of every pair is prioritized to make sure at least one is restored as quickly as possible for applications hosted in that region pair.
  • Planned Azure updates are rolled out to paired regions one region at a time to minimize downtime and risk of application outage.
  • Data continues to reside within the same geography as its pair (except for Brazil South) for tax- and law-enforcement jurisdiction purposes.

Azure Resources

Resoucrce Group

https://docs.microsoft.com/en-us/learn/modules/azure-architecture-fundamentals/resources-resource-manager

Logical Grouping

Group items around their function, like web,  or database. You can also use a single resource group if you choose.

Resource Life Cycle

If you delete a resource group, all resources contained within it are also deleted. Resource groups make it easy to remove a set of resources all at once. Good for non-production environments/dev/test setups.

Authorization

Resource groups are also a scope for applying role-based access control (RBAC) permissions. (Ease of administration.)

Management Groups and Subscriptions

https://docs.microsoft.com/en-us/learn/modules/azure-architecture-fundamentals/management-groups-subscriptions

Organize invoice sections by subscriptions

https://docs.microsoft.com/en-us/learn/modules/azure-architecture-fundamentals/management-groups-subscriptions

Create management hierarchy using
Azure Management Groups

https://docs.microsoft.com/en-us/learn/modules/azure-architecture-fundamentals/management-groups-subscriptions

(When you have lots of subscriptions)

Azure Services

https://docs.microsoft.com/en-us/learn/modules/intro-to-azure-fundamentals/tour-of-azure-services

Azure Accounts

https://docs.microsoft.com/en-us/learn/modules/intro-to-azure-fundamentals/get-started-with-azure-accounts

Ongoing Learning

You can't "learn the cloud" and be done. 

If you are growing talent internally for technical roles, make sure you give them time for ongoing skills development.

The Modern Amtelco Environment

(Hint: It's web-based)

Web
Database
Application

Web Ecosystem

  • Amtelco Intelligent Series Web
  • Amtelco Intelligent Series miTeamWeb
  • Amtelco Intelligent Series WCTPWeb
  • Amtelco Intelligent Series Agent Web
  • Amtelco Intelligent Series Supervisor Web
  • Amtelco Genesis Websockets

Serverless?

Maybe one day. For now, we need IIS.

 

Newer versions of .NET framework include better and better support for hosting  web applications using Azure's App Services or on Linux servers using nginx/Apache.

Database Ecosystem

  • Microsoft Azure SQL Managed Database
  • Microsoft Azure SQL Managed Instance
  • Microsoft SQL Server on VM

https://docs.microsoft.com/en-us/azure/azure-sql/database/features-comparison

SQL Server Pricing

Microsoft SQL Server on VM

https://docs.microsoft.com/en-us/azure/azure-sql/virtual-machines/windows/pricing-guidance

Application

Intelligent Series Service

  • Amtelco Intelligent Series Service
  • Amtelco Intelligent Series SMS Service
  • Amtelco Intelligent Series Fax Service
  • Amtelco Intelligent Series Oncall Reminder Service
  • Amtelco Intelligent Series Reporting Service
  • Amtelco Intelligent Series Dashboard Service

WFCS using Azure Load Balancer

My current recommendations for application high-availability:

Soft-Switch 

Genesis Telephony Engine

Linux Server

Genesis is an Ubuntu-linux based environment that leverages Asterisk open-source telecom engine to provide widely supported telephony to Intelligent Series.

 

Since when does Microsoft like linux?

https://github.com/microsoft/WSL2-Linux-Kernel

Learn/Practice with WSL

Genesis HA/DR

How does failover even work with Linux, Genesis, and SIP?

Virtual IP Address

Use a VIP to manually move traffic between your primary and backup Genesis servers. 

(use Standard SKU for availability zone support)

UDP Load Balancing

(or maybe not)

https://docs.microsoft.com/en-us/azure/communication-services/concepts/telephony/certified-session-border-controllers

  • Application Gateway supports UDP
  • Health checks require HTTP/HTTPS/TCP
  • Theoretical - not in production

Azure Direct Routing

Public Preview (No PROD)

What's your approach?

How are you handling load balancing and high availability for Genesis in Azure?

SQL Database

Your source of truth

SQL on VM

(What you are used to)

Storage Types

Pay Attention!!!!!

Standard HDD

Standard HDD was the original storage offering on Azure and offers cost-effective storage for non-I/O intensive workloads.

Standard SSD

Standard SSDs do offer guaranteed performance levels where the Standard HDD disks do not.

Premium SSD

Premium SSD is the most commonly used type of disk for SQL Server workloads.

Ultra SSD

Ultra SSD provides the lowest latency (submillisecond) and the highest potential IOPs.

Optimization Tips

  • Use Standard SSD for your operating system storage
  • Use Premium SSD for your data with pooling for data
  • Use Premium SSD for your log with no pooling
  • Use Standard HDD for your SQL backup storage
  • Use Reserved VM Instances

TempDB can optionally go into its own pool, or using the VM’s temporary disk, which offers low latency since it is physically attached to the physical server where the VMs are running.

 

Properly configured Premium SSD will see latency in single digit milliseconds.

99.9%
three nines
8.77 hrs/yr

A single VM's high-availability SLA

Should I use Availability Sets?

Maybe, but probably only if Availability Zones are unavailable in your region.

Availability Groups

Recommended

https://docs.microsoft.com/en-us/learn/modules/deploy-sql-server-virtual-machine/4-explain-high-availability-options

Basic Availability Group

Is this the same as a normal Availability Group (AG)?

  • Limited to 2 SQL servers (replicas)
  • No read-only replicas (like mirroring)
  • Can be tough to get working in Azure
  • VNNs require load balancer (single subnet)
  • DNNs require multi-subnet setup

https://docs.microsoft.com/en-us/azure/azure-sql/virtual-machines/windows/availability-group-overview

Availability Group

Requires Enterprise Licensing

It's unlikely you will be using this due to the cost...

More reading on SQL load balancing in Azure

  • https://docs.microsoft.com/en-us/azure/azure-sql/virtual-machines/windows/availability-group-distributed-network-name-dnn-listener-configure
  • https://docs.microsoft.com/en-us/azure/azure-sql/virtual-machines/windows/availability-group-vnn-azure-load-balancer-configure?tabs=ilb
  • https://docs.microsoft.com/en-us/azure/azure-sql/virtual-machines/windows/availability-group-overview
  • https://docs.microsoft.com/en-us/azure/azure-sql/virtual-machines/windows/availability-group-distributed-network-name-dnn-listener-configure

Azure Backup

For SQL Server

SQL on Linux

Wait, what did you say?

wget -qO- https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add -

sudo add-apt-repository "$(wget -qO- https://packages.microsoft.com/config/ubuntu/20.04/mssql-server-2019.list)"

sudo apt-get update
sudo apt-get install -y mssql-server
sudo apt-get install mssql-tools 

sudo /opt/mssql/bin/mssql-conf setup

sudo ufw allow 1433

sudo systemctl status mssql-server --no-pager

SQL Server support through open-source Postgres database

SQL Server running natively on Ubuntu

SQL in Containers

Linux containers are all the rage

https://docs.microsoft.com/en-us/learn/modules/introduction-sql-server-linux/5-containers

Web, at your service.

IIS and .NET

Install two Windows Server and the IIS web hosting role

  • Add a Virtual Network Adapter for each site you want to host (i.e., web., or agent.)
  • Use one Application gateway to handle multiple sites going to different backend pools

Application Gateway

Cloud powered load balancing (layer 7)

https://docs.microsoft.com/en-us/learn/modules/configure-azure-application-gateway/2-implement

Multiple-Site Routing

Path-based Routing

Application Gateway Components

Backup Pool Health View

Topology

Azure App Service

When Amtelco makes the jump to .NET CORE, we should be able to start using Azure App Services for serverless hosting.

Lab Review #1

Backups to Azure Storage Accounts

https://docs.microsoft.com/en-us/learn/modules/protect-virtual-machines-with-azure-backup/

Lab Review #2

High-Availability web using Application Gateways

https://docs.microsoft.com/en-us/learn/modules/load-balancing-https-traffic-azure/

Lab Review #3

High-Availability service using Azure Load Balancer

https://docs.microsoft.com/en-us/learn/modules/improve-app-scalability-resiliency-with-load-balancer/

Thank you

Questions?

Learn Security

Made with Slides.com