Using containerization to enable your microservice architecture
Containerization using docker
-
Upload
vinod-doshi -
Category
Software
-
view
413 -
download
0
Transcript of Containerization using docker
![Page 1: Containerization using docker](https://reader031.fdocuments.us/reader031/viewer/2022012402/588221021a28ab3f4c8b7bc3/html5/thumbnails/1.jpg)
Containerization using DockerVinod Doshi-- Sr. Manager QA & DevOps, Synerzip Softech India Pvt Ltd.-- Email : [email protected], [email protected] Twitter handle : https://twitter.com/vinodkdoshi-- Linkedin profile : https://in.linkedin.com/in/vinoddoshi
Sumit Ramteke-- Senior Full Stack Developer, Synerzip Softech India Pvt Ltd.-- Email : [email protected],[email protected] Linkedin profile : https://www.linkedin.com/in/sumitramteke
![Page 2: Containerization using docker](https://reader031.fdocuments.us/reader031/viewer/2022012402/588221021a28ab3f4c8b7bc3/html5/thumbnails/2.jpg)
Agenda
● VM’s , IAAS , PAAS and DevOps● Containers vs Virtual Machines● Container architecture and Micro Services● Docker features and Docker ecosystem● CI using Docker● Docker security considerations● Container Orchestration
![Page 3: Containerization using docker](https://reader031.fdocuments.us/reader031/viewer/2022012402/588221021a28ab3f4c8b7bc3/html5/thumbnails/3.jpg)
Virtualization
![Page 4: Containerization using docker](https://reader031.fdocuments.us/reader031/viewer/2022012402/588221021a28ab3f4c8b7bc3/html5/thumbnails/4.jpg)
IAAS and PAAS
![Page 5: Containerization using docker](https://reader031.fdocuments.us/reader031/viewer/2022012402/588221021a28ab3f4c8b7bc3/html5/thumbnails/5.jpg)
CODE REVIEWSAPPLICATION SERVERS CODE COVERAGE
DEPLOYMENT
MONITORING BUILD TOOLS
CLOUD
SOURCE CODE
WEB SERVERS
CONTINUOUS INTEGRATION
LOGGING
RDBMS
NOSQL
ARTIFACTORYCONFIGURATION
MANAGEMENT
CACHING
VIRTUALIZATION
ISSUE MANAGEMENT
CONTAINERIZATION
![Page 6: Containerization using docker](https://reader031.fdocuments.us/reader031/viewer/2022012402/588221021a28ab3f4c8b7bc3/html5/thumbnails/6.jpg)
Containers vs VM’s
![Page 7: Containerization using docker](https://reader031.fdocuments.us/reader031/viewer/2022012402/588221021a28ab3f4c8b7bc3/html5/thumbnails/7.jpg)
Containers
● Run in user space● Have an isolated user space● OS architecture is shared ● Only parts created are bins/libs● Lightweight compared to VM’s
![Page 8: Containerization using docker](https://reader031.fdocuments.us/reader031/viewer/2022012402/588221021a28ab3f4c8b7bc3/html5/thumbnails/8.jpg)
Docker
● Open source project ● Linux namespaces & control groups● Union File System ● Lightweight and fast● Usability● Easy to Modularize apps● Easy to scale apps● Dockerhub as central repository
![Page 9: Containerization using docker](https://reader031.fdocuments.us/reader031/viewer/2022012402/588221021a28ab3f4c8b7bc3/html5/thumbnails/9.jpg)
Micro services
![Page 10: Containerization using docker](https://reader031.fdocuments.us/reader031/viewer/2022012402/588221021a28ab3f4c8b7bc3/html5/thumbnails/10.jpg)
Why Micro Services
● Service oriented architecture● Loosely coupled, Tightly aligned● High Developer productivity● Regressions easy to find, correct● Releases have zero overhead● Rapid iteration using real consumer metrics● Very less overhead in doing a new release● Continuous Delivery
![Page 11: Containerization using docker](https://reader031.fdocuments.us/reader031/viewer/2022012402/588221021a28ab3f4c8b7bc3/html5/thumbnails/11.jpg)
Containerization Technologies
● CoreOS, Rocket● Docker● Redhat containers● AWS PAAS● GCE PAAS● AWS Lambda
![Page 12: Containerization using docker](https://reader031.fdocuments.us/reader031/viewer/2022012402/588221021a28ab3f4c8b7bc3/html5/thumbnails/12.jpg)
Docker setup
● Ubuntu○ Installation using apt-get○ 1.12 aws images on beta signup
● Windows○ Docker Toolbox○ Docker 1.12
● Mac○ Docker Toolbox○ Docker 1.12
![Page 13: Containerization using docker](https://reader031.fdocuments.us/reader031/viewer/2022012402/588221021a28ab3f4c8b7bc3/html5/thumbnails/13.jpg)
Dockerhub
● Dockerhub● Public repository● Private repository● Official images● User submitted images● Private docker infrastructure
![Page 14: Containerization using docker](https://reader031.fdocuments.us/reader031/viewer/2022012402/588221021a28ab3f4c8b7bc3/html5/thumbnails/14.jpg)
Docker images
● What is a docker image● Creating a container from an image● Listing images● Removing images● Removing images● Searching docker images
![Page 15: Containerization using docker](https://reader031.fdocuments.us/reader031/viewer/2022012402/588221021a28ab3f4c8b7bc3/html5/thumbnails/15.jpg)
Docker containers
● Docker hello world● Launching container as daemon● Listing containers● Logging into container● Docker start, stop● Docker pause, unpause● Docker inspect● Deleting container
![Page 16: Containerization using docker](https://reader031.fdocuments.us/reader031/viewer/2022012402/588221021a28ab3f4c8b7bc3/html5/thumbnails/16.jpg)
Docker resource allocation
● -m, --memory=""● --memory-swap=""● --cpuset-cpus=""● -c, --cpu-shares
![Page 17: Containerization using docker](https://reader031.fdocuments.us/reader031/viewer/2022012402/588221021a28ab3f4c8b7bc3/html5/thumbnails/17.jpg)
Docker layers
● List of read-only layers ● Layers have file system differences● New Container adds thin, writable layer
![Page 18: Containerization using docker](https://reader031.fdocuments.us/reader031/viewer/2022012402/588221021a28ab3f4c8b7bc3/html5/thumbnails/18.jpg)
Building images
● Modifying containers● Creating an image● Registering an image
![Page 19: Containerization using docker](https://reader031.fdocuments.us/reader031/viewer/2022012402/588221021a28ab3f4c8b7bc3/html5/thumbnails/19.jpg)
Docker file
● Structure of Docker file● Example Docker file● Building image using a Docker file● Docker file instructions
○ From, Maintainer, Copy○ Add, Env, User, Workdir○ Volume, Expose, Run○ Cmd, Entrypoint, Onbuild
![Page 20: Containerization using docker](https://reader031.fdocuments.us/reader031/viewer/2022012402/588221021a28ab3f4c8b7bc3/html5/thumbnails/20.jpg)
Docker Networking
● Container ip address● Port mapping● Binding to specific ip address● Auto-generating host port
![Page 21: Containerization using docker](https://reader031.fdocuments.us/reader031/viewer/2022012402/588221021a28ab3f4c8b7bc3/html5/thumbnails/21.jpg)
Linking containers
● --link option● Exporting variables● Enabling networking
![Page 22: Containerization using docker](https://reader031.fdocuments.us/reader031/viewer/2022012402/588221021a28ab3f4c8b7bc3/html5/thumbnails/22.jpg)
Sharing data
● Containers are temporal● Data volumes● Sharing host data● Data only containers● Data volumes from other containers
![Page 23: Containerization using docker](https://reader031.fdocuments.us/reader031/viewer/2022012402/588221021a28ab3f4c8b7bc3/html5/thumbnails/23.jpg)
Docker compose
● Multi container application● Installing Docker compose● Structure of compose file● Define logical application● Docker-compose.yml file● Docker-compose command● Launching multi-container app
![Page 24: Containerization using docker](https://reader031.fdocuments.us/reader031/viewer/2022012402/588221021a28ab3f4c8b7bc3/html5/thumbnails/24.jpg)
Debugging containerized applications
● exec● ps● top● stats● logs● Inspect
![Page 25: Containerization using docker](https://reader031.fdocuments.us/reader031/viewer/2022012402/588221021a28ab3f4c8b7bc3/html5/thumbnails/25.jpg)
CI and deployment using Jenkins
● Using Jenkins for CI● Docker plugins● ssh build and deployment
![Page 26: Containerization using docker](https://reader031.fdocuments.us/reader031/viewer/2022012402/588221021a28ab3f4c8b7bc3/html5/thumbnails/26.jpg)
Securing Docker containers
● VM vs Docker containers● Resource Isolation● Cgroups● Non root user● A trusted repository of software● Filesystems need to be read-only● Copy on write● Security-Enhanced Linux
![Page 27: Containerization using docker](https://reader031.fdocuments.us/reader031/viewer/2022012402/588221021a28ab3f4c8b7bc3/html5/thumbnails/27.jpg)
Orchestration
● Running containers on a cluster● High availability● Load balancing and Auto scaling● Mesos, Marathon (Apache project)● Docker Swarm (native Docker v 1.12 )● GCE Kubernetes PAAS (Google project)● AWS ECS PAAS ● AWS containers on Beanstalk PAAS
![Page 28: Containerization using docker](https://reader031.fdocuments.us/reader031/viewer/2022012402/588221021a28ab3f4c8b7bc3/html5/thumbnails/28.jpg)
Amazon EC2 Container Service (ECS)
Manage and Deploy Docker containers at Scale
![Page 29: Containerization using docker](https://reader031.fdocuments.us/reader031/viewer/2022012402/588221021a28ab3f4c8b7bc3/html5/thumbnails/29.jpg)
ECS: Awesome Features
● Docker Compatibility
● Managed Clusters
● Task Definitions
● Programmatic Control
● Scheduling
● Container Deployments
● Local Development
● Monitoring
● Logging
● Repository Support
![Page 30: Containerization using docker](https://reader031.fdocuments.us/reader031/viewer/2022012402/588221021a28ab3f4c8b7bc3/html5/thumbnails/30.jpg)
ECS: Example
![Page 31: Containerization using docker](https://reader031.fdocuments.us/reader031/viewer/2022012402/588221021a28ab3f4c8b7bc3/html5/thumbnails/31.jpg)
Docker Swarm: A Native Cluster
![Page 32: Containerization using docker](https://reader031.fdocuments.us/reader031/viewer/2022012402/588221021a28ab3f4c8b7bc3/html5/thumbnails/32.jpg)
App Architecture
![Page 33: Containerization using docker](https://reader031.fdocuments.us/reader031/viewer/2022012402/588221021a28ab3f4c8b7bc3/html5/thumbnails/33.jpg)
Swarm Cluster Architecture
![Page 34: Containerization using docker](https://reader031.fdocuments.us/reader031/viewer/2022012402/588221021a28ab3f4c8b7bc3/html5/thumbnails/34.jpg)
Final Result
![Page 35: Containerization using docker](https://reader031.fdocuments.us/reader031/viewer/2022012402/588221021a28ab3f4c8b7bc3/html5/thumbnails/35.jpg)
Mesos, Marathon
● Apache project● https://mesosphere.github.io/marathon/● http://mesos.apache.org ● Container orchestration platform
![Page 36: Containerization using docker](https://reader031.fdocuments.us/reader031/viewer/2022012402/588221021a28ab3f4c8b7bc3/html5/thumbnails/36.jpg)
Mesos Master, Mesos Slave, Zookeeper
![Page 37: Containerization using docker](https://reader031.fdocuments.us/reader031/viewer/2022012402/588221021a28ab3f4c8b7bc3/html5/thumbnails/37.jpg)
Mesos, Marathon cluster Demo
● Setup on a VM● Mesos Master dashboard● Marathon dashboard● Launching a hello world job● HA, Auto scaling
![Page 38: Containerization using docker](https://reader031.fdocuments.us/reader031/viewer/2022012402/588221021a28ab3f4c8b7bc3/html5/thumbnails/38.jpg)
Thank YouVinod Doshi
● Email:[email protected] ● Twitter:@vinodkdoshi● Linkedin:https://in.linkedin.
com/in/vinoddoshi
Sumit Ramteke● Email:[email protected] ● Linkedin:https://www.linkedin.
com/in/sumitramteke