SlideShare una empresa de Scribd logo
1 de 25
SQL Server on Linux Engineering Town Hall Webinar Series
SQL Server in DevOps
SQL Server v.Next CTP 1.4
April 6, 2017
Travis Wright, Luis Bosquez Gonzalez
Program Managers
SQL Server Engineering Team
@radtravis, @_lbosq
Announcing vNext CTP 1.4!
2
Release date: March 17, 2017
Version number: 14.0.405.198
What’s new?
• SQL Server Agent
• Mssql-tools (sqlcmd, bcp) now included in the mssql-server-linux Docker image
• VDI interface for backups
• Performance improvements
• Bug fixes
Agenda
3
• Background on SQL Server, DevOps, Containers, and Container Management
Platforms
• Demos
• Lessons Learned
• What’s Next
• Get Involved
The New Reality
4
Data and Agility are the only hope of survival
5
https://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
6
Nature of Software Delivery Has
Changed
DevOps Principles in Focus
8
• Embrace emerging technology and patterns
• Challenge the status quo
• Agility, efficiency, and speed
• DevOps is a partnership between Dev and Ops
• Ops enables and controls
• Devs build and maintain apps and services
• Both provide support
Containers:
Fad
or
Fundamental Transformation?
9
Container Benefits
10
All the benefits of VMs – isolation, portability, duplicatable, shareable, packaging -
plus…
• Reduced size on disk – better hardware utilization
• Reduced CPU/memory consumption – better hardware utilization
• Reduced deployment size – faster deployments and scale up/down
• Reduced patching – less effort, less vulnerability, less down time
• Better composability – Images of layers, applications defined as multiple
containers
• Easier sharing – Docker Hub and Registry
This is not a fad!
…but wait…
11
• “Containers are emphemeral”
• “Containers aren’t for anything critical”
• “Containers aren’t for databases”
Docker Databases
12
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 ~1M pulls in the first 5 months
Persisting Storage
13
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
14
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
Testing & Release
15
Use Docker Engine natively
Use a container management platform (aka “orchestrator”)
Kubernetes
Red Hat OpenShift (based on Kubernetes)
Docker Swarm
Mesosphere DC/OS
Use a cloud service
Azure Container Service (ACS)
AWS EC2 Container Service (ECS)
Use for demo today
Real World Example
16
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
Key Docker Terminology and
Commands
17
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! 
Application Deployment
Patterns Using Containers
18
SQL Server
App 1 App 2
SQL Server
App 1
SQL Server
+
App 1
Centralized SQL Server Docker Compose Monolithic App or
Microservice
Methods for Deployment
19
Deploy standard SQL Server container image.
App deploys the DB at start up.
Use standard SQL Server image as a base layer. Include DB inside of
image.
At run time the CMD in the Dockerfile attaches/restores the DB.
Use standard SQL Server image as base layer.
At run time the DB is created by the CMD in the Dockerfile.
Demo #1 today
Demo #2 today
Demo #1 Docker-Compose App
9
Demo #2 Deploy a Microservice App to
OpenShift
9
Lessons Learned
• Tools aren’t in image. Resolved
• Can't connect directly to the SQL Server from outside OpenShift network - no access to port 1433
• No way to create a DB simply at docker run time
• Need to code around delays to start, SQL Server takes too long to start
• SQL Server currently requires 3.25 GB of RAM – more than should be minimum
• Make sure you are running on latest Docker-Engine version (demo built using Docker 1.12.5) -
ASP.Net container will have issues if not. Current OpenShift-All-In-One Vagrant box has older
version of Docker Engine. Resolved
• Issue with the fact that the container runs as root. Open Shift doesn’t allow that by default. You
can change the perms, but it requires cluster administrator privs.
• Docker, OpenShift/Kubernetes, and SQL Server on Linux is still relatively new, especially to ops
teams.
‐ No established best practices
‐ Minimal documentation
What’s Next?
23
• High availability in container management platforms
• Performance testing and tuning
• Reduce minimum RAM requirement and start up time
• Docker image improvements
‐ https://github.com/Microsoft/mssql-docker/issues
• More testing of SQL Server on Windows containers  officially support
• General Availability later this year of SQL Server v.Next including
support for SQL Server on Linux containers
• Make SQL Server container images available everywhere
Get Involved
24
• Get the SQL Server container images
‐ hub.docker.com/r/microsoft/mssql-server-linux (v.Next)
‐ hub.docker.com/r/microsoft/mssql-server-windows (v.Next)
‐ https://hub.docker.com/r/microsoft/mssql-server-windows-express/ (2016 SP1)
‐ Mesosphere DC/OS Universe image
• Provide feedback
‐ https://github.com/Microsoft/mssql-docker/issues
• Get samples from today
‐ https://github.com/twright-msft/mssql-node-docker-demo-app
‐ https://github.com/twright-msft/mssql-aspnet-docker-demo-app
• Contact me if you want to work on cool stuff together!
Questions?
Thank you!
9
twright@microsoft.com
twitter.com/radtravis
linkedin.com/in/radtravis

