Who Am I? What Am I Doing Here?
Motivation
Today's talk will introduce you to "the cloud" and provide an introduction to one cloud: Microsoft Azure.
We will review key concepts around whether the cloud makes sense, hiring for the cloud, and review several cloud workloads.
Agenda
- Cloud Basics
- Getting a Feel for Azure
- Scalable Web Application
- Azure Data Platform
- BOPIS
- Microservices with AKS
What is the Cloud?
"The cloud" is simply a term describing a network of servers. There are four common types of cloud:
- Public cloud: services provided to the general public over the Internet.
- Private cloud: services provided on a private internal network. Typically on-premises.
- Hybrid cloud: services shared between public and private clouds.
- Community cloud: services and resources shared between distinct organizations.
What is Azure?
Azure is Microsoft's cloud offering. Microsoft provides a variety of services in Azure, ranging from virtual machine that you control all the way to software products like Microsoft Office.
Who are the Competitors?
There are two key players: Amazon Web Services (AWS) and Azure. Google and Alibaba are second-tier, and a variety of third-tier providers (IBM, Oracle, Tencent) follow.
Who are the Competitors?
Everything-as-a-Service
Product offerings break down into three key categories: Infrastructure-as-a-Service, Platform-as-a-Service, and Software-as-a-Service.
Key Questions to Ask
Here are several key questions you should ask yourself to determine whether you should investigate migrating into the cloud, and if so, to what extent.
Key Questions to Ask
1) What is your goal?
There are several viable goals for a cloud migration, such as:
- Reducing costs
- Improving performance
- Improving scalability
- Reducing administration work
Note that these goals might be in tension with one another, so you may need to rank priorities.
Key Questions to Ask
2) What is your current infrastructure?
Keeping your current infrastructure will act as the opportunity cost of moving to the cloud. Considerations include:
- Do you own your own data center, are you renting space, or do you keep servers in a closet somewhere?
- What are your current data center costs?
- Is your hardware near end-of-life?
- Is your hardware slow for the workloads you expect?
- Are you running close to the limit on those machines? Or maybe they're way overpowered?
Key Questions to Ask
3) What is your plan?
Which of the following makes the most sense to you?
- I want my company to be cloud-only--I do not want any on-premises servers.
- I want my company to be cloud-first--new solutions should be biased toward the cloud, but we recognize some products need to stay on-premises.
- I want a hybrid approach of cloud and on-premises. Some solutions or servers should remain on-premises and some solutions or servers should go into the cloud.
Key Questions to Ask
4) How much cloud experience do you have?
Key considerations here include:
- How many developers or architects have relevant cloud experience?
- How many operations personnel have relevant cloud experience?
- What is your strategy to get this experience?
Hiring is a possible strategy for building up skills.
Hiring for the Cloud
Which of the following best suits your needs?
- Consultant
- Contractor
- Full-time employee
Hiring for the Cloud -- Consultants
Bring in consultants under the following circumstances:
- You want to figure out if a cloud is right for you, or if so, how to maximize value.
- You want to build up the skills of existing employees (FTE or contract).
- You expect knowledge transfer or over-the-shoulder work rather than hands-on operation.
- You are interested in a proof of concept or an architectural design for a pilot.
Consultants are guides but won't carry you up the mountain.
Hiring for the Cloud -- Contractors
Bring in contractors under the following circumstances:
- You are interested in a pilot.
- You have some employees with cloud experience but need temporary staff augmentation as others get skilled up.
- You want somebody to check over the work you have done and make modifications as desired.
Contractors fill empty seats quickly and can help skill up employees, but they won't be there forever.
Hiring for the Cloud -- Full-Time Employees
Bring in full-time employees under the following circumstances:
- You are interested in developing a full product implementation.
- You have few or no current employees with relevant cloud experience.
- You have a good hiring process in place, especially if you don't currently have those skills on your team!
- You are okay with taking "the long view" with employees and build up skill over time.
You'll need cloud-proficient full-time employees over time; consultants and contractors aren't enough.
Hiring for the Cloud -- Full-Time Employees
Augment or Replace?
Can you invest in your current employees? Hopefully so!
Augment whenever possible. Cloud migrations aren't overnight and most skills are still relevant post-migration.
Hiring for the Cloud -- Who?
One myth of hiring for the cloud is the idea that you can get rid of administrators. This is not true! In the cloud, these people:
- Deal with Active Directory (e.g., Azure Active Directory)
- Own and manage virtual machines
- Configure the network, including links from on-premises to the cloud
- Manage and apply network security rules
- Configure and manage virtual private networks (VPNs)
- Deploy, monitor, and manage cloud-based services
Hiring for the Cloud -- Mixed Ops
The type of administrator who thrives in the cloud engages in "mixed" ops: DevOps, DataOps, MLOps, etc. This means:
- Infrastructure as code: scripting or programming
- Deploy assets programmatically rather than through the web interface
- Use source control and create build processes
As a bonus, ops people have a clear signal for improvements: saving money by optimizing queries or handling load more efficiently.
Scaling in the Cloud -- The Dream
Technical sales personnel for cloud organizations will sell you on limitless scale:
- Scale up as you need it and down when you don't--seamlessly!
- Save money by scaling down or even turning off services after hours
- As your company grows, scaling up is as simple as manipulating a slider
Scaling in the Cloud -- The Reality
Scalability is real, but it comes with certain costs.
- Downtime typically happens when switching performance tiers, especially for things like database servers.
- Scaling may require a downtime window, and you won't know exactly how long that window will be.
- Scaling has its practical limits.
- Pricing is usually linear with respect to scale.
Scaling in the Cloud -- The Advice
The best scalability scenarios are around seasonality, followed by "office hours."
Take a close look at which services can scale without downtime and which require downtime. Some services, such as web servers, can scale horizontally with no downtime. Others, like database servers, cannot.
Serverless Technologies
Cloud providers can also offer "serverless" products--you don't manage any of the infrastructure, but can execute code. These can be much less expensive in cases where you'd otherwise use a small percentage of a server's capacity.
Examples of serverless products in Azure include:
- Serverless SQL pools in Azure Synapse Analytics
- Azure SQL Database serverless compute tier
- Azure Functions
Agenda
- Cloud Basics
- Getting a Feel for Azure
- Scalable Web Application
- Azure Data Platform
- BOPIS
- Microservices with AKS
Azure Services
Lots of Azure services are available, as shown by Azure Charts.
Azure Service Utilization
Review the types of services which work well for your industry and organization size.
Azure Updates
Azure services update frequently!
Reference Architectures
Plenty of reference architectures give you an idea of how services fit together.
Agenda
- Cloud Basics
- Getting a Feel for Azure
- Scalable Web Application
- Azure Data Platform
- BOPIS
- Microservices with AKS
Scalable Web Application
Saving Money
Can we save money over this design?
- Cache heavily
- CDNs are cheap--use them!
- Scale if you experience bursty behavior
- Prefer well-designed, fast functions
- Look for service overlap: Azure Front Door Standard & Premium include a CDN plus a WAF.
- Remove Azure Search + Cosmos or SQL
Agenda
- Cloud Basics
- Getting a Feel for Azure
- Scalable Web Application
- Azure Data Platform
- BOPIS
- Microservices with AKS
Saving Money
Can we save money over this design? Yes, by reducing service counts!
- Typically, Databricks or Azure Synapse Analytics
- For smaller data sets, neither!
- Replace Cosmos DB with Azure SQL Database
- Look at Power BI Premium Per User
Agenda
- Cloud Basics
- Getting a Feel for Azure
- Scalable Web Application
- Azure Data Platform
- BOPIS
- Microservices with AKS
Buy Online, Pickup in Store (BOPIS)
"Buy Online, Pickup in Store," or BOPIS has become a method for brick-and-mortar stores to incorporate e-commerce elements.
Buy Online, Pickup in Store (BOPIS)
Saving Money
Can we save money over this design?
- Scale down less critical services
- Keep functions & notifications tight
Agenda
- Cloud Basics
- Getting a Feel for Azure
- Scalable Web Application
- Azure Data Platform
- BOPIS
- Microservices with AKS
Microservices with AKS
Saving Money
Can we save money over this design?
- Use Azure Container Instances for dev and test
- For fairly simple apps, use App Services instead
- Use the same Kubernetes cluster to deploy several microservices
- Reduce VM size for Kubernetes cluster
Wrapping Up
Microsoft Azure is a fully-featured cloud service provider offering a variety of services to suit different needs. These range from virtual machines and Infrastructure-as-a-Service offerings to Platform-as-a-Service offerings like databases, up to fully managed Software-as-a-Service products like Microsoft 365.
Wrapping Up
One area we did not cover today involves pricing. That's because I have a companion talk entitled Saving Your Wallet from the Cloud, accessible at https://csmore.info/on/wallet.