by David Maiolo 2018-03-28
Microsoft Azure Cloud Computing Platform and Services
In this article I’ll walk you through an overview of Microsoft Azure, and some of the cloud services it offers. We’ll also take a look at some of the basics of Cloud Computing and how they relate to Microsoft Azure.
Cloud Computing Overview
Cloud computing is the delivery of computing services such as servers, storage, databases, networking, software, and analytics via the internet. Any company offering one of these cloud services are called cloud providers and very often charge for the services centered on usage. This is similar to how a water or electric billing company’s pricing methodology works. The three key cloud providers in the market today are Amazon Web Services, Google Cloud Platform and Microsoft Azure.
There are really five main characteristics that define a cloud.
On-Demand Self-Service: Clouds allows you to provision and de-provision your resources on-demand through a web portal or application. This is handled in an automated fashion without the need for human help.
Ubiquitous Network Access: Clouds can be accessed from anywhere over the internet using thin or thick clients such as smartphones, laptops or a PC.
Resource Pooling: Cloud resources are pooled so that they can dynamically assigned, reassigned and unassigned per requirement.
Rapid Elasticity: Clouds provide the ability to rapidly expand and contrast resources based on user demands.
Measured Service: Clouds allow consumers to only pay for the computing resources they have used. As mentioned earlier, this concept is similar to utilities like water or electricity.
Cloud Servicing Models
The three main servicing models of a cloud are Software as a Service (SaaS), Platform as a Service (PaaS) and Infrastructure as a Service (IaaS). These models divide the ownership of resources under the model. There is also a newer model, Function as a Service (FaaS), which I will touch on briefly.
With Infrastructure as a Service (IaaS), you manage everything but the actual infrastructure. IaaS provides you the computing infrastructure, physical or (quite often) virtual machines and other resources like the virtual-machine disk image library, block and file-based storage, firewalls, load balancers, IP addresses and virtual local area networks.
Examples: Amazon EC2, Microsoft Azure, Rackspace, Google Compute Engine.
Platform as a Service (PaaS) provides computing platforms which typically include the operating system, programming language execution environment, database and a web server.
Examples: AWS Elastic Beanstalk, Microsoft Azure, Heroku, Force.com, Google App Engine, Apache Stratos.
The Software as a Service (SaaS) model provides you with access to application software often referred to as “on-demand software”. You don’t have to worry about the installation, setup and running of the application. The cloud provider will do that for you. You just have to pay and use it through some client.
Examples: Google Apps, Gmail, Microsoft Office 365.
There is also a rather recent cloud service model called Function as a Service (FaaS). FaaS provides a platform to develop, run, and manage application functionalities without the complexity of building and maintaining the infrastructure typically associated with developing and launching an app. Building an application following this model is one way of achieving a “serverless” architecture, and is typically used when building microservices applications.
Serverless computing can also be achieved using the PaaS model. These models are different in their implementation architecture, which has implications for scaling. In most PaaS systems, the system continually runs at least one server process and, even with auto scaling, a number of longer running processes are simply added or removed on the same machine. In a FaaS model, the functions are expected to start within milliseconds in order to allow handling of individual requests.
Cloud Deployment Models
Public Cloud: allow computing resources to be used by different organizations through public Internet on a pay as you go model. Cloud providers ensure some sort of separation for resources used by different organizations. This is known as multitenancy.
Private Cloud: is owned by an individual organization and maintained either by this organization or a third party and can be located on site or off-site. Computing resources are behind the corporate firewall. An example of this would be System Center Virtual Machine Manager (SCVMM).
Community Cloud: is owned and shared by multiple organizations with a shared interest.
Hybrid cloud: is the combination of any type of cloud model mentioned above.
Benefits of Cloud Computing
Cost: Clouds eliminate the need to buy H/W, S/W, and setting up and running On-Site datacenters.
Speed: Clouds provide agility in provisioning computing resources via Self-Service features.
Global Scale: Clouds allow you to scale elastically from any geographic location.
Productivity: Removes the need to “rack and stack” and lets you focus your time on achieving the goals of your end project.
Reliability: Performs data backup, disaster recovery and business continuity easier and less expensively.
Performance: Provided reduced network latency.
Overview of Microsoft Azure
Azure is a growing collection of Microsoft cloud computing services for building, testing, deploying, and managing applications and services through a global network of Microsoft-managed data centers. It provides software as a service (SaaS), platform as a service (PaaS) and infrastructure as a service (IaaS) and supports different programming languages, tools and frameworks, including Microsoft-specific and third-party software and systems.
Azure has expanded to over 50 regions and is available in 140 countries.
Azure was announced in 2008 and released 2010 as “Windows Azure” and was renamed to “Microsoft Azure” in 2014.
Azure has made significant advances over the years and offers features that currently far surpass many of the competitors (Amazon and Google) such as:
- PaaS Capabilities (such as IIS Server)
- .Net Compatibility
- Security Offerings
- Hybrid Solutions for Seamless Cloud Connectivity
- Integrated Environment
- Gentle Learning Curve (lots of online learning available)
- The ‘Enterprise Agreement’ Advantage
Azure Domains and Services
Azure has been constantly growing its list of integrated services, features, and bundled suites since it became public. Let’s take a look at some of the major domains Azure handles and the services offered in those domains.
Top Services by Cloud Models
- Top Azure IaaS services: Containers and Virtual Machines.
- Top Azure PaaS Services: App Services, Bing Search and Azure CDN.
- Top Azure SaaS Services: Office 365, Microsoft Intune, and Microsoft Dynamics 365.
Microsoft has recently stated the increasing importance of containers as a part of the Azure model. Broadly, containers are operating system virtualizations as opposed to virtual machines being machine virtualizations. Containers are largely being stated as the new form of virtualization by Microsoft. 10 years ago, machine virtualization changed how we deployed applications and services in the data center. The importance of virtual machines will likely continue, however operating system virtualization with Azure containers has started to penetrate the market.
Machine virtualization, such as Hyper-V, creates a partition for each OS deployment. Each partition essentially simulates a machine using software and gives the impression of multiple physical machines running instead of the actual single host. However, for each application you might install, you’ll have one or more VMs, each with its own OS to configure, patch, and maintain. No matter how much the deployment process is optimized, a large file copy will take place and an OS specialization will take time to run.
Containers are a newer type of virtualization called operating system virtualization. Whereas machine virtualization takes a single machine and simulates several machines, containers take a single operating system installation and simulate several operating system installations.
The following container services are available in Azure:
- Container Registry: Store and manage container images across different types of Azure deployments
- Container Instances: Create new containers with a command
- Service Fabric: Develop microservices and orchestrate containers on Windows/Linux
- Azure Container Service (AKS): Simplify the deployment, management, and operations of Kubernetes
Compute resources refer to the hosting model for the computing resources that an Azure application will run on. Within Intrastructure-as-a-Service (IaaS), the VMs are provisioned along with associated network and storage components.
Platform-as-a-Service (PaaS) affords a managed hosting environment, where the deployment of applications do not require the management of VMs or networking resources. The App Service is an example of a PaaS service under the Computer domain.
Functions-as-a-Service (FaaS) is the final step in removing administration from the computer domain. Rather than create compute instances and then deploy code, code is simply deployed, and the service runs it automatically. This is known as serverless architecture, and scales up or down to the level required for traffic. Functions are a FaaS service.
The following compute resources are available in Azure:
- Virtual Machines: Provision Windows and Linux virtual machines
- Virtual Machine Scale Sets: Manage and scale Linux and Windows virtual machines (create thousands of identical virtual machines in minutes)
- App Service: Create cloud apps for web and mobile
- Functions: Process events with serverless code
- Batch: Job scheduling and compute management
- Container Instances: Run containers
- Service Fabric: Develop microservices and orchestrate containers on Windows or Linux
- Azure Container Service (AKS): Deployment, management, and operations of Kubernetes
- SQL Server on Virtual Machines: Host SQL Server apps in the cloud
Software-defined networking is a domain of the Azure infrastructure-as-a-Service (IaaS) scenario. Some networking services provided by Azure are:
- ExpressRoute: Dedicated private network fiber connections to Azure
- Azure DNS: Host a DNS domain in Azure
- Virtual Network: Provision private networks, optionally connect to on-premises datacenters
- Traffic Manager: Route incoming traffic for high performance and availability
- Load Balancer: Deliver high availability and network performance to applications
- VPN Gateway: Establish secure, cross-premises connectivity
- Network Watcher: Network performance monitoring and diagnostics tool
Azure Storage falls within a domain that provides highly available, secure, durable, scalable, and redundant storage. Azure Storage comprises three primary services: Blob storage, File storage, and Queue storage.
- Blob Storage: REST-based object storage for unstructured data
- File Storage: File shares that use the standard SMB 3.0 protocol
- Queue Storage: Scale apps according to traffic. Queue messages can be up to 64 KB in size, and a queue can contain millions of messages.
- Managed Disks: Persistent, secured disk storage for Azure virtual machines
- Data Lake Store: Hyperscale repository for big data analytics workloads
Web + Mobile
The web and mobile domain both compromise app development within Azure. The Web Apps services make use of .NET, Java, Node.js, PHP, and Python on Windows or .NET Core, Node.js, PHP or Ruby on Linux. The Mobile Apps service is designed to make apps for iOS, Android, Windows, or Mac.
- API Management: Publish APIs to developers
- Web Apps: Create and deploy Web apps at scale
- Mobile Apps: Build and host the backend for mobile app
A cloud database is a database that runs on a cloud computing platform, and access to it is provided as a service. The most notable Azure database service is the Azure SQL Database service, which is a managed cloud database (SaaS) provided as part of the Databases domain.
- Azure SQL Database: Relational SQL Database as a service
- Azure Cosmos DB: Globally distributed, multi-model database
- SQL Data Warehouse: Data warehouse as a service
- Azure Database for MySQL: MySQL database service for app developers
The idea behind the Analytics services is to provide solutions that turn big-data into actionable insights which are meant to gather, store, process, analyze, and visualize data of any variety, volume, or velocity.
- HDInsight: Provision cloud Hadoop, Spark, R Server, HBase, and Storm clusters
- Apache Spark for Azure HDInsight: Apache Spark in the cloud
- Apache Storm for HDInsight: Real-time stream processing for big data
- R Server for HDInsight: Predictive analytics, machine learning, and statistical modeling for big data
- Stream Analytics: Real-time data stream processing from millions of IoT devices
- Event Hubs: Receive telemetry data from devices
- Data Factory: Hybrid data integration
- Azure Analysis Services: Analytics engine as a service
- Azure Databricks: Apache Spark-based analytics platform
- Power BI Embedded: Data visualizations for applications
AI + Machine Learning
Machine learning is a method that allows an algorithm to use existing data to forecast future behaviors, outcomes, and trends. Machine learning lets a program learn without being overtly programmed. Azure Machine Learning is a cloud predictive analytics service that makes it possible to create and deploy predictive models as analytics solutions.
- Machine Learning Studio: Build, deploy, and manage predictive analytics
- Text Analytics API: Evaluate sentiment and topics
- Project Academic Knowledge: Academic content from the Microsoft Academic Graph
- Computer Vision API: Actionable information from images
- Content Moderator: Automated image, text, and video moderation
- Emotion API: Personalize user experiences with emotion recognition
- Face API: Detect faces in photos
- Bing Speech API: Convert speech to text and back
- Bing Autosuggest API: Autosuggest options for searches
- Bing Spell Check API: Detect and correct spelling mistakes
- Translator Speech API: Speech translation with a REST API call
- Translator Text API: Machine translation with a REST API call
- Bing Web Search API: Search details from web documents
- Bing Video Search API: Search for videos
- Bing Image Search API: Search for images
- Bing News Search API: Search for news
Security + Identity
Also known as identity and access management solutions, Security + Identity services are designed to guard access to applications and resources from On-Premises and cloud data, through services such as multi-factor authentication and conditional access policies.
- Azure Active Directory: Synchronize on-premises directories and enable single sign-on
- Multi-Factor Authentication: Extra authentication step for applications
- Azure Information Protection: Protect your sensitive information
- Azure Active Directory Domain Services: Join Azure virtual machines to a domain without domain controllers
- Key Vault: Maintain control of keys and other secrets
The primary tool for managing Azure is the Azure Portal where services are available to be added as favorite to the portal.
- Microsoft Azure portal: Build, manage, and monitor all Azure products
- Backup: Server backup to the cloud
- Scheduler: Run jobs on recurring schedules
- Log Analytics: Collect machine data from on-premises and cloud
- Traffic Manager: Route incoming traffic for high performance and availability
- Azure Monitor: Monitoring data for Azure resources
- Security & Compliance: Threat detection and prevention
- Insight & Analytics: Search, correlate, and analyze data from the cloud
- Network Watcher: Network performance monitoring and diagnostics tool
- Cloud Shell: Browser-based shell (PowerShell Command-lets)
- Azure mobile app: Azure resources via mobile app
- Azure Policy: Implement corporate governance and standards