SlideShare a Scribd company logo
1 of 74
Ing. Eduardo Castro, PhD
PASS Board of Directors
eduardo.castro@sqlpass.org
•Introducción a Docker
•SQL Server en escenarios de Docker
Agenda
Contenedores
Por qué contenedores
¿Qué es Docker?
El reto
API endpoint
Static website
nginx 1.5 + modsecurity + openssl + bootstrap 2
User DB
postgresql + pgv8 + v8
Analytics DB
hadoop + hive + thrift + OpenJDK
Web frontend
Ruby + Rails + sass+ Unicorn
Queue
Redis + redis-sentinel
Background workers
Python 3.0 + celery + pyredis + libcurl + ffmpeg + libopencv + nodejs + phantomjs
Python 2.7 + Flask + pyredis + celery + psycopg + postgresql-client
Development VM
QAserver
Public Cloud
Disaster recovery
Contributor’s laptop
Production Servers
Multiplicityof
Stacks
Multiplicityof
hardware
environments
Production Cluster
Customer DataCenter
Doservicesand
appsinteract
appropriately?
CanImigrate
smoothlyand
quickly?
La Matrix del infierno
Static website ? ? ? ? ? ? ?
Web frontend ? ? ? ? ? ? ?
Background workers ? ? ? ? ? ? ?
User DB ? ? ? ? ? ? ?
Analytics DB ? ? ? ? ? ? ?
Queue ? ? ? ? ? ? ?
Development
VM
QA Server
Single Prod
Server
Onsite
Cluster
Public Cloud
Contributor’s
laptop
Customer
Servers
Transporte de carga en 1960
DoIworryabout
howgoodsinteract
(e.g.coffeebeans
nexttospices)
CanItransport
quicklyandsmoothly
(e.g.fromboatto
traintotruck)
También una matriz del infierno
? ? ? ? ? ? ?
? ? ? ? ? ? ?
? ? ? ? ? ? ?
? ? ? ? ? ? ?
? ? ? ? ? ? ?
? ? ? ? ? ? ?
El ecosistema de contenedores de transporte
intermodal
• 90% de todo el cargamento ahora se envía en un contenedor estándar
• Orden de la reducción de la magnitud en coste y tiempo para cargar y descargar los barcos
• Reducción masiva de pérdidas por robo o daño
• Gran reducción en el costo de flete como porcentaje de bienes finales (de > 25% a < 3%)
• globalización masiva
• 5000 buques entregan 200 m contenedores por año
Solución: contenedor de envío intermodalMultiplicityof
Goods
Multiplicityof
methodsfor
transporting/stori
ng
DoIworryabout
howgoodsinteract
(e.g.coffeebeans
nexttospices)
CanItransport
quicklyand
smoothly
(e.g.fromboatto
traintotruck)
…in between, can be loaded and
unloaded, stacked, transported
efficiently over long distances, and
transferred from one mode of
transport to another
A standard container that is
loaded with virtually any goods,
and stays sealed until it reaches
final delivery.
Docker es un sistema de contenedor de envío
para el código
Static website User DB Web frontend Queue Analytics DB
Development
VM
QAserver Public Cloud Contributor’s
laptop
Multiplicityof
Stacks
Multiplicityof
hardware
environments
Production
Cluster
Customer Data
Center
Doservicesand
appsinteract
appropriately?
CanImigrate
smoothlyand
quickly
…that can be manipulated using
standard operations and run
consistently on virtually any
hardware platform
An engine that enables any
payload to be encapsulated as
a lightweight, portable, self-
sufficient container…
Docker elimina la matriz del infierno
Static website
Web frontend
Background workers
User DB
Analytics DB
Queue
Development
VM
QA Server
Single Prod
Server
Onsite
Cluster
Public Cloud
Contributor’s
laptop
Customer
Servers
• La tecnología de contenedores ha existido por un tiempo
(LXC, Solaris Zones, BSD Jails)
• Analogía: los contenedors de envío no son solamente
cajas de acero
• Con Docker, los contenedors del nivel bajo consiguen lo
siguiente:
• Componentes reutilizables
• Capacidad para ejecutar en cualquier servidor Linux de hoy: física,
virtual, VM, Cloud, Open, ++ +
• Capacidad de moverse entre cualquiera de los anteriores en
cuestión de segundos-sin modificación o demora
• Capacidad de compartir componentes en contenedor
• Entorno autónomo — sin dependencia del infierno
• Herramientas para la forma en que los contenedores trabajan
juntos: vinculación, anidación, descubrimiento, orquestación
• "contenedorización" es realmente "Dockerization"
Importancia de un ecosistema
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
Contenid
o
Usuari
os
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
Beneficios para los desarrolladores
• 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
Importancia para DevOps
• 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
Por qué funciona — separación de roles
• La Desarrollador
• Preocupaciones
sobre lo que está
dentro del
contenedor
• Su Código
• Su Bibliotecas
• Su Gestor de
paquetes
• Su Aplicaciones
• Su Datos
• Todos los
servidores se
ven iguales
• El Administrador
• Preocupaciones
sobre lo queestá
fuera del
contenedor
• Log
• Acceso remoto
• Monitoreo
• Red
• Todos
contenedores
tienen las mismas
operaciones start,
stop, copy, attach,
migrate
Explicación más técnica
• Alto Nivel — es una VM liviana
• Propio proceso
• Propia red interfaz
• Puede ejecutar cosascomo administrador
• Puede tener propia estructura
de archivos
Por qué
• Ejecutar en cualquier lugar
• Independientemente de
núcleo Versión (2.6.32
+)
• Independientemente de host-
distro
• Física ovirtual, nube o no
• Ejecutar cualquier cosa
• Si que puede ejecutar en la
host, se puede ejecutar en
la contenedor
• Si que puede ejecutar en un
Linux entonces puede
ejecutar
Qué
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
¿Por qué son ligeros los contenedores Docker?
Contene
dores/
Libs
App
Aplicación
Original
(No tiene OS que
requiera espacio,
recursos o que
requiere reinicio)
Aplicaci
ónΔ
App
Bins/
Libs
App
Comenta
rios
Os
Bins/
Libs
Aplicación
Modificaa
Permite copiar entre
contenedores
VMS
Cada aplicación, cada copia de un
aplicación, y cada levemodificación
de la aplicación requiere un nuevo
servidor virtual
App
GuestOs
Bins/
Libs
Copia de
Aplicación
Sin Os. Puede
Compartir
bins/bibliotecas
App
GuestOs GuestOs
VMs Contenedores
¿Cuáles son los fundamentos del sistema de Docker?
Source
Code
Repository
Dockerfile
For
A
Docker Engine
Docker
Container
Image
Registry
Build
Docker
Host 2 OS (Linux)
ContainerA
ContainerB
ContainerC
ContainerA
Push
Search Pull
Run
Host 1OS(Linux)
Cambios y actualizaciones
Docker
Container
Image
Registry
Docker Engine
Push
Update
Bins/
Libs
App
A
AppΔ
Base
Container
Image
Host is now running A’’
Container
Mod A’’
AppΔ
Bins/
Libs
App
A
App
A’’
Bins/
Libs
Docker Engine
Host running A wants to upgrade to A’’.
Requests update. Gets only diffs
Container
Mod A’
• 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
Arquitectura Docker
Contenedor de Windows
Docker en Contenedores de Windows
• Docker aprovecha una tecnología denominada namespaces para proporcionar el
espacio de trabajo aislado que llamamos el contenedor.
• Cuando se ejecuta un contenedor, Docker crea un conjunto de espacios de
nombres para ese contenedor.
• Algunos de los espacios de nombres que utiliza el motor de Docker en Linux son:
• La PID namespace: Process Isolation (PID: Process ID).
• El espacio de nombres red: administración de interfaces de red (net: Networking).
• IPC namespace: administrar el acceso a los recursos IPC (IPC: InterProcess Communication).
• Espacio de nombres mnt: administrar puntos de montaje (mnt: Mount).
• UTS namespace: aislar identificadores de versión y kernel. (UTS: Unix Timesharing System)
Namespaces
• El motor de Docker en Linux también hace uso de otra tecnología
llamada cgroups o grupos de control.
• Una clave para ejecutar aplicaciones en aislamiento es que sólo utilicen
los recursos que desee.
• Esto asegura que los contenedores sean buenos ciudadanos de varios
inquilinos en un huésped.
• Los grupos de control permiten que el motor Dock comparta los
recursos de hardware disponibles en los contenedores y, si es
necesario, establecer límites y restricciones.
• Por ejemplo, limitar la memoria disponible a un contenedor específico.
Grupos de control
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
Any App
Any infrastructure
• Physical
• Virtual cloud
+ 45K apps
+ 16K projects
API
Engine Hub
cloud-based platform services for distributed
applications
API
open source software at the heart
of the Docker platform
• 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
Arquitectura Kubernetes
• 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
Aplicaciones distribuidas con componentes Linux y
Windows
Dat
os
Usu
ario
DB
Cola
Analytic
s
DB
API
Punto
Web
Fronten
d
Dat
os
Fondo
Trabajado
res
Desarrollo VM
Servidor
de QA
Nube
pública
Recuperación
ante desastres
Laptop de
colaboradores
Servidores de
producción
Clúster de
producción
Centro de datos del
cliente
• Anuncionado en
DockerCon
• Extensiones
soportadas
• Actualizado con las
últimas versiones
Modelo y Docker de la extensión
Agente
Integración del Hub de Docker
Azure MarketplaceHub de Docker
Combinando Windows y Linux en Azure
SQL Server
Workers
Nginx
• 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.
Escenario
Todu
ny
SQL Server en Docker
• Docker Plataforma
• SQL Server en Docker
• Contenedores de base de datos
Init Scripts
SQL Schema
.NET Fx
SQL Server
Server Core
> docker image build
# escape=`
FROM microsoft/mssql-server-windows-express
COPY init-db.sql C:
COPY Initialize-Database.ps1 C:
CMD C:Initialize-Database.ps1
hub.docker.com
> docker image push
sqlservr.exe mssql
> docker container run
> docker container run
sqlservr.exe
Init Scripts
SQL Schema
.NET Fx
Server Core
SQL Server
SQL Server on Docker
> docker container run ...
> docker container run --volume ...
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
Q + A

