Containers in Azure

Image representing Azure containers

If you wish to run multiple instances of an application on a single virtual machine, containers are an excellent choice. The container orchestrator can start, stop, and scale out application instances as needed.

Containers are meant to be lightweight, created, scaled out, and stopped dynamically. This design allows you to respond quickly to changes in demand or failure.

Another benefit of containers is you can run multiple isolated applications on a single VM host. Since containers are secured and isolated, you don’t need separate VMs for each app.

VMs versus containers

Containers in Azure

Azure supports Docker containers, and there are several ways to manage containers in Azure.

  • Azure Container Instances (ACI)
  • Azure Kubernetes Service (AKS)

Azure Container Instances

Azure Container Instances (ACI) offers the fastest and simplest way to run a container in Azure. You don’t have to manage any virtual machines or configure any additional services. It is a PaaS offering that allows you to upload your containers and execute them directly.

Azure Kubernetes Service

The task of automating and managing and interacting with a large number of containers is known as orchestration. Azure Kubernetes Service (AKS) is a complete orchestration service for containers with distributed architectures with multiple containers.

What is Kubernetes?

Using containers in your solutions

Containers are often used to create solutions using a microservice architecture. This is where you break solutions into smaller, independent pieces. For example, you may split a website into a container hosting your front end, another hosting your back end, and a third for storage. This allows you to separate portions of your app into logical sections that can be maintained, scaled, or updated independently.

What is a microservice?

Imagine your website backend has reached capacity but the front end and storage aren’t being stressed. You could scale the back end separately to improve performance, or you could decide to use a different storage service. Or you could even replace the storage container without affecting the rest of the application.

Improve your app reliability

You can use SLAs to evaluate how your Azure solutions meet business requirements and the needs of your clients and users. By creating your own SLAs, you can set performance targets to suit your specific Azure application. This approach is known as an Application SLA.

Understand your app requirements

Building an efficient and reliable Azure solution requires knowing your workload requirements. You can then select Azure products and services, and provision resources according to those requirements. It’s important to understand the Azure SLAs that define performance targets for the Azure products and services within your solution. This understanding will help you create achievable Application SLAs.

In a distributed system, failures will happen. Hardware can fail. The network can have transient failures. It’s rare for an entire service or region to experience a disruption, but even this must be planned for.

Resiliency

Resiliency is the ability of a system to recover from failures and continue to function. It’s not about avoiding failures, but responding to failures in a way that avoids downtime or data loss. The goal of resiliency is to return the application to a fully functioning state following a failure. High availability and disaster recovery are two crucial components of resiliency.

When designing your architecture you need to design for resiliency, and you should perform a Failure Mode Analysis(FMA). The goal of an FMA is to identify possible points of failure and to define how the application will respond to those failures.

Cost and complexity vs. high availability

Availability refers to the time that a system is functional and working. Maximizing availability requires implementing measures to prevent possible service failures. However, devising preventative measures can be difficult and expensive, and often results in complex solutions.

As your solution grows in complexity, you will have more services depending on each other. Therefore, you might overlook possible failure points in your solution if you have several interdependent services.

 Tip

For example: A workload that requires 99.99 percent uptime shouldn’t depend upon a service with a 99.9 percent SLA.

Most providers prefer to maximize the availability of their Azure solutions by minimizing downtime. However, as you increase availability, you also increase the cost and complexity of your solution.

 Tip

For example: An SLA that defines an uptime of 99.99% only allows for about 5 minutes of total downtime per month.

The risk of potential downtime is cumulative across various SLA levels, which means that complex solutions can face greater availability challenges. Therefore, how critical high-availability is to your requirements will determine how you handle the addition of complexity and cost to your application SLAs.

