microsoft ignite 2017 - sql server on kubernetes, swarm, and open shift

47

Upload: travis-wright

Post on 22-Jan-2018

289 views

Category:

Technology


5 download

TRANSCRIPT

The New Reality

3

Data and Agility are the only hope of survival

4https://www.innosight.com/insight/corporate-longevity-turbulence-ahead-for-large-organizations/

https://www2.deloitte.com/us/en/pages/mergers-and-acquisitions/articles/ma-trends-report.html

Longevity is not a given anymore

Disruption happens practically overnight

5

Nature of Software Delivery Has Changed

DevOps Principles in Focus

7

9

Container Benefits

9

This is not a fad!

…but wait…

10

Docker Databases

11

Most of the most popular images are databases

Postgres: 10M+ pulls

Mysql: 10M+ pulls

Redis: 10M+ pulls

Mongo: 10M+ pulls

SQL Server on Linux has had ~2M+ pulls in the first 10 months

Persisting Storage

12

Mount a volume to the host

Local storage

Remote storage

Mount a container volume

docker run … -v /my/host/dir:/my/container/dir …

docker create -v /mydata --name mydatacontainer …docker run --volumes-from mydatacontainer …

Read this!

https://docs.docker.com/engine/tutorials/dockervolumes/

Build & Test Locally in Dev Environment

13

Build locally on Windows, Linux, or macOS

Windows

Linux Docker containers using Docker for Windows

Windows containers on Windows 10 Anniversary Edition+

macOS

Linux Docker containers using Docker for Mac

Linux

Use Docker Engine natively

There are other container engines like LXC

Use for demo today

Application Deployment Patterns Using Containers

14

SQL Server

App 1 App 2

SQL Server

App 1

SQL Server

+

App 1

Centralized SQL Server Docker Compose Monolithic App or

Microservice

Real World Example – SQL Server Team

18

SQL Server Engineering Team uses Kubernetes in Azure VMs for

automated testing of SQL Server on Linux

Automated build process creates the container image

Extended existing test system to handle provisioning and test

execution/targeting

~700 containers per test run, usually once per day

150 VM hosts in Azure; 128 GB/8 cores

20+ containers/VM in some cases

High density, each SQL Server container listens on a different

port

Real World Example – DV01

https://customers.microsoft.com/en-us/story/dv01

NETWORKING

Container to Container on the Same Host

2

4

OVS PACKET FLOW

NODE

POD 1veth0

10.1.15.2/24

br0

10.1.15.1/24

192.168.0.100

eth0

POD 2veth1

10.1.15.3/24

vxlan0

NODE 2

NODE 1

2

5

OVS PACKET FLOW

POD 1veth0

10.1.15.2/24

br0

10.1.15.1/24vxlan0

POD 2veth0

10.1.20.2/24

br0

10.1.20.1/24vxlan0

192.168.0.100

eth0

192.168.0.200

eth0

Container to Container on the Different Hosts

Container Connects to External Host

Container to Container on Different Hosts

2

6

OVS PACKET FLOW

NODE 1

POD 1veth0

10.1.15.2/24

br0

10.1.15.1/24tun0

192.168.0.100

External

Hosteth0

SERVICE

POD POD

ROUTER

POD

EXTERNAL TRAFFIC

INTERNAL TRAFFIC

ROUTE EXPOSES SERVICES EXTERNALLY

ROUTE SPLIT TRAFFIC

SERVICE A

App A App A

SERVICE B

App B App B

ROUTE

10%

traffic

90% traffic

Split Traffic Between

Multiple Services For A/B

Testing, Blue/Green and

Canary Deployments

“For which workloads or application use cases have you used/do you anticipate touse containers?”

DataApps

77%CloudApps

71%Systems of

Engagement

62%

Systems of

Record

62%

Web andCommerce

Software

57%MobileApps

52%SocialApps

46%

Scalable, Cost Effective, Distributed Storage for Containers

\

● Persistent Volume are tied to a piece of network storage

● Provisioned by an administrator either statically or dynamically

● Allows admins to describe storage and users to request storage

PERSISTENT STORAGE

NFS GlusterFSOpenStack

CinderCeph

RBD

Azure

BlobFibre

ChannelAzure

File

Azure

DiskiSCSI

PROJECT

POOL OF PERSISTENT VOLUMES

PERSISTENT STORAGE

NFS

PV

iSCS

I

PV

NFS

PV

Admin

User

register PV

create claim

NFS

PVGlusterFS

PV

Pod

claim

Pod

claim

Pod

claim

Ceph

RBD

PV

3

3

DYNAMIC VOLUME PROVISIONING

Admin

User

define StorageClass

create claim: Fastest

SlowAzure-Disk

FastAWS-SSD

FastestNetApp-Flash

NetApp

Provisioner

AWS

Provisioner

Pod

claim

PV

OpenShift

PV Controller

provision

Azure

Provisioner

bound

NODENODENODE

CONTAINER-NATIVE STORAGE

NODE

POD POD POD POD POD POD POD

POD POD POD

RHG

S

RHG

S

RHG

S

POD POD POD

MASTER

NODE

MASTER● Secure mechanism for holding sensitive

data e.g.

○ Passwords and credentials

○ SSH Keys

○ Certificates

● Secrets are made available as

○ Environment variables

○ Volume mounts

○ Interaction with external systems

● Encrypted in transit

● Never rest on the nodes3

6

SECRET MANAGEMENT

Container

Distributed Store

Container

Secret Example

https://hub.docker.com/r/microsoft/mssql-server-linux/

https://www.openshift.com/dedicated/test-drive.html

https://github.com/twright-msft/example-voting-app

https://github.com/twright-msft/mssql-server-rhel

https://github.com/twright-msft/contoso-u

https://github.com/twright-msft/contoso-u DevOps: CI/CD with Microsoft SQL Server 2017

Tomorrow at 12:30 – 1:45, Hyatt International

Key Docker Terminology and Commands

45

Image – A definition. Defines what software is included and how it runs.

Container – A running instance based on the image.

docker pull – download an image from a Docker respository

docker run – create a container from an image

docker ps – list all locally running containers

docker images – list all locally cached images

You do not “install” a Docker container!

Master.mdfContosoUniversity.ldf

ContosoUniversity.mdf

db-prod:latest