# Container

**Containers** are a virtual environment, like running multiple virtual machines on a single physical host, or multiple containers on a single physical/virtual host. Example: Docker

Containers are managed through a container orchestrator, which can start, stop, and scale-out application instances as needed.

* used to deploy and manage containers.
* portability, performance, lightweight

### Containers vs Virtual Machines

|          Container          |         VM         |
| :-------------------------: | :----------------: |
|          Isolation          |  Strong Isolation  |
|           Portable          |      Portable      |
|          Efficient          |   Resource Hungry  |
|          Fast Start         |    OS Boot Times   |
|         Disposable          |  Require Patching  |
| Minimal Attack Surface Area | OS needs Hardening |

## What is a microservice? <a href="#what-is-a-microservice" id="what-is-a-microservice"></a>

Containers are often used to create solutions by using a **microservice architecture**. This architecture splits the solutions into smaller, independent pieces.

{% embed url="https://www.microsoft.com/en-us/videoplayer/embed/RE2yual?postJsllMsg=truewww.microsoft.com" %}

## Microsoft Azure

* Virtual Machines (IaaS)
  * Linux&#x20;
  * Windows
  * Kubernetes
* Azure Container Instances (ACI)
  * Serverless
  * Fast and easy
  * Per-second billing
* Azure Web Apps for Containers
  * Great for webapps
  * custom domains
  * Auto-Scaling
* Azure Service Fabric
  * Scalable orchestration platform&#x20;
  * powers key azure services
  * multiple programming models
* Azure Kubernetes Service(AKS)
  * Managed Kubernetes Cluster
  * specify nodes count
  * open source tooling