Más contenido relacionado

La actualidad más candente

La actualidad más candente (20)

Docker on Docker
Docker on DockerDocker on Docker
Docker on Docker
 
Architecture Overview: Kubernetes with Red Hat Enterprise Linux 7.1
Architecture Overview: Kubernetes with Red Hat Enterprise Linux 7.1Architecture Overview: Kubernetes with Red Hat Enterprise Linux 7.1
Architecture Overview: Kubernetes with Red Hat Enterprise Linux 7.1
 
DockerCon EU 2015: The Latest in Docker Engine
DockerCon EU 2015: The Latest in Docker EngineDockerCon EU 2015: The Latest in Docker Engine
DockerCon EU 2015: The Latest in Docker Engine
 
OpenStack Icehouse Overview
OpenStack Icehouse OverviewOpenStack Icehouse Overview
OpenStack Icehouse Overview
 
Oracle Java Cloud Service JCS (and WebLogic 12c) - What you Should Know
Oracle Java Cloud Service JCS (and WebLogic 12c) - What you Should KnowOracle Java Cloud Service JCS (and WebLogic 12c) - What you Should Know
Oracle Java Cloud Service JCS (and WebLogic 12c) - What you Should Know
 
Docker and Microsoft - Windows Server 2016 Technical Deep Dive
Docker and Microsoft - Windows Server 2016 Technical Deep DiveDocker and Microsoft - Windows Server 2016 Technical Deep Dive
Docker and Microsoft - Windows Server 2016 Technical Deep Dive
 
Production Ready Containers from IBM and Docker
Production Ready Containers from IBM and DockerProduction Ready Containers from IBM and Docker
Production Ready Containers from IBM and Docker
 
Microservices Runtimes
Microservices RuntimesMicroservices Runtimes
Microservices Runtimes
 
Oracle database on Docker Container
Oracle database on Docker ContainerOracle database on Docker Container
Oracle database on Docker Container
 
Serverless / FaaS / Lambda and how it relates to Microservices
Serverless / FaaS / Lambda and how it relates to MicroservicesServerless / FaaS / Lambda and how it relates to Microservices
Serverless / FaaS / Lambda and how it relates to Microservices
 
Docker Meetup 08 03-2016
Docker Meetup 08 03-2016Docker Meetup 08 03-2016
Docker Meetup 08 03-2016
 
Moving Legacy Applications to Docker by Josh Ellithorpe, Apcera
Moving Legacy Applications to Docker by Josh Ellithorpe, Apcera Moving Legacy Applications to Docker by Josh Ellithorpe, Apcera
Moving Legacy Applications to Docker by Josh Ellithorpe, Apcera
 
AWS ECS Quick Introduction
AWS ECS Quick IntroductionAWS ECS Quick Introduction
AWS ECS Quick Introduction
 
Mongo db world 2014 nyc mongodb on azure - tips tricks and examples
Mongo db world 2014 nyc   mongodb on azure - tips tricks and examplesMongo db world 2014 nyc   mongodb on azure - tips tricks and examples
Mongo db world 2014 nyc mongodb on azure - tips tricks and examples
 
vSphere Integrated Containers 101 and End-User Workflow
vSphere Integrated Containers 101 and End-User WorkflowvSphere Integrated Containers 101 and End-User Workflow
vSphere Integrated Containers 101 and End-User Workflow
 
Data control
Data controlData control
Data control
 
Docker Datacenter Overview and Production Setup Slides
Docker Datacenter Overview and Production Setup SlidesDocker Datacenter Overview and Production Setup Slides
Docker Datacenter Overview and Production Setup Slides
 
Containers orchestrators: Docker vs. Kubernetes
Containers orchestrators: Docker vs. KubernetesContainers orchestrators: Docker vs. Kubernetes
Containers orchestrators: Docker vs. Kubernetes
 