Considerations for defining application SLAs

  • If your application SLA defines four 9’s (99.99%) performance targets, recovering from failures by manual intervention may not be enough to fulfill your SLA. Your Azure solution must be self-diagnosing and self-healing instead.
  • It is difficult to respond to failures quickly enough to meet SLA performance targets above four 9’s.
  • Carefully consider the time window against which your application SLA performance targets are measured. The smaller the time window, the tighter the tolerances. If you define your application SLA as hourly or daily uptime, you need to understand these tighter tolerances might not allow for achievable performance targets.

Composing SLAs across services

When combining SLAs across different service offerings, the resultant SLA is a called a Composite SLA. The resulting composite SLA can provide higher or lower uptime values, depending on your application architecture.

Calculating downtime

Consider an App Service web app that writes to Azure SQL Database. These Azure services currently have the following SLAs:

Image representing Web app and its SLA uptime value of 99.95 percent and a SQL database and its SLA value of 99.99 percent.

In this example, if either service fails the whole application will fail. In general, the individual probability values for each service are independent. However, the composite SLA value for this application is:

99.95 percent × 99.99 percent = 99.94 percent

This means the combined probability of failure is higher than the individual SLA values. This isn’t surprising, because an application that relies on multiple services has more potential failure points.

Conversely, you can improve the composite SLA by creating independent fallback paths. For example, if SQL Database is unavailable, you can put transactions into a queue for processing at a later time.

Image representing Web app and its SLA uptime value of 99.95% and SQL database and its SLA value of 99.99%.

With this design, the application is still available even if it can’t connect to the database. However, it fails if both the database and the queue fail simultaneously.

If the expected percentage of time for a simultaneous failure is 0.0001 × 0.001, the composite SLA for this combined path of a database or queue would be:

1.0 − (0.0001 × 0.001) = 99.99999 percent

Therefore, if we add the queue to our web app, the total composite SLA is:

99.95 percent × 99.99999 percent = ~99.95 percent

Notice we’ve improved our SLA behavior. However, there are trade-offs to using this approach: the application logic is more complicated, you are paying more to add the queue support, and there may be data-consistency issues you’ll have to deal with due to retry behavior.

Service Level Agreements for Azure

Microsoft maintains its commitment to providing customers with high-quality products and services by adhering to comprehensive operational policies, standards, and practices. Formal documents called Service-Level Agreements (SLAs) capture the specific terms that define the performance standards that apply to Azure.

  • SLAs describe Microsoft’s commitment to providing Azure customers with specific performance standards.
  • There are SLAs for individual Azure products and services.
  • SLAs also specify what happens if a service or product fails to perform to a governing SLA’s specification.

 Important

Azure does not provide SLAs for most services under the Free or Shared tiers. Also, free products such as Azure Advisor do not typically have an SLA.

SLAs for Azure products and services

There are three key characteristics of SLAs for Azure products and services:

  1. Performance Targets
  2. Uptime and Connectivity Guarantees
  3. Service credits

Performance Targets

An SLA defines performance targets for an Azure product or service. The performance targets that an SLA defines are specific to each Azure product and service. For example, performance targets for some Azure services are expressed as uptime guarantees or connectivity rates.

Uptime and Connectivity Guarantees

A typical SLA specifies performance-target commitments that range from 99.9 percent (“three nines”) to 99.999 percent (“five nines”), for each corresponding Azure product or service. These targets can apply to such performance criteria as uptime or response times for services.

The following table lists the potential cumulative downtime for various SLA levels over different durations:

SLA % Downtime per week Downtime per month Downtime per year
99 1.68 hours 7.2 hours 3.65 days
99.9 10.1 minutes 43.2 minutes 8.76 hours
99.95 5 minutes 21.6 minutes 4.38 hours
99.99 1.01 minutes 4.32 minutes 52.56 minutes
99.999 6 seconds 25.9 seconds 5.26 minutes

For example, the SLA for the Azure Cosmos DB (Database) service SLA offers 99.99 percent uptime, which includes low-latency commitments of less than 10 milliseconds on DB read operations and less than 15 milliseconds on DB write operations.

Service Credits

SLAs also describe how Microsoft will respond if an Azure product or service fails to perform to its governing SLA’s specification.

