Azure Book
Azure Book
Azure Book
E-book Series
E-book Series
The Developer’s
Guide to Azure
NEW CONTENT ON:
Web, Databases, AI & Machine Learning,
Security, and DevOps
The Developer’s 2
Guide to Azure
03 / 43 / 90 /
Introduction Chapter 3: Securing you Chapter 6: Deploying your
We’re here to help application services and reducing costs
How can Azure help to secure your How can Azure deploy your services
application? and reduce costs?
05 / Encryption
Azure Security Center
Infrastructure as Code
Azure Blueprints
Logging and monitoring Containers in Azure
Chapter 1: Getting started
Tracking your Azure usage
with Azure Creating a billing alert
What can Azure do for you?
Where to host your application? 55 / How to use your billing APIs?
Where to deploy, and when?
Azure App Service features
Azure Functions
Chapter 4: Adding
intelligence to your
Azure Logic Apps
Azure Batch application 102 /
Containers How can Azure integrate AI into
What to use, and when?
Chapter 7: Share your code,
your application?
Making your application more track work, and ship software
What to use, and when?
performant Cognitive Services How can Azure help you plan smarter,
Azure Front Door Azure Cognitive Search collaborate better, and ship your
Azure Content Delivery Network Azure Bot Service applications faster?
Azure Cache for Redis Azure Machine Learning Studio Azure Boards
Azure Security Developer tooling for AI Azure Repos
DevOps AI and mixed reality Azure Pipelines
Developer tools Using events and messages in your Azure Test Plans
application Azure Artifacts
GitHub
29 /
75 /
Chapter 2: Connecting your
application with data
111 /
Chapter 5: Connecting
What can Azure do for your data? your business with IoT Chapter 8: Microsoft Azure
Where to store your data? and gaining insights in action
Azure SQL Database How can Azure connect, secure, Navigating the Azure portal
Azure Cosmos DB manage, monitor, and control Developing your first web application
Azure Database for MySQL, your IoT devices in the cloud? and database on Azure
PostgreSQL, and MariaDB Azure IoT Hub Extending applications with Logic
Azure Storage Azure IoT Central Apps and Cognitive Services
Azure data analytics solutions Azure IoT Edge Ready for production
Azure Digital Twins
Azure Sphere
Azure Maps
Windows for IoT
124 /
Azure RTOS
Chapter 9: Summary and
Learn more about Azure IoT
resources
What to use, and when?
Keep learning with Azure
About the authors
February Lorem ipsum dolor sit
Theamet,
Developer’s
consectetur 3
2018 adipiscing elit Guide to Azure
The
This guide is designed for developers and architects
who are starting their journey into Microsoft Azure.
In this guide, you’ll learn how to get started and
which services you can use for your scenarios.
Azure
lifetime of your application.
The Developer’s 4
Guide to Azure
We’re here You can also get help through other channels,
such as:
01 /
Mus ma dolor Duntiaspel is vel estotatem qui qui sitatio
nsedit, ea sere volor molupta dolut officto
Getting
You’ve made the decision to build applications
dolum earum minctur simillab is arum quatinverro
on the cloud, and now you want to get started.
te destibus, tem adis eum rehenia si
You don’t need to do much—just sign up for
omnimusam
an Azure free veni nossita.
account. This includes 12 months
started
of free services, including $200 in credits for
30 days, enabling you to explore paid Azure
services, and over 25 services that you can use
with
for free ad infinitum.
Azure
use, and then start running your applications
on Azure.
The Developer’s 6
Guide to Azure
With Azure, you can get your work done faster, take
your skills to the next level, and imagine and build
tomorrow’s applications today.
Where to host
Azure App Service comprises the following:
your application?
Web Apps: As one of the most widely used
Azure services, Web Apps can host your web
applications or APIs. A web application is basically
an abstraction of a web server, such as Internet
Information Services (IIS) or Tomcat, that is used to
Azure offers services designed to provide what you host HTTP-driven applications. Web Apps can host
need to deliver and scale every application. When applications written in .NET, Node.js, Python, Java,
you use Azure services to run your application, you or Go, and you can use the available extensions to
get scalability, high availability, a fully managed run even more languages.
platform, and database services. Azure also offers
the following options for running your application.
QUICK
START
Create an ASP.NET Core web app
Azure App Service in Azure
Service features
After deploying a new version of your application to
a deployment slot, you can test whether it works as
expected and then move it into your production slot.
You can either choose a higher pricing tier (ranging You use deployment slots within environments such
from free to premium) or increase the number of as development, test, or production. You don’t use
application instances that are running. It’s even deployment slots as environments because they all
possible to have Azure App Service automatically reside in the same App Service plan.
scale the number of instances for you, based on a
schedule or metric, such as CPU, memory, or HTTP
queue length.
The Developer’s 9
Guide to Azure
1. Retrieves the latest source code from the domain, which you can do by mapping that domain
repository that you indicate name to App Services. Here’s how to do that.
2. Builds the code according to a template that Additionally, you can ensure that your application is
you pick (ASP.NET, Node.js, Java, and so on) served over HTTPS by using an SSL/TLS certificate.
Just bring your own certificate, buy one directly
3. Deploys the application in a staging from the Azure portal, or create a free App
environment and load-tests it Service Managed Certificate. When you buy an SSL
certificate from the Azure portal, you buy an Azure
4. Deploys the application to production after App Service certificate. You can configure this to be
approval (you can indicate whether you want to used by your custom domain bindings.
use a deployment slot)
App Service Managed Certificates are free, are
issued by DigiCert, and offer the option to secure
your web applications hosted using a custom
The Developer’s 10
Guide to Azure
sub-domain. They are also managed by App Service end. For this scenario, you can use an Azure App
and are renewed automatically. Service Environment. This affords you a very high
scale and gives you control over isolation and
STEP BY network access.
STEP
Purchase and configure an SSL
certificate in this walk-through Snapshot Debugger for .NET
Virtual machines
Azure
Input and output bindings connect your function
code to other services, including Azure Storage,
Functions
Azure Cosmos DB, Azure Service Bus, and even
third-party services such as Twilio and SendGrid.
Using Azure Functions, you can build small pieces
of functionality quickly and host them in an elastic
environment that automatically manages scaling.
With Azure Functions, you can write the code you
need for a solution without worrying about building With Azure Functions, it’s possible to pay only
a full application or the infrastructure to run it. for functions that run, rather than having to keep
A function is a unit of code logic that’s triggered compute instances running all month. This is also
by an HTTP request or an event in another Azure called serverless because it only requires you to
service, or is based on a schedule. create your application—you don’t have to deal with
any servers or even the scaling of servers.
Some of the key features of Azure
Functions include: You can write Azure Functions in .NET, JavaScript,
Java, and a growing list of languages.
• Automated and flexible scaling – Keep the
focus on adding value instead of managing
An application that uses Azure Functions activates
infrastructure.
a function every time a new image file is uploaded
to Azure Blob storage. The function then resizes the
• Choice of language – Write functions using
image and writes it to another Blob storage account.
your choice of C#, Java, JavaScript, Python, and
PowerShell.
Data from the blob that triggered the function is
passed into the function as the myBlob parameter,
• End-to-end development experience – From
which includes the Blob URL. Use the outputBlob
building and debugging to deploying and
output binding parameter to specify which Blob
monitoring with integrated tools and built-in
to write the result to. There’s no need to write the
DevOps capabilities.
plumbing for connecting to Blob storage; you just
• Simplified integration – Easily integrate with configure it.
Azure services and software-as-a-service (SaaS)
offerings.
EXERCISE
Create your first Azure function
• Pay-per-use pricing – Pay only for the time using the Azure portal
spent running your code, with a Consumption
hosting plan.
The Developer’s 13
Guide to Azure
Azure
2. Using the data in the email, the logic app
checks on the availability of the ordered item in
Logic Apps
SQL Server.
Logic Apps has many available connectors to APIs Microsoft Power Automate is a SaaS offering for
that can connect to Azure SQL Database, Salesforce, automating workflows across the growing number
SAP, and so on. of applications and SaaS services that business users
rely on. While Logic Apps is aimed more toward a
You can also expose your own APIs or Azure
developer audience, Microsoft Power Automate is
Functions as connectors to use in a logic app,
targeted toward business users, administrators, and
making it possible for you to easily perform actions
office workers.
against external systems in your workflow or have
your logic app be activated by one of them. Microsoft Power Automate offers an easier path
toward simple integration workflows. Logic Apps
Just like Azure Functions, Logic Apps is serverless
offers the ability to extend Power Automate with
and scaled automatically, and you pay for them only
more advanced workflow capabilities. An example
when they’re running.
of additional capabilities that Logic Apps offers is
the ability to run inline code within the workflow.
The following is an example of a workflow in
Logic Apps: Logic Apps versus Power Automate
1. The logic app is activated when an email Both Microsoft Power Automate and Logic Apps
containing a shipping order arrives in offer designer-first integration services that can
Office 365. create workflows. Both services can integrate with
various SaaS and enterprise applications; however,
they are both targeted at different users.
The Developer’s 15
Guide to Azure
Power Automate
Business Logic Apps
needs
Design and test in non-production Application life DevOps: source control, testing,
environments; promote to cycle management support, automation, and manageability
production when ready ((ALM)
(A LM) in Azure Resource Manager
Azure Batch
If you need to run large-scale batch or high-
performance computing (HPC) applications on
VMs, you can use Azure Batch. Batch creates and
manages a collection of thousands of VMs, installs
the applications you want to run, and schedules
jobs on the VMs. You don’t need to deploy and
manage individual VMs or server clusters; Batch
schedules, manages, and autoscales your jobs so
you only use the VMs you need.
TUTORIAL
Get started on Azure Batch with
these step by step tutorials
The Developer’s 17
Guide to Azure
Containers
In addition, you pay only for the agent nodes within
your clusters, not for the masters. As a managed
Kubernetes service, AKS provides automated
Kubernetes version upgrades and patching, easy
cluster scaling, a self-healing hosted control plane
While much more lightweight, containers are
(masters), and cost savings, since you only pay for
similar to VMs, and you can start and stop them in
running agent pool nodes.
a few seconds. Containers also offer tremendous
portability, which makes them ideal for developing With Azure handling the management of the nodes
an application locally on your machine and in your AKS cluster, there are many tasks that you
then hosting it in the cloud, in test, and later in don’t have to perform manually, such as cluster
production. upgrades. Because Azure handles these critical
maintenance tasks for you, AKS does not provide
You can even run containers on-premises or in
direct access (such as with SSH) to the cluster.
other clouds—the environment that you use on
your development machine travels with your
container, so your application always runs in the QUICK
START
same ecosystem. Get started with Azure
Kubernetes Service
Scale and orchestrate containers with
Azure Kubernetes Service Host containers with Azure
Container Instances
Azure Kubernetes Service (AKS) makes it simple to
create, configure, and manage a cluster of VMs that You can host your container using Azure Container
are preconfigured to run containers with support Instances. Container Instances provides fast,
for both Linux and Windows containers. This means isolated compute to meet traffic that comes in
that you can use your existing skills to manage and spikes, without the need to manage servers. For
deploy applications that run in containers on Azure. example, AKS can use Virtual Kubelet to provision
pods inside Container Instances that start in
AKS reduces the complexity and operational
seconds. This enables AKS to run with just enough
overhead of managing a Kubernetes cluster by
capacity for an average workload. As you run out
offloading much of that responsibility to Azure. As
of capacity in your AKS cluster, you can scale out
a hosted Kubernetes service, Azure handles critical
additional pods in Container Instances without
tasks such as health monitoring and maintenance.
any additional servers to manage. The Container
The Developer’s 18
Guide to Azure
Instances service is billed per second, per virtual You can also use Container Registry for your
CPU, per gigabyte, or by memory usage. existing container development and deployment
pipelines. Use ACR Build to build container images
What to use,
Some of the services that run your application in
Azure can work together in a solution, while others
and when?
are more suited to different purposes.
Run your
Business
Monolithic Mobile application Microservice
Compute- process
and N-tier application anywhere architecture
intensive jobs orchestration
applications back end (including applications
on-premises)
Web Apps*
Mobile
Apps*
Functions
Logic Apps
Virtual † †
Machines*
Kubernetes
Service*
Service
Fabric*
Container
Instances*
Batch*
* Services with an asterisk have a free tier that you can use to get started at no cost.
† For lifting and shifting existing applications to Azure.
The Developer’s 20
Guide to Azure
application more
Many modern applications have users all over
the world. Providing a performant experience for
everyone is challenging, to say the least. The most
Azure
Azure Front Door can help. This service can
route traffic from users to the most performant
Front Door
application endpoint for them to improve
performance. Azure Front Door can route to
available endpoints, while avoiding endpoints that
are down.
Your users may be spread across the globe and, Azure Traffic Manager does this as well, but in a
at times, they may be traveling. This can make it different manner to Azure Front Door. Azure Front
difficult to ensure that they have a performant Door works at OSI layer 7 or the HTTP/HTTPS
experience and that your application is available layer, while Azure Traffic Manager works with
and secure, regardless of location. DNS. In other words, Azure Front Door works on
the application level, and Azure Traffic Manager
works on the network level. This is a fundamental
difference that determines the capabilities of
the services.
Azure Front
Front
Door
You need application layer features such
Y
as
a URL rewriting and WAF
The Developer’s 23
Guide to Azure
Azure Content
Not only is this easy to do, but it also improves
the performance of your application in the
Delivery Network
following ways:
QUICK
START
Get started with Azure Content
Delivery Network
The Developer’s 24
Guide to Azure
Azure Cache
This can improve the performance of your
application dramatically. Here’s how this
for Redis
workflow operates:
Every modern application works with data. When 2. If the data is not there, the application gets
you retrieve data from a data store such as a it from the database and stores the data in
database, this typically involves scanning multiple the cache.
tables or documents in some distant server,
weaving the results together, and then sending the 3. The next time the application searches for that
result to the requesting device. This, of course, takes piece of data, it will find it in the cache, saving a
time and can frustrate and annoy your users. trip to the database.
To eliminate some of these “roundtrips,” you can Azure provides Cache-as-a-Service with Azure
cache data that doesn’t change often. This way, Cache for Redis. This is based on the open-
instead of querying the database every time, you source Redis project and is now backed by
can retrieve some of the data from a cache, like industry-leading SLAs. It is highly performant
Azure Cache for Redis. The benefit of the cache is and has advanced options, such as clustering
that it stores data in a simple format, such as key- and geo-replication.
value. You don’t need to run a complex query to get
this data—you just need to know the key to retrieve
EXERCISE
the value. Get started with Azure Cache
for Redis
The Developer’s 25
Guide to Azure
Azure Security
Here are some of the Azure security services that
will help you to create secure solutions:
DevOps
Azure includes a number of services that are used
by development teams to implement DevOps
within their teams and organizations. DevOps
teams implement a similar set of workflows
and processes:
There are a few different aspects that encompass
what DevOps is and what it means for every
• Share code, track work, and ship software.
development team and organization. The
word itself is a combination of “Dev” and “Ops”
• Plan, track, and discuss work across the team.
that refers to the removal of silos between
development and operations teams, encouraging • Implement continuous integration and
collaboration across different disciplines and continuous delivery (CI/CD) to deliver value in
the adoption of shared processes and tools. short increments.
Essential DevOps practices include agile planning,
continuous integration, continuous delivery, and
GitHub
the monitoring of applications.
GitHub offers a number of DevOps features, the
“DevOps is the union of people, process, and
most notable of which is the ability to create,
technology to enable continuous delivery of value to
manage, and use Git repositories. This includes
our end users.”
additional capabilities for teams to communicate
— SAM GUCKENHEIMER
on work being done through GitHub Issues, and
manage the process of merging code by using the
GitHub Pull Request functionality.
N
I O
N CO AT
LA N R
DE
U
S
FE
ED
US BA
• GitHub Actions – CI/CD workflow automation
BU
UO CK
ILD
TI
N TE to build, test, and deploy your code from
N E RA
CO OP GitHub.
Figure 1-1: Essential DevOps practices • GitHub Advanced Security – Use advanced
features to secure your code by discovering
The Developer’s 27
Guide to Azure
vulnerabilities with Semmle’s semantic code and private sources, and integrate package
analysis engine, CodeQL. sharing into your CI/CD pipelines.
• GitHub Open Source Security – Report and • Azure Repos – Provide Git repositories for
disclose security vulnerabilities in open-source source control of your code.
code through security policies on projects to let
communities know the best way to responsibly DevOps integration
report vulnerabilities.
You can also use your favorite DevOps toolchain.
• GitHub Packages – Safely publish and consume Azure provides integration with popular open-
packages within your organization or across the source and third-party tools and services. The
entire world. various Azure DevOps services can also be used in
multiple combinations of configurations integrated
Azure DevOps with your favorite DevOps toolchain.
Azure offers several services to more easily You could use Azure Pipelines or deploy directly
implement DevOps practices within your team and to the Azure platform from your favorite CI/CD
organization. The Azure DevOps Services can be solution, such as Jenkins.
used individually or in combination with each other:
Azure services, third-party DevOps tools, and
• Azure Pipelines – Provide build and release related products all work together to help meet the
services to support continuous integration and most common business needs and scenarios.
the delivery of your applications.
RESOURCE
Azure includes a collection of SDKs for .NET, Node. HUB
js, Python, Java, and more. These are built on a Learn Azure in a Month of
Lunches
common core for easy use of Azure services,
with a focus on consistency, familiarity, and
Azure Fundamentals
language idiomaticity.
February Lorem ipsum dolor sit
Theamet,
Developer’s
consectetur 29
2018 adipiscing elit Guide to Azure
02 /
Mus ma dolor Duntiaspel is vel estotatem qui qui sitatio
nsedit, ea sere volor molupta dolut officto
Connecting
dolum earum minctur simillab is arum quatinverro
te destibus, tem adis eum rehenia si
omnimusam veni nossita.
your
application
with data
The Developer’s 30
Guide to Azure
Where to store
All services have a free tier that you can use
to get started.
SQL
Database*
MySQL*
PostgreSQL*
MariaDB*
Azure
Cosmos DB*
Blob*
Table*
Queue*
File*
Disk*
Data Lake
Store*
SQL Data
Warehouse*
* Services with an asterisk have a free tier that you can use to get started at no cost.
The Developer’s 32
Guide to Azure
Azure SQL
• Transparent Data Encryption (TDE), which
adds a security layer to protect data at rest from
Database
unauthorized or offline access
Azure Cosmos DB
• A free tier, which enables you to develop and
test applications, offering the first 400 RU/s and
5 GB of storage for free for the lifetime of the
account.
Azure Cosmos DB is a new kind of database made In addition to all these features, Azure Cosmos DB
for the cloud. Its key features include: offers different APIs with which you can store and
retrieve data, including SQL, JavaScript, Gremlin,
• A 99.99 percent SLA (up to 99.999 percent for MongoDB, Azure Table Storage, Apache Cassandra,
read and write operations) that includes low and Etcd. Different APIs handle data in different
latencies (less than 10 ms on reads and less than ways. You can use documents as data as well as
15 ms on writes). unstructured tables, graphs, and Blobs. You use the
API that fits your needs, and Azure Cosmos DB takes
• Geo-replication, which replicates data to other
care of the rest.
geographical regions in real time.
You benefit from cloud-grade performance,
• Tunable data consistency levels, so you
scalability, and reliability, while using the
can enable a truly globally distributed data
programming model you’re already accustomed to.
system. You can choose from a spectrum of
data consistency models, including strong
consistency, session consistency, and eventual
TUTORIAL
consistency. Get started with Azure
Cosmos DB
• Traffic Manager, which sends users to the
service endpoint to which they are closest.
Azure Database
• Secured protection of sensitive data at rest and
in motion
• Predictable performance
Blob storage
The five Azure Storage types are Blob, Table,
Queue, File, and Disk (Figure 2-1):
Azure Blob storage stores large, unstructured data—
literally, blobs of data. This data can be video, image,
audio, text, or even virtual hard drive (VHD) files for VMs.
QUICK
START
Get started with Azure Blob
storage
The Developer’s 36
Guide to Azure
Table storage with Windows and Linux and access it from either
the cloud or on-premises systems. Like the other
Azure Table storage is an inexpensive, extremely services in Azure Storage, File storage is scalable and
fast NoSQL key-value store that you can use to store inexpensive.
data in flexible tables. A table can contain one row
describing an order and another row describing
STEP BY
customer information. You don’t need to define a STEP
Get started with Azure File
data schema, making Table storage very flexible. storage
TUTORIAL
Disk storage
Get started with Azure Table
storage
Azure Disk storage is similar to File storage but is
specifically meant for high I/O performance. It is
Queue storage perfect for use as a drive in a VM that requires high
performance to run SQL Server, for instance. Disk
Azure Queue storage is an unusual type of storage. storage is available only in the premium pricing tier
While it’s used to store small messages of data, of Azure Storage.
its main purpose is to serve as a queue. You put
messages in the queue and other processes pick Azure Data Lake Storage
them up. This pattern decouples the message
The previous data stores were intended for regular
sender from the message processor, resulting in
application use or for use with VMs. Azure Data
performance and reliability benefits. Queue storage
Lake Storage, on the other hand, is storage for big
is found in previous versions of Windows.
data applications. It provides massively scalable,
secure data lake functionality built on Azure Blob
TUTORIAL storage. You can use it to store large amounts of
data in its native format—structured, unstructured,
Get started with Queue storage
or anything in between. The point of Data Lake
Storage is to hold your raw data so that you can
analyze it or transform and move it.
File storage
The following are the main characteristics of Azure Azure Synapse Analytics
Data Lake Storage:
Azure Synapse Analytics (formerly Azure SQL
• Unlimited storage capacity. A single file can be Data Warehouse) brings together enterprise data
larger than one petabyte in size—200 times warehousing and big data analytics. It gives you
larger than what other cloud providers offer. the freedom to query data on your terms, using
either serverless on-demand or provisioned
• Scalable performance to accommodate resources at scale.
massively parallel analytics.
When you need a traditional data warehousing
• Data can be stored in any format, without a solution that is completely managed, scalable in
schema. size, and performant and secure, Azure Synapse
Analytics can provide the solution. Store data
This is a very different approach from the traditional in predefined schemas and query it by using the
data warehouse, in which you define data schemas familiar SQL Server dialect.
upfront.
With Azure Synapse, enabling BI and machine
You can store all of the data that you get from learning is a breeze. It is deeply integrated with
Internet of Things (IoT) devices (collecting Power BI and Azure Machine Learning to greatly
temperature data, for example) in Data Lake expand the discovery of insights from all your data
Storage. You can leave the data in the store and and apply machine learning models to all your
then filter through it to create a view of the data intelligent applications.
per hour or per week. Storing the data in Data Lake
Storage is inexpensive, so you can keep years of Build end-to-end analytics solutions with a unified
data there at a very low cost. experience. The Azure Synapse studio provides a
unified workspace for data prep, data management,
data warehousing, big data, and AI tasks. Data
TUTORIAL engineers can use a code-free visual environment
Get started with Azure Data for managing data pipelines, and business analysts
Lake Storage using the Azure
Portal can securely access datasets and use Power BI to
build dashboards in minutes, all while using the
same analytics service.
STEP BY
STEP
Create an Azure Synapse
Analytics SQL pool
The Developer’s 38
Guide to Azure
Azure data
well as lift and shift your SQL Server Integration
Services (SSIS) packages to the cloud.
analytics EXERCISE
Azure Data Lake Analytics Stream Analytics can get its data from many
services, including Azure Blob storage, Azure Event
Another Azure service for performing data analytics Hubs, and Azure IoT Hub. You can analyze the data
tasks is Azure Data Lake Analytics. With this by using a simple SQL-like language or custom
service, you can analyze, process, and transform code. After querying and filtering the stream of
potentially massive amounts of data from Azure data, Stream Analytics can output the result to
Storage and Azure Data Lake Storage. many Azure services, including Azure SQL Database,
Azure Storage, and Azure Event Hubs.
Azure Data Lake Analytics allows you to create and
submit jobs that query data, analyze it, or transform
QUICK
it. You can write these jobs in U-SQL, which is START
an SQL-like language, and extend U-SQL with Create a Stream Analytics job
using the Azure portal
Microsoft R and Python.
You pay for the jobs that you submit and run, and
the service scales automatically depending on the Azure Time Series Insights
power that the jobs need. Azure Data Lake Analytics
You can use Azure Time Series Insights to get quick
is typically used for long-running analytics jobs
insights on large amounts of typically IoT-type data.
against massive amounts of data.
This service gets data from Azure Event Hubs, IoT
Hub, and your own reference inputs, and it retains
STEP BY
STEP that data for a specified amount of time.
Create your first U-SQL script
through the Azure portal With Azure Time Series Insights, users can query
and analyze data through a visualization tool as
soon as it comes in. Time Series Insights not only
Azure Stream Analytics analyzes data, but also ingests and holds it for a
while. This is like Azure Analysis Services, where
You can use the Azure Stream Analytics service data lives in-memory in a model for users to query.
to analyze, query, and filter real-time streaming The key differences are that Time Series Insights
data. For example, when you receive a stream of is optimized for IoT and time-based data, and it
temperature data from an IoT device, it tells you contains its own data visualization tool.
how warm it is outside. It might provide the same
temperature every second for an hour until the
temperature changes, but you are only interested in TUTORIAL
the changes. Azure Stream Analytics can query the Explore a Time Series Insights
demo environment from your
data in real time and store only the differential data browser
in an Azure SQL Database.
The Developer’s 40
Guide to Azure
Azure Databricks allows you to run a managed and HDInsight is a platform within Azure that you can use
scalable Databricks cluster in the cloud. Databricks to run open-source data analytics services. You can
provides a unified analytics platform with a host also use it to run specialized clusters of your favorite
of tools and capabilities. Within Databricks, you open-source data analytics tools. The advantage
can run optimized versions of Apache Spark to do of running these tools in HDInsight is that they’re
advanced data analytics. managed, which means you don’t have to maintain
VMs or patch operating systems. Plus, they can scale
In addition to Spark-based analytics, Databricks and easily connect to one another, other Azure
provides interactive notebooks and integrated services, and on-premises data sources and services.
workflows and workspaces that you can use to
collaborate with the entire data team, including Most of the specialized open-source data analytics
data scientists, data engineers, and business cluster types in HDInsight use Azure Blob storage or
analysts—all of whom have access to specialized Azure Data Lake Storage to access or store data, as
tools for their specific needs. these services work with the Hadoop File System.
Databricks is fully integrated with Azure Active You can run potentially massive specialized clusters
Directory, which gives you the ability to implement of different types, such as an Apache Hadoop
granular security. With Databricks, you can perform cluster. This enables you to process and analyze data
Spark-based data analytics on data that comes with Hadoop tools such as Hive, Pig, and Oozie.
from a variety of places, including Azure Storage
and Azure Data Lake Storage. Databricks also works You can also spin up an Apache HBase cluster,
with data from Azure SQL Data Warehouse, Azure which provides a very fast NoSQL database. The
SQL Database, and Azure Cosmos DB. Additionally, data actually lives within Azure Storage or an Azure
you can plug Databricks into Power BI to create and Data Lake, but HBase provides an abstraction layer
show powerful dashboards. on top, which has its own functionality and unique
performance.
QUICK
START You can create an Apache Storm cluster, which
Run a Spark job on Azure
Databricks using the Azure is geared toward analyzing data streams, just
Portal like Azure Stream Analytics. In addition, you can
have an Apache Spark cluster, which provides a
framework for processing and analyzing massive
amounts of data. HDInsight can also run a cluster
for Microsoft Machine Learning Server (previously
Microsoft R Server). This allows you to run R-based
jobs to analyze data.
The Developer’s 41
Guide to Azure
Finally, you can create a cluster that runs Apache a combination of these clusters, and they all run
Kafka, which is a publish-subscribe messaging managed in the cloud. Table 2-2 can help you to
system used to build applications with queueing pick the right Azure services to analyze your data.
mechanisms.
Data
Factory*
Analysis
Services*
Data Lake
Analytics*
Stream
Analytics*
Time Series
Insights*
Azure
Databricks*
Azure
HDInsight*
* Services with an asterisk have a free tier that you can use to get started at no cost.
The Developer’s 42
Guide to Azure
Further reading
RESOURCE
HUB
Cloud Analytics with Microsoft
Azure
03 /
Mus ma dolor Duntiaspel is vel estotatem qui qui sitatio
nsedit, ea sere volor molupta dolut officto
Securing
dolum earum minctur simillab is arum quatinverro
te destibus, tem adis eum rehenia si
omnimusam veni nossita.
your
application
The Developer’s 44
Guide to Azure
Azure Active Directory and other secrets. Key Vault provides this capability.
With Key Vault, you can store the secrets that your
An important part of your application’s security is applications use in a single secured, central location
authenticating users before they can use it—but that leverages the FIPS 140-2 Level 2 validated
authentication is not an easy thing to implement. Hardware Security Module (HSM).
You need to store user identities and credentials
somewhere, implement password management,
DOCS
create a secure authentication handshake, and so on.
What is Key Vault?
sign in from Australia, Azure AD would flag this as your organization and all of its users, applications,
malicious behavior and ask the user for additional services, and data, you can use a security
credentials through multi-factor authentication. information and event manager (SIEM) and security
orchestration automated response (SOAR) platform.
The Azure AD enterprise identity service provides Azure now offers an AI-powered SIEM and SOAR
single sign-on (SSO) and multi-factor authentication solution in the form of Azure Sentinel.
to help protect your users from 99.9 percent of
cybersecurity attacks. Use Azure Sentinel to collect data from your
organization, including data about users,
Key Vault applications, servers, and infrastructure assets
like firewalls and devices running in the cloud and
As part of your security architecture, you need a on-premises. It’s easy to collect data from your
secure place to store and manage certificates, keys, organization with the built-in connectors. As data
The Developer’s 46
Guide to Azure
is being collected, Azure Sentinel detects security Much more than security
threats and minimizes false positives with its smart
While security is critical, API Management offers
machine learning algorithms.
other capabilities that can help streamline your
When there is a threat, you’ll be alerted and development and testing workflow, such as test
can investigate it with AI, utilizing decades of data response mocking, publishing multiple API
cybersecurity work at Microsoft. You can respond versions, introducing non-breaking changes
to incidents with Azure Sentinel’s built-in workflow safely with revisions, and giving developers access
orchestration and task automation. to your API’s autogenerated documentation,
catalog, and code samples.
QUICK
START
Get started with On-board
TUTORIAL
Azure Sentinel API Management
Get started with API Management
LEARN
MORE
How to use managed identities
for Azure resources in App
Service and Azure Functions
The Developer’s 48
Guide to Azure
Encryption
files are encrypted using industry-standard
encryption algorithms. Pages in a database are
encrypted before they’re written to disk and
decrypted when they’re read.
Azure Security
You don’t have to do anything to enable the Basic
tier—it’s automatically enabled for every customer
Center
as part of the Azure platform. This service protects
your applications against the most common DDoS
attacks by performing real-time monitoring and
mitigation, and it provides the same defenses used
by Microsoft Online Services (MOS).
Azure Security Center provides unified security
management and advanced threat protection The Standard tier provides additional mitigation
across hybrid cloud workloads. It offers centralized capabilities that are tuned specifically to Azure
policy controls to limit exposure to threats and virtual network resources. It’s simple to enable,
rapidly find and fix vulnerabilities. and you don’t have to change your applications—
everything is done at the network level. Plus, with
In addition, Security Center supports integration the Standard tier, you can customize the Basic tier
with third-party solutions and can be customized protection with your own policies that focus on
with automation and programming capabilities. your specific use cases and applications.
LEARN
MORE
Read about Load Balancer and
HA ports rules
The Developer’s 53
Guide to Azure
monitoring
A feature of Network Watcher, Azure NSG flow
logs allow you to view information about ingress
and egress IP traffic through an NSG. Flow logs can
be analyzed to gain information and insights into
network traffic and security, as well as performance
Azure Monitor issues related to traffic.
Azure Monitor enables basic monitoring for Azure While flow logs target NSGs, they are not displayed
services by collecting metrics, activity logs, and in the same way as other logs and are stored only
diagnostic logs. The metrics collected provide within a storage account.
performance statistics for different resources,
including the operating system associated with a VM. Application Insights
The activity log will show you when new resources Application Insights is an extensible application
are created or modified. You can view this data with performance management (APM) service for
one of the explorers in the Azure portal and send it web developers on multiple platforms. It includes
to Log Analytics for trending and detailed analysis, powerful analytics tools to help you diagnose
or you can create alert rules that will proactively issues and understand what users do with your
notify you of critical issues. application. It works for applications on a variety
of platforms hosted on-premises or in the cloud,
Azure Monitor Logs including .NET, Node.js, and J2EE.
Azure Monitor Logs contain different kinds of Application Insights integrates with your DevOps
data organized into records with different sets of process and has connection points to a variety of
properties for each type. Logs in Azure Monitor are development tools. It can monitor and analyze
especially useful for performing complex analysis telemetry from mobile applications by integrating
across data from a variety of sources. with Visual Studio App Center.
Log Analytics within Azure Monitor allows you to Azure Security and Compliance Blueprints
write, execute, and manage Azure Monitor log
queries in the Azure portal. The Azure Security and Compliance Blueprints
- HIPAA/HITRUST Health Data and AI provides
tools and guidance to help deploy a platform-as-a-
service (PaaS) environment for compliance with the
Health Insurance Portability and Accountability Act
The Developer’s 54
Guide to Azure
DOCS
Read more about the Azure
Security and Compliance
Blueprint
RESOURCE
HUB
Read more about the Azure
Security Information page
February Lorem ipsum dolor sit
Theamet,
Developer’s
consectetur 55
2018 adipiscing elit Guide to Azure
04 /
Mus ma dolor Duntiaspel is vel estotatem qui qui sitatio
nsedit, ea sere volor molupta dolut officto
Adding
dolum earum minctur simillab is arum quatinverro
te destibus, tem adis eum rehenia si
omnimusam veni nossita.
intelligence
to your
application
The Developer’s 56
Guide to Azure
What to use,
and when?
Before diving into the options for AI in Azure, let’s
look at Table 4-1, which summarizes which services
are available and their capabilities:
Provide an
Users can query
Move data from Transform in-memory Analyze data
data and create
store to store data streaming data semantic model for later use
dashboards
for users
Azure
Cognitive
Search*
Cognitive
Services*
Azure Bot
Service*
Azure
Machine
Learning*
Spatial
Anchors*
Remote
Rendering*
* Services with an asterisk have a free tier that you can use to get started at no cost.
The Developer’s 58
Guide to Azure
Cognitive
Each category in the table contains multiple services
that you can use by calling an API. Some categories
Services
contain custom services, including Custom
Vision, Language Understanding, and Bing
Custom Search. These custom services provide
preconfigured machine learning algorithms, just
like the other services, and they also enable you to
Cognitive Services provides machine learning use your own data to train the model.
algorithms, created by Microsoft, and data as
a service. For most services, Microsoft has also In addition to these services, Cognitive Research
provided the data to train those algorithms. Technologies provides additional services. This
contains innovative APIs and SDKs for researchers
For some services, you can use your own custom and developers with an early look at emerging
data to train the algorithms. cognitive capabilities. One such experimental
service is Project Gesture, which enables you to
Cognitive Services provides an exceptionally easy
detect gestures such as the waving of a hand and
way to incorporate machine learning and AI into
weave them into your user experience.
your application—by simply calling APIs.
Let’s take a closer look at some Cognitive Services.
Table 4-2 shows which APIs are currently available.
Note that this list keeps growing.
RESOURCE
HUB
All services have a free tier that you can use to get Hands on with AI
started.
C
Custom Form Ink Video
Comp
Computer
puter Vision Vision
V
Face
Recognizer Recognizer Indexer
T to
Text Speech Speaker
Sp
Speech
peech to Text
T xt
Te SSpeech Translation Recognition
L
Language
Text Translator
Immersive Reader Understanding
U QnA Maker
Analytics Text
C
Content
Anomaly
y Detector Moderator
M
Personalizer
The Developer’s 59
Guide to Azure
STEP BY
STEP
Create a new application
in the LUIS portal
Custom Vision
“intelligent edge.” This means that the model and capability for audio, for which it recognizes
API can run somewhere other than the cloud, such who is speaking and when.
as on an on-premises server in a Docker container
or on another device, such as your phone. • It recognizes visual text in a video, such as text
on a slide, and makes that part of the transcript.
This offers great flexibility because you don’t need an
active internet connection to use the capabilities of • It performs sentiment analysis, which identifies
the Custom Vision service; you can also run it locally, when something positive, negative, or neutral
which provides great performance. In addition, the is said or displayed.
model you run on the edge isn’t very large—only
approximately tens of megabytes—because you As the breadth of these functionalities
deploy only the model and API, not the training data. demonstrates, Video Indexer combines many
Cognitive Services, including Speech to Text and
Speaker Recognition. Cumulatively, these services
TRY IT provide powerful capabilities that make content
OUT
Create your own Custom more discoverable, accessible, and valuable.
Vision project
You can upload media files to Video Indexer using
the Video Indexer portal or the API. Figure 4-2
Video Indexer shows the results of a video that was uploaded to
the Video Indexer service:
The Video Indexer service analyzes the video and
audio files you upload to it. This Cognitive Service
is part of Azure Media Services. It provides a
predefined machine learning algorithm and you
provide the data.
• It creates a transcript of the text in a video. You Figure 4-2: Demonstrating the results on the Video Indexer portal
and marked it as “OCR.” You can skip to that text by You pay only for the hosting of QnA Maker, and
clicking it. Video Indexer provides this functionality not for how many times the resulting service gets
for individual applications by embedding the queried by users.
Cognitive Insights widget.
EXERCISE
TRY IT Create your QnA Maker
OUT knowledge-based service
Upload your first video to
Video Indexer
Personalizer
QnA Maker
Personalizer helps your application choose the best
QnA Maker offers an easy way to create a single content item to show each user. It selects the
conversational layer over existing data, such as the best item, from content items, based on collective
frequently asked questions (FAQs) pages, support real-time information you provide pertaining to
websites, and product manuals. QnA Maker helps content and context.
you analyze and extract information and convert
it into question-and-answer pairings that can be Content can be any unit of information, such as text,
easily managed. Simply put, QnA Maker allows you images, URLs, or emails that you want to select from
to build applications that can provide information to to show to your user. This helps boost usability and
your users in a conversational manner. user satisfaction with reinforcement learning–based
capabilities.
With QnA Maker, it’s possible to create and manage
knowledge bases using the easy-to-use QnA Maker Anomaly Detector
Portal or REST APIs. We have simplified the bot
Anomaly Detector allows you to easily
creation process by allowing you to easily create a
embed anomaly detection capabilities into
bot from your knowledge base—without the need
your applications so users can quickly identify
for any code or setting changes. Refer to this link for
problems. This enables you to monitor and detect
further details: Create a QnA bot. Of course, you
abnormalities in your time series data with machine
can also use QnA Maker to create a bot using the
learning.
Azure Bot Service and augment your QnA bot by
adding the Language Understanding service. To
Using Anomaly Detector doesn’t require any prior
add personality, you can add chit-chat to your bot,
experience in machine learning, and the RESTful API
and answer commonly asked small-talk scenarios
enables you to easily integrate the service into your
out of the box.
applications and processes.
The Developer’s 62
Guide to Azure
Azure Cognitive
• Language analyzers from Apache Lucene, as
well as natural language processing (NLP)
Search
from Microsoft, available in 56 languages,
which intelligently handle linguistics, including
verb tense, gender, irregular plural nouns,
word decompounding, and word breaking for
languages with no spaces.
Azure Cognitive Search is the only cloud search
service with built-in AI capabilities that enrich all • Monitoring and reporting, which provide
types of information to easily identify and explore information on what was searched for and how
relevant content at scale. Formerly known as Azure fast and successful the search was.
Search, it uses the same integrated Microsoft
natural language stack that Bing and Office have • User experience features, such as sorting and
used for more than a decade, and AI services paging search results, intelligent filtering, and
across vision, language, and speech. You can spend providing search suggestions.
more time innovating and less time maintaining a
complex cloud search solution. AI enrichment is a capability of indexing that
is used to extract text from images, blobs, and
Azure Cognitive Search provides a lot of the other unstructured data sources. Enrichment and
plumbing to do searches. You just spin up an Azure extraction make your content more searchable.
Cognitive Search instance, create an index that
helps you search, and fill it with data. This means, For example, a team with a ton of PDFs with
for example, that you could easily implement Azure pictures, along with handwritten notes, can use
Cognitive Search to help users search your product Azure Cognitive Services to analyze the documents
catalog in an e-commerce application. and connect places, domain experts, and events
and then navigate all of this information to make
key decisions.
There are many options available for working with
Azure Cognitive Search and great features to make
Azure Cognitive Search uses Cognitive Services
searching easier for your users, including:
to analyze all this data, extract information,
and correlate it—all without the need to write
• Geo-search, which lets users explore data based complicated image recognition or optical
on the proximity of a search result to a physical character recognition (OCR) software.
location.
QUICK
START
Create your first Azure
Cognitive Search index in the
portal
The Developer’s 63
Guide to Azure
Azure Bot
Azure Bot Service makes it easy to create a bot and
provides the following support:
EXERCISE
Create a bot with Azure
Bot Service
The Developer’s 64
Guide to Azure
Azure Machine
So, what’s involved in machine learning? Figure 4-3
shows the basic workflow of machine learning:
Learning Studio
Azure Machine Learning empowers developers
and data scientists with a wide range of productive
Figure 4-3: Basic workflow of machine learning
experiences for building, training, and deploying
machine learning models faster. It also helps The machine learning process works as follows:
accelerate the time to market and foster team
collaboration with industry-leading MLOps • Data contains patterns. You probably know
(DevOps for machine learning). about some patterns, such as user ordering
habits. It’s also likely that there are many
First, let’s talk about what machine learning is.
patterns in data with which you’re unfamiliar.
TUTORIAL
Predict automobile prices with
the designer
AutoML
tooling for AI
Using machine learning models locally on devices
(the intelligent edge) delivers a powerful advantage:
it enables you to use the local processing power
of the device without relying on an internet
connection or incurring the latency of a web service
ML.NET call to get your results.
ML.NET is an open-source and cross-platform Described earlier in the Cognitive Services section,
machine learning framework with support for Custom Vision already supports running on the
macOS, Windows, and Linux. ML.NET lets you reuse edge. You can expect more services to run on the
all the knowledge, skills, code, and libraries you edge in the future.
already have as a .NET developer so that you can
easily integrate machine learning into your web, To run machine learning models on the edge,
mobile, desktop, gaming, and Internet of Things you need tooling to help you deploy the models
(IoT) applications. and web services. The AI Toolkit for Azure IoT
Edge helps with this tooling by enabling you to
ML.NET Model Builder provides an easy-to- package machine learning models in Azure IoT
understand visual interface to build, train, and Edge–compatible Docker containers and to expose
deploy custom machine learning models. Prior those models as REST APIs. The Docker containers
machine learning expertise is not required. Model containing the machine learning models can then
Builder supports AutoML, which automatically be deployed as an IoT edge module to run on edge
explores different machine learning algorithms and devices using Azure IoT Edge.
settings to help you find the one that best suits your
scenario. The AI Toolkit for Azure IoT Edge contains examples
for getting started and is fully open source and
available on GitHub.
The Developer’s 68
Guide to Azure
AI and
• Persisting virtual content in the real world can
enable a user to place an object (such as a
mixed reality
calendar) on a room wall that people can see
using a phone application or a HoloLens device.
When you use 3D models in scenarios such as Azure Kinect DK is a developer kit with advanced
design reviews and medical procedure plans, you AI sensors that provides sophisticated computer
need them to be as detailed as possible. Every vision and speech models. Kinect contains depth
detail matters. sensors, a spatial microphone array with a video
camera, and an orientation sensor as an all-in-one
Many businesses use complex 3D models small device with multiple modes, options, and
containing hundreds of millions of polygons, software development kits (SDKs).
and edge devices with low or medium graphics-
processing power are not capable of rendering The Azure Kinect DK development environment
them. Traditionally, developers have tried to address consists of multiple SDKs:
this problem using a technique called “decimation.”
This makes the model simpler by removing
• A Sensor SDK for low-level sensor and
polygons so that it can display on those devices.
device access
This enables you to keep the original quality of Azure Kinect DK can be used to build new
the model and interact with the content on edge possibilities, such as in the retail industry to design
devices such as headsets and mobile phones with a shopping experience that manages inventory and
every detail intact. tracks products faster and more accurately, and to
create interactive signage that’s both helpful and
delightful.
The Developer’s 70
Guide to Azure
and messages in
Service Bus queues decouple systems from one
another. For example, a web application receives
orders from users and needs to invoke a web
your application service to process the orders. The web service will
take too long to process the orders, perhaps up to
five minutes.
Modern, globally distributed applications often One way to solve this problem is to use a queue to
have to deal with large amounts of messages decouple the web application from the web service.
coming in, so they need to be designed with The web application receives the order and writes it
decoupling and scaling in mind. Azure provides in a message on a Service Bus queue. Then, the web
several services to help with event ingestion and application informs the user that the order is being
analysis as well as messaging patterns. These processed. The web service takes messages from
services are also vital for creating intelligent the queue, one by one, and processes them. When
applications that leverage AI. the web service has processed an order, it sends
an email notification to the user that the item has
Service Bus been ordered.
The core of messaging in Azure is Service Bus. By decoupling the systems, the web application
Service Bus encompasses a collection of services can work at a different speed from the web
that you use for messaging patterns. The most service, and both can be scaled individually to the
important services are Azure Service Bus queues application’s needs.
and topics.
A Service Bus queue is a simple mechanism.
Multiple applications can put messages on the
DOCS queue, but a queue message can be processed by
Get started with Service only one application at a time. A number of clever
Bus queues
features are available for working with messages
on the queue, including duplicate detection and a
dead letter subqueue to which messages are moved
when they fail to be processed correctly.
The Developer’s 71
Guide to Azure
Here are the differences between them: Message lifetime Message lifetime
> 7 days < 7 days
QUICK
START
Get started sending messages
to Event Hubs
The Developer’s 72
Guide to Azure
Just like Event Hubs, Azure IoT Hub is built for Event Grid offers a different type of messaging—a
massive data ingestion. It’s specifically geared fully managed publish and subscribe service that
toward handling the enormous volume of data hooks into almost every service in Azure as well as
messages from devices on the IoT, such as smart into custom publishers and subscribers.
thermostats and sensors in cars.
This is different to working with Service Bus queues
It possesses many of the same properties as Event and topics, for which you’d need to poll the queue
Hubs, including the ability to retain messages for up or topic for new messages. Event Grid automatically
to seven days and replay them. pushes messages to subscribers, making it a real-
time, reactive event service.
What makes IoT Hub unique is that it can send
messages to devices. It has the ability to manage Services inside and outside of Azure publish events
your complete IoT infrastructure—you can use when a new blob is added, for example, or when a
it to register devices, report their state, manage new user is added to an Azure subscription. Event
them by securing and restarting them, and send Grid detects these events and makes them available
data to them. to event handlers and services that subscribe to the
events, as shown in Figure 4-5:
QUICK
START
Connect your device to
your IoT Hub
Blob Storage
Azure Functions
Resource Groups
Logic Apps
Azure
Subscriptions
Azure Automation
Event Hubs
WebHooks
Custom Topics
QUICK
START
Create a chat room with
SignalR
The Developer’s 74
Guide to Azure
Azure provides a myriad of options to perform You can learn more about using Azure AI services in
messaging and to decouple applications. Which one your application by clicking on the following links:
should you use, and when? Table 4-4 summarizes
the differences to help you choose.
RESOURCE
HUB
Developer's Guide to Building
The Developer’s 74
AI Applications
Guide to Azure
AI School
SignalR
64 KB
Service*
Event
64 KB
Grid*
Event
256 KB
Hubs*
IoT
256 KB
Hub*
Service
1M
Bus topics*
Service Bus
1M
queues*
Azure
Queue 64 KB
storage
* Services with an asterisk have a free tier that you can use to get started at no cost.
February Lorem ipsum dolor sit
Theamet,
Developer’s
consectetur 75
2018 adipiscing elit Guide to Azure
05 /
Mus ma dolor Duntiaspel is vel estotatem qui qui sitatio
nsedit, ea sere volor molupta dolut officto
Connecting
dolum earum minctur simillab is arum quatinverro
te destibus, tem adis eum rehenia si
omnimusam veni nossita.
your business
with IoT
and gaining
insights
The Developer’s 76
Guide to Azure
enables IoT Hub to send messages and monitor the movement and usage of trucks is scaling out its
device; it also allows IoT Hub to secure the device business. Previously, the company tracked its
and the communications between them. Devices assets by using custom code on a native phone
are required to authenticate to IoT Hub using app, which called a custom web service, and by
several industry best-practice security protocols, polling GPS dongles attached to the trucks. This
like X.509 certificates and SAS token-based solution was challenging to maintain because
authentication. You can manage the security of it was difficult to provision new assets with new
The Developer’s 78
Guide to Azure
The Azure IoT Hub Device Provisioning Service • X.509 Certificate based on the standard X.509
(DPS) provides a rich set of integrated public cloud certificate authentication flow (similar to how
services for all your IoT solution needs. It’s a helper TLS / SSL works)
service for Azure IoT Hub that enables zero-touch,
just-in-time provisioning to the appropriate IoT • Trusted Platform Module (TPM) based on
hub without intervention, allowing you to provision a nonce challenge, using the TPM standard
devices in a secure and scalable manner. for keys to present a signed Shared Access
Signature (SAS) token.
• Analytics pipeline
The Developer’s 81
Guide to Azure
Azure IoT
Azure IoT Central gives you a jump-start to creating
new IoT solutions by choosing from a number of
Central
industry-specific app templates for retail, energy,
healthcare, and government to help you get up and
running. Alternatively, you can also choose a blank,
custom app template to build a fully customized
solution with Azure IoT Central.
Azure IoT Central is a Software as a Service
(SaaS) offering that enables you to create rich IoT The Azure IoT Central app templates consist of:
applications just by navigating through wizards.
• Lower barrier to entry into building and • Rich documentation tutorials and how-tos
• Push the limits of existing boundaries by years of programming experience. If you do want
utilizing a SaaS solution to more easily create more control over certain areas, you can always go
new revenue opportunities and accelerate deeper and tweak the solution to your needs.
• Utilize industry leading technology and Azure IoT Hub and Device Provisioning Service (DPS).
enterprise-grade security features to enable you In addition to the ability to hook into these services
to stay in control of your IoT devices and data and customize your solution, you also benefit from
many other capabilities these services offer.
• Enterprise-grade security features are built-in;
offering you instant security benefits without
building it yourself
The Developer’s 82
Guide to Azure
You would use edge computing when you don’t want Table 5-1: Making a scenario based decision
to or can’t rely on your connection to the cloud, when Services available on Azure IoT Edge
you want to improve your application performance by Use this on
If you want to
eliminating roundtrips to the cloud, or when you can’t Azure IoT Edge
communicate with the cloud from the device because Build
Buil
uiild and
an d d
deploy
eploy
Build and deploy Machine
of security, privacy, or regulatory reasons. AI models
AI models llearning
Deploy
y a SQL Server
Deploy a SQL Server S
SQL Server
Azure IoT Edge is composed of the following database to
to the
the edge
edge
database databases
d
components:
Comply with Industry 4.0
Comply with Industry 4.0
interoperability standards
interoperability standards Architecture
A
• IoT Edge modules are containers that run
Build custom logic
Azure services, third-party services, or your own C
Custom
Build custom logic
module
m
code. They’re deployed to IoT Edge devices and
execute locally on those devices.
For instance, if you have a temperature sensor, the • Optimize the use of available space for an office
temperature data by itself doesn’t tell you that
much. However, when you know which room the • Track daily temperature across several states
sensor is in, how large the room is, which other
devices are in the room and what data they capture, • Monitor busy drone paths
and how many people are in the room and how
they’re moving, you get a much better picture of • Identify autonomous vehicles
what the temperature data means. You can model
• Analyze occupancy levels for a building
the physical environment in which your IoT devices
reside with Azure Digital Twins. This service enables
• Find the busiest cash register in your store
you to create a graph of data that includes places,
people, and things—for instance, an office building
Whatever the real-world business scenario, it’s likely
that contains a room with people and sensors.
a corresponding digital instance can be provisioned
through Azure Digital Twins.
Azure Digital Twins is an IoT platform that enables
enterprises to create a digital representation of
Azure Digital Twins also lets you to manage
any assets, environments and business systems.
permissions to data and devices in the context of
Leveraging their domain expertise on top of
the physical world. You can use Azure AD to specify
Azure Digital Twins’ flexible modeling, enterprises
that certain users are able to access data only from
can build contextually aware solutions to
a certain physical location.
address scenarios such as workflow modeling in
manufacturing, energy efficiency in smart spaces,
QUICK
digital twin simulation in oil and gas and many START
Get started by finding
more. With Azure Digital Twins next generation IoT available rooms using
Azure Digital Twins.
The Developer’s 84
Guide to Azure
Azure Maps
• Spatial operations – Enhance your location
intelligence with a library of common
geospatial mathematical calculations, including
geofencing, closest point, great circle distance,
and buffers.
Azure Maps provides developers from all industries
with powerful geospatial capabilities. Those • Traffic – Develop mobility solutions that
geospatial capabilities are packed with the freshest improve travel time and avoid gridlock.
mapping data. Azure Maps is available for both web
and mobile applications. • Routing – Present the shortest and fastest
routes available or provide specialized routs
Azure Maps provides a collection of geospatial and facts for walkers, bicyclists, and commercial
services that use fresh mapping data to provide vehicles.
geographic context to web and mobile applications.
These services can be used to develop secure, • Mobility – Provide real-time location
scalable IoT and AI solutions with dynamic, location- intelligence and nearby public transit services,
based services. including stops, route information, and travel
time estimations.
Azure Maps services are available through SDKs.
These tools help you quickly develop and scale • Geolocation – Look up the country for an IP
solutions that integrate location information into Address.
Azure solutions.
• Data Service – Upload and store geospatial
data for use with spatial operations or image
• Search – Create apps that provide details about
composition.
nearby points of interest, render locations
on a map, and geocode (or reverse geocode) • Weather Service – Obtain current weather
addresses to get corresponding latitude / conditions, weather forecast, and weather
longitude coordinates. along a route to enable weather-based
decisions within your applications.
• Maps – Integrate clear, easy-to-read maps into
your solutions with JavaScript Map Control or
the Render API.
Windows 10 IoT come in two editions: Windows Server IoT 2019 is a full version of
Windows Server 2019 that delivers enterprise
• Windows 10 IoT Core is the smallest member manageability and security to IoT solutions.
of the Windows 10 family. While only running Windows Server IoT 2019 shares all the benefits of
a single app, it still has the manageability and the world-wide Windows ecosystem. It is a binary
security expected form Windows 10. equivalent to Windows Server 2019, so you can use
the same familiar development and management
• Windows 10 IoT Enterprise is a full version of tools that you use on your general-purpose servers.
Windows 10 with specialized features to create
dedicated devices locked down to a specific set
Azure RTOS
• Azure RTOS TraceX is a Windows-based
analysis tool that provides a view of real-time
system events.
• Azure RTOS ThreadX is an advanced real-time messaging services. Azure RTOS ThreadX has
operating system designed specifically for many advanced features, including picokernel
Learn more
Azure IoT solutions are easy to use, and there are
many related resources, including:
and when?
Learn more about using Azure for your IoT solution
in the following free resource:
RESOURCE
HUB
Now that you’ve read about the available Azure IoT Securely connect IoT devices to
the cloud
services, how do you know which service to use for
your scenario? Table 5-2 shows when you should
use each IoT option in Azure.
All services have a free tier you can use to get started.
*Azure IoT Hub is required to manage Azure IoT Edge deployments and devices.
February Lorem ipsum dolor sit
Theamet,
Developer’s
consectetur 90
2018 adipiscing elit Guide to Azure
06 /
Mus ma dolor Duntiaspel is vel estotatem qui qui sitatio
nsedit, ea sere volor molupta dolut officto
Deploying
dolum earum minctur simillab is arum quatinverro
te destibus, tem adis eum rehenia si
omnimusam veni nossita.
your services
and reducing
costs
The Developer’s 91
Guide to Azure
as Code
All Azure services introduced in this guide are based
on Azure Resource Manager, which you can use to
document your environment as IaC thanks to Azure
Resource Manager templates. These templates are
JSON files that describe what you want to deploy
IaC captures environment definitions as declarative and what the parameters are.
code, such as JSON documents, for automated
provisioning and configuration. This enables you to It’s easy to create Azure Resource Manager
use the same versioning used for source code with templates in Visual Studio and Visual Studio Code
infrastructure deployment templates. using Azure Resource Group project templates.
You can also generate Azure Resource Manager
There are many benefits of using IaC: templates from the Azure portal by clicking the
Automation Script button, which is available on the
• It lowers the potential for human error while menu bar of every resource in the Azure portal.
deploying and managing infrastructure. This creates the Azure Resource Manager template
for the given resource and even generates code
• It deploys the same template multiple times for building the resource using the Azure CLI,
to create identical dev, test, and production PowerShell, .NET, and others.
environments.
After you have an Azure Resource Manager
• It enables the cost of development and test template, you can deploy it to Azure by using
environments to be reduced by creating them PowerShell, the Azure CLI, Visual Studio, and the
on demand. Azure portal. Alternatively, you can automate its
deployment in a continuous deployment pipeline
using Azure DevOps.
Azure Blueprints
It’s easy to use Azure Resource Manager templates,
resource groups, user identities, and access rights
and policies to design and create a complete
infrastructure. But how do you keep all of these
things together? And how do you keep track of
which environments each piece of infrastructure has
been deployed to and which version of the artifact
is deployed now?
QUICK
START
Get started by defining and
assigning an Azure Blueprint in
the Azure portal.
The Developer’s 95
Guide to Azure
Azure
everybody as it is in production. With containers,
the age-old developer’s fallback statement—“it
works on my machine”—now means that it will also
work in production.
Containers are a standard for packaging up code Container instances are disposable and can be
and its dependencies for running quickly and quickly created or destroyed when scaling or
reliably across different compute environments. A running a workload on-demand. This provides
container is basically a lightweight VM that starts flexibility to run containers when needed, or even
and stops much faster than a traditional VM and is move them to a different node or cluster easily, too.
therefore more useful for development, testing, and
running applications in production. There are many technologies for running containers,
including Docker. Azure can run and manage
The major benefit of containers is that an individual containers with Azure Container Instances, Azure
container is always the same, or immutable. You Kubernetes Service, and Azure Red Hat OpenShift.
run a container locally when you develop your app, Table 6-1 shows which service you might choose for
and then use the same container configuration in various scenarios when using containers:
the cloud and everywhere else. Your entire team
orchestrator)
Azure Kubernetes Service (AKS) makes it simple to Azure Red Hat OpenShift provides a flexible, self-
deploy a managed Kubernetes cluster in Azure. AKS service deployment of fully managed OpenShift
reduces the complexity and operational overhead clusters. Maintain regulatory compliance and
of managing Kubernetes by offloading much of that focus on your application development while
responsibility to Azure. your master, infrastructure, and application nodes
are patched, updated, and monitored by both
As a hosted Kubernetes service, Azure handles critical Microsoft and Red Hat.
tasks, such as health monitoring and maintenance,
for you. When deploying an AKS cluster, the Azure Red Hat OpenShift extends Kubernetes. It is
Kubernetes master and all nodes are deployed and jointly engineered, operated, and supported by Red
configured for you. Hat and Microsoft to provide an integrated support
experience.
As a managed Kubernetes service, AKS is free—you
only pay for the agent nodes within your clusters,
TUTORIAL
and not for the masters.
Create an Azure Red Hat
OpenShift 4 cluster
TUTORIAL
Prepare an application for
Azure Kubernetes Service It’s important to choose the deployment and hosting
option for your applications. It’s also important to
keep track of the cost of hosting your applications,
Azure Container Instances and your overall spend on Azure services. Next, let’s
take a look at tracking your Azure usage.
Azure Container Instances provides a fast, isolated
compute environment to easily run containers on
Azure without managing servers. You can develop
applications quickly while running your application in
a container or in the cloud. It allows you to focus on
designing and building your applications instead of
managing the infrastructure that runs them.
The Developer’s 97
Guide to Azure
Azure usage
Azure Cost Management also works with
Azure Advisor to provide cost optimization
recommendations. Azure Advisor helps you
optimize and improve efficiency by identifying idle
and underutilized resources.
With Azure products and services, you only pay for
what you create and the Azure resources you use.
It’s important to keep track of what you are using
and the costs involved.
TUTORIAL
Optimize costs from
recommendations
The Developer’s 98
Guide to Azure
Creating a
Cost alerts can easily be viewed within the Azure
portal. All alerts will show the alert type. A budget
billing alert
alert shows the reason why it was generated and
the name of the budget it applies to. Each alert
shows the date it was generated, its status, and the
scope (subscription or management group) that the
alert applies to.
Azure Cost Management alerts can be used to
monitor your Azure usage and spending. Cost alerts
are automatically generated based on when Azure
resources are consumed. Alerts show all active cost
management and billing alerts together in one place.
• Credit alerts notify you when your Azure Select an alert from the list to view its details. Alert
credit monetary commitments are consumed. details show more information about the alert. If
Monetary commitments are for organizations a recommendation is available for a budget alert,
with enterprise agreements. Credit alerts are then a link to the recommendation is also shown.
generated automatically at 90% and at 100% of You can also navigate to Cost analysis where you
your Azure credit balance. Whenever an alert is can explore costs relating to the alert’s scope.
generated, it’s reflected in cost alerts and in the
email sent to the account owners.
Where to deploy,
• Large N-tier application: Azure Kubernetes
Service, Azure Red Hat OpenShift
IaaS offers greater flexibility since you can install Learn more about deploying your applications to
and configure various software components on the Azure and reducing costs in these free resources:
VMs as required. This can be especially useful for
existing applications that may require some custom
LEARNING
configuration or dependency to be set up on the PATH
Control Azure spending and
server that isn’t allowed on other PaaS services. manage bills with Azure Cost
Management + Billing
While choosing PaaS services is the best path to
start with, there are plenty of scenarios where Deploy a website to Azure with
Azure App Service
your application may require the full flexibility and
capabilities of using IaaS. This includes the ability to
install any software and/or database on the VM that
you require for your application.
DOCS
Choosing Azure compute
platforms for container-based
applications
February Lorem ipsum dolor sit
Theamet,
Developer’s
consectetur 102
2018 adipiscing elit Guide to Azure
07 /
Mus ma dolor Duntiaspel is vel estotatem qui qui sitatio
nsedit, ea sere volor molupta dolut officto
Share your
dolum earum minctur simillab is arum quatinverro
te destibus, tem adis eum rehenia si
omnimusam veni nossita.
code, track
work, and ship
software
The Developer’s 103
Guide to Azure
How can
• Azure Repos
Use Azure Repos to collaborate on code
• Azure Boards
Use Azure Boards to plan, track, and discuss
work across teams.
The Developer’s 104
Guide to Azure
Azure Boards
information you need. You can query work items
and progress, and then use this information to
customize your boards, charts, and lists. From there,
you can share them or pin them on your Azure
DevOps dashboard for everyone to see.
Planning your work and tracking your progress are
important tasks—and Azure Boards can help you
complete them: DOCS
Start using Azure Boards to track
issues, tasks, and epics
Azure Repos commit your code to create a pull request for that
branch and submit it to the server. Users can see,
review, test, and discuss this pull request. Once it’s
good enough to be pulled into the main branch, the
request is accepted, and your development branch
Version control is essential for working together
can be deleted.
and ensuring that your most important asset—
your code—is safely stored. Azure Repos is a set With Azure Repos, you have a rich toolset to
of version control tools for storing your code and support the Git workflow. You can link work items,
sharing it with your team. This is useful both for such as user stories or bugs, to pull requests so
teams and individual developers. Version control you know what each change is about. You can
keeps a history of your development so you can have discussions about committed code and even
review or even roll back to any version of your code. comment on changes within code. Azure Repos
also enables voting on changes in code, so a change
Git
only gets accepted once everyone on the team
agrees to it.
This is a widely used version control system among
developers and is also the basis for GitHub. Git
Azure Repos offers unlimited private Git
is a distributed version control system, meaning
repositories.
the complete source code (all versions of all files)
is on your machine—which makes it easy to work
offline. With Git, the source of truth is essentially LEARN
MORE
on everyone’s machine and is synchronized when
Get started by learning how to code
developers push their code to the Git server (in this with Git
case, Azure Repos).
Azure Pipelines
Once your code is in a repository such as Azure
Repos, you can start to automate your build and
release processes with Azure Pipelines.
Figure 7-2: Azure Pipelines: build pipeline
Azure Artifacts
Follow these simple steps to use Azure Artifacts:
GitHub
source community to be used for improving the
safety of code in other codebases.
GitHub Advanced Security If you want to improve the quality of your software
and learn more about automating your build and
GitHub Advanced Security is used to secure your
release processes, download and read these free
code by providing a semantic code analysis engine
resources:
that allows developers to write queries that identify
code patterns in large codebases and search for
vulnerabilities and their variants. RESOURCE
HUB
Effective DevOps
Simple declarative queries can be used by security
researchers to quickly find vulnerabilities in code. Deploy applications with Azure
DevOps
These queries can then be shared with the open
February Lorem ipsum dolor sit
Theamet,
Developer’s
consectetur 111
2018 adipiscing elit Guide to Azure
08 /
Mus ma dolor Duntiaspel is vel estotatem qui qui sitatio
nsedit, ea sere volor molupta dolut officto
Microsoft
dolum earum minctur simillab is arum quatinverro
te destibus, tem adis eum rehenia si
omnimusam veni nossita.
Azure in
action
The Developer’s 112
Guide to Azure
Navigating the
Azure portal
The Azure portal is a web-based, unified console
that provides an alternative to command-line tools.
With the Azure portal, you can manage your Azure
subscription using a graphical user interface.
Adding services
Creating a new VM
Let’s use the Azure portal to create a new VM. Once
we’ve done so, we’ll shut it down and remove it so
that you don’t continue to pay for it.
want, and choose options based on that. In attach to the VM, as well as the virtual network,
addition, there are other features that come IP address, and extensions on the machine.
with size options, such as: For now, leave everything as is and select
Review + create.
• The type of hard drive (SSD or normal HDD).
13. Review the summary, agree to the terms, and
• The number of max input/output then select Create.
operations per second (IOPS). This
determines the performance of the VM It usually takes just a few minutes for the VM to
in a significant way, especially if your be deployed. When you navigate to the VM in the
applications read and write extensively Azure portal, you can configure it further and log in
from and to the hard drive. using Remote Desktop Protocol (RDP):
Developing
5. Leave the Publish selection as Code, and
then select the .NET Core 3.1 (LTS) value for
2. Search for Web App. The Web App blade Service plan as you wish, but note that you need to
opens. Select Create. The Web App Create share resources among all the application services.
blade opens.
To host the database, we’ll create a SQL database.
3. Create a new Resource Group by giving it This works the same as a local SQL Server database
4. Type a Name for the web app. 1. In the Azure portal, click + Create a resource.
The Developer’s 116
Guide to Azure
2. Search for SQL Database and click it to open 9. Make a note of the connection string because
the SQL Database blade. Click Create. The you’ll need it later in this tutorial.
Create SQL Database blade opens.
Running the .NET Core application locally
3. Select the resource group that you created for
the web app. Let’s run the application locally before we run it in
Azure. The application can run locally because, by
4. Type a database name. default, it uses a SQLite database, which is a self-
contained SQL database engine:
5. Click Server to create a new SQL database server:
1. Open a Command Prompt or terminal window,
a. Type a name for the server. and then navigate to a directory you want to use
as your source code directory for this project.
b. Type the server admin login. This is the
username for the server. 2. Run the following commands to get the source
code and navigate to the project folder:
c. Type the password that you’ll use to log on
to the server.
git clone https://github.com/azure-samples/
dotnetcore-sqldb-tutorial
d. Confirm the password.
cd dotnetcore-sqldb-tutorial
database, and then select a pricing tier. For dotnet ef database update
development and test purposes, the Basic tier is
dotnet run
sufficient.
7. Click Review + create, and then Create. The 4. The application should now be running, and
database will now be created. the URL to the application (such as http://
localhost:5000) should be in the output in the
8. Navigate to the SQL database and click Show Command Prompt window.
Database Connection String.
The Developer’s 117
Guide to Azure
options.
UseSqlite(“DataSource=localdatabase.db”));
You now have a working application running The code also runs the Database.Migrate()
locally. Before we deploy it to Azure, we’ll change method, which executes the Entity Framework
the source code so that it can connect to the SQL Core migrations that we previously ran
database: manually.
1. In your local source code repository, find the 3. Save your changes and run the following
Startup.cs file and locate the following code: commands to commit the changes to your local
Git repository:
servicesAddDbContext<MyDatabaseContext>
(options => options.UseSqlite(“Data
Source=localdatabase.db”)); git add .
git commit -m “connect to SQLDB in Azure”
5. Navigate to Configuration under Settings. 3. Select Local Git, then App Service build service,
and then click Finish.
6. Create a new connection string named
MyDbConnection. The value should be 4. Copy the Git Clone Uri that has been created
the connection string to the SQL database for the web app. This will be used to push the
(including the username and password) you application code to the web application using Git:
saved earlier when you created the database
and set Type to SQLAzure.
Extending
additional services that simply analyze the data
that’s already there.
Logic Apps and First, you’ll create LUIS so that we can use it later in
our logic application.
Cognitive Services You can use the LUIS portal to build a language
model. First, you need to add some entities, which
are items in the text the service will recognize. Then,
you enter utterances, which are sample texts that
A powerful feature of our application could be the represent the intent you want to detect.
ability to analyze the content of to-do items and then
automatically create calendar appointments for tasks Here is an example of an utterance:
that include a specific date.
“family dinner next Friday at 7 PM”
• The logic application takes the to-do item text and For example, a “LUIS—Get prediction” action could
passes it to LUIS. be added to a logic application that connects to a SQL
database that’s triggered when a new row is created.
• LUIS analyzes the text and creates a calendar item in The logic app could pass in text retrieved from the
your Office 365 calendar if the text contains a date database row to LUIS so that it can perform utterance
and time. recognition. Then, the logic app could save the result
back to the database, or use it to execute additional
You don’t have to change your application to add this
actions to perform tasks based on those results.
functionality. Logic Apps and Cognitive Services are
The Developer’s 121
Guide to Azure
Ready for
There are deployment slots for staging, load
testing, and production, which is always the
production
original app service—in our example, the .NET
Core web application. In fact, you can have as many
deployment slots as you wish without incurring
additional costs.
With your application running, you can now use The deployment slots all run in the same App
Azure to make it more robust and easier to update. Service plan, which is what you pay for. Keep in
mind that having additional deployment slots in an
Setting up continuous delivery with App Service plan will consume resources such as
GitHub CPU and memory, so be mindful of how additional
slots might impact production.
So far, we’ve been pushing code from our local Git
repository to Azure. This is fine if you work alone, You create new deployment slots from the
but if you work in a team, you’ll need another type Deployment Slots menu item in the web app. You
of source control, such as Azure Repos, one of the need to run the web application in the standard or
services in Azure DevOps, or GitHub. premium pricing tier because the free plan doesn’t
come with additional deployment slots.
You could use a GitHub repository to push your
code and then link that to your web application In each deployment slot you create, you can
so that changes are deployed automatically in a configure the deployment options as we did earlier
continuous delivery pipeline. to deploy code automatically. You can even work
on different source code branches for different
Continuous delivery can be configured using the
environments and automatically deploy specific
Deployment Center feature of Web Apps through
branches to specific deployment slots.
the Azure portal. This feature enables you to choose
the location of your code as well as options for Additionally, you can test your final version in a
building and deploying to the cloud. deployment slot and then swap it with the version in
the production slot. This warms up the application
Setting up staging environments before it swaps, resulting in a deployment with no
downtime.
Using Azure App Service Web Apps, you can set up a
staging slot to test new versions of your application
through deployment slots. Deployment slots are
application services with which you can test your
code before you promote it to the next slot.
The Developer’s 122
Guide to Azure
Scaling the web app You’ll see logging when you use the application in
the web application to generate some traffic.
When you have many users, you need web apps to
scale up to accommodate increased traffic. When Setting up monitoring and alerts
they’re not busy, you need them to scale back to
reduce costs. You can do this with the Automatic Azure Monitor Application Insights provides
Scaling feature of App Service. You need to run the another powerful way to track applications. This
web apps in the Standard or Premium pricing tier to monitoring tool provides information about your
use this feature. application, such as how many visitors used it, how
many exceptions occurred, and where in the code
Alternatively, the Free tier could be used to run a they happened. Unlike diagnostic logs, Application
single instance of a web app. Insights requires a nominal fee.
Web Apps has a menu item called Scale Out, as Adding Secure Sockets Layer
shown in Figure 8-10. You can use this to scale out
manually or automatically. Scaling out means you When an application is ready for production,
add more instances of your application to handle you need to confirm that it’s secure. Besides
the load: authentication and authorization, serving the
web application over HTTPS is one of the most
important security measures you can take. This
is because, without HTTPS, intruders could see
the traffic among your resources and use this
information for malicious purposes, like signing
in to your application. Additionally, HTTPS is a
requirement for leading-edge features such as
service workers.
Figure 8-10: The Scale Out menu item
Serving traffic to your web application over Secure
Using diagnostic logs Sockets Layer (SSL) is possible by importing an SSL
certificate into Web Apps and binding it to one of
An efficient way to monitor an application is by your custom domain names. You can either import
using diagnostic logs to see live diagnostic logging your own SSL certificate or purchase one through
from the web app. You can even pipe the logs into Azure App Service Certificates. This service
the console window. To do this, run the following makes it easy to buy and validate certificates. After
command in Cloud Shell: importing the certificate, couple it to one of the
domain name bindings of your web app. You can do
az webapp log tail --name <app_name> --resource-
group <myResourceGroup>
all this from the TLS/SSL settings in the web app.
The Developer’s 123
Guide to Azure
Your business will benefit from making users aware Learn more about architecting Azure solutions in
of new production releases. By extending the these free resources:
continuous integration/continuous delivery (CI/CD)
process in Azure builds, you can use a Logic Apps
RESOURCE
workflow to manage social media communication, HUB
such as sending out tweets or publishing posts with Azure for Architects
release notes.
Architect great solutions
An Azure pipeline could be instrumented to trigger in Azure learning Path on
Microsoft Learn
the logic app to execute after a release pipeline
has finished publishing new application changes.
Alternatively, the Events feature of the App Service
web application could be configured to trigger a
logic app based on events emitted from Azure App
Service, such as when the deployment slots are
swapped.
February Lorem ipsum dolor sit
Theamet,
Developer’s
consectetur 124
2018 adipiscing elit Guide to Azure
09 /
Mus ma dolor Duntiaspel is vel estotatem qui qui sitatio
nsedit, ea sere volor molupta dolut officto
Summary
In this guide, we introduced the power that Azure
and
applications, taking advantage of containers, using
AI in your applications, and scaling as much as you
want—and you only pay for what you use.
Keep learning
• Azure Tips and Tricks: Browse a collection
of useful ideas to help you become more
with Azure
productive with Azure.
With your Azure free account, you get all of this— • Microsoft.Source: Receive a regular digest
and you won’t be charged until you choose to of relevant technical content, events, and
upgrade: training. Learn about new technologies and find
opportunities to connect with other developers
online and locally.
• 12 months of popular free services.
http://www.azure.com/free
By developers, Get technical articles, sample
code, and information on
● Keep up on the latest
technologies
About the
authors
Michael Crump works at Microsoft on the Azure Chris Pietschmann is a Principal Cloud and
platform and is a coder, blogger, and international DevOps Solution Architect with Solliance, and a
speaker on various cloud development topics. He’s Microsoft MVP with Azure and IoT. He’s passionate
passionate about helping developers understand about helping individuals and teams be more
the benefits of the cloud in a no-nonsense way. productive in the cloud.
You can reach Michael on Twitter, @mbcrump, You can reach Chris on Twitter, @crpietschmann,
follow his live coding stream at https://www.twitch. and follow his blog at https://build5nines.com.
tv/mbcrump, or catch up on a recent post in the
Azure Tips and Tricks series.
The Developer’s 129
Guide to Azure
This book is provided “as-is” and expresses the author’s views and opinions. The
views, opinions and information expressed in this book, including URL and other
Internet website references, may change without notice. Some examples depicted
herein are provided for illustration only and are fictitious. No real association or
connection is intended or should be inferred.