Practical Container Security by Mrunal Patel and Thomas Cameron, Red Hat
Practical Container Security by Mrunal Patel and Thomas Cameron, Red HatPractical Container Security by Mrunal Patel and Thomas Cameron, Red Hat
Practical Container Security by Mrunal Patel and Thomas Cameron, Red Hat
 
Android Meets Docker
Android Meets DockerAndroid Meets Docker
Android Meets Docker
 

Similar a SQL Server in DevOps Town Hall Webinar

IBM Bluemix Paris Meetup #14 - Le Village by CA - 20160413 - Introduction à D...
IBM Bluemix Paris Meetup #14 - Le Village by CA - 20160413 - Introduction à D...IBM Bluemix Paris Meetup #14 - Le Village by CA - 20160413 - Introduction à D...
IBM Bluemix Paris Meetup #14 - Le Village by CA - 20160413 - Introduction à D...
IBM France Lab
 
Docker - Portable Deployment
Docker - Portable DeploymentDocker - Portable Deployment
Docker - Portable Deployment
javaonfly
 

Similar a SQL Server in DevOps Town Hall Webinar (20)

Docker 101 - Nov 2016
Docker 101 - Nov 2016Docker 101 - Nov 2016
Docker 101 - Nov 2016
 
Docker
DockerDocker
Docker
 
Oracle WebLogic Server 12c with Docker
Oracle WebLogic Server 12c with DockerOracle WebLogic Server 12c with Docker
Oracle WebLogic Server 12c with Docker
 
Going Production with Docker and Swarm
Going Production with Docker and SwarmGoing Production with Docker and Swarm
Going Production with Docker and Swarm
 
IBM Bluemix Paris Meetup #14 - Le Village by CA - 20160413 - Introduction à D...
IBM Bluemix Paris Meetup #14 - Le Village by CA - 20160413 - Introduction à D...IBM Bluemix Paris Meetup #14 - Le Village by CA - 20160413 - Introduction à D...
IBM Bluemix Paris Meetup #14 - Le Village by CA - 20160413 - Introduction à D...
 
Introduction to Containers - SQL Server and Docker
Introduction to Containers - SQL Server and DockerIntroduction to Containers - SQL Server and Docker
Introduction to Containers - SQL Server and Docker
 
Docker from A to Z, including Swarm and OCCS
Docker from A to Z, including Swarm and OCCSDocker from A to Z, including Swarm and OCCS
Docker from A to Z, including Swarm and OCCS
 
Getting Started with Docker
Getting Started with DockerGetting Started with Docker
Getting Started with Docker
 
Docker dev ops for cd meetup 12-14
Docker dev ops for cd meetup 12-14Docker dev ops for cd meetup 12-14
Docker dev ops for cd meetup 12-14
 
Michigan IT Symposium 2017 - Container BOF
Michigan IT Symposium 2017 - Container BOFMichigan IT Symposium 2017 - Container BOF
Michigan IT Symposium 2017 - Container BOF
 
Developer workflow with docker
Developer workflow with dockerDeveloper workflow with docker
Developer workflow with docker
 
Introduction to Docker Containers - Docker Captain
Introduction to Docker Containers - Docker CaptainIntroduction to Docker Containers - Docker Captain
Introduction to Docker Containers - Docker Captain
 
Introduction to Docker - IndiaOpsUG
Introduction to Docker - IndiaOpsUGIntroduction to Docker - IndiaOpsUG
Introduction to Docker - IndiaOpsUG
 
Introduction to Containers & Diving a little deeper into the benefits of Con...
 Introduction to Containers & Diving a little deeper into the benefits of Con... Introduction to Containers & Diving a little deeper into the benefits of Con...
Introduction to Containers & Diving a little deeper into the benefits of Con...
 
Docker - Portable Deployment
Docker - Portable DeploymentDocker - Portable Deployment
Docker - Portable Deployment
 
Docker in the Oracle Universe / WebLogic 12c / OFM 12c
Docker in the Oracle Universe / WebLogic 12c / OFM 12cDocker in the Oracle Universe / WebLogic 12c / OFM 12c
Docker in the Oracle Universe / WebLogic 12c / OFM 12c
 
Practical guide to Oracle Virtual environments
Practical guide to Oracle Virtual environmentsPractical guide to Oracle Virtual environments
Practical guide to Oracle Virtual environments
 
Containerization using docker and its applications
Containerization using docker and its applicationsContainerization using docker and its applications
Containerization using docker and its applications
 
Containerization using docker and its applications
Containerization using docker and its applicationsContainerization using docker and its applications
Containerization using docker and its applications
 
