introduction to cloud & containers

— Eugene Romero, sjefskonsulent @ Crayon

what is cloud computing?

  • 1960s - John McCarthy proposes computing being offered as a utility
  • 1990s - rise of the internet and advancements in virtualization technologies
  • 2000s - launch of major public cloud platforms
  • Today - cloud computing powers everything from web apps to AI workloads

history

cloud

  • easily scalable
  • only pay for what you use
  • accessible from everywhere
  • distributed
  • reduced maintenance

traditional

  • scaling is costly and slow
  • large initial and ongoing cost
  • location-specific access
  • not distributed
  • maintenance

service models

Infra as a Service

 

AWS EC2 VMs

Azure Virtual Machines

Google Compute Engine

IaaS

Platform as a Service

 

Heroku

Azure App Service

Google App Engine

PaaS

Software as a Service

 

Office 365

Google Workspace

Dropbox

SaaS

the big players

Amazon Web Services

Microsoft Azure

Google Cloud Platform

distributed!

Azure datacenter map

containers?

containers

virtual machines

bare metal

evolution of software deployment

solving "works on my machine" syndrome

containers

  • lightweight
  • fast startup
  • low maintenance
  • small attack surface

virtual machines

  • high resource usage
  • slow to start
  • require maintenance
  • large attack surface

break

there are many container managers

running instance

container

blueprint

image

the Dockerfile

example docker commands

docker image naming

repository/image:tag

name of the source repository

version

image name

demo

lets build a simple web server

containers + cloud = the future!

  • manage multiple containers at scale
  • programmatically start/stop workloads
  • expose applications to the internet
  • combine containerized apps with other cloud resources

orchestration

Azure Container Services

Azure Container Instances

 

simple, single container

ACI

Azure Kubernetes Service

 

full orchestration and control, higher complexity

AKS

Azure Container Registry

 

repository for docker images

ACR

Azure Container Apps

 

microservices, autoscaling, more control

ACA

Azure Container Apps

 

microservices, autoscaling, more control

ACA

demo

lets build a simple web server (in Azure)

what you will build:

  • containerized dotnet API
  • multiple endpoints
  • running on Azure

workshop preparation

pre-requisites:

  • dotnet SDK
  • Docker desktop
  • Azure subscription

questions?

day 2

workshop

  • install az CLI (5 min)
  • build the app (10 min)
  • create Dockerfile (15 min)
  • push to Azure Container Registry (15 min)
  • deploy to Azure Container Instance (25 min)
  • update app (10 min)

steps

https://learn.microsoft.com/nb-no/cli/azure/install-azure-cli

https://github.com/eugeneromero/uis-docker-initial

docker commands

az cli commands

https://portal.azure.com

az acr commands

az aci commands

slides:

github repo:

https://github.com/eugeneromero/uis-docker-workshop

https://damn.engineer/slides/