More Related Content

What's hot

Kubernetes technical overview and our experience at Restorando :: Buenos Aire...
Kubernetes technical overview and our experience at Restorando :: Buenos Aire...Kubernetes technical overview and our experience at Restorando :: Buenos Aire...
Kubernetes technical overview and our experience at Restorando :: Buenos Aire...Restorando
 
BEEVA | Introducción a Docker
BEEVA | Introducción a DockerBEEVA | Introducción a Docker
BEEVA | Introducción a DockerBEEVA_es
 
Docker como la máxima expresión de Devops - WISIT 2015
Docker como la máxima expresión de Devops - WISIT 2015Docker como la máxima expresión de Devops - WISIT 2015
Docker como la máxima expresión de Devops - WISIT 2015Gustavo Andres Brey
 
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
 
Cloud Native Mexico - Introducción a Kubernetes
Cloud Native Mexico - Introducción a KubernetesCloud Native Mexico - Introducción a Kubernetes
Cloud Native Mexico - Introducción a KubernetesDomingo Suarez Torres
 
Game of pods - Kubernetes
Game of pods - KubernetesGame of pods - Kubernetes
Game of pods - Kubernetesjdezine
 
Kubernetes - #dockerconlima
Kubernetes  - #dockerconlimaKubernetes  - #dockerconlima
Kubernetes - #dockerconlimaAngel Nuñez
 
