Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Docker para Dummies

743 views

Published on

Docker para Dummies. Presentación sobre virtualización en Cloud Computing. Definición de Docker y otros componentes o proyectos relacionados (Kubernetes y Openshift).

  • Be the first to comment

Docker para Dummies

  1. 1. DOCKER PARA DUMMIES BY RAUL UNZUE (BLOG MAQUINAS VIRTUALES – EL BLOG DE NEGU)
  2. 2. TEMARIO Conceptos Cloud Computing Virtualización ¿Qué es un Docker? Historia Docker Ventajas y Desventajas Docker Containers Kubernetes Openshift
  3. 3. CLOUD COMPUTING • El cloud computing se suele representar con un diagrama en el que se muestra una nube que representa una capa de servicios gestionadas por un proveedor a las que el usuario accede. • Dentro de esa nube se incluyen distintos elementos como pueden ser servidores, almacenamiento, red, aplicaciones u otros servicios.
  4. 4. CLOUD COMPUTING • Existen varios modelos de nubes dependiendo de los servicios ofrecidos:  SaaS: Software as a Service: proporciona al usuario la posibilidad de utilizar aplicaciones en un entorno de nube, por ejemplo aplicaciones de correo web. Por ejemplo: GMail, Hotmail, Twitter, Facebook…  PaaS: Platform as a Service: proporciona al usuario la posibilidad de desplegar aplicaciones a través de lenguajes de programación o herramientas proporcionados por el proveedor de la nube. Por ejemplo, Openshift de RedHat, Google App Engine o Microsoft Azure  IaaS: Infraestructure as a Service: proporciona la infraestructura como pueden ser servidores, red, almacenamiento.. utilizados por los usuarios para ejecutar sistemas operativos o aplicaciones. Por ejemplo: Hyper-V, Amazon Web Services (ECS), Openstack o VMware vCloud  CaaS: Container as a Service: es un concepto relativamente moderno, entre Iaas y PaaS. Se basa en disponer de contenedores bajo demanda. Por ejemplo: Docker y Kubernetes  FaasS: Function as a Service: proporciona una infraestructura que permite desarrollar distintas funcionalidades de aplicaciones sin tener que mantener dicha infraestructura. Por ejemplo: AWS (Lamda), Vmware Pivotal Container Service o Google Cloud Function
  5. 5. CLOUD COMPUTING • Dependiendo del modelo de la nube y la propiedad respecto al usuario existen varios tipos:  Nubes privadas: son accesibles por una única organización. Generalmente administradas por un departamento de la organización, proporciona al resto de departamentos la infraestructura para la ejecución de los servicios y aplicaciones. La propiedad de la infraestructura es de la propia organización.  Nubes públicas: son infraestructuras cuyos propietarios ponen a disposición de otras organizaciones o del público en general.  Nubes híbridas: hace referencia a entornos con varias infraestructuras de nube, publicas o privadas que interactúan entre sí, de forma que puedas utilizar las distintas nubes según las necesidades concretas.
  6. 6. VIRTUALIZACION • ¿Qué es la Virtualización? “Es la abstracción de los recursos de un servidor de forma que se crea una capa entre el hardware de la máquina física (host o hypervisor) y el sistema operativo de la máquina virtual (guest)” La Virtualización es fundamental en Cloud Computing, ya que reduce la utilización de hardware, la energía consumida y los costes de mantenimiento. Adicionalmente, permite la ejecución de múltiples aplicaciones y sistemas operativos en el mismo servidor, aumentando la eficiencia y la productividad.
  7. 7. DOCKER • Definición: es un entorno de virtualización ligero que te permite construir y ejecutar aplicaciones dentro de un contenedor de software aislado. • No se apoya en un hypervisor como la virtualización tradicional, se puede considerar una aplicación dentro del servidor.
  8. 8. DOCKER • HISTORIA: Se trata de un proyecto de código abierto, que comenzó Salomón Hykes como proyecto interno dentro de la empresa dotCloud. Liberado como en Marzo de 2013. En menos de 2 años era uno de los proyectos estrella de GitHub. Actualmente, en 2018, empresas como RedHat, Google, Microsoft, IBM o Cisco son las que más contribuyen al proyecto. • LINUX:  En las distribuciones Linux se utiliza el kernel del host para lanzar procesos independientes en el sistema. Se instala a través de los repositorios de las diferentes distribuciones. • WINDOWS:  Instalados a partir de Windows Server 2016 como una característica. • De momento, no se pueden ejecutar contenedores Linux en Windows y viceversa, directamente.
  9. 9. DOCKER
  10. 10. DOCKER • Un sistema de contenedores Docker se compone principalmente estos elementos:  Demonio: Es el proceso principal de la plataforma.  Cliente: Es el binario que constituye la interfaz y que permite al usuario interactuar con el Demonio.  Imagen: Plantilla utilizada para crear el contenedor para la aplicación que queremos ejecutar.  Registros: Directorios donde se almacenan las imágenes, tanto de acceso público como privado.  Contenedores: Instancias en ejecución de una imagen, donde se almacena todo lo necesario (librerías, dependencias, binarios, etc) para que la aplicación pueda ejecutarse de forma aislada.  Links: Sirven para enlazar contenedores entre sí.  Volumes: Sirven para almacenar datos persistentes de un contenedor de Docker. • Docker también cuenta con una serie de repositorios, similares a los de Linux.
  11. 11. DOCKER • Docker Engine: permite que las aplicaciones en contenedores se ejecuten en cualquier lugar y de forma consistente, independientemente del hardware o sistema operativo que la ejecute. • Docker-Compose: herramienta para automatizar la ejecutación de aplicaciones de múltiples contenedores simultáneamente. Utiliza ficheros YAML. • Dockerfile: es un fichero de texto que permite generar una imagen personalizada (incluye todos los comandos para ello) mediante el comando “docker build”. • Docker Swarm: herramienta nativa que permite construir un clúster de máquinas Docker.
  12. 12. DOCKER • Existen dos versiones principales:  Docker EE (Enterprise Edition): Versión de pago con soporte de 24 meses (parches críticos) en cada versión. API más robusta y certificación en algunos sistemas operativos. Ideal para sistemas críticos para el negocio y grandes proyectos.  Docker CS (Custom Supported): Como Docker EE pero para versiones inferiores a 1.13.  Docker CE (Community Edition): Sin soporte y de código abierto. Ideal para pequeños proyectos o desarrolladores.
  13. 13. DOCKER • VENTAJAS: • Rapidez de implementación, ligereza, compatibilidad, portabilidad y mantenimiento • Estandarización infraestructura (se puede replicar fácilmente DES, PRE o PRO) • Seguridad. Aplicaciones aisladas. Cada contenedor dispone de sus propios recursos. Ningún contenedor ve los procesos de otro contenedor. • Fácilmente escalable. • DESVENTAJAS: • No pueden sustituir por completo la virtualización tradicional y no todo el mundo dispone de un modelo de negocio que sea compatible
  14. 14. CONTAINERS • Un container o contenedor es una unidad estándar de software que empaqueta el código y todas sus dependencias para que la aplicación se ejecute de forma rápida y confiable de un entorno informático a otro. • Una imagen de contenedor de Docker es un paquete de software liviano, independiente y ejecutable que incluye todo lo necesario para ejecutar una aplicación: código, tiempo de ejecución, herramientas del sistema, bibliotecas del sistema y configuraciones. • Se ejecutan de la misma forma tanto en Linux como en Windows
  15. 15. KUBERNETES • Docker permite ejecutar contenedores a pequeña escala. Kubernetes complementaría a Docker cuando se quiere realizar a gran escala, clusterizando recursos y trabajando con múltiples servidores. • Kubernetes(K8S) fue diseñado inicialmente por Google, para la automatización de despliegues, el escalado y la gestión de aplicaciones contenerizadas.
  16. 16. KUBERNETES • PRINCIPALES CARACTERISTICAS KUBERNETES:  Autoescalado: Según el uso de CPU permite un escalado manual o automático de las aplicaciones de forma vertical.  Balanceo de carga: Kubernetes asigna IP y nombre en DNS a un conjunto de contenedores y permite el balanceo entre ellos.  Auto-reparación: Si fallan contenedores puede reiniciarlos, pararlos o reemplazarlos automáticamente.  Despliegues: Se puede programar despliegues y monitorizar su salud, haciendo un rollback automático si algo ha ido mal.  Ahorro de recursos: Decide en qué nodo se ejecutará cada contenedor según sus características o restricciones.  Seguridad: Las contraseñas y otros datos sensibles son ocultados de forma segura.  Almacenamiento: Es capaz de montar automáticamente almacenamiento de red o local según necesidad
  17. 17. OPENSHIFT • Interfaz web mucho más fácil de entender en Openshift para principiantes. Uno de los problemas de Kubernetes es que su interfaz web no aporta demasiado con respecto a la consola de comandos. Openshift es mucho más intuitivo y manejable. • OpenShift es un producto de computación en la nube de plataforma como servicio (PaaS) de RedHat. Se basa en Docker y Kubernetes, pero añade una nueva capa. • Aunque está basado en código abierto, y existen versiones gratuitas, no deja de ser un producto de RedHat. Lo que en su versión de pago te da acceso a uno de los mejores soportes del mercado. Si necesitas soporte en Kubernetes, Openshift sería la alternativa. • Añade capa de seguridad extra a Kubernetes. Facilita la integración Directorio Activo, por ejemplo. O no deja instalar ciertas imágenes o utilizar el usuario root. • Dispone de componentes de monitorización • Gestión más avanzada del Networking • Mejora las opciones en los despliegues con respecto a Kubernetes con DeploymentConfig • Gestión de imágenes de contenedores con ImageStreams • Jenkins integrado
  18. 18. RUEGOS Y PREGUNTAS

×