For example, customers may have a discount applied to their Azure bill, as compensation for an under-performing Azure product or service. The table below explains this example in more detail.

The first column in the table below shows monthly uptime percentage SLA targets for a single instance Azure Virtual Machine. The second column shows the corresponding service credit amount you receive if the actual uptime is less than the specified SLA target for that month.

MONTHLY UPTIME PERCENTAGE SERVICE CREDIT PERCENTAGE
< 99.9 10
< 99 25
< 95 100

Datacenters and Regions in Azure

Microsoft Azure is made up of datacenters located around the globe. When you leverage a service or create a resource such as a SQL database or virtual machine, you are using physical equipment in one or more of these locations.

The specific datacenters aren’t exposed to end users directly; instead, Azure organizes them into regions.

What is a region?

region is a geographical area on the planet containing at least one, but potentially multiple datacenters that are nearby and networked together with a low-latency network. Azure intelligently assigns and controls the resources within each region to ensure workloads are appropriately balanced.

When you deploy a resource in Azure, you will often need to choose the region where you want your resource deployed.

 Important

Some services or virtual machine features are only available in certain regions, such as specific virtual machine sizes or storage types. There are also some global Azure services that do not require you to select a particular region, such as Microsoft Azure Active Directory, Microsoft Azure Traffic Manager, and Azure DNS.

A few examples of regions are West USCanada CentralWest EuropeAustralia East, and Japan West. Here’s a view of all the available regions as of December 2018:

Map of available regions as of December 2018

Why is this important?

Azure has more global regions than any other cloud provider. This gives you the flexibility to bring applications closer to your users no matter where they are. It also provides better scalability, redundancy, and preserves data residency for your services.

Special Azure regions

Azure has specialized regions that you might want to use when building out your applications for compliance or legal purposes. These include:

  • US DoD CentralUS Gov VirginiaUS Gov Iowa and more: These are physical and logical network-isolated instances of Azure for US government agencies and partners. These datacenters are operated by screened US persons and include additional compliance certifications.
  • China EastChina North and more: These regions are available through a unique partnership between Microsoft and 21Vianet, whereby Microsoft does not directly maintain the datacenters.
  • Germany Central and Germany Northeast: These regions are available through a data trustee model whereby customer data remains in Germany under control of T-Systems, a Deutsche Telekom company, acting as the German data trustee. Any user or enterprise who needs their data to reside in Germany can use this service.

Regions are what you use to identify the location for your resources, but there are two other terms you should also be aware of: geographies and availability zones.

Tour of Azure services

Azure can help you tackle tough business challenges. You bring your requirements, creativity, and favorite software development tools. Azure brings a massive global infrastructure that’s always available for you to build your applications on.

Let’s take a quick tour of the high-level services Azure offers.

Azure: the big picture

Azure services

Here’s a big-picture view of the available services and features in Azure.

Diagram showing the big picture view of Azure services

Let’s take a closer look at the most commonly-used categories:

  • Compute
  • Networking
  • Storage
  • Mobile
  • Databases
  • Web
  • Internet of Things
  • Big Data
  • Artificial Intelligence
  • DevOps

Compute

Compute services are often one of the primary reasons why companies move to the Azure platform. Azure provides a range of options for hosting applications and services. Here are some examples of compute services in Azure:

Service name Service function
Azure Virtual Machines Windows or Linux virtual machines (VMs) hosted in Azure
Azure Virtual Machine Scale Sets Scaling for Windows or Linux VMs hosted in Azure
Azure Kubernetes Service Enables management of a cluster of VMs that run containerized services
Azure Service Fabric Distributed systems platform. Runs in Azure or on-premises
Azure Batch Managed service for parallel and high-performance computing applications
Azure Container Instances Provides containers without requiring VM provision or higher services
Azure Functions An event-driven, serverless compute service

Networking

