3. About the Speaker
• Jakub Vaňák
• Software Developer
• Marques Olivia => NaviPartner
• https://github.com/Koubek
• https://twitter.com/vanakjakub
• https://www.linkedin.com/in/jakubvanak
• vanak.jakub@gmail.com
4. Objetivos de la sesión
• Obtener una comprensión básica de Docker.
• Demostrar cómo Docker ayuda con ejecución D365 Business
Central (NAV).
5. Agenda
• Introducción a Docker aka Windows Containers
• Imágenes para BC/NAV
• Arquitectura BC/NAV on Docker
• Ampliar funcionalidad de las imágenes estándar de Microsoft
• Herramientas, enlaces
• Q&A
8. ¿Qué es Docker?
• Es un proyecto de código abierto que automatiza el despliegue de
aplicaciones dentro de contenedores de software.
• Ofrece funcionalidades en varias plataformas (sistemas operativos).
• Docker se hace muy famoso por ofrecer un ecosistema completo:
• Docker Image
• Docker Container
• Docker Registry
• Docker Swarm
• Etc.
9. ¿Porqué Docker?
• Docker nos permite ejecutar una aplicación o un conjunto de
aplicaciones en forma muy estable y repetible (en varios entornos).
• Prácticamente elimina problemas tipo:
“Pero a mí, en esta máquina, me funciona…”
• Docker permite instanciar aplicaciones en forma muy rápida y con
el mínimo esfuerzo.
• Docker (Swarm, Kubernetes) ofrece posibilidades de escalar y
balancear aplicaciones según necesidad y en forma prácticamente
automatizada.
11. Docker Image vs. Docker Container
• Docker Image es una plantilla qué contiene una versión del
sistema operativo mínimo, librerías y binarios de las aplicaciones; el
conjunto necesario para poder ejecutar una o varias aplicaciones
en forma independiente.
• Docker Image en la mayoridad de casos contiene varias capas
(una imagen se crea en base de otra).
12. Docker Image vs. Docker Container
• Docker Container es una instancia de una imagen de Docker.
• Docker Container contiene todas capas de la imagen (lectura) +
una propia (lectura + escritura).
• En términos de OOP podemos buscar una comparación y decir de
que
• Docker Image = Class.
• Docker Container = Object
14. Docker Container vs. máquina virtual
• Docker Container NO ES una VM (en sentido positivo y negativo).
• Docker Container no tiene GUI.
• Docker Container no nos permite conectarse a través de RDP.
• Docker Container permite aprovechar recursos (CPU, RAM, HDD)
en forma más eficiente (instanciar más aplicaciones con el mismo
HW) comparando con máquinas virtuales.
17. Imágenes para BC – raleases oficiales
• Imágenes para desarrollos para D365 Business Central, raleases
oficiales.
• Están en el Docker Hub (repositorio del Docker por defecto).
• Detalles: https://hub.docker.com/r/microsoft/bcsandbox/
• Nombres de las imágenes ([microsoft/bcsandbox:build-country]):
• El último reléase W1: microsoft/bcsandbox
• El último reléase ES: microsoft/bcsandbox:es
• Un reléase ES específico: microsoft/bcsandbox:12.0.21229.0-es
18. Imágenes para NAV – raleases oficiales
• Imágenes para desarrollos para Dynamics NAV (on-prem), raleases
oficiales.
• También están en el Docker Hub.
• Detalles: https://hub.docker.com/r/microsoft/dynamics-nav/
• Nombres ([microsoft/dynamics-nav:version-cu-country]):
• La última versión + la última CU W1: microsoft/dynamics-nav
• Versión esp. + la última CU W1: microsoft/ dynamics-nav:2018
• Versión esp. + la última CU ES: microsoft/ dynamics-nav:2018-es
• Versión esp. + CU esp. ES: microsoft/ dynamics-nav:2018-cu4-es
19. Imágenes para BC – devs/tests
-> próxima actualización menor
• Imágenes para desarrollos y pruebas sobre D365 Business Central.
• En este caso se trata de un próximo reléase parcial.
• Actualización cada día.
• Están en Azure Containers Registry de Microsoft.
• Es un repo es privado y requiere credenciales para poder acceder.
• Nombres en este formato:
[bcinsider.azurecr.io/bcsandbox:build-country]
20. Imágenes para BC – devs/tests
-> próxima actualización mayor
• Imágenes para desarrollos y pruebas sobre D365 Business Central.
• En este caso se trata de un próximo reléase completo.
• Los builds pueden ser poco estables, actualización cada día.
• Están en Azure Containers Registry de Microsoft.
• Es un repo es privado y requiere credenciales para poder acceder.
• Nombres en este formato:
[bcinsider.azurecr.io/bcsandbox-master:build-country]
25. Docker como paquete vs. flexibilidad
• Contenedores ofrecen repetibilidad gracias a su concepto (cajas).
• Desventaja es que el paquete sigue su flujo y teoréticamente no
debería desviarse (el flujo puede cambiar por configuraciones
iniciales pero esto muchas veces no es suficiente).
• Una posibilidad es crear imágenes propias (no recomendable
para gente sin experiencia con Docker y NAV-on-Docker).
• La mejor forma es ampliar el código porque Microsoft
implementó NAV-on-Docker en manera que nos ofrece flexibilidad
enorme sin tener que crear imágenes propias.
28. • SetupVariables.ps1
• Configuraciones iniciales (presets) de las
variables (env => standard vars).
• Use-cases:
• Añadir gestión de las variables ENV propias.
Ampliar NAV containers – ¿Por que?,
¿Cómo? & ¿Dónde?
29. • AdditionalSetup.ps1
• El fichero estándar está vacío.
• Sirve puramente para ejecución de las
propias funcionalidades.
• BBDD y servicio NAV están funcionando en
estos momentos.
• Use-cases:
• Crear usuarios en NAV.
• Importar propios módulos de PowerShell.
• Etc.
Ampliar NAV containers – ¿Por que?,
¿Cómo? & ¿Dónde?
30. • SetupConfiguration.ps1
• Configuraciones servicio NAV.
• Use-cases:
• Configuraciones relacionadas con el entorno
(por ejemplo: el idioma de los Web Services,
desactivar Buffered Inserts etc.).
Ampliar NAV containers – ¿Por que?,
¿Cómo? & ¿Dónde?
31. Ampliar NAV containers – ¿Por que?,
¿Cómo? & ¿Dónde?
• Más posibilidades de ampliar la funcionalidad:
• SetupDatabase.ps1
• SetupAddIns.ps1
• SetupLicense.ps1
• SetupVariables.ps1
• SetupWebClient.ps1
• SetupWebConfiguration.ps1
• SetupFileShare.ps1
• … y más …
33. NavContainerHelper
• Un módulo de PowerShell para simplificar gestión contenedores
NAV/BC.
• El módulo está gestionado por Microsoft (Freddy Kristiansen).
• Contiene funciones que permiten fácilmente crear contenedores
de desarrollo etc.
• https://github.com/microsoft/navcontainerhelper
34. • Open-source Software tipo web.
• Permite gestionar contenedores Docker
en forma visual (GUI).
• El mismo Portainer se puede levantar
como un contenedor en unos instantes.
Portainer
37. Dynamics 365 Community
• The Dynamics 365 Community is a site where you can find community contributions, ask questions and
interact with Microsoft Dynamics peers and experts. The community has over 200K members and is
growing.
• New UI/UX: https://community.dynamics365.com
• Benefits
• Learn, share and grow with
other community members
• Expand your network by
engaging with peers
• Involvement
• Need help? Ask questions
and get answers in the
forums
• Get involved in business or
technical discussions
• Syndicate or host a blog
• Recognition
• Earn badges for
professional and peer
recognition
• Get the coveted Microsoft
Community Contributor
(MCC) badge
• New badge for Application
forums coming soon!
• New Features –
Coming in June
• Webinars
• Gallery
• Any questions? Email us at
dlcommed@Microsoft.co
m