Containers and Docker
Containers and DockerContainers and Docker
Containers and Docker
 

Más de Travis Wright

Más de Travis Wright (16)

Microsoft ignite 2018 SQL server 2019 big data clusters - deep dive session
Microsoft ignite 2018 SQL server 2019 big data clusters - deep dive sessionMicrosoft ignite 2018 SQL server 2019 big data clusters - deep dive session
Microsoft ignite 2018 SQL server 2019 big data clusters - deep dive session
 
Microsoft ignite 2018 SQL Server 2019 big data clusters - intro session
Microsoft ignite 2018  SQL Server 2019 big data clusters - intro sessionMicrosoft ignite 2018  SQL Server 2019 big data clusters - intro session
Microsoft ignite 2018 SQL Server 2019 big data clusters - intro session
 
PASS Summit - SQL Server 2017 Deep Dive
PASS Summit - SQL Server 2017 Deep DivePASS Summit - SQL Server 2017 Deep Dive
PASS Summit - SQL Server 2017 Deep Dive
 
SQL Server 2017 Deep Dive - @Ignite 2017
SQL Server 2017 Deep Dive - @Ignite 2017SQL Server 2017 Deep Dive - @Ignite 2017
SQL Server 2017 Deep Dive - @Ignite 2017
 
Microsoft Ignite 2017 - SQL Server on Kubernetes, Swarm, and Open Shift
Microsoft Ignite 2017 - SQL Server on Kubernetes, Swarm, and Open ShiftMicrosoft Ignite 2017 - SQL Server on Kubernetes, Swarm, and Open Shift
Microsoft Ignite 2017 - SQL Server on Kubernetes, Swarm, and Open Shift
 
SQL Server 2017 on Linux Introduction
SQL Server 2017 on Linux IntroductionSQL Server 2017 on Linux Introduction
SQL Server 2017 on Linux Introduction
 
SQL Server 2017 on Linux Introduction
SQL Server 2017 on Linux IntroductionSQL Server 2017 on Linux Introduction
SQL Server 2017 on Linux Introduction
 
SQL Server 2017 Overview and Partner Opportunities
SQL Server 2017 Overview and Partner OpportunitiesSQL Server 2017 Overview and Partner Opportunities
SQL Server 2017 Overview and Partner Opportunities
 
Data Amp South Africa - Keynote
Data Amp South Africa - KeynoteData Amp South Africa - Keynote
Data Amp South Africa - Keynote
 
Data Amp South Africa - SQL Server 2017
Data Amp South Africa - SQL Server 2017Data Amp South Africa - SQL Server 2017
Data Amp South Africa - SQL Server 2017
 
NYC Data Amp - SQL Server 2017
NYC Data Amp - SQL Server 2017NYC Data Amp - SQL Server 2017
NYC Data Amp - SQL Server 2017
 
NYC Data Amp - Microsoft Azure and Data Services Overview
NYC Data Amp - Microsoft Azure and Data Services OverviewNYC Data Amp - Microsoft Azure and Data Services Overview
NYC Data Amp - Microsoft Azure and Data Services Overview
 
Build 2017 SQL Server in Dev Ops
Build 2017 SQL Server in Dev OpsBuild 2017 SQL Server in Dev Ops
Build 2017 SQL Server in Dev Ops
 
SQL Server vNext on Linux
SQL Server vNext on LinuxSQL Server vNext on Linux
SQL Server vNext on Linux
 
SUSE Webinar - Introduction to SQL Server on Linux
SUSE Webinar - Introduction to SQL Server on LinuxSUSE Webinar - Introduction to SQL Server on Linux
SUSE Webinar - Introduction to SQL Server on Linux
 
Nordic infrastructure Conference 2017 - SQL Server on Linux Overview
Nordic infrastructure Conference 2017 - SQL Server on Linux OverviewNordic infrastructure Conference 2017 - SQL Server on Linux Overview
Nordic infrastructure Conference 2017 - SQL Server on Linux Overview
 

Último

Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 

Último (20)

2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 

