getting to devops with docker brian bex exelbierd
play

Getting to DevOps with Docker Brian (bex) Exelbierd Software - PowerPoint PPT Presentation

Getting to DevOps with Docker Brian (bex) Exelbierd Software Engineer @ Red Hat Various Roles in IT since 1995 Programmer $ whoami Analyst @bexelbie Manager (Ops, Dev, Special Projects) Slides URL:


  1. Getting to DevOps with Docker

  2. Brian (bex) Exelbierd ● Software Engineer @ Red Hat ● Various Roles in IT since 1995 ○ Programmer $ whoami ○ Analyst @bexelbie ○ Manager (Ops, Dev, Special Projects) Slides URL: www.winglemeyer.org ○ Sales Engineering ○ etc. ● Work on Project Atomic: Tools that make containers easier

  3. Question Time

  4. DevOps

  5. What is DevOps? ● Culture, not tools $sudo dnf install DevOps ● You can’t buy DevOps No package DevOps available. ● If you’re using Docker, you’re Error: Unable to find a match. not necessarily DevOps ● No one’s title is now DevOps

  6. https://blog.appdynamics.com/devops/devops-scares-me-part-2/

  7. So, what is DevOps? Ben Rockwood Director of IT & Operations at Chef ● Collaboration of People ● Convergence of Process ● http://cuddletech. ● Creation & Exploitation of Tools com/slides/DevOps- Demystified.pdf ● https://www.youtube. com/watch?v=h5E--QSBVBY

  8. So, what is DevOps? Ben Rockwood Director of IT & Operations at Chef ● Collaboration of People ● Convergence of Process ● http://cuddletech. ● Creation & Exploitation of Tools com/slides/DevOps- Demystified.pdf ● https://www.youtube. com/watch?v=h5E--QSBVBY Dev Ops

  9. So, what is DevOps? Ben Rockwood Director of IT & Operations at Chef ● Collaboration of People ● Convergence of Process ● http://cuddletech. ● Creation & Exploitation of Tools com/slides/DevOps- Demystified.pdf ● https://www.youtube. com/watch?v=h5E--QSBVBY Requirements Software Service Dev Ops Customers/Users

  10. So, what is DevOps? It’s about flow Ben Rockwood Director of IT & Operations at Chef ● Collaboration of People ● Convergence of Process ● http://cuddletech. ● Creation & Exploitation of Tools com/slides/DevOps- Demystified.pdf ● https://www.youtube. com/watch?v=h5E--QSBVBY Requirements Software Service Dev Ops Customers/Users

  11. Why DevOps? What Problem(s) does it Solve? ● Developers ○ Differences in Test/Production lead to Dependency Errors [Portability] ■ “It works on my laptop!” ○ Don’t want to wait a long time for code to get to production [Deployment] ■ slows down feedback cycle ■ multiple code bases ● Operations ○ New Code never seems to fit into production exactly [Controlled Infrastructure] ■ a/k/a “You can’t just rev the httpd version you need and not tell anyone” ○ Scale out has led to an increase in servers to manage [Scale Out] Project/Business Win: Faster Time to Market Resource: Rack Space Video: https://www.youtube.com/watch?time_continue=41&v=_I94-tJlovg

  12. Docker

  13. What is Docker? Docker containers wrap up a piece Remember These? of software in a complete filesystem ● S/370 LPARs that contains everything it needs to ● AIX WPARs run. (docker.com) ● BSD Jails ● Solaris Zones App App App A A’ B ● chroot ... bin + bin + bin + libs libs libs Docker is a way of packaging software and App App App accessing Linux kernel features like OS + OS + OS + Kernel Kernel Kernel A A’ B cgroups, namespaces, capabilities, etc. Virt Virt Virt bin + bin + libs HW HW HW libs Hypervisor Kernel OS + Kernel Host OS Hardware Hardware Virtual Machines Containers

  14. Thinking in Docker ● Virtual Machine Lite ○ Initially people thought it was a faster VM technology ○ Containers with ■ ssh ■ init ■ daemons, etc. ● Application in a box ○ Delete ssh, daemons ○ Lots of processes with init ○ Databases + servers + ... ● Microservices ○ Like Service-Oriented Architecture (SOA) ○ Minimal unit of an application ○ Helps with scale out

  15. What about my data? What about Configs Pets vs. Cattle

  16. What about my data? What about Configs Pets vs. Cattle Scotch vs. Beer

  17. What about my data? What about Configs Pets vs. Cattle Slivovice vs. Slivovice Scotch vs. Beer

  18. What about my data? What about Configs Pets vs. Cattle Slivovice vs. Slivovice Scotch vs. Beer

  19. What about my data? What about Configs Pets vs. Cattle Slivovice vs. Slivovice Scotch vs. Beer Images: Brian Exelbierd; itesco.cz

  20. Docker Vocabulary Image: An immutable read-only template of a Base Image: An image containing enough of the container. This is the distributable object. libraries and binaries of an OS to support running software. What does an image consist of? A tar file of the filesystem for the layer(s) Registry: A public or private store for images Metadata (image name, version, etc.) used for network distribution. Layer: Images are made with copy on write Container: An image that has been instantiated. union file systems that create layers when The isolated run-time unit. you make modifications. This means you can start with a base image and layer your software over the top. This also means add Your App only your changes have to be distributed. add node.js CentOS Base Image

  21. Getting and Managing Images # Search for images $ docker search apache Docker Hub (hub.docker.com) - public registry of over 100,000 different images # Download images $ docker pull centos ● 2708 apache images, non-official ● Not signed yet # List all images on your machine $ docker images Remember: Images are templates # Remove images from your machine $ docker rmi <ID|Name>

  22. Running and Managing Containers # Instantiate an Image as a Container $ docker run <dockerargs> <image> [cmd] Run Options of Note: # List Running Containers $ docker ps -i Keep STDIN open even when not # List all containers on your machine attached $ docker ps -a -t Allocate a pseudo-tty --rm Automatically remove a # Stop a container container when it stops $ docker stop <ID|Name> $ docker kill <ID|Name> --name=<name> Use <name> -e VAR=VALUE Set environment # Remove containers from your machine variables $ docker rm <ID|Name> -d Detach container and run in background -p <hport>:<cport> map a host port to a container port --help Help :)

  23. Building Images FROM fedora:20 Dockerfile specifies build directives MAINTAINER http://fedoraproject.org/wiki/Cloud FROM - A starting image (can be a base RUN yum -y update && yum clean all image or any other image) RUN yum -y install httpd && yum clean all RUN - execute this command in the image RUN echo "Apache" >> /var/www/html/index.html EXPOSE - make a port available EXPOSE 80 ADD - Move files from the build host into the # Simple startup script to avoid some issues image observed with container restart ADD run-apache.sh /run-apache.sh CMD - default command to be run when the image is started (There was no command in RUN chmod -v +x /run-apache.sh our example …) CMD ["/run-apache.sh"] MAINTAINER - metadata

  24. Building Images FROM fedora:20 MAINTAINER http://fedoraproject.org/wiki/Cloud Best Practices are being developed RUN yum -y update && yum clean all RUN yum -y install httpd && yum clean all ● https://github. RUN echo "Apache" >> /var/www/html/index.html EXPOSE 80 com/projectatomic/container-best- # Simple startup script to avoid some issues practices observed with container restart ● https://docs.docker. ADD run-apache.sh /run-apache.sh RUN chmod -v +x /run-apache.sh com/articles/dockerfile_best-practices/ CMD ["/run-apache.sh"] 1. Old Fedora Version LABEL VERSION="1.0" LABEL RUN="docker run -d -p 8080:80 \${IMAGE}" 2. update in container considered sub- optimal 3. Combine yum commands to reduce layers 4. Label it with meta-data https://github. com/projectatomic/ContainerApplication GenericLabels

  25. How do I link Microservices? What about my Data? Option 1: Docker Linking Option 1: Docker Volumes $ docker run --link DBC webserver $ docker run -v /webdata:/var/www apache Make the data from the host’s /webdata Creates a private networking link between the available via a mount to the container. DBC (database container) and the webserver. Helpful Environment variables for ports, etc. Option 2: Volume containers Option 2: Orchestration Data is mounted ( --volumes-from ) from another container. ● Kubernetes ● Mesos (Marathon) Option 3: Orchestration Provider/Persistent ● Docker Swarm Storage ● ... Look at your provider, check out things like Ceph/Gluster with containers

  26. Why DevOps? What Problem(s) does it Solve? ● Developers ○ Differences in Test/Production lead to Dependency Errors [ Portability ] ■ “It works on my laptop!” ○ Don’t want to wait a long time for code to get to production [Deployment]] ■ slows down feedback cycle ■ multiple code bases ● Operations ○ New Code never seems to fit into production exactly [Controlled Infrastructure] ■ a/k/a “You can’t just rev the httpd version you need and not tell anyone” ○ Scale out has led to an increase in servers to manage [Scale Out] Project/Business Win: Faster Time to Market Resource: Rack Space Video: https://www.youtube.com/watch?time_continue=41&v=_I94-tJlovg

Recommend


More recommend