Docker 10 02_18
Docker 10 02_18Docker 10 02_18
Docker 10 02_18enyert
 
Docker introducción - Flisol 2015 Huancayo
Docker introducción - Flisol 2015 HuancayoDocker introducción - Flisol 2015 Huancayo
Docker introducción - Flisol 2015 HuancayoMario IC
 
Introducción a Docker
Introducción a DockerIntroducción a Docker
Introducción a DockerOpen Canarias
 
Web App Container
Web App ContainerWeb App Container
Web App ContainerCDS
 
Kubernetes 101 - Plain Concepts Dev Day
Kubernetes 101 - Plain Concepts Dev DayKubernetes 101 - Plain Concepts Dev Day
Kubernetes 101 - Plain Concepts Dev DayPlain Concepts
 

What's hot (20)

Kubernetes technical overview and our experience at Restorando :: Buenos Aire...
Kubernetes technical overview and our experience at Restorando :: Buenos Aire...Kubernetes technical overview and our experience at Restorando :: Buenos Aire...
Kubernetes technical overview and our experience at Restorando :: Buenos Aire...
 
BEEVA | Introducción a Docker
BEEVA | Introducción a DockerBEEVA | Introducción a Docker
BEEVA | Introducción a Docker
 
Docker como la máxima expresión de Devops - WISIT 2015
Docker como la máxima expresión de Devops - WISIT 2015Docker como la máxima expresión de Devops - WISIT 2015
Docker como la máxima expresión de Devops - WISIT 2015
 
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...
 
Cloud Native Mexico - Introducción a Kubernetes
Cloud Native Mexico - Introducción a KubernetesCloud Native Mexico - Introducción a Kubernetes
Cloud Native Mexico - Introducción a Kubernetes
 
DevOps+[Chef/Docker]
 DevOps+[Chef/Docker] DevOps+[Chef/Docker]
DevOps+[Chef/Docker]
 
Introducción a Kubernetes
Introducción a KubernetesIntroducción a Kubernetes
Introducción a Kubernetes
 
Game of pods - Kubernetes
Game of pods - KubernetesGame of pods - Kubernetes
Game of pods - Kubernetes
 
Kubernetes - #dockerconlima
Kubernetes  - #dockerconlimaKubernetes  - #dockerconlima
Kubernetes - #dockerconlima
 
Docker 10 02_18
Docker 10 02_18Docker 10 02_18
Docker 10 02_18
 
Docker introducción - Flisol 2015 Huancayo
Docker introducción - Flisol 2015 HuancayoDocker introducción - Flisol 2015 Huancayo
Docker introducción - Flisol 2015 Huancayo
 
Introduction to docker. Stratio
Introduction to docker. StratioIntroduction to docker. Stratio
Introduction to docker. Stratio
 
Usando docker
Usando dockerUsando docker
Usando docker
 
Introducción a Docker
Introducción a DockerIntroducción a Docker
Introducción a Docker
 