Linking compute resources and providing access to applications is the key function of Azure networking. Networking functionality in Azure includes a range of options to connect the outside world to services and features in the global Microsoft Azure datacenters.

Azure networking facilities have the following features:

Service name Service function
Azure Virtual Network Connects VMs to incoming Virtual Private Network (VPN) connections
Azure Load Balancer Balances inbound and outbound connections to applications or service endpoints
Azure Application Gateway Optimizes app server farm delivery while increasing application security
Azure VPN Gateway Accesses Azure Virtual Networks through high-performance VPN gateways
Azure DNS Provides ultra-fast DNS responses and ultra-high domain availability
Azure Content Delivery Network Delivers high-bandwidth content to customers globally
Azure DDoS Protection Protects Azure-hosted applications from distributed denial of service (DDOS) attacks
Azure Traffic Manager Distributes network traffic across Azure regions worldwide
Azure ExpressRoute Connects to Azure over high-bandwidth dedicated secure connections
Azure Network Watcher Monitors and diagnoses network issues using scenario-based analysis
Azure Firewall Implements high-security, high-availability firewall with unlimited scalability
Azure Virtual WAN Creates a unified wide area network (WAN), connecting local and remote sites

Storage

Azure provides four main types of storage services. These services are:

Service name Service function
Azure Blob storage Storage service for very large objects, such as video files or bitmaps
Azure File storage File shares that you can access and manage like a file server
Azure Queue storage A data store for queuing and reliably delivering messages between applications
Azure Table storage A NoSQL store that hosts unstructured data independent of any schema

These services all share several common characteristics:

  • Durable and highly available with redundancy and replication.
  • Secure through automatic encryption and role-based access control.
  • Scalable with virtually unlimited storage.
  • Managed, handling maintenance and any critical problems for you.
  • Accessible from anywhere in the world over HTTP or HTTPS.

Mobile

Azure enables developers to create mobile backend services for iOS, Android, and Windows apps quickly and easily. Features that used to take time and increase project risks, such as adding corporate sign-in and then connecting to on-premises resources such as SAP, Oracle, SQL Server, and SharePoint, are now simple to include.

Other features of this service include:

  • Offline data synchronization.
  • Connectivity to on-premises data.
  • Broadcasting push notifications.
  • Autoscaling to match business needs.

Databases

Azure provides multiple database services to store a wide variety of data types and volumes. And with global connectivity, this data is available to users instantly.

Service name Service function
Azure Cosmos DB Globally distributed database that supports NoSQL options
Azure SQL Database Fully managed relational database with auto-scale, integral intelligence, and robust security
Azure Database for MySQL Fully managed and scalable MySQL relational database with high availability and security
Azure Database for PostgreSQL Fully managed and scalable PostgreSQL relational database with high availability and security
SQL Server on VMs Host enterprise SQL Server apps in the cloud
Azure SQL Data Warehouse Fully managed data warehouse with integral security at every level of scale at no extra cost
Azure Database Migration Service Migrates your databases to the cloud with no application code changes
Azure Cache for Redis Caches frequently used and static data to reduce data and application latency
Azure Database for MariaDB Fully managed and scalable MariaDB relational database with high availability and security

Web

Having a great web experience is critical in today’s business world. Azure includes first-class support to build and host web apps and HTTP-based web services. The Azure services focused on web hosting include:

Service Name Description
Azure App Service Quickly create powerful cloud web-based apps
Azure Notification Hubs Send push notifications to any platform from any back end.
Azure API Management Publish APIs to developers, partners, and employees securely and at scale.
Azure Search Fully managed search as a service.
Web Apps feature of Azure App Service Create and deploy mission-critical web apps at scale.
Azure SignalR Service Add real-time web functionalities easily.

Internet of Things

People are able to access more information than ever before. It began with personal digital assistants (PDAs), then morphed into smartphones. Now there are smart watches, smart thermostats, even smart refrigerators. Personal computers used to be the norm. Now the internet allows any item that’s online-capable to access valuable information. This ability for devices to garner and then relay information for data analysis is referred to as the Internet of Things (IoT).

