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
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
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
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
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