SlideShare una empresa de Scribd logo
Argentina Local Group PASS
DATA Summit 2019
Running SQL Server
in Docker Containers
Para Conectarnos
Registrarse para una membresía gratuita y asociarse al grupo Local SQL Argentina:
pass.org
Sqlargentina.pass.org
https://www.facebook.com/groups/SQLArgentina/
@sqlargentina
https://www.linkedin.com/groups/3664741
https://www.youtube.com/channel/UCGa-ldNDwP8nAVfQwqoeYHw
Technical Speaker
NetConf , SQL PASS, 24 HOP, SQL Saturdays and PASS Virtual Groups
GroupBy and DataPlatformGeeks
@sqlargentina
Javier Villegas
DBA Manager at Mediterranean Shipping Company
Involved with the Microsoft SQL Server since early versions
Specialization in SQL Server Administration, Performance Tuning and High
Availability
Microsoft MVP Data Platform
MCP and MCTS
Blogger and MSDN Forums contributor
@javier_vill
/javiervillegas
sql-javier-villegas.blogspot.com.ar
javier.ignacio.villegas@gmail.com
Introducción a Docker
Conceptos basicos de Kubernetes
SQL Server en escenarios de Docker
Agenda
Corriendo SQL Server en Docker
Docker es un proyecto de código abierto que automatiza el
despliegue de aplicaciones dentro del contenedor de software
Los contenedores de Docker envuelven una pieza de software
en un completo sistema de archivos que contiene todo lo
necesario para ejecutar: código, tiempo de ejecución,
herramientas del sistema, bibliotecas del sistema – cualquier
cosa que se pueda instalar en un servidor.
Esto garantiza que siempre funcionará de la misma forma,
independientemente del entorno en el que se esté ejecutando.
¿Qué es Docker?
LXC (Linux containers) es un método de virtualización a nivel de sistema
operativo para ejecutar múltiples sistemas aislados de Linux
(contenedores) en un host de control usando un solo kernel de Linux.
El kernel de Linux proporciona la funcionalidad que permite limitar y
priorizar los recursos (CPU, memoria, bloque i/o, red, etc.) sin necesidad
de iniciar ninguna máquina virtual, y la funcionalidad de aislamiento de
namespace que permite el aislamiento completo de la vista de una
aplicación del entorno operativo, incluidos los procesos, redes, IDS de
usuarios y sistemas de archivos
Contenedores
Por qué contenedores
Contenedores vs VMS
Guest
OS
Guest
OS
Host OS
Server
Bins/Libs Bins/Libs
Docker
AppB’
AppB’
AppB’
AppB
AppA’
AppA
VM
Container
App
A
App
A’
App
B
Bins/
Libs
Bins/
Libs
Bins/
Libs
Guest Guest Guest
OSOS OS
Hypervisor (Type 2)
Host OS
Server
Los contenedores está
aislados pero comparten
el Sistema Operativo
…deployment más rápido, menos
overhead, migración más fácil
El ecosistema de Docker
Repos oficial y 14 k + Dockerized
aplicaciones
Comunidad
640 + colaboradores
250 + correr en Docker
38 descargas
16 k proyectos en github
Apoyo
Soporte empresarial
Documentación robusta
Implementación, integración,
capacitación
Red de socios
La plataforma Docker
Motor dDocker
Hub de Docker
Construir, enviar y ejecutar
Socios
Conteni
do
Usuar
ios
Repos oficial y 35 K Dockerized
aplicaciones
Adopción de Docker
Construir una vez, ejecutar en cualquier lugar
Un entorno de tiempo de ejecución limpio, seguro, higiénico y portable para su
aplicación
No se preocupe por que faltan dependencias, paquetes y otros Pain Points durante las
implementaciones posteriores.
Ejecute cada aplicación en su propio contenedor aislado, para que pueda ejecutar varias
versiones de las bibliotecas y otras dependencias para cada aplicación sin preocuparse
Automatizar las pruebas, la integración, el empaquetado ... todo lo que puedas por
script
Reduzca/elimine las preocupaciones sobre la compatibilidad en diferentes plataformas,
ya sea su propio ambiente o sus clientes.
¿contenedores baratos de cero penalización para desplegar servicios? ¿una VM sin la
sobrecarga de una VM? ¿Instant replay con reset of image snapshots? Ese es el poder
de Docker
Beneficios para los desarrolladores
DevOps es la Unión de personas, procesos y productos para permitir la
entrega continua de valor a nuestros usuarios finales. La contracción de
“Dev" y "OPS" se refiere a la sustitución de operaciones y desarrollo de
silos para crear equipos multidisciplinarios que ahora trabajan junto con
prácticas y herramientas compartidas y eficientes. Las prácticas DevOps
esenciales incluyen planificación ágil, integración continua, entrega
continua y monitoreo de aplicaciones.
Rol de DevOps
Configure una vez ... Ejecute en cualquier lugar
Hacer que todo el ciclo de vida sea más eficiente, consistente y repetible
Aumente la calidad del código producido por los desarrolladores.
Elimine las inconsistencias entre el desarrollo, las pruebas, producción y los entornos de
clientes
Apoya la segregación de deberes
Mejora significativamente la velocidad y fiabilidad de los sistemas de implantación
continua y de integración continua
Debido a que los contenedores son ligeros, simplifican los problemas significativos de
performance, costos, despliegue y portabilidad normalmente asociados con VMS.
Importancia para DevOps
Sistemas operativos
• Prácticamente cualquier distribución con un 2.6.32
• Red Hat
• CoreOS
Open
• Docker integration into NOVA (& compatibility with Glance, Horizon, etc.) accepted
for Havana release
Privado PaaS
• OpenShift
• Solum RAckspace, OpenStack)
Público PaaS
• Deis, Voxoz, Cocaína (Yandex), BaiduPaaS
Soporte de ecosistemas
Contenedor de Windows
Docker en Contenedores de Windows
Arquitectura Docker
El motor de Docker es una aplicación cliente-servidor con estos
componentes principales:
• Un servidor que es un tipo de programa de larga duración llamado proceso
daemon.
• Un API REST que especifica las interfaces que los programas pueden utilizar para
hablar con el daemon e instruirlo sobre qué hacer.
• Un cliente de interfaz de línea de comandos (CLI).
Docker Engine
Docker Engine
Una imagen de Docker es una plantilla de sólo lectura. Por ejemplo, una
imagen podría contener un sistema operativo Ubuntu con Apache y su
aplicación web instalada.
Las imágenes se utilizan para crear contenedores de Docker. Docker
proporciona una forma sencilla de crear nuevas imágenes o actualizar
las imágenes existentes, o puede descargar las imágenes del Dock que
otras personas ya han creado.
Las imágenes de Docker son el componente de compilación de Docker.
Imágenes Docker
Lanzado en junio de 2014
Permite que cualquier host de Docker ejecute cualquier aplicación en
segundos
Proporciona repositorios oficiales, públicos y privados de aplicaciones de
Dock
Gestión del flujo de trabajo: compilación automatizada, Webhooks
Canal de distribución: consiga el software con soporte y proporcionado
por el vendedor
Hub de Docker
Docker Hub : construir, enviar, ejecutar aplicaciones
Build Ship
Run
Dev
QA
Source
Staging
Physical
Virtual
Cloud
Infrastructure Management
Infrastructure Management
DockerFile
Source Code
Repository
TESTTEST
TESTTEST
TEST
GCE RAX Azure
Mac/Win Dev
Machine
Boot2Docker
Docker
Analytics
DB
Prod
Machine
Linux OS
DockerDocker
+
+
Users Collab
Provenance Policy
Docker Hub
Registries
Public Curated Private
Docker Hub API
Third Party Tools
Prod
Machine
Linux OS
DockerDocker
Prod
Machine
Linux OS
DockerDocker
VM
DockerDocker
VM
DockerDocker
VM
DockerDocker
QA Machine
Linux OS
DockerDocker
Ecosistema
Any App
Any infrastructure
• Physical
• Virtual cloud
+ 45K apps
+ 16K projects
API
Engine Hu
bcloud-based platform services for
distributed applications
API
open source software at the heart
of the Docker platform
Why Containers?
Container Container Container
Portable
Run anywhere Docker is supported
Lightweight
Reduced disk, CPU, and memory footprint
Consistent
Consistent image of SQL Server, scripts, and tools
Efficient
Faster deployment, reduced patching, and
less downtime
Container configuration
Database
Persisted storage
Switch for
simple
upgrades
Containers Explained
Image
Layered snapshot of a set of files
structured in a filesystem
Built with a Dockerfile using docker
build or APIs
Most built with a base image of an OS
The base image OS must be the same
kernel as host
Container
Runtime instance of an image
Run as many you like based on the
same image
Isolated but can communicate with the
“outside”
Has access by default to all CPU and
memory resources
Each container has writeable layer but
share read-only image layer
Start and stop do not affect writeable
layer
Remove deletes writeable layer
Volumes provide persistence on host
VM = emulate
hardware and load
entire OS
Containers =
isolation but
cooperate with host
kernel
SQL Server Images
Public Registries
Docker Hub (https://hub.docker.com)
Red Hat Container Catalog (https://access.redhat.com/containers)
The Microsoft Container Registry (mcr.microsoft.com)
SQL Server 2017
Ubuntu based Images
RTM plus each CU and GDR has separate image
Includes mssql-server and mssql-tools packages
SQL Server 2019 Preview images
Ubuntu and RHEL based images
Includes mssql-server and mssql-tools
SQL Server
Engine pre-
installed
SQL Server
tools pre-
installed
See here how
to add other
packages
Database and
application
compatibility
Running a SQL Server Container
sudo docker run
-e 'ACCEPT_EULA=Y' -e 'MSSQL_SA_PASSWORD=Sql2017isfast’
-p 1401:1433
-v sqlvolume:/var/opt/mssql
--hostname sql1
--name sql1
-d
mcr.microsoft.com/mssql/server:2017-CU8
environment variables
How do I update a SQL Server Container?
Interacting with Data
Use your normal T-SQL and app to modify data
Copy into the container a database backup and restore it
Use volumes or your changes will be lost if container removed
Configuration changes for SQL Server
Use the environment variables (mssql-conf)
Modify the container directly
Build a new image with your scripts to make changes
Welcome to the new world of patch and
upgrade
Kubernetes es una plataforma de código abierto para automatizar la
implementación, escalamiento y operaciones de contenedores de
aplicaciones a través de clusters de hosts, proporcionando
infraestructura centrada en contenedores.
Con Kubernetes, usted puede:
• Implementar sus aplicaciones de forma rápida y predecible.
• Escalar sus aplicaciones sobre la marcha.
• Despliegue sin problemas nuevas características.
• Optimizar el uso de su hardware utilizando sólo los recursos que necesita
Kubernetes
Kubernetes (k8s) in a nutshell
k8s implementations
minikube
• Single node on your
laptop
Kubeadm
• Install your own
cluster
RedHat OpenShift
• K8s platform private or
public cloud
Azure Kubernetes
Service (AKS)
• Azure hosted k8s
OpenShift on
Azure (OSA)
• Managed OpenShift
on Azure
Other
• Azure Stack
• Windows Server
Persistent Volume Storage
Kubernetes
Built-in HADR orchestration with no clustering required
User
SQL Server - Shared storage HA in Kubernetes
Node
Pod
SQL Server
Node
Load Balancer Service
Node
Pod
SQL Server
Pod
SQL Server
SQL Server 2019
Always On Availability
Groups on Kubernetes
SQL Server/k8s failover integration
Operator deployment
AG concepts all apply
Load Balancer for Primary App
Load Balancer for Secondary Replica
Readers
Availability groups on Kubernetes
AG
Pod
Operator
Pod
SQL Server
primary
AG agent
Load
balancer
Pod
SQL Server
secondary
AG agent
Pod
SQL Server
secondary
AG agent
SQL Server
primary
SQL Server
secondary
Load
balancer
Kubernetes es:
• portable: público, privado, híbrido, multi-Cloud
• extensible: modular, pluggable, hookable, composable
• self-healing: auto-placement, auto-restart, auto-replication, auto-scaling
El proyecto Kubernetes fue iniciado por Google en 2014.
Características de Kubernetes
Herramienta de orquestación de contenedores
Ejecución Docker
Llevar Docker y contenedores a Windows
Soporte en Hyper-V
Noticias recientes: Docker for Windows
Reunir a las comunidades
Comunidad
Linux
Comunidad
de
Windows
Integración del Hub de Docker
Azure MarketplaceHub de Docker
Diariamente necesitamos producir entornos de desarrollo y pruebas con nuestras
aplicaciones en línea y bases de datos de SQL Server.
Para solucionar problemas y solucionar errores, queremos utilizar datos en la
producción. Sin embargo, tiene datos de usuario sensibles por lo tanto queremos
enmascarar esos datos en el entorno de desarrollo y pruebas.
La solución debe ser repetible y automatizada para que pueda funcionar
diariamente o sobre una cadencia fija sin intervención humana.
Queremos utilizar Docker para el contenedor de la aplicación y dB y orquestar el
proceso para desplegar, monitorear y contenedorar aplicaciones y dB.
La solución no debe estar vinculada con el entorno específico del sistema operativo,
ya que elegimos tecnologías que sean las más idóneas para nuestro negocio y que
se puedan ejecutar en plataformas de SO múltiples,Prem o Cloud.
SQL Server en Docker
SQL Server in
Docker Containers
DEMO
Docker tiene un gran impulso construyendo un ecosistema para construir, enviar y
ejecutar aplicaciones
Docker y Microsoft se han asociado para traer el éxito de Docker en Linux a
Windows
Ahora, prácticamente cualquier carga de trabajo se puede implementar y ejecutar
en cualquier lugar
Resumen
Imagen de contenedor de SQL Server 2017: https://docs.Microsoft.com/en-US/SQL/Linux/SQL-Server-Linux-
Setup-Docker
MSSQL-scrpter : https://github.com/Microsoft/SQL-xplat-CLI
MSSQL extensión para código vs: https://github.com/Microsoft/vscode-MSSQL
MSSQL-herramientas (Sqlcmd & BCP): https://docs.Microsoft.com/en-US/SQL/Linux/SQL-Server-Linux-Setup-
Tools
MEP 17. x: https://docs.Microsoft.com/en-US/SQL/SSMS/download-SQL-Server-Management-Studio-SSMS
SSDT 17. x: https://docs.Microsoft.com/en-US/SQL/SSDT/download-SQL-Server-Data-Tools-SSDT
PowerShell x-PLAT: https://github.com/PowerShell/PowerShell
PowerShell dbatools: https://dbatools.IO/
Acoplable: https://www.Docker.com/
Kubernetes: https://kubernetes.IO/
Servicio de contenedores Azure: https://docs.Microsoft.com/en-US/Azure/Container-Service/
Registro de contenedores Azure: https://docs.Microsoft.com/en-US/Azure/Container-Registry/Container-
Registry-Get-Started-Azure-CLI
Referencias
SQL Server in
Docker Containers
Questions ?
@javier_vill
http://sql-javier-villegas.blogspot.com.ar
https://ar.linkedin.com/in/javiervillegas
javier.ignacio.villegas@gmail.com
Thank you
Javier Villegas

Más contenido relacionado

PPTX
[넥슨] kubernetes 소개 (2018)
PPTX
Build, Publish, Deploy and Test Docker images and containers with Jenkins Wor...
PDF
PostgreSQL High Availability in a Containerized World
PDF
Sistema operativos para red
PDF
Seguridad en redes
PDF
PPTX
Kubernetes Helm: Why It Matters
PDF
모두의 쿠버네티스 (Kubernetes for everyone)
[넥슨] kubernetes 소개 (2018)
Build, Publish, Deploy and Test Docker images and containers with Jenkins Wor...
PostgreSQL High Availability in a Containerized World
Sistema operativos para red
Seguridad en redes
Kubernetes Helm: Why It Matters
모두의 쿠버네티스 (Kubernetes for everyone)

La actualidad más candente (20)

PPTX
A brief introduction to IaC with Terraform by Kenton Robbins (codeHarbour May...
PDF
Administracion redes
PDF
Kubernetes Basics
PDF
Delivering Docker & K3s worloads to IoT Edge devices
PDF
Devops - Microservice and Kubernetes
PPTX
Rancher and Kubernetes Best Practices
PDF
Kubernetes dealing with storage and persistence
ODP
Kubernetes Architecture
PPTX
Building CI/CD Pipelines with Jenkins and Kubernetes
PDF
A quick introduction to AKS
PPTX
게임 랭킹 ( Game Leader Board )
PPTX
Docker.pptx
PDF
글로벌 게임 플랫폼에서 무정지, 무점검 서버 개발과 운영 사례
PDF
How to write a Dockerfile
PDF
Eclipse - Installation and quick start guide
PDF
Docker Networking Deep Dive
PDF
[MeetUp][2nd] 오리뎅이의_쿠버네티스_네트워킹_v1.2
PDF
Red Hat OpenStack 17 저자직강+스터디그룹_1주차
PDF
Capa De Sesion
PDF
Kubernetes - A Comprehensive Overview
A brief introduction to IaC with Terraform by Kenton Robbins (codeHarbour May...
Administracion redes
Kubernetes Basics
Delivering Docker & K3s worloads to IoT Edge devices
Devops - Microservice and Kubernetes
Rancher and Kubernetes Best Practices
Kubernetes dealing with storage and persistence
Kubernetes Architecture
Building CI/CD Pipelines with Jenkins and Kubernetes
A quick introduction to AKS
게임 랭킹 ( Game Leader Board )
Docker.pptx
글로벌 게임 플랫폼에서 무정지, 무점검 서버 개발과 운영 사례
How to write a Dockerfile
Eclipse - Installation and quick start guide
Docker Networking Deep Dive
[MeetUp][2nd] 오리뎅이의_쿠버네티스_네트워킹_v1.2
Red Hat OpenStack 17 저자직강+스터디그룹_1주차
Capa De Sesion
Kubernetes - A Comprehensive Overview
Publicidad

Similar a Corriendo SQL Server en Docker (20)

PPTX
Presentación DevOps CAI - FCE 20242C.pptx
PPTX
Introduccion a SQL Server 2017 en Docker
PDF
Docker - Entorno de trabajo configurado en 1 minuto [WCBilbao]
PDF
Presentación Docker MeetUp (8.6.2016)
PPTX
Web App Container
 
PPTX
Docker para Dummies
PDF
Docker - Sysmana 2014
PPTX
Azure DevOps y Blazor Web Assembly
PPTX
Cloud Native en Azure impartido en Microsoft Madrid y Barcelona
PPTX
Dev ops with Data
PDF
Introduccion Azure Containers
PPTX
Dynamics saturday madrid 2018 bc-on-docker - jakub
PDF
Curso gratuito de Docker
PPTX
Docker y kubernetes para desarrolladores .NET - Meetup Barcelona 2019
PPTX
Google Cloud Storage ambiente en desarrollo en la nube
PDF
Pruebas de integración con Docker en Azure DevOps
PDF
De desarrollo a producción usando docker
DOCX
Lab3 cristian gastelbondo
PDF
Docker: la revolución en virtualización
PPTX
Dockeriza tu SQL Server
Presentación DevOps CAI - FCE 20242C.pptx
Introduccion a SQL Server 2017 en Docker
Docker - Entorno de trabajo configurado en 1 minuto [WCBilbao]
Presentación Docker MeetUp (8.6.2016)
Web App Container
 
Docker para Dummies
Docker - Sysmana 2014
Azure DevOps y Blazor Web Assembly
Cloud Native en Azure impartido en Microsoft Madrid y Barcelona
Dev ops with Data
Introduccion Azure Containers
Dynamics saturday madrid 2018 bc-on-docker - jakub
Curso gratuito de Docker
Docker y kubernetes para desarrolladores .NET - Meetup Barcelona 2019
Google Cloud Storage ambiente en desarrollo en la nube
Pruebas de integración con Docker en Azure DevOps
De desarrollo a producción usando docker
Lab3 cristian gastelbondo
Docker: la revolución en virtualización
Dockeriza tu SQL Server
Publicidad

Más de Javier Villegas (8)

PDF
The Evolution of SQL Server as a Service - SQL Azure Managed Instance
PPTX
The roadmap for sql server 2019
PDF
SQL Server 2017 - Adaptive Query Processing and Automatic Query Tuning
PPTX
Nuevas Caracteristicas de SQL Server para DBAs
PPTX
SQL Server 2017 Community Driven Features
PPTX
SQL Server 2017 - Mejoras Impulsadas por la Comunidad
PPTX
Query Store al rescate - PASS Spanish
PPTX
PASS Spanish Recomendaciones para entornos de SQL Server productivos
The Evolution of SQL Server as a Service - SQL Azure Managed Instance
The roadmap for sql server 2019
SQL Server 2017 - Adaptive Query Processing and Automatic Query Tuning
Nuevas Caracteristicas de SQL Server para DBAs
SQL Server 2017 Community Driven Features
SQL Server 2017 - Mejoras Impulsadas por la Comunidad
Query Store al rescate - PASS Spanish
PASS Spanish Recomendaciones para entornos de SQL Server productivos

Último (20)

PDF
Diapositiva proyecto de vida, materia catedra
PPTX
RAP02 - TECNICO SISTEMAS TELEINFORMATICOS.pptx
PDF
SAP Transportation Management para LSP, TM140 Col18
PPTX
COMO AYUDAN LAS TIC EN LA EDUCACION SUPERIOR.pptx
PDF
Calidad desde el Docente y la mejora continua .pdf
PDF
Liceo departamental MICRO BIT (1) 2.pdfbbbnn
PPTX
sa-cs-82-powerpoint-hardware-y-software_ver_4.pptx
PPT
introduccion a las_web en el 2025_mejoras.ppt
PPTX
Sesion 1 de microsoft power point - Clase 1
PPT
El-Gobierno-Electrónico-En-El-Estado-Bolivia
PDF
Instrucciones simples, respuestas poderosas. La fórmula del prompt perfecto.
PPT
Que son las redes de computadores y sus partes
PPTX
ANCASH-CRITERIOS DE EVALUACIÓN-FORMA-10-10 (2).pptx
PDF
taller de informática - LEY DE OHM
PPTX
Acronis Cyber Protect Cloud para Ciber Proteccion y Ciber Seguridad LATAM - A...
PDF
CyberOps Associate - Cisco Networking Academy
PDF
MANUAL TECNOLOGÍA SER MINISTERIO EDUCACIÓN
PDF
MÓDULO DE CALOR DE GRADO DE MEDIO DE FORMACIÓN PROFESIONAL
PPTX
Presentación de Redes de Datos modelo osi
PPTX
Propuesta BKP servidores con Acronis1.pptx
Diapositiva proyecto de vida, materia catedra
RAP02 - TECNICO SISTEMAS TELEINFORMATICOS.pptx
SAP Transportation Management para LSP, TM140 Col18
COMO AYUDAN LAS TIC EN LA EDUCACION SUPERIOR.pptx
Calidad desde el Docente y la mejora continua .pdf
Liceo departamental MICRO BIT (1) 2.pdfbbbnn
sa-cs-82-powerpoint-hardware-y-software_ver_4.pptx
introduccion a las_web en el 2025_mejoras.ppt
Sesion 1 de microsoft power point - Clase 1
El-Gobierno-Electrónico-En-El-Estado-Bolivia
Instrucciones simples, respuestas poderosas. La fórmula del prompt perfecto.
Que son las redes de computadores y sus partes
ANCASH-CRITERIOS DE EVALUACIÓN-FORMA-10-10 (2).pptx
taller de informática - LEY DE OHM
Acronis Cyber Protect Cloud para Ciber Proteccion y Ciber Seguridad LATAM - A...
CyberOps Associate - Cisco Networking Academy
MANUAL TECNOLOGÍA SER MINISTERIO EDUCACIÓN
MÓDULO DE CALOR DE GRADO DE MEDIO DE FORMACIÓN PROFESIONAL
Presentación de Redes de Datos modelo osi
Propuesta BKP servidores con Acronis1.pptx

Corriendo SQL Server en Docker

  • 1. Argentina Local Group PASS DATA Summit 2019
  • 2. Running SQL Server in Docker Containers
  • 3. Para Conectarnos Registrarse para una membresía gratuita y asociarse al grupo Local SQL Argentina: pass.org Sqlargentina.pass.org https://www.facebook.com/groups/SQLArgentina/ @sqlargentina https://www.linkedin.com/groups/3664741 https://www.youtube.com/channel/UCGa-ldNDwP8nAVfQwqoeYHw
  • 4. Technical Speaker NetConf , SQL PASS, 24 HOP, SQL Saturdays and PASS Virtual Groups GroupBy and DataPlatformGeeks @sqlargentina Javier Villegas DBA Manager at Mediterranean Shipping Company Involved with the Microsoft SQL Server since early versions Specialization in SQL Server Administration, Performance Tuning and High Availability Microsoft MVP Data Platform MCP and MCTS Blogger and MSDN Forums contributor @javier_vill /javiervillegas sql-javier-villegas.blogspot.com.ar javier.ignacio.villegas@gmail.com
  • 5. Introducción a Docker Conceptos basicos de Kubernetes SQL Server en escenarios de Docker Agenda
  • 7. Docker es un proyecto de código abierto que automatiza el despliegue de aplicaciones dentro del contenedor de software Los contenedores de Docker envuelven una pieza de software en un completo sistema de archivos que contiene todo lo necesario para ejecutar: código, tiempo de ejecución, herramientas del sistema, bibliotecas del sistema – cualquier cosa que se pueda instalar en un servidor. Esto garantiza que siempre funcionará de la misma forma, independientemente del entorno en el que se esté ejecutando. ¿Qué es Docker?
  • 8. LXC (Linux containers) es un método de virtualización a nivel de sistema operativo para ejecutar múltiples sistemas aislados de Linux (contenedores) en un host de control usando un solo kernel de Linux. El kernel de Linux proporciona la funcionalidad que permite limitar y priorizar los recursos (CPU, memoria, bloque i/o, red, etc.) sin necesidad de iniciar ninguna máquina virtual, y la funcionalidad de aislamiento de namespace que permite el aislamiento completo de la vista de una aplicación del entorno operativo, incluidos los procesos, redes, IDS de usuarios y sistemas de archivos Contenedores
  • 10. Contenedores vs VMS Guest OS Guest OS Host OS Server Bins/Libs Bins/Libs Docker AppB’ AppB’ AppB’ AppB AppA’ AppA VM Container App A App A’ App B Bins/ Libs Bins/ Libs Bins/ Libs Guest Guest Guest OSOS OS Hypervisor (Type 2) Host OS Server Los contenedores está aislados pero comparten el Sistema Operativo …deployment más rápido, menos overhead, migración más fácil
  • 11. El ecosistema de Docker Repos oficial y 14 k + Dockerized aplicaciones Comunidad 640 + colaboradores 250 + correr en Docker 38 descargas 16 k proyectos en github Apoyo Soporte empresarial Documentación robusta Implementación, integración, capacitación Red de socios La plataforma Docker Motor dDocker Hub de Docker Construir, enviar y ejecutar Socios Conteni do Usuar ios Repos oficial y 35 K Dockerized aplicaciones
  • 13. Construir una vez, ejecutar en cualquier lugar Un entorno de tiempo de ejecución limpio, seguro, higiénico y portable para su aplicación No se preocupe por que faltan dependencias, paquetes y otros Pain Points durante las implementaciones posteriores. Ejecute cada aplicación en su propio contenedor aislado, para que pueda ejecutar varias versiones de las bibliotecas y otras dependencias para cada aplicación sin preocuparse Automatizar las pruebas, la integración, el empaquetado ... todo lo que puedas por script Reduzca/elimine las preocupaciones sobre la compatibilidad en diferentes plataformas, ya sea su propio ambiente o sus clientes. ¿contenedores baratos de cero penalización para desplegar servicios? ¿una VM sin la sobrecarga de una VM? ¿Instant replay con reset of image snapshots? Ese es el poder de Docker Beneficios para los desarrolladores
  • 14. DevOps es la Unión de personas, procesos y productos para permitir la entrega continua de valor a nuestros usuarios finales. La contracción de “Dev" y "OPS" se refiere a la sustitución de operaciones y desarrollo de silos para crear equipos multidisciplinarios que ahora trabajan junto con prácticas y herramientas compartidas y eficientes. Las prácticas DevOps esenciales incluyen planificación ágil, integración continua, entrega continua y monitoreo de aplicaciones. Rol de DevOps
  • 15. Configure una vez ... Ejecute en cualquier lugar Hacer que todo el ciclo de vida sea más eficiente, consistente y repetible Aumente la calidad del código producido por los desarrolladores. Elimine las inconsistencias entre el desarrollo, las pruebas, producción y los entornos de clientes Apoya la segregación de deberes Mejora significativamente la velocidad y fiabilidad de los sistemas de implantación continua y de integración continua Debido a que los contenedores son ligeros, simplifican los problemas significativos de performance, costos, despliegue y portabilidad normalmente asociados con VMS. Importancia para DevOps
  • 16. Sistemas operativos • Prácticamente cualquier distribución con un 2.6.32 • Red Hat • CoreOS Open • Docker integration into NOVA (& compatibility with Glance, Horizon, etc.) accepted for Havana release Privado PaaS • OpenShift • Solum RAckspace, OpenStack) Público PaaS • Deis, Voxoz, Cocaína (Yandex), BaiduPaaS Soporte de ecosistemas
  • 20. El motor de Docker es una aplicación cliente-servidor con estos componentes principales: • Un servidor que es un tipo de programa de larga duración llamado proceso daemon. • Un API REST que especifica las interfaces que los programas pueden utilizar para hablar con el daemon e instruirlo sobre qué hacer. • Un cliente de interfaz de línea de comandos (CLI). Docker Engine
  • 22. Una imagen de Docker es una plantilla de sólo lectura. Por ejemplo, una imagen podría contener un sistema operativo Ubuntu con Apache y su aplicación web instalada. Las imágenes se utilizan para crear contenedores de Docker. Docker proporciona una forma sencilla de crear nuevas imágenes o actualizar las imágenes existentes, o puede descargar las imágenes del Dock que otras personas ya han creado. Las imágenes de Docker son el componente de compilación de Docker. Imágenes Docker
  • 23. Lanzado en junio de 2014 Permite que cualquier host de Docker ejecute cualquier aplicación en segundos Proporciona repositorios oficiales, públicos y privados de aplicaciones de Dock Gestión del flujo de trabajo: compilación automatizada, Webhooks Canal de distribución: consiga el software con soporte y proporcionado por el vendedor Hub de Docker
  • 24. Docker Hub : construir, enviar, ejecutar aplicaciones Build Ship Run Dev QA Source Staging Physical Virtual Cloud Infrastructure Management Infrastructure Management DockerFile Source Code Repository TESTTEST TESTTEST TEST GCE RAX Azure Mac/Win Dev Machine Boot2Docker Docker Analytics DB Prod Machine Linux OS DockerDocker + + Users Collab Provenance Policy Docker Hub Registries Public Curated Private Docker Hub API Third Party Tools Prod Machine Linux OS DockerDocker Prod Machine Linux OS DockerDocker VM DockerDocker VM DockerDocker VM DockerDocker QA Machine Linux OS DockerDocker
  • 25. Ecosistema Any App Any infrastructure • Physical • Virtual cloud + 45K apps + 16K projects API Engine Hu bcloud-based platform services for distributed applications API open source software at the heart of the Docker platform
  • 26. Why Containers? Container Container Container Portable Run anywhere Docker is supported Lightweight Reduced disk, CPU, and memory footprint Consistent Consistent image of SQL Server, scripts, and tools Efficient Faster deployment, reduced patching, and less downtime Container configuration Database Persisted storage Switch for simple upgrades
  • 27. Containers Explained Image Layered snapshot of a set of files structured in a filesystem Built with a Dockerfile using docker build or APIs Most built with a base image of an OS The base image OS must be the same kernel as host Container Runtime instance of an image Run as many you like based on the same image Isolated but can communicate with the “outside” Has access by default to all CPU and memory resources Each container has writeable layer but share read-only image layer Start and stop do not affect writeable layer Remove deletes writeable layer Volumes provide persistence on host VM = emulate hardware and load entire OS Containers = isolation but cooperate with host kernel
  • 28. SQL Server Images Public Registries Docker Hub (https://hub.docker.com) Red Hat Container Catalog (https://access.redhat.com/containers) The Microsoft Container Registry (mcr.microsoft.com) SQL Server 2017 Ubuntu based Images RTM plus each CU and GDR has separate image Includes mssql-server and mssql-tools packages SQL Server 2019 Preview images Ubuntu and RHEL based images Includes mssql-server and mssql-tools SQL Server Engine pre- installed SQL Server tools pre- installed See here how to add other packages Database and application compatibility
  • 29. Running a SQL Server Container sudo docker run -e 'ACCEPT_EULA=Y' -e 'MSSQL_SA_PASSWORD=Sql2017isfast’ -p 1401:1433 -v sqlvolume:/var/opt/mssql --hostname sql1 --name sql1 -d mcr.microsoft.com/mssql/server:2017-CU8 environment variables
  • 30. How do I update a SQL Server Container? Interacting with Data Use your normal T-SQL and app to modify data Copy into the container a database backup and restore it Use volumes or your changes will be lost if container removed Configuration changes for SQL Server Use the environment variables (mssql-conf) Modify the container directly Build a new image with your scripts to make changes
  • 31. Welcome to the new world of patch and upgrade
  • 32. Kubernetes es una plataforma de código abierto para automatizar la implementación, escalamiento y operaciones de contenedores de aplicaciones a través de clusters de hosts, proporcionando infraestructura centrada en contenedores. Con Kubernetes, usted puede: • Implementar sus aplicaciones de forma rápida y predecible. • Escalar sus aplicaciones sobre la marcha. • Despliegue sin problemas nuevas características. • Optimizar el uso de su hardware utilizando sólo los recursos que necesita Kubernetes
  • 33. Kubernetes (k8s) in a nutshell
  • 34. k8s implementations minikube • Single node on your laptop Kubeadm • Install your own cluster RedHat OpenShift • K8s platform private or public cloud Azure Kubernetes Service (AKS) • Azure hosted k8s OpenShift on Azure (OSA) • Managed OpenShift on Azure Other • Azure Stack • Windows Server
  • 35. Persistent Volume Storage Kubernetes Built-in HADR orchestration with no clustering required User SQL Server - Shared storage HA in Kubernetes Node Pod SQL Server Node Load Balancer Service Node Pod SQL Server Pod SQL Server
  • 36. SQL Server 2019 Always On Availability Groups on Kubernetes SQL Server/k8s failover integration Operator deployment AG concepts all apply Load Balancer for Primary App Load Balancer for Secondary Replica Readers Availability groups on Kubernetes AG Pod Operator Pod SQL Server primary AG agent Load balancer Pod SQL Server secondary AG agent Pod SQL Server secondary AG agent SQL Server primary SQL Server secondary Load balancer
  • 37. Kubernetes es: • portable: público, privado, híbrido, multi-Cloud • extensible: modular, pluggable, hookable, composable • self-healing: auto-placement, auto-restart, auto-replication, auto-scaling El proyecto Kubernetes fue iniciado por Google en 2014. Características de Kubernetes
  • 38. Herramienta de orquestación de contenedores
  • 40. Llevar Docker y contenedores a Windows Soporte en Hyper-V Noticias recientes: Docker for Windows
  • 41. Reunir a las comunidades Comunidad Linux Comunidad de Windows
  • 42. Integración del Hub de Docker Azure MarketplaceHub de Docker
  • 43. Diariamente necesitamos producir entornos de desarrollo y pruebas con nuestras aplicaciones en línea y bases de datos de SQL Server. Para solucionar problemas y solucionar errores, queremos utilizar datos en la producción. Sin embargo, tiene datos de usuario sensibles por lo tanto queremos enmascarar esos datos en el entorno de desarrollo y pruebas. La solución debe ser repetible y automatizada para que pueda funcionar diariamente o sobre una cadencia fija sin intervención humana. Queremos utilizar Docker para el contenedor de la aplicación y dB y orquestar el proceso para desplegar, monitorear y contenedorar aplicaciones y dB. La solución no debe estar vinculada con el entorno específico del sistema operativo, ya que elegimos tecnologías que sean las más idóneas para nuestro negocio y que se puedan ejecutar en plataformas de SO múltiples,Prem o Cloud. SQL Server en Docker
  • 44. SQL Server in Docker Containers DEMO
  • 45. Docker tiene un gran impulso construyendo un ecosistema para construir, enviar y ejecutar aplicaciones Docker y Microsoft se han asociado para traer el éxito de Docker en Linux a Windows Ahora, prácticamente cualquier carga de trabajo se puede implementar y ejecutar en cualquier lugar Resumen
  • 46. Imagen de contenedor de SQL Server 2017: https://docs.Microsoft.com/en-US/SQL/Linux/SQL-Server-Linux- Setup-Docker MSSQL-scrpter : https://github.com/Microsoft/SQL-xplat-CLI MSSQL extensión para código vs: https://github.com/Microsoft/vscode-MSSQL MSSQL-herramientas (Sqlcmd & BCP): https://docs.Microsoft.com/en-US/SQL/Linux/SQL-Server-Linux-Setup- Tools MEP 17. x: https://docs.Microsoft.com/en-US/SQL/SSMS/download-SQL-Server-Management-Studio-SSMS SSDT 17. x: https://docs.Microsoft.com/en-US/SQL/SSDT/download-SQL-Server-Data-Tools-SSDT PowerShell x-PLAT: https://github.com/PowerShell/PowerShell PowerShell dbatools: https://dbatools.IO/ Acoplable: https://www.Docker.com/ Kubernetes: https://kubernetes.IO/ Servicio de contenedores Azure: https://docs.Microsoft.com/en-US/Azure/Container-Service/ Registro de contenedores Azure: https://docs.Microsoft.com/en-US/Azure/Container-Registry/Container- Registry-Get-Started-Azure-CLI Referencias
  • 47. SQL Server in Docker Containers Questions ? @javier_vill http://sql-javier-villegas.blogspot.com.ar https://ar.linkedin.com/in/javiervillegas javier.ignacio.villegas@gmail.com