There are a number of services that can assist and drive end-to-end solutions for IoT on Azure.

Service Name Description
IoT Central Fully-managed global IoT software as a service (SaaS) solution that makes it easy to connect, monitor, and manage your IoT assets at scale
Azure IoT Hub Messaging hub that provides secure communications and monitoring between millions of IoT devices
IoT Edge Push your data analysis onto your IoT devices instead of in the cloud allowing them to react more quickly to state changes.

Big Data

Data comes in all formats and sizes. When we talk about Big Data, we’re referring to large volumes of data. Data from weather systems, communications systems, genomic research, imaging platforms, and many other scenarios generate hundreds of gigabytes of data. This amount of data makes it hard to analyze and make decisions around. It’s often so large that traditional forms of processing and analysis are no longer appropriate.

Open source cluster technologies have been developed to deal with these large data sets. Microsoft Azure supports a broad range of technologies and services to provide big data and analytic solutions.

Service Name Description
Azure SQL Data Warehouse Run analytics at a massive scale using a cloud-based Enterprise Data Warehouse (EDW) that leverages massive parallel processing (MPP) to run complex queries quickly across petabytes of data
Azure HDInsight Process massive amounts of data with managed clusters of Hadoop clusters in the cloud
Azure Data Lake Analytics On-demand (“pay as you go”) scalable analytics service that allows you to write queries to transform your data and extract valuable insights.

Artificial Intelligence

Artificial Intelligence, in the context of cloud computing, is based around a broad range of services, the core of which is Machine Learning. Machine Learning is a data science technique that allows computers to use existing data to forecast future behaviors, outcomes, and trends. Using machine learning, computers learn without being explicitly programmed.

Forecasts or predictions from machine learning can make apps and devices smarter. For example, when you shop online, machine learning helps recommend other products you might like based on what you’ve purchased. Or when your credit card is swiped, machine learning compares the transaction to a database of transactions and helps detect fraud. And when your robot vacuum cleaner vacuums a room, machine learning helps it decide whether the job is done.

Some of the most common Artificial Intelligence and Machine Learning service types in Azure are:

Service Name Description
Azure Machine Learning Service Cloud-based environment you can use to develop, train, test, deploy, manage, and track machine learning models. It can auto-generate a model and auto-tune it for you. It will let you start training on your local machine, and then scale out to the cloud
Azure Machine Learning Studio Collaborative, drag-and-drop visual workspace where you can build, test, and deploy machine learning solutions using pre-built machine learning algorithms and data-handling modules

A closely related set of products are the cognitive services. These are pre-built APIs you can leverage in your applications to solve complex problems.

Service Name Description
Vision Image-processing algorithms to smartly identify, caption, index, and moderate your pictures and videos.
Speech Convert spoken audio into text, use voice for verification, or add speaker recognition to your app.
Knowledge mapping Map complex information and data in order to solve tasks such as intelligent recommendations and semantic search.
Bing Search Add Bing Search APIs to your apps and harness the ability to comb billions of webpages, images, videos, and news with a single API call.
Natural Language processing Allow your apps to process natural language with pre-built scripts, evaluate sentiment and learn how to recognize what users want.

DevOps

DevOps (Development and Operations) brings together people, processes, and technology, automating software delivery to provide continuous value to your users. Azure DevOps Services allows you to create, build, and release pipelines that provide continuous integration, delivery, and deployment for your applications. You can integrate repositories and application tests, perform application monitoring, and work with build artifacts. You can also work with and backlog items for tracking, automate infrastructure deployment and integrate a range of third-party tools and services such as Jenkins and Chef. All of these functions and many more are closely integrated with Azure to allow for consistent, repeatable deployments for your applications to provide streamlined build and release processes.

Some of the main DevOps services available with Azure are Azure DevOps Services, and Azure DevTest Labs.