Kubernetes - The Cloud King
Kubernetes - The Cloud KingKubernetes - The Cloud King
Kubernetes - The Cloud King
 
Web App Container
Web App ContainerWeb App Container
Web App Container
 
introducción a Docker
introducción a Dockerintroducción a Docker
introducción a Docker
 
Kubernetes 101 - Plain Concepts Dev Day
Kubernetes 101 - Plain Concepts Dev DayKubernetes 101 - Plain Concepts Dev Day
Kubernetes 101 - Plain Concepts Dev Day
 
Presentación Docker
Presentación DockerPresentación Docker
Presentación Docker
 
Devops episodio 1. devOpsTnf
Devops episodio 1. devOpsTnf Devops episodio 1. devOpsTnf
Devops episodio 1. devOpsTnf
 

Similar to Docker SQL Server

Docker - Sysmana 2014
Docker - Sysmana 2014Docker - Sysmana 2014
Docker - Sysmana 2014quaip
 
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
 
Cloud Native en Azure impartido en Microsoft Madrid y Barcelona
 Cloud Native en Azure impartido en Microsoft Madrid y Barcelona Cloud Native en Azure impartido en Microsoft Madrid y Barcelona
Cloud Native en Azure impartido en Microsoft Madrid y BarcelonaSanti Macias Rodriguez
 
Docker para Dummies
Docker para DummiesDocker para Dummies
Docker para DummiesRaúl Unzué
 
Contenedores y el Futuro del Despliegue de Aplicaciones
Contenedores y el Futuro del Despliegue de AplicacionesContenedores y el Futuro del Despliegue de Aplicaciones
Contenedores y el Futuro del Despliegue de AplicacionesBitnami
 
An evening with... Docker
An evening with... DockerAn evening with... Docker
An evening with... DockerArkhotech
 
Introduccion Azure Containers
Introduccion Azure Containers Introduccion Azure Containers
Introduccion Azure Containers Ivan Martinez
 
Dev ops with Data
Dev ops with DataDev ops with Data
Dev ops with Datannakasone
 
docker.pdf
docker.pdfdocker.pdf
docker.pdfKenn70
 
Azure AI South Azure Cognitive Services en contenedores Docker.pptx
Azure AI South Azure Cognitive Services en contenedores Docker.pptxAzure AI South Azure Cognitive Services en contenedores Docker.pptx
Azure AI South Azure Cognitive Services en contenedores Docker.pptxLuis Beltran
 
VLCSofting 2021 - HARD AS A POD 落. HARDENING DE DESPLIEGUES EN KUBERNETES CON...
VLCSofting 2021 - HARD AS A POD 落. HARDENING DE DESPLIEGUES EN KUBERNETES CON...VLCSofting 2021 - HARD AS A POD 落. HARDENING DE DESPLIEGUES EN KUBERNETES CON...
VLCSofting 2021 - HARD AS A POD 落. HARDENING DE DESPLIEGUES EN KUBERNETES CON...Francisco Javier Barrena
 
Docker en el entorno de desarrollo
Docker en el entorno de desarrolloDocker en el entorno de desarrollo
Docker en el entorno de desarrolloAlejandro Hernández
 
.Net Conf UY 2017: Un paseo por Azure Service Fabric
.Net Conf UY 2017: Un paseo por Azure Service Fabric.Net Conf UY 2017: Un paseo por Azure Service Fabric
.Net Conf UY 2017: Un paseo por Azure Service FabricGuillermo Javier Bellmann
 
dockerize.it
dockerize.itdockerize.it
dockerize.itbetabeers
 

Similar to Docker SQL Server (20)

Docker - Sysmana 2014
Docker - Sysmana 2014Docker - Sysmana 2014
Docker - Sysmana 2014
 
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
 
Cloud Native en Azure impartido en Microsoft Madrid y Barcelona
 Cloud Native en Azure impartido en Microsoft Madrid y Barcelona Cloud Native en Azure impartido en Microsoft Madrid y Barcelona
Cloud Native en Azure impartido en Microsoft Madrid y Barcelona
 
Docker para Dummies
Docker para DummiesDocker para Dummies
Docker para Dummies
 
Contenedores y el Futuro del Despliegue de Aplicaciones
Contenedores y el Futuro del Despliegue de AplicacionesContenedores y el Futuro del Despliegue de Aplicaciones
Contenedores y el Futuro del Despliegue de Aplicaciones
 
Despliegue de Aplicaciones .Net Core en Docker
Despliegue de Aplicaciones .Net Core en DockerDespliegue de Aplicaciones .Net Core en Docker
Despliegue de Aplicaciones .Net Core en Docker
 
Curso gratuito de Docker
Curso gratuito de DockerCurso gratuito de Docker
Curso gratuito de Docker
 
An evening with... Docker
An evening with... DockerAn evening with... Docker
An evening with... Docker
 
