This document provides an overview of Docker containers and their benefits. It discusses how containers provide isolation and portability for applications compared to virtual machines. The document outlines the history and growth of container technologies like Docker. It then covers how to build, ship, and run containerized applications on platforms like Docker, OpenShift, and Kubernetes. Use cases discussed include application development, modernization, and cloud migrations.
What is Docker | Docker Tutorial for Beginners | Docker Container | DevOps To...Edureka!
This DevOps Docker Tutorial on what is docker ( Docker Tutorial Blog Series: https://goo.gl/32kupf ) will help you understand how to use Docker Hub, Docker Images, Docker Container & Docker Compose. This tutorial explains Docker's working Architecture and Docker Engine in detail. This Docker tutorial also includes a Hands-On session around Docker by the end of which you will learn to pull a centos Docker Image and spin your own Docker Container. You will also see how to launch multiple docker containers using Docker Compose. Finally, it will also tell you the role Docker plays in the DevOps life-cycle.
The Hands-On session is performed on an Ubuntu-64bit machine in which Docker is installed.
Docker is a system for running applications in isolated containers. It addresses issues with traditional virtual machines by providing lightweight containers that share resources and allow applications to run consistently across different environments. Docker eliminates inconsistencies in development, testing and production environments. It allows applications and their dependencies to be packaged into a standardized unit called a container that can run on any Linux server. This makes applications highly portable and improves efficiency across the entire development lifecycle.
Short Introduction to Docker. These slides show the basic idea behind the container technology Docker. The slides present the basic features for the daily use with Docker, Docker Compose, Docker Machine and Docker Swarm.
Docker is specially important for DevOps, because it gives Software Developers more control about their dependencies in different environments.
This document provides an introduction to Docker and containers. It discusses why containers are useful for software deployment given changes in the industry. Containers provide lightweight isolation of applications and their dependencies. Docker is a tool that manages containers running on the same operating system kernel. Key Docker components include the client, server, images, and containers. Popular use cases of Docker include Google running over a billion containers per week and Finnish Railways saving 50% of cloud costs with Docker.
Docker allows packaging applications and dependencies into containers to ensure applications work seamlessly across environments. Docker images are blueprints used to create containers, which are runnable instances of images. Dockerization is useful for standardizing environments and ensuring applications run the same on different machines through containerization. The document demonstrates creating an MSSQL server Linux container using Docker by running a command to specify environment variables and port mapping.
Docker allows building, shipping, and running applications in portable containers. It packages an application with all its dependencies into a standardized unit for software development. Major cloud providers and companies support and use Docker in production. Containers are more lightweight and efficient than virtual machines, providing faster launch times and allowing thousands to run simultaneously on the same server. Docker simplifies distributing applications and ensures a consistent environment.
This document outlines the curriculum for an introduction to containerization presentation. It includes slides and hands-on exercises on installing Docker, building Docker images, running containers, viewing processes inside containers, and experimenting with resource isolation using cgroups and namespaces. Attendees will build a Docker image for a sample Flask application, run the container, view logs and processes, and push the image to Docker Hub. The presentation covers definitions of key containerization concepts and the benefits of using containers.
The document introduces Docker, a container platform. It discusses how Docker addresses issues with deploying different PHP projects that have varying version requirements by allowing each project to run isolated in its own container with specified dependencies. It then covers key Docker concepts like images, containers, linking, exposing ports, volumes, and Dockerfiles. The document highlights advantages of Docker like enabling applications to run anywhere without compatibility issues and making deployment more efficient.
Evolving to serverless
How the applications are transforming
A note on CI/CD
Architecture of Docker
Setting up a docker environment
Deep dive into DockerFile and containers
Tagging and publishing an image to docker hub
A glimpse from session one
Services: scale our application and enable load-balancing
Swarm: Deploying application onto a cluster, running it on multiple machines
Stack: A stack is a group of interrelated services that share dependencies, and can be orchestrated and scaled together.
Deploy your app: Compose file works just as well in production as it does on your machine.
Extras: Containers and VMs together
Docker is a tool that allows users to package applications into containers to run on Linux servers. Containers provide isolation and resource sharing benefits compared to virtual machines. Docker simplifies deployment of containers by adding images, repositories and version control. Popular components include Dockerfiles to build images, Docker Hub for sharing images, and Docker Compose for defining multi-container apps. Docker has gained widespread adoption due to reducing complexity of managing containers across development and operations teams.
Docker allows you to package applications with their dependencies into standardized units called containers that can run on any Linux server. Containers are more portable and efficient than virtual machines, starting in milliseconds and using less disk space. Docker makes it easy to deploy and run applications without having to rebuild environments and guarantees that an application will run the same regardless of the infrastructure it is running on.
A Hands-On Introduction To Docker Containers.pdfEdith Puclla
This document provides a hands-on introduction to Docker containers. It discusses what Docker is, how it solves the "it works on my machine" problem by allowing applications to run the same in any Docker environment. It then covers how to install Docker, basic Docker components like Dockerfile, image and container. It demonstrates basic Docker commands and discusses what's new with Docker like extensions and WebAssembly support. Finally it promotes getting involved in the Docker community.
- The document introduces Docker, explaining that it provides standardized packaging for software and dependencies to isolate applications and share the same operating system kernel.
- Key aspects of Docker are discussed, including images which are layered and can be version controlled, containers which start much faster than virtual machines, and Dockerfiles which provide build instructions for images.
- The document demonstrates Docker's build, ship, and run workflow through examples of building a simple image and running a container, as well as using Docker Compose to run multi-container applications like WordPress. It also introduces Docker Swarm for clustering multiple Docker hosts.
Docker allows applications to be packaged with all their dependencies and run consistently across computing environments. It provides isolation, security and portability for applications. This document discusses setting up an Eh Avatar application to run in Docker containers for Postgres, Redis and the application itself. It covers bringing up the dependency containers, building a custom Docker image for the application, and using Docker Compose to define and run the multi-container application. While this provides an introduction, there is still more to learn about optimizing Docker usage and avoiding common pitfalls.
An in depth overview of Kubernetes and it's various components.
NOTE: This is a fixed version of a previous presentation (a draft was uploaded with some errors)
Introduction to Docker storage, volume and imageejlp12
Docker storage drivers allow images and containers to be stored in different ways by implementing a pluggable storage driver interface. Common storage drivers include overlay2, aufs, devicemapper, and vfs. Images are composed of read-only layers stacked on top of each other, with containers adding a writable layer. Storage can be persisted using volumes, bind mounts, or tmpfs mounts. Strategies for managing persistent container data include host-based storage, volume plugins, and container storage platforms.
This document provides an introduction and overview of Docker and containers. It discusses what containers are, how they differ from virtual machines, and how Docker works. Key points covered include common Docker commands, the Docker architecture, building images with Dockerfiles, and using Docker Compose to run multi-container applications. The benefits of containers for streamlining deployment and rapid scaling are also highlighted.
This document provides an overview of Docker and Kubernetes (K8S). It defines Docker as an open platform for developing, shipping and running containerized applications. Key Docker features include isolation, low overhead and cross-cloud support. Kubernetes is introduced as an open-source tool for automating deployment, scaling, and management of containerized applications. It operates at the container level. The document then covers K8S architecture, including components like Pods, Deployments, Services and Nodes, and how K8S orchestrates containers across clusters.
Docker is an open platform for developing, shipping, and running distributed applications. It allows applications to be shipped and run in lightweight containers that can run on any Linux server. Docker uses operating-system-level virtualization and cgroups isolation to deliver lightweight containers quickly. Key features of Docker include portability, lightweight containers that share resources and isolate processes, and automated workflows.
Overview of how containers are implemented with cgroups, namespaces and UnionFS, how images are created, how images and containers are related to one another, and how to build effective images
Containers are not virtual machines - they have fundamentally different architectures and benefits. Docker allows users to build, ship, and run applications inside containers. It provides tools and a platform to manage the lifecycle of containerized applications, from building images to deploying and scaling containers. Containers offer advantages like increased efficiency, flexibility, and portability compared to traditional virtual machines.
Containers are not virtual machines - they have fundamentally different architectures and benefits. Docker allows users to build, ship, and run applications inside containers. It provides tools and a platform to manage the lifecycle of containerized applications, from development to production. Containers use layers and copy-on-write to provide efficient application isolation and delivery.
Docker is a tool designed to make it easier to create, deploy, and run applications
by using containers. Containers allow a developer to package up
an application with all of the parts it needs, such as libraries and other dependencies,
and ship it all out as one package. By doing so, thanks to the
container, the developer can rest assured that the application will run on
any other Linux machine regardless of any customized settings that machine
might have that could differ from the machine used for writing and testing
the code.
In a way, Docker is a bit like a virtual machine. But unlike a virtual
machine, rather than creating a whole virtual operating system, Docker allows
applications to use the same Linux kernel as the system that they’re
running on and only requires applications be shipped with things not already
running on the host computer. This gives a significant performance boost
and reduces the size of the application.
This document provides an introduction and overview of Docker. It discusses why Docker was created to address issues with managing applications across different environments, and how Docker uses lightweight containers to package and run applications. It also summarizes the growth and adoption of Docker in its first 7 months, and outlines some of its core features and the Docker ecosystem including integration with DevOps tools and public clouds.
This document provides an introduction to Docker, including why it was created, how it works, and its growing ecosystem. Docker allows applications to be packaged with all their dependencies and run consistently across any Linux server by using lightweight virtual containers rather than full virtual machines. It solves the problem of differences between development, testing, and production environments. The document outlines the technical details and advantages of Docker, examples of how companies are using it, and the growing support in tools and platforms.
This document provides an agenda and overview for a hands-on workshop on container and Docker technologies. It begins with a brief introduction to containers and Docker, then covers installing and managing Docker containers using tools like Portainer and OpenShift Origin. It also discusses building simple Docker applications and has sections on container and Docker concepts like images, containers, registries, advantages, and the Docker ecosystem. The document aims to explain containers and Docker for both developers and IT administrators.
Write Once and REALLY Run Anywhere | OpenStack Summit HK 2013dotCloud
The document outlines the agenda for the OpenStack Summit in November 2013. The agenda includes sessions on Docker and its ecosystem, using Docker with OpenStack and Rackspace, and a cross-cloud deployment demo. Docker is presented as a solution for developing and deploying applications across multiple environments by encapsulating code and dependencies in portable containers. It can help eliminate inconsistencies between development, testing, and production environments.
This document provides an overview of Docker technologies including Docker Engine, Docker Machine, Docker Kitematic, Docker Compose, Docker Swarm, Docker Registry, Docker Content Trust, Docker Networking, and Docker Universal Control Plane. It describes what each technology is used for, provides examples, and references additional resources for further information.
Docker and Microsoft - Windows Server 2016 Technical Deep DiveDocker, Inc.
This document summarizes a webinar about Docker and Windows Server 2016. It discusses how Docker is now supported on 98% of enterprise workloads, including Windows Server 2016, providing the same benefits of Docker on Linux to Windows developers and IT professionals. It outlines how Microsoft and Docker partnered to port Docker Engine to Windows, and how Docker images can now be built and run across Linux and Windows. It provides examples of using Docker with Windows Server 2016 for development/testing and migrating applications.
This document provides an introduction and overview of Docker, including its rapid growth and adoption, key benefits for developers and operations teams, technical underpinnings, ecosystem support, use cases, and future plans. Docker provides a way to package applications into lightweight containers that are portable and can run on any infrastructure. It solves issues around dependency management and consistency across environments.
Containerization with docker syllabus wise ..
Unit-1 Introduction of Docker Contact Hours: 20
Introduction of Docker
Docker, Containerization, Uses of container Virtualization, Difference between Docker and Virtual Machines Docker Architecture, Features, Components of Docker, Advantages of Docker, Advantages of Containerization over Virtualization
Experiment no. 1.1 1. Install Docker on Linux or windows
2. Using docker CLI with commands.
Installation of Docker
Installation of Docker, Docker Hub, Difference between Docker Image and Container, Containers and shell, Creating Docker images, backing up a Docker Container, Restoring a Docker Container. Deploy, Login, Exit Container. List, Start, Stop and Restart Containers. Deleting Containers.
Experiment no. 1.2 Pulling Docker Images from Docker Hub
Chapter 1.3 Data Volumes and system Management
Creating and mounting data volumes, Defining Volumes in images, Pruning unused resources.
Experiment no. 1.3 Deploying Docker images as Stateless Containers.
Experiment no. 1.4 Managing Containers with the Docker CLI
Unit-2 Docker components Contact Hours: 20
Docker Compose & Docker Swarm Docker Compose and Compose installation, Introduction to Docker Swarm, Create Swarm, Maintain Swarm, Deploy Services to Swarm, Updates to Services, Managing Swarm Services.
Experiment no. 2.1 Understanding the Docker file for Customizing Images
Docker Files Docker Files, Building Files, Public repositories, Private Registry, Building Web server Docker file, instruction commands, Container Linking
Experiment no. 2.1 Building a Custom Docker Image for a Web Application
Experiment no. 2.3 Maintaining State with Docker Volumes
Docker Storage, ring and Kubernetes Contact Hours:20
How to manage data in docker, Types of storage available in docker, Multi Container environment, Docker volumes, Types of Volumes
Working with Docker Compose
Container Network model, Default Bridge Network, User Created Bridge, Host Network, Docker Cloud, Docker Log, Docker Compose, Continuous Integrations tools, Kubernetes architecture, Kubernetes Components, Working of Kubernetes.
Creating a Private Docker Image Repository
Introduction of kubernetes, Comparison of Docker and Kubernetes, Configuration of minikube on linux OS, Installing Kubernetes using the Docker Client Running first app on Kubernetes.
Cleaning Up Old Containers and Docker Images
This document discusses using Docker containers with OpenStack for application deployment. It begins with an introduction to Docker, describing its growth in usage and integration with various tools. Docker is presented as a solution to issues around deploying applications across different environments and hardware by providing lightweight, portable containers that package code and dependencies. The document demonstrates how Docker can be used with OpenStack through a new hypervisor that allows OpenStack to deploy and manage Linux containers, enabling control of Docker through the OpenStack dashboard.
This document discusses using Docker containers with OpenStack for application deployment. It begins with an introduction to Docker, describing its growth in usage and integration with various tools. Docker is presented as a solution to issues around deploying applications across different environments and hardware by providing lightweight, portable containers that package code and dependencies. The document demonstrates how Docker can be used with OpenStack through a new hypervisor that allows OpenStack to deploy and manage Linux containers, enabling control of Docker through the OpenStack dashboard. It outlines some benefits of Docker combined with OpenStack and the current state of the related OpenStack project.
Docker is an open source containerization platform that allows users to package applications and their dependencies into standardized executable units called containers. Docker relies on features of the Linux kernel like namespaces and cgroups to provide operating-system-level virtualization and allow containers to run isolated on a shared kernel. This makes Docker highly portable and allows applications to run consistently regardless of the underlying infrastructure. Docker uses a client-server architecture where the Docker Engine runs in the cloud or on-premises and clients interact with it via Docker APIs or the command line. Common commands include build to create images from Dockerfiles, run to launch containers, and push/pull to distribute images to registries. Docker is often used for microservices and multi-container
Karthik Gaekwad presented on containers and microservices. He discussed the evolution of DevOps and how containers and microservices fit within the DevOps paradigm by allowing for collaboration between development and operations teams. He defined containers, microservices, and common containerization concepts. Gaekwad also provided examples of how organizations are using containers for standardization, continuous integration and delivery pipelines, and hosting legacy applications.
The document outlines the agenda for the OpenStack Summit in November 2013, including presentations on Docker and its ecosystem, how Docker can be used with OpenStack and Rackspace, and a demonstration of cross-cloud application deployment using Docker. Docker is presented as a solution to the "matrix from hell" of running applications across different environments by providing lightweight, portable containers that can run anywhere regardless of the operating system. The summit aims to educate attendees on Docker and showcase its integration with OpenStack for simplified and efficient application deployment and management across multiple clouds.
Adopting Docker for production applications and services used to be hard. You had to hand-roll a lot of the underlying infrastructure and write lots of custom code for service discovery, load balancing, orchestration, desired state, etc. Today, with the rise of open source container orchestration platforms and cloud-native offerings, it's a lot easier to get up and running.
Github repo for demo: https://github.com/elabor8/dockertalk
Docker-Hanoi @DKT , Presentation about Docker EcosystemVan Phuc
The document provides an overview of Docker Platform and Ecosystem. It begins with introductions and background on Docker, explaining how Docker solves the problem of dependency hell and portability issues by allowing applications to run in isolated containers that package code and dependencies. It then discusses key components of Docker including Engine, Registry, Machine, Swarm, Compose and tools like Toolbox and Cloud. The document concludes with examples of using Docker for continuous integration pipelines and microservices architectures.
This document provides an overview of containers and Docker for automating DevOps processes. It begins with an introduction to containers and Docker, explaining how containers help break down silos between development and operations teams. It then covers Docker concepts like images, containers, and registries. The document discusses advantages of containers like low overhead, environment isolation, quick deployment, and reusability. It explains how containers leverage kernel features like namespaces and cgroups to provide lightweight isolation compared to virtual machines. Finally, it briefly mentions Docker ecosystem tools that integrate with DevOps processes like configuration management and continuous integration/delivery.
How RPA Help in the Transportation and Logistics Industry.pptxSynapseIndia
Revolutionize your transportation processes with our cutting-edge RPA software. Automate repetitive tasks, reduce costs, and enhance efficiency in the logistics sector with our advanced solutions.
What's Next Web Development Trends to Watch.pdfSeasiaInfotech2
Explore the latest advancements and upcoming innovations in web development with our guide to the trends shaping the future of digital experiences. Read our article today for more information.
The DealBook is our annual overview of the Ukrainian tech investment industry. This edition comprehensively covers the full year 2023 and the first deals of 2024.
Performance Budgets for the Real World by Tammy EvertsScyllaDB
Performance budgets have been around for more than ten years. Over those years, we’ve learned a lot about what works, what doesn’t, and what we need to improve. In this session, Tammy revisits old assumptions about performance budgets and offers some new best practices. Topics include:
• Understanding performance budgets vs. performance goals
• Aligning budgets with user experience
• Pros and cons of Core Web Vitals
• How to stay on top of your budgets to fight regressions
MYIR Product Brochure - A Global Provider of Embedded SOMs & SolutionsLinda Zhang
This brochure gives introduction of MYIR Electronics company and MYIR's products and services.
MYIR Electronics Limited (MYIR for short), established in 2011, is a global provider of embedded System-On-Modules (SOMs) and
comprehensive solutions based on various architectures such as ARM, FPGA, RISC-V, and AI. We cater to customers' needs for large-scale production, offering customized design, industry-specific application solutions, and one-stop OEM services.
MYIR, recognized as a national high-tech enterprise, is also listed among the "Specialized
and Special new" Enterprises in Shenzhen, China. Our core belief is that "Our success stems from our customers' success" and embraces the philosophy
of "Make Your Idea Real, then My Idea Realizing!"
How to Avoid Learning the Linux-Kernel Memory ModelScyllaDB
The Linux-kernel memory model (LKMM) is a powerful tool for developing highly concurrent Linux-kernel code, but it also has a steep learning curve. Wouldn't it be great to get most of LKMM's benefits without the learning curve?
This talk will describe how to do exactly that by using the standard Linux-kernel APIs (locking, reference counting, RCU) along with a simple rules of thumb, thus gaining most of LKMM's power with less learning. And the full LKMM is always there when you need it!
GDG Cloud Southlake #34: Neatsun Ziv: Automating AppsecJames Anderson
The lecture titled "Automating AppSec" delves into the critical challenges associated with manual application security (AppSec) processes and outlines strategic approaches for incorporating automation to enhance efficiency, accuracy, and scalability. The lecture is structured to highlight the inherent difficulties in traditional AppSec practices, emphasizing the labor-intensive triage of issues, the complexity of identifying responsible owners for security flaws, and the challenges of implementing security checks within CI/CD pipelines. Furthermore, it provides actionable insights on automating these processes to not only mitigate these pains but also to enable a more proactive and scalable security posture within development cycles.
The Pains of Manual AppSec:
This section will explore the time-consuming and error-prone nature of manually triaging security issues, including the difficulty of prioritizing vulnerabilities based on their actual risk to the organization. It will also discuss the challenges in determining ownership for remediation tasks, a process often complicated by cross-functional teams and microservices architectures. Additionally, the inefficiencies of manual checks within CI/CD gates will be examined, highlighting how they can delay deployments and introduce security risks.
Automating CI/CD Gates:
Here, the focus shifts to the automation of security within the CI/CD pipelines. The lecture will cover methods to seamlessly integrate security tools that automatically scan for vulnerabilities as part of the build process, thereby ensuring that security is a core component of the development lifecycle. Strategies for configuring automated gates that can block or flag builds based on the severity of detected issues will be discussed, ensuring that only secure code progresses through the pipeline.
Triaging Issues with Automation:
This segment addresses how automation can be leveraged to intelligently triage and prioritize security issues. It will cover technologies and methodologies for automatically assessing the context and potential impact of vulnerabilities, facilitating quicker and more accurate decision-making. The use of automated alerting and reporting mechanisms to ensure the right stakeholders are informed in a timely manner will also be discussed.
Identifying Ownership Automatically:
Automating the process of identifying who owns the responsibility for fixing specific security issues is critical for efficient remediation. This part of the lecture will explore tools and practices for mapping vulnerabilities to code owners, leveraging version control and project management tools.
Three Tips to Scale the Shift Left Program:
Finally, the lecture will offer three practical tips for organizations looking to scale their Shift Left security programs. These will include recommendations on fostering a security culture within development teams, employing DevSecOps principles to integrate security throughout the development
How Social Media Hackers Help You to See Your Wife's Message.pdfHackersList
In the modern digital era, social media platforms have become integral to our daily lives. These platforms, including Facebook, Instagram, WhatsApp, and Snapchat, offer countless ways to connect, share, and communicate.
AC Atlassian Coimbatore Session Slides( 22/06/2024)apoorva2579
This is the combined Sessions of ACE Atlassian Coimbatore event happened on 22nd June 2024
The session order is as follows:
1.AI and future of help desk by Rajesh Shanmugam
2. Harnessing the power of GenAI for your business by Siddharth
3. Fallacies of GenAI by Raju Kandaswamy
Implementations of Fused Deposition Modeling in real worldEmerging Tech
The presentation showcases the diverse real-world applications of Fused Deposition Modeling (FDM) across multiple industries:
1. **Manufacturing**: FDM is utilized in manufacturing for rapid prototyping, creating custom tools and fixtures, and producing functional end-use parts. Companies leverage its cost-effectiveness and flexibility to streamline production processes.
2. **Medical**: In the medical field, FDM is used to create patient-specific anatomical models, surgical guides, and prosthetics. Its ability to produce precise and biocompatible parts supports advancements in personalized healthcare solutions.
3. **Education**: FDM plays a crucial role in education by enabling students to learn about design and engineering through hands-on 3D printing projects. It promotes innovation and practical skill development in STEM disciplines.
4. **Science**: Researchers use FDM to prototype equipment for scientific experiments, build custom laboratory tools, and create models for visualization and testing purposes. It facilitates rapid iteration and customization in scientific endeavors.
5. **Automotive**: Automotive manufacturers employ FDM for prototyping vehicle components, tooling for assembly lines, and customized parts. It speeds up the design validation process and enhances efficiency in automotive engineering.
6. **Consumer Electronics**: FDM is utilized in consumer electronics for designing and prototyping product enclosures, casings, and internal components. It enables rapid iteration and customization to meet evolving consumer demands.
7. **Robotics**: Robotics engineers leverage FDM to prototype robot parts, create lightweight and durable components, and customize robot designs for specific applications. It supports innovation and optimization in robotic systems.
8. **Aerospace**: In aerospace, FDM is used to manufacture lightweight parts, complex geometries, and prototypes of aircraft components. It contributes to cost reduction, faster production cycles, and weight savings in aerospace engineering.
9. **Architecture**: Architects utilize FDM for creating detailed architectural models, prototypes of building components, and intricate designs. It aids in visualizing concepts, testing structural integrity, and communicating design ideas effectively.
Each industry example demonstrates how FDM enhances innovation, accelerates product development, and addresses specific challenges through advanced manufacturing capabilities.
An invited talk given by Mark Billinghurst on Research Directions for Cross Reality Interfaces. This was given on July 2nd 2024 as part of the 2024 Summer School on Cross Reality in Hagenberg, Austria (July 1st - 7th)
In this follow-up session on knowledge and prompt engineering, we will explore structured prompting, chain of thought prompting, iterative prompting, prompt optimization, emotional language prompts, and the inclusion of user signals and industry-specific data to enhance LLM performance.
Join EIS Founder & CEO Seth Earley and special guest Nick Usborne, Copywriter, Trainer, and Speaker, as they delve into these methodologies to improve AI-driven knowledge processes for employees and customers alike.
How Netflix Builds High Performance Applications at Global ScaleScyllaDB
We all want to build applications that are blazingly fast. We also want to scale them to users all over the world. Can the two happen together? Can users in the slowest of environments also get a fast experience? Learn how we do this at Netflix: how we understand every user's needs and preferences and build high performance applications that work for every user, every time.
3. 3
• DevOps Advisory and Implementation
Services
• Docker Consulting and Integration
• CloudBees Jenkins Consulting
About
The Container Enablement Company
• Continuous Integration,
Delivery, and Deployment
• Application Modernization
• Cloud Migration
4. Container Tech Isn’t New
4
2000
2002
2004
2006
2007
1979
2008
2013
Chroot
Filesystem isolation
FreeBSD Jails
Early container technology
Linux Namespaces
Process isolation
Solaris Zones
Similar to jails; snapshots, cloning
Google Process Containers
Process aggregation for resource management
Linux Control Groups
Process containers renamed and merged into kernel 2.6.24
LXC Linux Containers
Userland tooling
DotCloud Docker Inc.
Introduction of Docker Open Source Project
6. What is a Docker Container ?
• Method to run applications in isolation
• Isolation includes namespacing pid, network, users, restricting
root, cpu and memory limits, and providing separate
filesystem
• Many of the technologies are old, but haven't been packaged
in an easy to use toolset before Docker
6
“Docker containers wrap up a piece of software in a complete filesystem that contains everything it needs
to run: code, runtime, system tools, system libraries – anything you can install on a server.”
(https://www.docker.com/what-docker)
7. Containerized Deployment and Scaling
Each virtual machine
includes:
- application
- binaries and
libraries
- entire guest
operating system
Containers:
- Include application and all dependencies
- Share kernel with other containers
- Run as an isolated process not tied to any
specific infrastructure
Virtual Machines Containers
7
8. 8
We’re not trying to replace your VMs
Virtual Machine:
Host Virtualization
Containers are used in
partnership with current IaaS
stacks.
Docker and other container
platforms still need a host.
Container:
Application Virtualization
Take advantage of the streamlined
process for VM based IaaS and gain
efficiencies in:
• Higher density workloads
• Scale
• Portability
• Security
12. 12
• Containers are designed to be disposable
• New containers go back to a clean image state
• Running containers write to an isolated space
Immutable
• Data is stored outside of the container
• Separates data from your application
13. 13
Application Development (Build & Ship)
Problem: Code migration issues: Dev Test Prod. Painful and slow software delivery.
Solution: Developer Self-Service. Automate and consolidate with Docker.
Docker packages applications and their dependencies into containers to allow for easy transport from a
developers laptop to any target test or prod environment. This accelerates the software lifecycle,
increases reliability, and reduces job time.
- Begin with a “Trusted Known State”
- Control and Approve Content
- Track Promotion CryptographicallyDeveloper
Version
control
Sysadmin
QA / QE
14. 14
Application Modernization / Cloud Migration
Problem: Legacy applications: brittle, and difficult to change/bug fix/upgrade
Hard to scale, obsolete APIs, costly and difficult to support and maintain.
Solution: Microservices architecture. Technology diversity. Modular boundaries.
Mulit-tier applications can be deployed in parts and each tier is an independent container. Each of the containers
can be used for a single service. Legacy applications can be migrated to the cloud through either a “lift & shift” or
“refactoring” methodology, or potentially a combination.
15. Build
Docker Images
• Images are the definition. They include
the filesystem, environment variables,
and default entry points.
• Containers are an instance of an
image. They isolate the application
from the host, and even from other
containers.
15
16. Build
Dockerfiles
• Write your image definition in a Dockerfile
16
• Turn that Dockerfile into an image with
• Develop a new app or “lift and shift” your current codebase
17. • Union file system
• Multiple RO layers are stacked
• Containers add a single RW layer to
isolate changes
• Layers are cached for fast builds
• Layers are named with a hash inside
the engine
17
Docker Images
18. Docker for Mac / Windows
• Docker tools for the developer
• OS native clients using internally
available virtualization: xhyve and
Hyper-V
• Full Docker CLI from native OS
shell
18
Red Hat Container Dev Kit
• Pre-built container development
environment
• Choice of virtualization platforms:
Virtualbox, Hyper-V, Linux KVM
• Eclipse and docker CLI integration
19. Ship
Docker Registry (and Hub)
• Push and pull to central registry
19
• Organized as repositories that contain
multiple tags
• Multiple options: run your own, Docker
Hub, OpenShift, 3rd parties
20. Run
20
• Run your image
• Launches a container base on your image
• Options for:
Volumes: link external data into the container for persistence
Networking: bridged, overlay, access with exposed ports
22. Distributed
Docker Compose
• Packages multiple containers together
• Defines parameters for ‘docker run’
• Configuration is stored in ‘docker-
compose.yml’
• Allows containers to be scaled, but
without orchestration
22
23. Docker on Red Hat
RHEL
Consistent performance and reliability
Certification and Support
SELinux Security
Atomic Host
• Minimal footprint operating system
• Linux container optimized
• Reliability and security of RHEL
23
24. Red Hat OpenShift Container Platform V3
OpenShift and Kubernetes add the ability to orchestrate
docker containers across multi-host installations.
24
• Self-service Platform
• Multi-language Support
• Application Persistence
• Automation
• OpenvSwitch Integration
Load Docker Images to OpenShift!
# oc new-project rhsummit
# oc new-app gitlab/gitlab-ce
28. 28
• Isolated space for a running application
• All containers run on the same kernel unlike a VM
• Eliminates the overhead of an OS and services
Come Again?
29. Docker Containers – Run… Anywhere?
Linux:
Kernel Version 3.10+
• Ubuntu 13.10+
• Fedora 20+
• RHEL 7+
• CentOS 7.1+
• Gentoo
• ArchLinux
• openSUSE 13.1+
• CRUX 3.0+
Windows (Really!):
• Docker for Windows
• Windows Server 2016 (TP5)
29
Docker for ARM!
30. Production Operations / Data Center
Problem: Inefficiency of VMs .. O/S duplication… Lengthy boot and replication times.
Hardware, Storage, and Hypervisor costs $$.
Solution: Docker’s containers as a service (CaaS) and orchestration platform. Policy driven architecture.
Deployment flexibility (On-Premise, Cloud, Hybrid).
Docker containers share resources with the host OS, which makes them significantly more efficient than VMs.
Containers can be started and stopped in a fraction of a second. They are lightweight, fast, and maximize
consolidation. Swisscom reduced their VM footprint from 400 to 20 for a database as a service offering, driving
tremendous cost savings.
31. Control
Manage and secure
at scale
Portability
Frictionless
Movement & Trust
Agility
Innovation at
speed
+ +Build Ship Run
31
32. 32
Isolated
• Isolated filesystem
• Namespace for isolating pids
• cgroups for limiting memory and CPU
• Separate network stack
• Restricted root capabilities
33. Docker Notary
• Open source project on github
(github.com/docker/notary)
• Trusted cross platform content
distribution
• Platform agnostic in delivering
content
• Publisher key validates integrity
of content
33
34. Portable
• Run Docker containers
unchanged in any
environment, on any
infrastructure
• Move applications at
will between
environments and
infrastructures
34
35. At Scale
Docker containers spin up and down in seconds,
making it easy to scale application services to
satisfy peak customer demand, and then reduce
running containers when demand ebbs.
35