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.

Microservice Composition with Docker and Panamax

CenturyLink Labs presentation on Microservice Composition with Docker and Panamax to the Dallas Linux Containers and Virtualization Meetup on March 19, 2015

Microservice Composition with Docker and Panamax

  1. 1. Microservice Composition with Docker and Panamax Mike Arnold & Gary Paige
  2. 2. +
  3. 3. “a software architecture design pattern, in which complex applications are composed of small, independent processes communicating with each other using language-agnostic APIs. These services are small, highly decoupled and focus on doing a small task.” - Wikipedia Microservices
  4. 4. a component is a unit of software that is independently replaceable and upgradeable a component encapsulates functionality and enforces an API a component is independently deployable, thus lends itself to a continuous delivery software development process Benefits of Microservices
  5. 5. hard to develop a service in isolation when it depends on other services, but hard to run every dependent service as well testing and deployment are seriously more complex tasks monitoring multiple services as a single unit is also complicated Drawbacks of Microservices
  6. 6. A lightweight runtime and packaging tool built from existing components of the Linux kernel.
  7. 7. Simply put, Docker architecture is microservice architecture.
  8. 8. Docker lets us use and/or create images These images are used to create Docker containers in which your application runs Docker effectively runs these containers as services which can be spun up in milliseconds.
  9. 9. hardware host OS hypervisor $ guest OS libraries app 1 $ guest OS $ guest OS libraries app 2 libraries app 1
  10. 10. libraries app 1 libraries app 2 hardware host OS libraries app 1
  11. 11. hardware host OS Docker Engine libraries libraries app 1 app 1 app 2
  12. 12. Docker Images An image is controlled by a Dockerfile docker build -t foo/bar . docker pull foo/bar
  13. 13. FROM centurylink/ruby-base:2.1.2 MAINTAINER Laura Frank <ljfrank@gmail.com> EXPOSE 4567 RUN mkdir -p /usr/src/app ADD . /usr/src/app WORKDIR /usr/src/app RUN bundle install CMD [“ruby”, “hello_world.rb”] Dockerfile
  14. 14. FROM centurylink/ruby-base:2.1.2 MAINTAINER Laura Frank <ljfrank@gmail.com> EXPOSE 4567 RUN mkdir -p /usr/src/app ADD . /usr/src/app WORKDIR /usr/src/app RUN bundle install CMD [“ruby”, “hello_world.rb”] Dockerfile
  15. 15. FROM centurylink/ruby-base:2.1.2 MAINTAINER Laura Frank <ljfrank@gmail.com> EXPOSE 4567 RUN mkdir -p /usr/src/app ADD . /usr/src/app WORKDIR /usr/src/app RUN bundle install CMD [“ruby”, “hello_world.rb”] Dockerfile
  16. 16. FROM centurylink/ruby-base:2.1.2 MAINTAINER Laura Frank <ljfrank@gmail.com> EXPOSE 4567 RUN mkdir -p /usr/src/app ADD . /usr/src/app WORKDIR /usr/src/app RUN bundle install CMD [“ruby”, “hello_world.rb”] Dockerfile
  17. 17. FROM centurylink/ruby-base:2.1.2 MAINTAINER Laura Frank <ljfrank@gmail.com> EXPOSE 4567 RUN mkdir -p /usr/src/app ADD . /usr/src/app WORKDIR /usr/src/app RUN bundle install CMD [“ruby”, “hello_world.rb”] Dockerfile
  18. 18. FROM centurylink/ruby-base:2.1.2 MAINTAINER Laura Frank <ljfrank@gmail.com> EXPOSE 4567 RUN mkdir -p /usr/src/app ADD . /usr/src/app WORKDIR /usr/src/app RUN bundle install CMD [“ruby”, “hello_world.rb”] Dockerfile
  19. 19. FROM centurylink/ruby-base:2.1.2 MAINTAINER Laura Frank <ljfrank@gmail.com> EXPOSE 4567 RUN mkdir -p /usr/src/app ADD . /usr/src/app WORKDIR /usr/src/app RUN bundle install CMD [“ruby”, “hello_world.rb”] Dockerfile
  20. 20. ENV KEY value Declare any environment variables that should be set in the container process when run Docker file — additional instructions
  21. 21. VOLUME /var/foo VOLUME [“/var/foo”, “/var/bar”] creates a mount point for volumes from host or other containers Docker file — additional instructions
  22. 22. Demo: Hello World Dockerfile
  23. 23. it’s too simple it doesn’t leverage microservice architecture Hello world ain’t the real world
  24. 24. complex applications are composed of small, independent processes and communicate with each other using APIs Microservices with Docker
  25. 25. Real world examples Demo: Composing microservice apps manually Demo: Composing microservice apps with Fig Demo: Composing on the fly with Panamax
  26. 26. Demo: Composing microservice apps manually Demo: Composing microservice apps with Fig Demo: Composing on the fly with Panamax Real world examples
  27. 27. Real world examples Demo: Composing microservice apps manually Demo: Composing microservice apps with Fig Demo: Composing on the fly with Panamax
  28. 28. A containerized Docker application, with an intuitive UI, for orchestrating multi-container micro-service architected applications. What is Panamax?
  29. 29. 33 A Peek Inside
  30. 30. Thanks! Mike Arnold dharmamike @dharmamike Gary Paige argvader @argvader
  31. 31. Fowler, Martin, and James Lewis. "Microservices." Martinfowler.com. N.p., 25 Mar. 2014. Web. 17 Mar. 2015. "Microservices." Wikipedia. Wikimedia Foundation, n.d. Web. 17 Mar. 2015. Docker User Guide
 https://docs.docker.com/userguide/ Panamax
 http://panamax.io/
 https://github.com/CenturyLinkLabs/panamax-ui/wiki Dray
 http://dray.it/ Sources and references

×