Kubernetes para developers
Kubernetes para developersKubernetes para developers
Kubernetes para developers
 
Introducción a Docker
Introducción a DockerIntroducción a Docker
Introducción a Docker
 
Introduccion Azure Containers
Introduccion Azure Containers Introduccion Azure Containers
Introduccion Azure Containers
 
Dev ops with Data
Dev ops with DataDev ops with Data
Dev ops with Data
 
docker.pdf
docker.pdfdocker.pdf
docker.pdf
 
Azure AI South Azure Cognitive Services en contenedores Docker.pptx
Azure AI South Azure Cognitive Services en contenedores Docker.pptxAzure AI South Azure Cognitive Services en contenedores Docker.pptx
Azure AI South Azure Cognitive Services en contenedores Docker.pptx
 
VLCSofting 2021 - HARD AS A POD 落. HARDENING DE DESPLIEGUES EN KUBERNETES CON...
VLCSofting 2021 - HARD AS A POD 落. HARDENING DE DESPLIEGUES EN KUBERNETES CON...VLCSofting 2021 - HARD AS A POD 落. HARDENING DE DESPLIEGUES EN KUBERNETES CON...
VLCSofting 2021 - HARD AS A POD 落. HARDENING DE DESPLIEGUES EN KUBERNETES CON...
 
Docker en el entorno de desarrollo
Docker en el entorno de desarrolloDocker en el entorno de desarrollo
Docker en el entorno de desarrollo
 
Kubernetes workshop
Kubernetes workshopKubernetes workshop
Kubernetes workshop
 
.Net Conf UY 2017: Un paseo por Azure Service Fabric
.Net Conf UY 2017: Un paseo por Azure Service Fabric.Net Conf UY 2017: Un paseo por Azure Service Fabric
.Net Conf UY 2017: Un paseo por Azure Service Fabric
 
dockerize.it
dockerize.itdockerize.it
dockerize.it
 
Docker and networking
Docker and networkingDocker and networking
Docker and networking
 

More from Eduardo Castro

Introducción a polybase en SQL Server
Introducción a polybase en SQL ServerIntroducción a polybase en SQL Server
Introducción a polybase en SQL ServerEduardo Castro
 
Creando tu primer ambiente de AI en Azure ML y SQL Server
Creando tu primer ambiente de AI en Azure ML y SQL ServerCreando tu primer ambiente de AI en Azure ML y SQL Server
Creando tu primer ambiente de AI en Azure ML y SQL ServerEduardo Castro
 
Seguridad en SQL Azure
Seguridad en SQL AzureSeguridad en SQL Azure
Seguridad en SQL AzureEduardo Castro
 
Azure Synapse Analytics MLflow
Azure Synapse Analytics MLflowAzure Synapse Analytics MLflow
Azure Synapse Analytics MLflowEduardo Castro
 
SQL Server 2019 con Windows Server 2022
SQL Server 2019 con Windows Server 2022SQL Server 2019 con Windows Server 2022
SQL Server 2019 con Windows Server 2022Eduardo Castro
 
Novedades en SQL Server 2022
Novedades en SQL Server 2022Novedades en SQL Server 2022
Novedades en SQL Server 2022Eduardo Castro
 
Introduccion a SQL Server 2022
Introduccion a SQL Server 2022Introduccion a SQL Server 2022
Introduccion a SQL Server 2022Eduardo Castro
 
Machine Learning con Azure Managed Instance
Machine Learning con Azure Managed InstanceMachine Learning con Azure Managed Instance
Machine Learning con Azure Managed InstanceEduardo Castro
 
Novedades en sql server 2022
Novedades en sql server 2022Novedades en sql server 2022
Novedades en sql server 2022Eduardo Castro
 
Sql server 2019 con windows server 2022
Sql server 2019 con windows server 2022Sql server 2019 con windows server 2022
Sql server 2019 con windows server 2022Eduardo Castro
 
Introduccion a databricks
Introduccion a databricksIntroduccion a databricks
Introduccion a databricksEduardo Castro
 
Pronosticos con sql server
Pronosticos con sql serverPronosticos con sql server
Pronosticos con sql serverEduardo Castro
 
Data warehouse con azure synapse analytics
Data warehouse con azure synapse analyticsData warehouse con azure synapse analytics
Data warehouse con azure synapse analyticsEduardo Castro
 
Que hay de nuevo en el Azure Data Lake Storage Gen2
Que hay de nuevo en el Azure Data Lake Storage Gen2Que hay de nuevo en el Azure Data Lake Storage Gen2
Que hay de nuevo en el Azure Data Lake Storage Gen2Eduardo Castro
 
Introduccion a Azure Synapse Analytics
Introduccion a Azure Synapse AnalyticsIntroduccion a Azure Synapse Analytics
Introduccion a Azure Synapse AnalyticsEduardo Castro
 
Seguridad de SQL Database en Azure
Seguridad de SQL Database en AzureSeguridad de SQL Database en Azure
Seguridad de SQL Database en AzureEduardo Castro
 