Service Name Description
Azure DevOps Azure DevOps Services (formerly known as Visual Studio Team Services (VSTS)), provides development collaboration tools including high-performance pipelines, free private Git repositories, configurable Kanban boards, and extensive automated and cloud-based load testing
Azure DevTest Labs Quickly create on-demand Windows and Linux environments you can use to test or demo your applications directly from your deployment pipelines

What is Azure?

Azure is Microsoft’s cloud computing platform. Azure is a continually expanding set of cloud services that help your organization meet your current and future business challenges. Azure gives you the freedom to build, manage, and deploy applications on a massive global network using your favorite tools and frameworks.

How does Azure work?

Before we go further, let’s briefly define cloud computing.

A web server and two databases

What is cloud computing?

Cloud computing is the delivery of computing services over the Internet using a pay-as-you-go pricing model. Put another way, it’s a way to rent compute power and storage from someone else’s data center.

Instead of maintaining CPUs and storage in your data center, you rent them for the time that you need them. The cloud provider takes care of maintaining the underlying infrastructure for you.

You can treat cloud resources like you would your resources in your own data center. When you’re done using them, you just give them back. You’re billed only for what you use.

While this is all great, the real value of the cloud is that it enables you to quickly solve your toughest business challenges and bring cutting edge solutions to your users.

A suitcase representing a move to the cloud

Why should I move to the cloud?

The cloud helps you move faster and innovate in ways that were once nearly impossible.

In our ever-changing digital world, two trends emerge:

  • Teams are delivering new features to their users at record speeds.
  • End users expect an increasingly rich and immersive experience with their devices and with software.

Software releases were once scheduled in terms of months or even years. Today, teams are releasing features in smaller batches. Releases are now often scheduled in terms of days or weeks. Some teams even deliver software updates continuously — sometimes with multiple releases within the same day.

Think of all the ways you interact with devices that you couldn’t do just a few years ago. Many devices can recognize your face and respond to voice commands. Augmented reality changes the way you interact with the physical world. Household appliances are even beginning to act intelligently. These are just a few examples, many of which are powered by the cloud.

To power your services and deliver innovative and novel user experiences more quickly, the cloud provides on-demand access to:

  • A nearly limitless pool of raw compute, storage, and networking components.
  • Speech recognition and other cognitive services that help make your application stand out from the crowd.
  • Analytics services that enable you to make sense of telemetry data coming back from your software and devices.

Let’s see how Azure fits in with cloud computing.

A cup containing an artist's tools

What can I do on Azure?

Azure provides over 100 services that enable you to do everything from running your existing applications on virtual machines to exploring new software paradigms such as intelligent bots and mixed reality.

Many teams start exploring the cloud by moving their existing applications to virtual machines that run in Azure. While migrating your existing apps to virtual machines is a good start, the cloud is more than just “a different place to run your virtual machines”.

For example, Azure provides AI and machine-learning services that can naturally communicate with your users through vision, hearing, and speech. It also provides storage solutions that dynamically grow to accommodate massive amounts of data. Azure services enable solutions that are simply not feasible without the power of the cloud.

What is cloud computing?

Cloud computing is renting resources, like storage space or CPU cycles, on another company’s computers. You only pay for what you use. The company providing these services is referred to as a cloud provider. Some example providers are Microsoft, Amazon, and Google.

The cloud provider is responsible for the physical hardware required to execute your work, and for keeping it up-to-date. The computing services offered tend to vary by cloud provider. However, typically they include:

  • Compute power – such as Windows and Linux virtual machines
  • Storage – such as object storage
  • Applications – such as NoSQL or SQL database applications
  • Networking – such as setting up virtual networks for your virtual machines
  • Analytics – such as visualizing telemetry, and performance data

Cloud computing services

The goal of cloud computing is to make running a business easier and more efficient, whether it’s a small start-up or a large enterprise. Every business is unique and has different needs. To meet those needs, cloud computing providers offer a wide range of services.