SQL Server in DevOps Town Hall Webinar

  • 1. SQL Server on Linux Engineering Town Hall Webinar Series SQL Server in DevOps SQL Server v.Next CTP 1.4 April 6, 2017 Travis Wright, Luis Bosquez Gonzalez Program Managers SQL Server Engineering Team @radtravis, @_lbosq
  • 2. Announcing vNext CTP 1.4! 2 Release date: March 17, 2017 Version number: 14.0.405.198 What’s new? • SQL Server Agent • Mssql-tools (sqlcmd, bcp) now included in the mssql-server-linux Docker image • VDI interface for backups • Performance improvements • Bug fixes
  • 3. Agenda 3 • Background on SQL Server, DevOps, Containers, and Container Management Platforms • Demos • Lessons Learned • What’s Next • Get Involved
  • 4. The New Reality 4 Data and Agility are the only hope of survival
  • 7. Nature of Software Delivery Has Changed
  • 8. DevOps Principles in Focus 8 • Embrace emerging technology and patterns • Challenge the status quo • Agility, efficiency, and speed • DevOps is a partnership between Dev and Ops • Ops enables and controls • Devs build and maintain apps and services • Both provide support
  • 10. Container Benefits 10 All the benefits of VMs – isolation, portability, duplicatable, shareable, packaging - plus… • Reduced size on disk – better hardware utilization • Reduced CPU/memory consumption – better hardware utilization • Reduced deployment size – faster deployments and scale up/down • Reduced patching – less effort, less vulnerability, less down time • Better composability – Images of layers, applications defined as multiple containers • Easier sharing – Docker Hub and Registry This is not a fad!
  • 11. …but wait… 11 • “Containers are emphemeral” • “Containers aren’t for anything critical” • “Containers aren’t for databases”
  • 12. Docker Databases 12 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 ~1M pulls in the first 5 months
  • 13. Persisting Storage 13 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/
  • 14. Build & Test Locally in Dev Environment 14 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
  • 15. Testing & Release 15 Use Docker Engine natively Use a container management platform (aka “orchestrator”) Kubernetes Red Hat OpenShift (based on Kubernetes) Docker Swarm Mesosphere DC/OS Use a cloud service Azure Container Service (ACS) AWS EC2 Container Service (ECS) Use for demo today
  • 16. Real World Example 16 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
  • 17. Key Docker Terminology and Commands 17 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! 
  • 18. Application Deployment Patterns Using Containers 18 SQL Server App 1 App 2 SQL Server App 1 SQL Server + App 1 Centralized SQL Server Docker Compose Monolithic App or Microservice
  • 19. Methods for Deployment 19 Deploy standard SQL Server container image. App deploys the DB at start up. Use standard SQL Server image as a base layer. Include DB inside of image. At run time the CMD in the Dockerfile attaches/restores the DB. Use standard SQL Server image as base layer. At run time the DB is created by the CMD in the Dockerfile. Demo #1 today Demo #2 today
  • 21. Demo #2 Deploy a Microservice App to OpenShift 9
  • 22. Lessons Learned • Tools aren’t in image. Resolved • Can't connect directly to the SQL Server from outside OpenShift network - no access to port 1433 • No way to create a DB simply at docker run time • Need to code around delays to start, SQL Server takes too long to start • SQL Server currently requires 3.25 GB of RAM – more than should be minimum • Make sure you are running on latest Docker-Engine version (demo built using Docker 1.12.5) - ASP.Net container will have issues if not. Current OpenShift-All-In-One Vagrant box has older version of Docker Engine. Resolved • Issue with the fact that the container runs as root. Open Shift doesn’t allow that by default. You can change the perms, but it requires cluster administrator privs. • Docker, OpenShift/Kubernetes, and SQL Server on Linux is still relatively new, especially to ops teams. ‐ No established best practices ‐ Minimal documentation
  • 23. What’s Next? 23 • High availability in container management platforms • Performance testing and tuning • Reduce minimum RAM requirement and start up time • Docker image improvements ‐ https://github.com/Microsoft/mssql-docker/issues • More testing of SQL Server on Windows containers  officially support • General Availability later this year of SQL Server v.Next including support for SQL Server on Linux containers • Make SQL Server container images available everywhere
  • 24. Get Involved 24 • Get the SQL Server container images ‐ hub.docker.com/r/microsoft/mssql-server-linux (v.Next) ‐ hub.docker.com/r/microsoft/mssql-server-windows (v.Next) ‐ https://hub.docker.com/r/microsoft/mssql-server-windows-express/ (2016 SP1) ‐ Mesosphere DC/OS Universe image • Provide feedback ‐ https://github.com/Microsoft/mssql-docker/issues • Get samples from today ‐ https://github.com/twright-msft/mssql-node-docker-demo-app ‐ https://github.com/twright-msft/mssql-aspnet-docker-demo-app • Contact me if you want to work on cool stuff together!