Python dentro de SQL Server
Python dentro de SQL ServerPython dentro de SQL Server
Python dentro de SQL ServerEduardo Castro
 
Servicios Cognitivos de de Microsoft
Servicios Cognitivos de de Microsoft Servicios Cognitivos de de Microsoft
Servicios Cognitivos de de Microsoft Eduardo Castro
 
Script de paso a paso de configuración de Secure Enclaves
Script de paso a paso de configuración de Secure EnclavesScript de paso a paso de configuración de Secure Enclaves
Script de paso a paso de configuración de Secure EnclavesEduardo Castro
 
Introducción a conceptos de SQL Server Secure Enclaves
Introducción a conceptos de SQL Server Secure EnclavesIntroducción a conceptos de SQL Server Secure Enclaves
Introducción a conceptos de SQL Server Secure EnclavesEduardo Castro
 

More from Eduardo Castro (20)

Introducción a polybase en SQL Server
Introducción a polybase en SQL ServerIntroducción a polybase en SQL Server
Introducción a polybase en SQL Server
 
Creando tu primer ambiente de AI en Azure ML y SQL Server
Creando tu primer ambiente de AI en Azure ML y SQL ServerCreando tu primer ambiente de AI en Azure ML y SQL Server
Creando tu primer ambiente de AI en Azure ML y SQL Server
 
Seguridad en SQL Azure
Seguridad en SQL AzureSeguridad en SQL Azure
Seguridad en SQL Azure
 
Azure Synapse Analytics MLflow
Azure Synapse Analytics MLflowAzure Synapse Analytics MLflow
Azure Synapse Analytics MLflow
 
SQL Server 2019 con Windows Server 2022
SQL Server 2019 con Windows Server 2022SQL Server 2019 con Windows Server 2022
SQL Server 2019 con Windows Server 2022
 
Novedades en SQL Server 2022
Novedades en SQL Server 2022Novedades en SQL Server 2022
Novedades en SQL Server 2022
 
Introduccion a SQL Server 2022
Introduccion a SQL Server 2022Introduccion a SQL Server 2022
Introduccion a SQL Server 2022
 
Machine Learning con Azure Managed Instance
Machine Learning con Azure Managed InstanceMachine Learning con Azure Managed Instance
Machine Learning con Azure Managed Instance
 
Novedades en sql server 2022
Novedades en sql server 2022Novedades en sql server 2022
Novedades en sql server 2022
 
Sql server 2019 con windows server 2022
Sql server 2019 con windows server 2022Sql server 2019 con windows server 2022
Sql server 2019 con windows server 2022
 
Introduccion a databricks
Introduccion a databricksIntroduccion a databricks
Introduccion a databricks
 
Pronosticos con sql server
Pronosticos con sql serverPronosticos con sql server
Pronosticos con sql server
 
Data warehouse con azure synapse analytics
Data warehouse con azure synapse analyticsData warehouse con azure synapse analytics
Data warehouse con azure synapse analytics
 
Que hay de nuevo en el Azure Data Lake Storage Gen2
Que hay de nuevo en el Azure Data Lake Storage Gen2Que hay de nuevo en el Azure Data Lake Storage Gen2
Que hay de nuevo en el Azure Data Lake Storage Gen2
 
Introduccion a Azure Synapse Analytics
Introduccion a Azure Synapse AnalyticsIntroduccion a Azure Synapse Analytics
Introduccion a Azure Synapse Analytics
 
Seguridad de SQL Database en Azure
Seguridad de SQL Database en AzureSeguridad de SQL Database en Azure
Seguridad de SQL Database en Azure
 
Python dentro de SQL Server
Python dentro de SQL ServerPython dentro de SQL Server
Python dentro de SQL Server
 
Servicios Cognitivos de de Microsoft
Servicios Cognitivos de de Microsoft Servicios Cognitivos de de Microsoft
Servicios Cognitivos de de Microsoft
 
Script de paso a paso de configuración de Secure Enclaves
Script de paso a paso de configuración de Secure EnclavesScript de paso a paso de configuración de Secure Enclaves
Script de paso a paso de configuración de Secure Enclaves
 
Introducción a conceptos de SQL Server Secure Enclaves
Introducción a conceptos de SQL Server Secure EnclavesIntroducción a conceptos de SQL Server Secure Enclaves
Introducción a conceptos de SQL Server Secure Enclaves
 

Recently uploaded

Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxLolaBunny11
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfJulian Lamprea
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITMaricarmen Sánchez Ruiz
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 

Recently uploaded (10)

Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptx
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdf
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 