You need to have a basic understanding of some of the services it provides. Let’s briefly discuss the two most common services that all cloud providers offer – compute power and storage.

Compute power

You’re using compute power every day, whether you know it or not. If you’re sending an email, browsing a website, or even checking the weather on your mobile device, there’s hardware doing computer processing work behind the scenes.

When you build solutions using cloud computing, you can choose how you want work to be done based on your resources and needs. For example, if you want to have more control and responsibility over maintenance, you could create a virtual machine (VM). A VM is an emulation of a computer operating system and hardware that appears to the user like a physical computer running Windows or Linux. With the cloud, you can have a VM ready within minutes, not days or weeks.

Compute power gauge

What are containers?

Containers provide a consistent, isolated execution environment for applications. The open-source project, Docker, is one of the leading platforms for managing containers. Docker containers provide an efficient, lightweight approach to application deployment because they allow different components of the application to be deployed independently into different containers. Multiple containers can reside on a single machine, and containers can be moved between machines. The portability of the container makes it easy for applications to be deployed in multiple environments, either on-premises or in the cloud, often with no changes to the application.

What is serverless computing?

Serverless computing lets you run application code without creating, configuring, or maintaining a server. Serverless computing enables you to focus solely on how your application behaves. It’s ideal for automation tasks. For example, you can build a serverless process that automatically sends an email confirmation after a customer makes an online purchase.

Storage

Most devices read and/or write data. Here are some examples:

  • Retrieving weather information
  • Taking a picture
  • Sending an email
  • Leaving a voicemail

In all of these cases, data is either read (like the weather) or written (like taking a picture). The type of data is different in each of these cases.

Storage gauge

Cloud providers typically offer services that can handle all of these types of data. For example, if you wanted to store text, you could use a file on disk or you could take a more structured approach like using a relational database.

Summary

Every business has different needs and requirements. Cloud computing is flexible and cost-efficient, which can be beneficial to every business, whether it’s a small start-up or a large enterprise.

Introduction

When you turn on a light, you simply want the light to work. You know you need electricity for that to happen, but in that moment, the details of how the electricity gets to the light bulb aren’t important. You might not think about electricity being created in a power plant, traveling through a large network of high-voltage transmission lines to your town, going through a substation, and eventually making its way into your home.

Connecting a plug to represent electricity being delivered

The process of turning on a light is hidden behind the simple act of flipping a switch. At this point, electricity becomes a utility, which has many benefits. First, you only pay for what you need. When you buy a light bulb, you don’t pay your electricity provider up front for how long you could possibly use it. Instead, you pay for the amount of electricity that you actually use. Second, you don’t worry about how or when power plants upgrade to the latest technology. Finally, you don’t have to manage scaling the electricity. For example, as people move to your town, you can rest assured that your light will stay on.

As a technology professional, it would be nice to have these same benefits when developing and deploying applications. Storing data, streaming video, or even hosting a website all require managing hardware and software. This management is an unnecessary obstacle when delivering your application to your users. Luckily there is a solution to this problem: cloud computing.

Learning objectives

In this module, you will:

  • Explore common cloud computing services
  • Explore the benefits of cloud computing
  • Decide which cloud deployment model is best for you

Docker Volumes

We’ve used quite a few images thus far through this course, and now let’s spend a little bit of time talking about how to manage and keep track of the images we’re working with.So you can list the images that you’ve already downloaded with the docker images command. It only lists the images you’ve already downloaded. It’s not the tool for finding images to download. We’ll cover that later. So, docker images. Alright I can see there are several imageson my machine. Now spend a little time, this is where it came from, the tag on it, this one has no name and no tag.

The image ID we’ve mentioned before. So wanna mention the size here. Because these images share a great deal of their underlying data, you don’t sum up the sizes here to get the total amount of space the docker’s using. In this case, all of these 122 megabyte images here are actually the same 122 megabytes, with different names on them. Docker is much more space efficient than it would look like just from looking at this list. So don’t get scared by that.