SlideShare una empresa de Scribd logo
1 de 31
#SQLSatMadrid
“Dockeriza” tu SQL Server
Adrián Díaz Cervera
Alberto Díaz Martin
#SQLSatMadrid
BIG Thanks to SQLSatMadrid sponsors
#SQLSatMadrid
Sponsor sessions at 11:40
Don’t miss them, they might be getting distributing
some awesome prizes!
Plainconcepts
SolidQ
KABEL & Corent
Also XBOX One & Raffle prizes at 17:30
#SQLSatMadrid
Agenda
• Que es Docker
• Terminología
• Docker versus Maquina Virtual
• Beneficios
• Por qué empezar a utilizarlo
#SQLSatMadrid
¿Cuál es el problema?
#SQLSatMadrid
Múltiples
mercancías
Multituddemétodos
detransportey
almacenamiento
Nomepreocupa
comointeractúan
losinmueblesentre
si
Sepuede
transportarla
mercancía
rápidamenteysin
problemas
Solución: Transporte en contenedores
Y en medio pueden ser cargados
y descargados, apilados, que se
transportan en largas distancias y
se cambian de un medio a otro
Un contenedor que se carga
con cualquier mercancía y
permanece sellada hasta el
destino final.
#SQLSatMadrid
¿Qué es un contenedor?
Una unidad de despliegue
Corre en un SO
En SO Virtualizados
Arranque rápido
Portable
#SQLSatMadrid
¿Qué es ?
Proyecto de código abierto
Automatiza el despliegue de App usando
contenedores
Proporcionando una capa adicional de abstracción y
automatización a nivel de OS
#SQLSatMadrid
Máquinas Virtuales vs Contenedores
App
A
Hypervisor (Type 2)
Host OS
Server
Guest
OS
Bins/
Libs
App
A’
Guest
OS
Bins/
Libs
App
B
Guest
OS
Bins/
Libs
AppA’
Host OS
Server
Bins/Libs
AppA
Bins/Libs
AppB
AppB’
AppB’
AppB’
VM
Container
Los contenedores están aislados
pero comparten el kernel
Guest
OS
Guest
OS
…el resultado es un despliegue más
rápido, con menos costoso y más fácil
Docker Deamon
#SQLSatMadrid
En que nos ayuda Docker
No hay que preocuparse acerca de la configuración y el
mantenimiento de los entornos
Centrado en el producto
• Acelera el desarrollo
• Evita problemas con el entorno
• Libertad de elección al desarrollador
#SQLSatMadrid
Revisión de Términos
Docker Client
Es la interfaz de usuario que permite la comunicación entre el usuario y el Docker Daemon
Docker Daemon
Alojado en la máquina y se encarga de contestar las solicitudes.
Docker Hub
Es un registro centralizado que permite la copia de seguridad de imágenes de contenedores tanto publicos como
privados.
Docker Containers
Los responsables de la ejecución de las aplicaciones: incluye app, archivos so y metadatos
Docker Images
Templates de solo lectura que ayudan a lanzar contenedores
Docker File
Fichero donde se indica todo el contenido del contenedor
#SQLSatMadrid
DEMO
#SQLSatMadrid
El mundo está
demandando
SQL Server en
Linux
20K+Peticiones para
probar la preview
BD Empresariales
ejecutándose en Linux
36%
#SQLSatMadrid
Bringing SQL Server to Linux
is another way we are making
our products and new
innovations more accessible to
a broader set of users and
meeting them where they are.
Scott Guthrie
Microsoft
Microsoft
#SQLSatMadrid
Targeting CY2017
SQL Server 2017 GA*
En la plataforma que elijas
SQL Server 2017
#SQLSatMadrid
SQL Server en las siguientes plataformas
Linux Linux/Windows container
Windows
Windows Server
• Linux distributions incluyendo
Red Hat Enterprise Linux (RHEL),
Ubuntu, y SUSE Linux Enterprise
(SLES)
• Contenedors Linux para Docker
en MacOS, Windows y Linux;
Contenedores Windows e Hyper-V
para SQL Server en Windows
• Instalación empaquetada, yum
install, apt-get, zypper y otras
opciones
#SQLSatMadrid
Herraminetas de SQL en Linux
#SQLSatMadrid
Instancias y Docker
Las instancias de SQL Server en Windows no son triviales
Proceso largo de setup
Magia en el filesystem, registro y cuánto dura la instalación
Frecuentemente require reinicio del sistema
Contenedores Docker aportan mejoras
Instancias fáciles de configurar y eliminar
Levantamos un SQL Server en segundos
No es necesario reinicios
El proceso es siempe reproducible
Siempre independiente del sistema host
#SQLSatMadrid
SQL Server Instances and Docker
Mejora en muchos escenarios
Instalaciones de SP & CU
Actualizaciones
Instancias temporales
Pruebas de SP & CU
Pruebas de restauración
Pruebas de cambia de configuración
Instancias de Desarrollo
Unite testing de base de datos
CI/CD
DEMO
#SQLSatMadrid
SQL Server Docker - Imágenes
Dos imágenes base:: Linux y Windows
Github - https://github.com/Microsoft/mssql-docker
Requisitos
Docker Engine 1.8+
Min 4 GB disco
Min 4 GB memoria
#SQLSatMadrid
SQL Server DockerFiles
Un fichero en docker host que contiene los commandos de creación
de la imagen personalizada
FROM microsoft/mssql-server-windows
RUN powershell -Command (mkdir C:SQLServer)
COPY DatabaseA.mdf C:SQLServer
COPY DatabaseA_log.ldf C:SQLServer
ENV SA_PASSWORD=Testing11@@
ENV ACCEPT_EULA=Y
ENV
attach_dbs="[{'dbName':'DatabaseA','dbFiles':['C:SQLServerDatabaseA.mdf','C:SQLServerDatabaseA_log.ldf']}]"
#SQLSatMadrid
DEMO
#SQLSatMadrid
DevOps
Develop + Test
Plan + Track
Monitor + Learn
Release
Development Production
DevOps es un cambio de mentalidad para añadir
mejores practices enfocadas a la automatización.
#SQLSatMadrid
DevOps: No nos olvidemos de la BD!
¿Tú aplicación tiene una BD?
Necesitas controlar las versiones
Compilaciones automatizadas y despliegues de esquemas de bases
de datos
Diferentes aproximaciones:
SQL Server Data Tools (SSDT)
Entity Framework Migrations
DacPac
Docker
#SQLSatMadrid
BUILD DACPAC DOCKERFILE
# escape=`
FROM microsoft/windowsservercore
MAINTAINER Elton Stoneman <elton@docker.com>
SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop';"]
RUN Install-PackageProvider -Name chocolatey -Force; `
Install-Package -Name microsoft-build-tools -RequiredVersion 14.0.25420.1 -Force; `
Install-Package dotnet4.6-targetpack -Force
RUN Install-Package nuget.commandline -Force; `
& C:Chocolateybinnuget install Microsoft.Data.Tools.Msbuild
CMD cd 'C:Program Files (x86)MSBuild14.0Bin'; `
.msbuild C:srcAssets.DatabaseAssets.Database.sqlproj `
/p:SQLDBExtensionsRefPath="C:Microsoft.Data.Tools.Msbuild.10.0.61026libnet40" `
/p:SqlServerRedistPath="C:Microsoft.Data.Tools.Msbuild.10.0.61026libnet40"; `
cp 'C:srcAssets.DatabasebinDebugAssets.Database.dacpac' 'c:bin'
#SQLSatMadrid
Build y Copy DACPAC
docker build -t assets-db-builder -f Dockerfile.builder .
mkdir out
docker run --rm -v $pwdout:c:bin -v $pwdsrc:c:src
assets-db-builder
outAssets.Database.dacpac
#SQLSatMadrid
DOCKER FILE SQL SERVER
# escape=`
FROM microsoft/mssql-server-windows-express
MAINTAINER Elton Stoneman <elton@docker.com>
SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop';"]
EXPOSE 1433
VOLUME c:database
ENV sa_password D0cker!a8s
RUN md c:init
WORKDIR c:init
COPY .outAssets.Database.dacpac .
COPY Initialize-Database.ps1 .
CMD ./Initialize-Database.ps1 -sa_password $env:sa_password -Verbose
#SQLSatMadrid
DOCKER InitializeDatabase
CREATE DATABASE AssetsDB ON
(FILENAME = N'c:databaseAssetsDB_Primary.mdf'), (FILENAME =
N'c:databaseAssetsDB_Primary.ldf’)
FOR ATTACH;
SqlPackage.exe `
/sf:Assets.Database.dacpac `
/a:Script /op:create.sql /p:CommentOutSetVarDeclarations=true `
/tsn:.SQLEXPRESS /tdn:AssetsDB /tu:sa /tp:$sa_password
#SQLSatMadrid
DEMO
#SQLSatMadrid
Preguntas !!
http://blogs.encamina.com/desarrollandosobresharepoint
adiaz@encamina.com
@AdrianDiaz81
http://blogs.encamina.com/porunanubesostenible
Alberto.diaz@encamina.com
@adiazcan

Más contenido relacionado

La actualidad más candente

Docker orientado al desarrollo de aplicaciones con NodeJS
Docker orientado al desarrollo de aplicaciones con NodeJSDocker orientado al desarrollo de aplicaciones con NodeJS
Docker orientado al desarrollo de aplicaciones con NodeJSJan Sanchez
 
Servidores de mapas en alta disponibilidad
Servidores de mapas en alta disponibilidadServidores de mapas en alta disponibilidad
Servidores de mapas en alta disponibilidadInclamSoft
 
Servidores de mapas en alta disponibilidad CyLiconValley
Servidores de mapas en alta disponibilidad CyLiconValleyServidores de mapas en alta disponibilidad CyLiconValley
Servidores de mapas en alta disponibilidad CyLiconValleyAlvaro García Loaisa
 
Docker - Sysmana 2014
Docker - Sysmana 2014Docker - Sysmana 2014
Docker - Sysmana 2014quaip
 
El escritorio KDE 4.6
El escritorio KDE 4.6El escritorio KDE 4.6
El escritorio KDE 4.6kdeespana
 
Plug&amp;play:deploying big data_solutions
Plug&amp;play:deploying big data_solutionsPlug&amp;play:deploying big data_solutions
Plug&amp;play:deploying big data_solutionsDavid Piris
 
nerdear.la 2016 - Docker workshop
nerdear.la 2016 - Docker workshopnerdear.la 2016 - Docker workshop
nerdear.la 2016 - Docker workshopRestorando
 
Despliegue aplicaciones #SpringCloud en Cluster #Mesos Marathon
Despliegue aplicaciones #SpringCloud en Cluster #Mesos MarathonDespliegue aplicaciones #SpringCloud en Cluster #Mesos Marathon
Despliegue aplicaciones #SpringCloud en Cluster #Mesos MarathonJuan Vergara
 
Orquestando Contenedores En La Nube - Enrique Tejeda - Sloth 2019
Orquestando Contenedores En La Nube - Enrique Tejeda - Sloth 2019Orquestando Contenedores En La Nube - Enrique Tejeda - Sloth 2019
Orquestando Contenedores En La Nube - Enrique Tejeda - Sloth 2019Luis Enrique Tejeda Rodriguez
 
KDE SC 4.4 para el usuario
KDE SC 4.4 para el usuarioKDE SC 4.4 para el usuario
KDE SC 4.4 para el usuarioBaltasar Ortega
 
Creacion y Administracion de servicios usando Docker - .Net Conf Mx 2018
Creacion y Administracion de servicios usando Docker - .Net Conf Mx 2018Creacion y Administracion de servicios usando Docker - .Net Conf Mx 2018
Creacion y Administracion de servicios usando Docker - .Net Conf Mx 2018Vicente Gerardo Guzman Lucio
 
Vagrant y Docker - Guía práctica de uso
Vagrant y Docker - Guía práctica de usoVagrant y Docker - Guía práctica de uso
Vagrant y Docker - Guía práctica de usoSergio Zambrano Delfa
 
Divide y vencerás con docker y core os
Divide y vencerás con docker y core osDivide y vencerás con docker y core os
Divide y vencerás con docker y core osDavid Luque Quintana
 

La actualidad más candente (17)

Dockers y wp
Dockers y wpDockers y wp
Dockers y wp
 
Docker orientado al desarrollo de aplicaciones con NodeJS
Docker orientado al desarrollo de aplicaciones con NodeJSDocker orientado al desarrollo de aplicaciones con NodeJS
Docker orientado al desarrollo de aplicaciones con NodeJS
 
Servidores de mapas en alta disponibilidad
Servidores de mapas en alta disponibilidadServidores de mapas en alta disponibilidad
Servidores de mapas en alta disponibilidad
 
Servidores de mapas en alta disponibilidad CyLiconValley
Servidores de mapas en alta disponibilidad CyLiconValleyServidores de mapas en alta disponibilidad CyLiconValley
Servidores de mapas en alta disponibilidad CyLiconValley
 
Docker - Sysmana 2014
Docker - Sysmana 2014Docker - Sysmana 2014
Docker - Sysmana 2014
 
El escritorio KDE 4.6
El escritorio KDE 4.6El escritorio KDE 4.6
El escritorio KDE 4.6
 
Plug&amp;play:deploying big data_solutions
Plug&amp;play:deploying big data_solutionsPlug&amp;play:deploying big data_solutions
Plug&amp;play:deploying big data_solutions
 
nerdear.la 2016 - Docker workshop
nerdear.la 2016 - Docker workshopnerdear.la 2016 - Docker workshop
nerdear.la 2016 - Docker workshop
 
Despliegue aplicaciones #SpringCloud en Cluster #Mesos Marathon
Despliegue aplicaciones #SpringCloud en Cluster #Mesos MarathonDespliegue aplicaciones #SpringCloud en Cluster #Mesos Marathon
Despliegue aplicaciones #SpringCloud en Cluster #Mesos Marathon
 
Orquestando Contenedores En La Nube - Enrique Tejeda - Sloth 2019
Orquestando Contenedores En La Nube - Enrique Tejeda - Sloth 2019Orquestando Contenedores En La Nube - Enrique Tejeda - Sloth 2019
Orquestando Contenedores En La Nube - Enrique Tejeda - Sloth 2019
 
FROM lost to the docker
FROM lost to the dockerFROM lost to the docker
FROM lost to the docker
 
KDE SC 4.4 para el usuario
KDE SC 4.4 para el usuarioKDE SC 4.4 para el usuario
KDE SC 4.4 para el usuario
 
Creacion y Administracion de servicios usando Docker - .Net Conf Mx 2018
Creacion y Administracion de servicios usando Docker - .Net Conf Mx 2018Creacion y Administracion de servicios usando Docker - .Net Conf Mx 2018
Creacion y Administracion de servicios usando Docker - .Net Conf Mx 2018
 
Introducción a Docker
Introducción a DockerIntroducción a Docker
Introducción a Docker
 
Vagrant y Docker - Guía práctica de uso
Vagrant y Docker - Guía práctica de usoVagrant y Docker - Guía práctica de uso
Vagrant y Docker - Guía práctica de uso
 
Big Data perspectiva DevOps
Big Data perspectiva DevOpsBig Data perspectiva DevOps
Big Data perspectiva DevOps
 
Divide y vencerás con docker y core os
Divide y vencerás con docker y core osDivide y vencerás con docker y core os
Divide y vencerás con docker y core os
 

Similar a Dockeriza tu SQL Server

Docker y todo eso... más o menos
Docker y todo eso... más o menosDocker y todo eso... más o menos
Docker y todo eso... más o menosEduard Tomàs
 
Docker: de principante a pro
Docker: de principante a proDocker: de principante a pro
Docker: de principante a proPlain Concepts
 
Corriendo SQL Server en Docker
Corriendo SQL Server en DockerCorriendo SQL Server en Docker
Corriendo SQL Server en DockerJavier Villegas
 
SQL Server Cross Platform Portable con Docker
SQL Server Cross Platform Portable con DockerSQL Server Cross Platform Portable con Docker
SQL Server Cross Platform Portable con DockerChristian Melendez
 
Dynamics saturday madrid 2018 bc-on-docker - jakub
Dynamics saturday madrid 2018   bc-on-docker - jakubDynamics saturday madrid 2018   bc-on-docker - jakub
Dynamics saturday madrid 2018 bc-on-docker - jakubDemian Raschkovan
 
Microservices: Ya funciona en mi máquina… Y en producción, ¿qué?
Microservices: Ya funciona en mi máquina… Y en producción, ¿qué?Microservices: Ya funciona en mi máquina… Y en producción, ¿qué?
Microservices: Ya funciona en mi máquina… Y en producción, ¿qué?Plain Concepts
 
Introduccion a SQL Server 2017 en Docker
Introduccion a SQL Server 2017 en Docker Introduccion a SQL Server 2017 en Docker
Introduccion a SQL Server 2017 en Docker Eduardo Castro
 
Docker 10 02_18
Docker 10 02_18Docker 10 02_18
Docker 10 02_18enyert
 
Docker: la revolución en virtualización
Docker: la revolución en virtualizaciónDocker: la revolución en virtualización
Docker: la revolución en virtualizaciónMarcelo Ochoa
 
De desarrollo a producción usando docker
De desarrollo a producción usando dockerDe desarrollo a producción usando docker
De desarrollo a producción usando dockerChristian Rodriguez
 
Web App Container
Web App ContainerWeb App Container
Web App ContainerCDS
 
Docker y kubernetes para desarrolladores .NET - Meetup Barcelona 2019
Docker y kubernetes para desarrolladores .NET - Meetup Barcelona 2019 Docker y kubernetes para desarrolladores .NET - Meetup Barcelona 2019
Docker y kubernetes para desarrolladores .NET - Meetup Barcelona 2019 Santi Macias Rodriguez
 
Docker para Data Scientist - Master en Data Science URJC
Docker para Data Scientist - Master en Data Science URJCDocker para Data Scientist - Master en Data Science URJC
Docker para Data Scientist - Master en Data Science URJCMicael Gallego
 
Curso Kubernetes CodeURJC
Curso Kubernetes CodeURJCCurso Kubernetes CodeURJC
Curso Kubernetes CodeURJCMicael Gallego
 
Sql server ha muerto, larga vida a sql server
Sql server ha muerto, larga vida a sql serverSql server ha muerto, larga vida a sql server
Sql server ha muerto, larga vida a sql serverEnrique Catala Bañuls
 
Workshop 1 - Introducción a los Microservicios y Contenedores (@TechHub - Goo...
Workshop 1 - Introducción a los Microservicios y Contenedores (@TechHub - Goo...Workshop 1 - Introducción a los Microservicios y Contenedores (@TechHub - Goo...
Workshop 1 - Introducción a los Microservicios y Contenedores (@TechHub - Goo...Carlos Crisóstomo Vals
 
Dockerparadesarrollo
DockerparadesarrolloDockerparadesarrollo
DockerparadesarrolloEric Zeidan
 
Windows server 2012
Windows server 2012 Windows server 2012
Windows server 2012 VinceR336
 

Similar a Dockeriza tu SQL Server (20)

Docker y todo eso... más o menos
Docker y todo eso... más o menosDocker y todo eso... más o menos
Docker y todo eso... más o menos
 
Docker: de principante a pro
Docker: de principante a proDocker: de principante a pro
Docker: de principante a pro
 
Corriendo SQL Server en Docker
Corriendo SQL Server en DockerCorriendo SQL Server en Docker
Corriendo SQL Server en Docker
 
SQL Server Cross Platform Portable con Docker
SQL Server Cross Platform Portable con DockerSQL Server Cross Platform Portable con Docker
SQL Server Cross Platform Portable con Docker
 
Dynamics saturday madrid 2018 bc-on-docker - jakub
Dynamics saturday madrid 2018   bc-on-docker - jakubDynamics saturday madrid 2018   bc-on-docker - jakub
Dynamics saturday madrid 2018 bc-on-docker - jakub
 
Microservices: Ya funciona en mi máquina… Y en producción, ¿qué?
Microservices: Ya funciona en mi máquina… Y en producción, ¿qué?Microservices: Ya funciona en mi máquina… Y en producción, ¿qué?
Microservices: Ya funciona en mi máquina… Y en producción, ¿qué?
 
Introduccion a SQL Server 2017 en Docker
Introduccion a SQL Server 2017 en Docker Introduccion a SQL Server 2017 en Docker
Introduccion a SQL Server 2017 en Docker
 
Docker 10 02_18
Docker 10 02_18Docker 10 02_18
Docker 10 02_18
 
Docker: la revolución en virtualización
Docker: la revolución en virtualizaciónDocker: la revolución en virtualización
Docker: la revolución en virtualización
 
De desarrollo a producción usando docker
De desarrollo a producción usando dockerDe desarrollo a producción usando docker
De desarrollo a producción usando docker
 
Web App Container
Web App ContainerWeb App Container
Web App Container
 
Docker y kubernetes para desarrolladores .NET - Meetup Barcelona 2019
Docker y kubernetes para desarrolladores .NET - Meetup Barcelona 2019 Docker y kubernetes para desarrolladores .NET - Meetup Barcelona 2019
Docker y kubernetes para desarrolladores .NET - Meetup Barcelona 2019
 
Docker para Data Scientist - Master en Data Science URJC
Docker para Data Scientist - Master en Data Science URJCDocker para Data Scientist - Master en Data Science URJC
Docker para Data Scientist - Master en Data Science URJC
 
Curso Kubernetes CodeURJC
Curso Kubernetes CodeURJCCurso Kubernetes CodeURJC
Curso Kubernetes CodeURJC
 
Descubriendo windows azure
Descubriendo windows azureDescubriendo windows azure
Descubriendo windows azure
 
Sql server ha muerto, larga vida a sql server
Sql server ha muerto, larga vida a sql serverSql server ha muerto, larga vida a sql server
Sql server ha muerto, larga vida a sql server
 
Workshop 1 - Introducción a los Microservicios y Contenedores (@TechHub - Goo...
Workshop 1 - Introducción a los Microservicios y Contenedores (@TechHub - Goo...Workshop 1 - Introducción a los Microservicios y Contenedores (@TechHub - Goo...
Workshop 1 - Introducción a los Microservicios y Contenedores (@TechHub - Goo...
 
Dockerparadesarrollo
DockerparadesarrolloDockerparadesarrollo
Dockerparadesarrollo
 
Autobuses de Madrid en tiempo real con Azure Relay
Autobuses de Madrid en tiempo real con Azure RelayAutobuses de Madrid en tiempo real con Azure Relay
Autobuses de Madrid en tiempo real con Azure Relay
 
Windows server 2012
Windows server 2012 Windows server 2012
Windows server 2012
 

Más de Adrian Diaz Cervera

Autenticar y securizar API en .NET Core como un Avenger
Autenticar y securizar API en .NET Core como un AvengerAutenticar y securizar API en .NET Core como un Avenger
Autenticar y securizar API en .NET Core como un AvengerAdrian Diaz Cervera
 
Como desarrollar una api en .NET Core como un autentico Avenger
Como desarrollar una api en .NET Core como un autentico AvengerComo desarrollar una api en .NET Core como un autentico Avenger
Como desarrollar una api en .NET Core como un autentico AvengerAdrian Diaz Cervera
 
React Hooks ¿Por donde empezar?
React Hooks ¿Por donde empezar?React Hooks ¿Por donde empezar?
React Hooks ¿Por donde empezar?Adrian Diaz Cervera
 
Netcore Galica Como crear Apps multitenant en Azure
Netcore Galica Como crear Apps multitenant en AzureNetcore Galica Como crear Apps multitenant en Azure
Netcore Galica Como crear Apps multitenant en AzureAdrian Diaz Cervera
 
Global Azure Devops Bootcamp 2019 => Avengers EndGame
Global Azure Devops Bootcamp 2019 => Avengers EndGameGlobal Azure Devops Bootcamp 2019 => Avengers EndGame
Global Azure Devops Bootcamp 2019 => Avengers EndGameAdrian Diaz Cervera
 
Azure Bootcamp Como montar una arquitectura Serverless y aprovechar Azure
Azure Bootcamp Como montar una arquitectura Serverless y aprovechar AzureAzure Bootcamp Como montar una arquitectura Serverless y aprovechar Azure
Azure Bootcamp Como montar una arquitectura Serverless y aprovechar AzureAdrian Diaz Cervera
 
Desarrolla Add-Ins de Office 365 con Angular 2
Desarrolla Add-Ins de Office 365 con Angular 2Desarrolla Add-Ins de Office 365 con Angular 2
Desarrolla Add-Ins de Office 365 con Angular 2Adrian Diaz Cervera
 
Docker para desarrolladores .NET
Docker para desarrolladores .NETDocker para desarrolladores .NET
Docker para desarrolladores .NETAdrian Diaz Cervera
 
Helo10 Da inteligencia a tus Apps con el proyecto Oxford
Helo10 Da inteligencia a tus Apps con el proyecto OxfordHelo10 Da inteligencia a tus Apps con el proyecto Oxford
Helo10 Da inteligencia a tus Apps con el proyecto OxfordAdrian Diaz Cervera
 
SharePoint Saturday Barcelona. La importancia de JavaScript en nuestros desar...
SharePoint Saturday Barcelona. La importancia de JavaScript en nuestros desar...SharePoint Saturday Barcelona. La importancia de JavaScript en nuestros desar...
SharePoint Saturday Barcelona. La importancia de JavaScript en nuestros desar...Adrian Diaz Cervera
 
Machine learning utilizacion en redes sociales
Machine learning utilizacion en redes socialesMachine learning utilizacion en redes sociales
Machine learning utilizacion en redes socialesAdrian Diaz Cervera
 
Adrian diaz desarrollo multiplataforma en office 365
Adrian diaz desarrollo multiplataforma en office 365Adrian diaz desarrollo multiplataforma en office 365
Adrian diaz desarrollo multiplataforma en office 365Adrian Diaz Cervera
 
Soluciones de movilidad para nuevos entornos empresariales
Soluciones de movilidad para nuevos entornos empresarialesSoluciones de movilidad para nuevos entornos empresariales
Soluciones de movilidad para nuevos entornos empresarialesAdrian Diaz Cervera
 
Java script para desarrolladores SharePoint
Java script para desarrolladores SharePointJava script para desarrolladores SharePoint
Java script para desarrolladores SharePointAdrian Diaz Cervera
 
IT Camps Apps Office 365 Valencia 2014
IT Camps Apps Office 365 Valencia 2014IT Camps Apps Office 365 Valencia 2014
IT Camps Apps Office 365 Valencia 2014Adrian Diaz Cervera
 

Más de Adrian Diaz Cervera (20)

gRPC vs Rest La batalla final
gRPC vs Rest La batalla finalgRPC vs Rest La batalla final
gRPC vs Rest La batalla final
 
Autenticar y securizar API en .NET Core como un Avenger
Autenticar y securizar API en .NET Core como un AvengerAutenticar y securizar API en .NET Core como un Avenger
Autenticar y securizar API en .NET Core como un Avenger
 
Como desarrollar una api en .NET Core como un autentico Avenger
Como desarrollar una api en .NET Core como un autentico AvengerComo desarrollar una api en .NET Core como un autentico Avenger
Como desarrollar una api en .NET Core como un autentico Avenger
 
React Hooks ¿Por donde empezar?
React Hooks ¿Por donde empezar?React Hooks ¿Por donde empezar?
React Hooks ¿Por donde empezar?
 
Netcore Galica Como crear Apps multitenant en Azure
Netcore Galica Como crear Apps multitenant en AzureNetcore Galica Como crear Apps multitenant en Azure
Netcore Galica Como crear Apps multitenant en Azure
 
Global Azure Devops Bootcamp 2019 => Avengers EndGame
Global Azure Devops Bootcamp 2019 => Avengers EndGameGlobal Azure Devops Bootcamp 2019 => Avengers EndGame
Global Azure Devops Bootcamp 2019 => Avengers EndGame
 
Azure Bootcamp Como montar una arquitectura Serverless y aprovechar Azure
Azure Bootcamp Como montar una arquitectura Serverless y aprovechar AzureAzure Bootcamp Como montar una arquitectura Serverless y aprovechar Azure
Azure Bootcamp Como montar una arquitectura Serverless y aprovechar Azure
 
Desarrolla Add-Ins de Office 365 con Angular 2
Desarrolla Add-Ins de Office 365 con Angular 2Desarrolla Add-Ins de Office 365 con Angular 2
Desarrolla Add-Ins de Office 365 con Angular 2
 
Docker para desarrolladores .NET
Docker para desarrolladores .NETDocker para desarrolladores .NET
Docker para desarrolladores .NET
 
Helo10 Da inteligencia a tus Apps con el proyecto Oxford
Helo10 Da inteligencia a tus Apps con el proyecto OxfordHelo10 Da inteligencia a tus Apps con el proyecto Oxford
Helo10 Da inteligencia a tus Apps con el proyecto Oxford
 
SharePoint Saturday Barcelona. La importancia de JavaScript en nuestros desar...
SharePoint Saturday Barcelona. La importancia de JavaScript en nuestros desar...SharePoint Saturday Barcelona. La importancia de JavaScript en nuestros desar...
SharePoint Saturday Barcelona. La importancia de JavaScript en nuestros desar...
 
Asp vNext Is Comming
Asp vNext Is CommingAsp vNext Is Comming
Asp vNext Is Comming
 
Gapand 2015 machine learning
Gapand 2015 machine learningGapand 2015 machine learning
Gapand 2015 machine learning
 
ALM y Office 365
ALM y Office 365 ALM y Office 365
ALM y Office 365
 
Machine learning utilizacion en redes sociales
Machine learning utilizacion en redes socialesMachine learning utilizacion en redes sociales
Machine learning utilizacion en redes sociales
 
Adrian diaz desarrollo multiplataforma en office 365
Adrian diaz desarrollo multiplataforma en office 365Adrian diaz desarrollo multiplataforma en office 365
Adrian diaz desarrollo multiplataforma en office 365
 
Extender office365
Extender office365 Extender office365
Extender office365
 
Soluciones de movilidad para nuevos entornos empresariales
Soluciones de movilidad para nuevos entornos empresarialesSoluciones de movilidad para nuevos entornos empresariales
Soluciones de movilidad para nuevos entornos empresariales
 
Java script para desarrolladores SharePoint
Java script para desarrolladores SharePointJava script para desarrolladores SharePoint
Java script para desarrolladores SharePoint
 
IT Camps Apps Office 365 Valencia 2014
IT Camps Apps Office 365 Valencia 2014IT Camps Apps Office 365 Valencia 2014
IT Camps Apps Office 365 Valencia 2014
 

Dockeriza tu SQL Server

  • 1. #SQLSatMadrid “Dockeriza” tu SQL Server Adrián Díaz Cervera Alberto Díaz Martin
  • 2. #SQLSatMadrid BIG Thanks to SQLSatMadrid sponsors
  • 3. #SQLSatMadrid Sponsor sessions at 11:40 Don’t miss them, they might be getting distributing some awesome prizes! Plainconcepts SolidQ KABEL & Corent Also XBOX One & Raffle prizes at 17:30
  • 4. #SQLSatMadrid Agenda • Que es Docker • Terminología • Docker versus Maquina Virtual • Beneficios • Por qué empezar a utilizarlo
  • 6. #SQLSatMadrid Múltiples mercancías Multituddemétodos detransportey almacenamiento Nomepreocupa comointeractúan losinmueblesentre si Sepuede transportarla mercancía rápidamenteysin problemas Solución: Transporte en contenedores Y en medio pueden ser cargados y descargados, apilados, que se transportan en largas distancias y se cambian de un medio a otro Un contenedor que se carga con cualquier mercancía y permanece sellada hasta el destino final.
  • 7. #SQLSatMadrid ¿Qué es un contenedor? Una unidad de despliegue Corre en un SO En SO Virtualizados Arranque rápido Portable
  • 8. #SQLSatMadrid ¿Qué es ? Proyecto de código abierto Automatiza el despliegue de App usando contenedores Proporcionando una capa adicional de abstracción y automatización a nivel de OS
  • 9. #SQLSatMadrid Máquinas Virtuales vs Contenedores App A Hypervisor (Type 2) Host OS Server Guest OS Bins/ Libs App A’ Guest OS Bins/ Libs App B Guest OS Bins/ Libs AppA’ Host OS Server Bins/Libs AppA Bins/Libs AppB AppB’ AppB’ AppB’ VM Container Los contenedores están aislados pero comparten el kernel Guest OS Guest OS …el resultado es un despliegue más rápido, con menos costoso y más fácil Docker Deamon
  • 10. #SQLSatMadrid En que nos ayuda Docker No hay que preocuparse acerca de la configuración y el mantenimiento de los entornos Centrado en el producto • Acelera el desarrollo • Evita problemas con el entorno • Libertad de elección al desarrollador
  • 11. #SQLSatMadrid Revisión de Términos Docker Client Es la interfaz de usuario que permite la comunicación entre el usuario y el Docker Daemon Docker Daemon Alojado en la máquina y se encarga de contestar las solicitudes. Docker Hub Es un registro centralizado que permite la copia de seguridad de imágenes de contenedores tanto publicos como privados. Docker Containers Los responsables de la ejecución de las aplicaciones: incluye app, archivos so y metadatos Docker Images Templates de solo lectura que ayudan a lanzar contenedores Docker File Fichero donde se indica todo el contenido del contenedor
  • 13. #SQLSatMadrid El mundo está demandando SQL Server en Linux 20K+Peticiones para probar la preview BD Empresariales ejecutándose en Linux 36%
  • 14. #SQLSatMadrid Bringing SQL Server to Linux is another way we are making our products and new innovations more accessible to a broader set of users and meeting them where they are. Scott Guthrie Microsoft Microsoft
  • 15. #SQLSatMadrid Targeting CY2017 SQL Server 2017 GA* En la plataforma que elijas SQL Server 2017
  • 16. #SQLSatMadrid SQL Server en las siguientes plataformas Linux Linux/Windows container Windows Windows Server • Linux distributions incluyendo Red Hat Enterprise Linux (RHEL), Ubuntu, y SUSE Linux Enterprise (SLES) • Contenedors Linux para Docker en MacOS, Windows y Linux; Contenedores Windows e Hyper-V para SQL Server en Windows • Instalación empaquetada, yum install, apt-get, zypper y otras opciones
  • 18. #SQLSatMadrid Instancias y Docker Las instancias de SQL Server en Windows no son triviales Proceso largo de setup Magia en el filesystem, registro y cuánto dura la instalación Frecuentemente require reinicio del sistema Contenedores Docker aportan mejoras Instancias fáciles de configurar y eliminar Levantamos un SQL Server en segundos No es necesario reinicios El proceso es siempe reproducible Siempre independiente del sistema host
  • 19. #SQLSatMadrid SQL Server Instances and Docker Mejora en muchos escenarios Instalaciones de SP & CU Actualizaciones Instancias temporales Pruebas de SP & CU Pruebas de restauración Pruebas de cambia de configuración Instancias de Desarrollo Unite testing de base de datos CI/CD
  • 20. DEMO
  • 21. #SQLSatMadrid SQL Server Docker - Imágenes Dos imágenes base:: Linux y Windows Github - https://github.com/Microsoft/mssql-docker Requisitos Docker Engine 1.8+ Min 4 GB disco Min 4 GB memoria
  • 22. #SQLSatMadrid SQL Server DockerFiles Un fichero en docker host que contiene los commandos de creación de la imagen personalizada FROM microsoft/mssql-server-windows RUN powershell -Command (mkdir C:SQLServer) COPY DatabaseA.mdf C:SQLServer COPY DatabaseA_log.ldf C:SQLServer ENV SA_PASSWORD=Testing11@@ ENV ACCEPT_EULA=Y ENV attach_dbs="[{'dbName':'DatabaseA','dbFiles':['C:SQLServerDatabaseA.mdf','C:SQLServerDatabaseA_log.ldf']}]"
  • 24. #SQLSatMadrid DevOps Develop + Test Plan + Track Monitor + Learn Release Development Production DevOps es un cambio de mentalidad para añadir mejores practices enfocadas a la automatización.
  • 25. #SQLSatMadrid DevOps: No nos olvidemos de la BD! ¿Tú aplicación tiene una BD? Necesitas controlar las versiones Compilaciones automatizadas y despliegues de esquemas de bases de datos Diferentes aproximaciones: SQL Server Data Tools (SSDT) Entity Framework Migrations DacPac Docker
  • 26. #SQLSatMadrid BUILD DACPAC DOCKERFILE # escape=` FROM microsoft/windowsservercore MAINTAINER Elton Stoneman <elton@docker.com> SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop';"] RUN Install-PackageProvider -Name chocolatey -Force; ` Install-Package -Name microsoft-build-tools -RequiredVersion 14.0.25420.1 -Force; ` Install-Package dotnet4.6-targetpack -Force RUN Install-Package nuget.commandline -Force; ` & C:Chocolateybinnuget install Microsoft.Data.Tools.Msbuild CMD cd 'C:Program Files (x86)MSBuild14.0Bin'; ` .msbuild C:srcAssets.DatabaseAssets.Database.sqlproj ` /p:SQLDBExtensionsRefPath="C:Microsoft.Data.Tools.Msbuild.10.0.61026libnet40" ` /p:SqlServerRedistPath="C:Microsoft.Data.Tools.Msbuild.10.0.61026libnet40"; ` cp 'C:srcAssets.DatabasebinDebugAssets.Database.dacpac' 'c:bin'
  • 27. #SQLSatMadrid Build y Copy DACPAC docker build -t assets-db-builder -f Dockerfile.builder . mkdir out docker run --rm -v $pwdout:c:bin -v $pwdsrc:c:src assets-db-builder outAssets.Database.dacpac
  • 28. #SQLSatMadrid DOCKER FILE SQL SERVER # escape=` FROM microsoft/mssql-server-windows-express MAINTAINER Elton Stoneman <elton@docker.com> SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop';"] EXPOSE 1433 VOLUME c:database ENV sa_password D0cker!a8s RUN md c:init WORKDIR c:init COPY .outAssets.Database.dacpac . COPY Initialize-Database.ps1 . CMD ./Initialize-Database.ps1 -sa_password $env:sa_password -Verbose
  • 29. #SQLSatMadrid DOCKER InitializeDatabase CREATE DATABASE AssetsDB ON (FILENAME = N'c:databaseAssetsDB_Primary.mdf'), (FILENAME = N'c:databaseAssetsDB_Primary.ldf’) FOR ATTACH; SqlPackage.exe ` /sf:Assets.Database.dacpac ` /a:Script /op:create.sql /p:CommentOutSetVarDeclarations=true ` /tsn:.SQLEXPRESS /tdn:AssetsDB /tu:sa /tp:$sa_password