Docker SQL Server

  • 1. Ing. Eduardo Castro, PhD PASS Board of Directors eduardo.castro@sqlpass.org
  • 2. •Introducción a Docker •SQL Server en escenarios de Docker Agenda
  • 3.
  • 7. El reto API endpoint Static website nginx 1.5 + modsecurity + openssl + bootstrap 2 User DB postgresql + pgv8 + v8 Analytics DB hadoop + hive + thrift + OpenJDK Web frontend Ruby + Rails + sass+ Unicorn Queue Redis + redis-sentinel Background workers Python 3.0 + celery + pyredis + libcurl + ffmpeg + libopencv + nodejs + phantomjs Python 2.7 + Flask + pyredis + celery + psycopg + postgresql-client Development VM QAserver Public Cloud Disaster recovery Contributor’s laptop Production Servers Multiplicityof Stacks Multiplicityof hardware environments Production Cluster Customer DataCenter Doservicesand appsinteract appropriately? CanImigrate smoothlyand quickly?
  • 8. La Matrix del infierno Static website ? ? ? ? ? ? ? Web frontend ? ? ? ? ? ? ? Background workers ? ? ? ? ? ? ? User DB ? ? ? ? ? ? ? Analytics DB ? ? ? ? ? ? ? Queue ? ? ? ? ? ? ? Development VM QA Server Single Prod Server Onsite Cluster Public Cloud Contributor’s laptop Customer Servers
  • 9. Transporte de carga en 1960 DoIworryabout howgoodsinteract (e.g.coffeebeans nexttospices) CanItransport quicklyandsmoothly (e.g.fromboatto traintotruck)
  • 10. También una matriz del infierno ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
  • 11. El ecosistema de contenedores de transporte intermodal • 90% de todo el cargamento ahora se envía en un contenedor estándar • Orden de la reducción de la magnitud en coste y tiempo para cargar y descargar los barcos • Reducción masiva de pérdidas por robo o daño • Gran reducción en el costo de flete como porcentaje de bienes finales (de > 25% a < 3%) • globalización masiva • 5000 buques entregan 200 m contenedores por año
  • 12. Solución: contenedor de envío intermodalMultiplicityof Goods Multiplicityof methodsfor transporting/stori ng DoIworryabout howgoodsinteract (e.g.coffeebeans nexttospices) CanItransport quicklyand smoothly (e.g.fromboatto traintotruck) …in between, can be loaded and unloaded, stacked, transported efficiently over long distances, and transferred from one mode of transport to another A standard container that is loaded with virtually any goods, and stays sealed until it reaches final delivery.
  • 13. Docker es un sistema de contenedor de envío para el código Static website User DB Web frontend Queue Analytics DB Development VM QAserver Public Cloud Contributor’s laptop Multiplicityof Stacks Multiplicityof hardware environments Production Cluster Customer Data Center Doservicesand appsinteract appropriately? CanImigrate smoothlyand quickly …that can be manipulated using standard operations and run consistently on virtually any hardware platform An engine that enables any payload to be encapsulated as a lightweight, portable, self- sufficient container…
  • 14. Docker elimina la matriz del infierno Static website Web frontend Background workers User DB Analytics DB Queue Development VM QA Server Single Prod Server Onsite Cluster Public Cloud Contributor’s laptop Customer Servers
  • 15. • La tecnología de contenedores ha existido por un tiempo (LXC, Solaris Zones, BSD Jails) • Analogía: los contenedors de envío no son solamente cajas de acero • Con Docker, los contenedors del nivel bajo consiguen lo siguiente: • Componentes reutilizables • Capacidad para ejecutar en cualquier servidor Linux de hoy: física, virtual, VM, Cloud, Open, ++ + • Capacidad de moverse entre cualquiera de los anteriores en cuestión de segundos-sin modificación o demora • Capacidad de compartir componentes en contenedor • Entorno autónomo — sin dependencia del infierno • Herramientas para la forma en que los contenedores trabajan juntos: vinculación, anidación, descubrimiento, orquestación • "contenedorización" es realmente "Dockerization" Importancia de un ecosistema
  • 16. 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 Contenid o Usuari os Repos oficial y 35 K Dockerized aplicaciones
  • 18. • 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 Beneficios para los desarrolladores
  • 19. • 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
  • 20. • 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
  • 21. • 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 Importancia para DevOps
  • 22. • 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
  • 23. Por qué funciona — separación de roles • La Desarrollador • Preocupaciones sobre lo que está dentro del contenedor • Su Código • Su Bibliotecas • Su Gestor de paquetes • Su Aplicaciones • Su Datos • Todos los servidores se ven iguales • El Administrador • Preocupaciones sobre lo queestá fuera del contenedor • Log • Acceso remoto • Monitoreo • Red • Todos contenedores tienen las mismas operaciones start, stop, copy, attach, migrate
  • 24. Explicación más técnica • Alto Nivel — es una VM liviana • Propio proceso • Propia red interfaz • Puede ejecutar cosascomo administrador • Puede tener propia estructura de archivos Por qué • Ejecutar en cualquier lugar • Independientemente de núcleo Versión (2.6.32 +) • Independientemente de host- distro • Física ovirtual, nube o no • Ejecutar cualquier cosa • Si que puede ejecutar en la host, se puede ejecutar en la contenedor • Si que puede ejecutar en un Linux entonces puede ejecutar Qué
  • 25. 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
  • 26. ¿Por qué son ligeros los contenedores Docker? Contene dores/ Libs App Aplicación Original (No tiene OS que requiera espacio, recursos o que requiere reinicio) Aplicaci ónΔ App Bins/ Libs App Comenta rios Os Bins/ Libs Aplicación Modificaa Permite copiar entre contenedores VMS Cada aplicación, cada copia de un aplicación, y cada levemodificación de la aplicación requiere un nuevo servidor virtual App GuestOs Bins/ Libs Copia de Aplicación Sin Os. Puede Compartir bins/bibliotecas App GuestOs GuestOs VMs Contenedores
  • 27. ¿Cuáles son los fundamentos del sistema de Docker? Source Code Repository Dockerfile For A Docker Engine Docker Container Image Registry Build Docker Host 2 OS (Linux) ContainerA ContainerB ContainerC ContainerA Push Search Pull Run Host 1OS(Linux)
  • 28. Cambios y actualizaciones Docker Container Image Registry Docker Engine Push Update Bins/ Libs App A AppΔ Base Container Image Host is now running A’’ Container Mod A’’ AppΔ Bins/ Libs App A App A’’ Bins/ Libs Docker Engine Host running A wants to upgrade to A’’. Requests update. Gets only diffs Container Mod A’
  • 29. • 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
  • 33. • Docker aprovecha una tecnología denominada namespaces para proporcionar el espacio de trabajo aislado que llamamos el contenedor. • Cuando se ejecuta un contenedor, Docker crea un conjunto de espacios de nombres para ese contenedor. • Algunos de los espacios de nombres que utiliza el motor de Docker en Linux son: • La PID namespace: Process Isolation (PID: Process ID). • El espacio de nombres red: administración de interfaces de red (net: Networking). • IPC namespace: administrar el acceso a los recursos IPC (IPC: InterProcess Communication). • Espacio de nombres mnt: administrar puntos de montaje (mnt: Mount). • UTS namespace: aislar identificadores de versión y kernel. (UTS: Unix Timesharing System) Namespaces
  • 34. • El motor de Docker en Linux también hace uso de otra tecnología llamada cgroups o grupos de control. • Una clave para ejecutar aplicaciones en aislamiento es que sólo utilicen los recursos que desee. • Esto asegura que los contenedores sean buenos ciudadanos de varios inquilinos en un huésped. • Los grupos de control permiten que el motor Dock comparta los recursos de hardware disponibles en los contenedores y, si es necesario, establecer límites y restricciones. • Por ejemplo, limitar la memoria disponible a un contenedor específico. Grupos de control
  • 36. • 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
  • 38. • 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
  • 39. • 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
  • 40. 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
  • 41. Any App Any infrastructure • Physical • Virtual cloud + 45K apps + 16K projects API Engine Hub cloud-based platform services for distributed applications API open source software at the heart of the Docker platform
  • 42. • 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
  • 44. • 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
  • 45. Herramienta de orquestación de contenedores
  • 47. • Llevar Docker y contenedores a Windows • Soporte en Hyper-V Noticias recientes: Docker for Windows
  • 48. Reunir a las comunidades Comunidad Linux Comunidad de Windows
  • 49. Aplicaciones distribuidas con componentes Linux y Windows Dat os Usu ario DB Cola Analytic s DB API Punto Web Fronten d Dat os Fondo Trabajado res Desarrollo VM Servidor de QA Nube pública Recuperación ante desastres Laptop de colaboradores Servidores de producción Clúster de producción Centro de datos del cliente
  • 50. • Anuncionado en DockerCon • Extensiones soportadas • Actualizado con las últimas versiones Modelo y Docker de la extensión Agente
  • 51. Integración del Hub de Docker Azure MarketplaceHub de Docker
  • 52. Combinando Windows y Linux en Azure SQL Server Workers Nginx
  • 53. • 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. Escenario
  • 54. Todu ny SQL Server en Docker • Docker Plataforma • SQL Server en Docker • Contenedores de base de datos
  • 55. Init Scripts SQL Schema .NET Fx SQL Server Server Core > docker image build
  • 56. # escape=` FROM microsoft/mssql-server-windows-express COPY init-db.sql C: COPY Initialize-Database.ps1 C: CMD C:Initialize-Database.ps1
  • 59. > docker container run sqlservr.exe Init Scripts SQL Schema .NET Fx Server Core SQL Server
  • 60. SQL Server on Docker
  • 62. > docker container run --volume ...
  • 63.
  • 64.
  • 65.
  • 66.
  • 67.
  • 68.
  • 69.
  • 70.
  • 71. Demo
  • 72. • 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
  • 73. • 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
  • 74. Q + A