23:31 An Introduction to Containers cognitive learning theory in the classroom | |
In this guide, we’ll take a look at what containers are, how they are different from other kinds of virtualization technologies, and what advantages they can offer for your development and operations processes.Cognitive learning theory in the classroom if you just want a quick overview of some of the core terms associated with containers, feel free to skip ahead to the terminology section. What are containers?Cognitive learning theory in the classroom These goals make containers an attractive option for both developers and operations professionals. Containers run consistently on any container-capable host, so developers can test the same software locally that they will later deploy to full production environments.Cognitive learning theory in the classroom the container format also ensures that the application dependencies are baked into the image itself, simplifying the hand off and release processes.Cognitive learning theory in the classroom because the hosts and platforms that run containers are generic, infrastructure management for container-based systems can be standardized. Cognitive learning theory in the classroom This is similar to how classes and instances work in object-oriented programming; a single class can be used to create any number of instances just as a single container image can be used to create any number of containers.Cognitive learning theory in the classroom this analogy also holds true in regards to inheritance since container images can act as the parent for other, more customized container images.Cognitive learning theory in the classroom users can download pre-built container from external sources or build their own images customized to their needs. What is docker? While linux containers are a somewhat generic technology that can be implemented and managed in a number of different ways, docker is by far the most common way of running building and running containers.Cognitive learning theory in the classroom docker is a set of tools that allow users to create container images, push or pull images from external registries, and run and manage containers in many different environments.Cognitive learning theory in the classroom the surge in the popularity of containers on linux can be directly attributed to docker’s efforts following its release in 2013. The docker command line tool plays many roles.Cognitive learning theory in the classroom it runs and manages containers, acting as a process manager for container workloads. It can create new container images by reading and executing commands from dockerfile or by taking snapshots of containers that are already running.Cognitive learning theory in the classroom the command can also interact with docker hub, a container image registry, to pull down new container images or to push up local images to save or publish them.Cognitive learning theory in the classroom While docker provides only one of many implementations of containers on linux, it has the distinction of being the most common entry point into the world of containers and the most commonly deployed solution.Cognitive learning theory in the classroom while open standards have been developed for containers to ensure interoperability, most container-related platforms and tools treat docker as their main target when testing and releasing software.Cognitive learning theory in the classroom docker may not always be the most performant solution for a given environment, but it’s likely to be one of the most well-tested options. Virtual machines, or vms, are a hardware virtualization technology that allows you to fully virtualize the hardware and resources of a computer.Cognitive learning theory in the classroom A separate guest operating system manages the virtual machine, completely separate from the OS running on the host system. On the host system, a piece of software called a hypervisor is responsible for starting, stopping, and managing the virtual machines.Cognitive learning theory in the classroom Because vms are operated as completely distinct computers that, under normal operating conditions, cannot affect the host system or other vms, virtual machines offer great isolation and security.Cognitive learning theory in the classroom however, they do have their drawbacks. For instance, virtualizing an entire computer requires vms to use a significant amount of resources. Since the virtual machine is operated by a complete guest operating system, the virtual machine provisioning and boot times can be fairly slow.Cognitive learning theory in the classroom likewise, since the VM operates as an independent machine, administrators often need to adopt infrastructure-like management tools and processes to update and run the individual environments.Cognitive learning theory in the classroom In general, virtual machines let you subdivide a machine’s resources into smaller, individual computers, but the end result doesn’t differ significantly from managing a fleet of physical computers.Cognitive learning theory in the classroom the fleet membership expands and the responsibility of each host might become more focused, but the tools, strategies, and processes you employ and the capabilities of your system probably won’t noticeably change.Cognitive learning theory in the classroom Containers take a different approach. Rather than virtualizing the entire computer, containers virtualize the operating system directly. They run as specialized processes managed by the host operating system’s kernel, but with a constrained and heavily manipulated view of the system’s processes, resources, and environment.Cognitive learning theory in the classroom containers are unaware that they exist on a shared system and operate as if they were in full control of the computer. Rather than treating containers as if they were full computers like with virtual machines, it is more common to manage containers more similarly to applications.Cognitive learning theory in the classroom for instance, while you can bundle an SSH server into a container, this isn’t a recommended pattern. Instead, debugging is generally performed through a logging interface, updates are applied by rolling new images, and service management is de-emphasized in favor of managing the entire container.Cognitive learning theory in the classroom These characteristics mean that containers occupy a space that sits somewhere in between the strong isolation of virtual machines and the native management of conventional processes.Cognitive learning theory in the classroom containers offer compartmentalization and process-focused virtualization, which provide a good balance of confinement, flexibility, and speed.Cognitive learning theory in the classroom linux cgroups and namespaces The linux kernel has a few features that make this possible. Linux control groups, or cgroups, are a kernel feature that allow processes and their resources to be grouped, isolated, and managed as a unit.Cognitive learning theory in the classroom cgroups bundle processes together, determine which resources they can access, and provide a mechanism for managing and monitoring their behavior.Cognitive learning theory in the classroom they follow a hierarchical system that allows child processes to inherit the conditions of their parent and potentially adopt further constraints.Cognitive learning theory in the classroom cgroups provide the functionality needed to bundle processes together as a group and limit the resources they can access. The other main kernel feature that containers rely on is linux namespaces.Cognitive learning theory in the classroom namespaces limit what processes can see of the rest of the system. Processes running inside namespaces are not aware of anything running outside of their namespace.Cognitive learning theory in the classroom because namespaces define a distinct context that’s separate from the rest of the system, the namespace’s process tree needs to reflect that context.Cognitive learning theory in the classroom inside the namespace, the main process becomes PID 1 (process ID 1), the PID traditionally reserved for the OS’s init system. This heavily manipulated virtual process tree constructed within the namespace allows processes running within containers to behave as if they were operating in a normal, unrestricted environment.Cognitive learning theory in the classroom benefits of containerization From the perspective of the host, containers run like any other process, meaning they are quick to start and stop and use a limited amount of resources.Cognitive learning theory in the classroom the container can only view and access a subset of the host’s process space and resources, but is able to behave as if it were a completely independent operating system in most circumstances.Cognitive learning theory in the classroom While not robust enough to be considered full security sandboxing, this isolation does have advantages. Dependency and library conflicts are easier to avoid since the host and each container maintain software in separate filesystems.Cognitive learning theory in the classroom since the networking environments can be separated, applications within the container can bind to their native ports without concern about conflicting with software on the host system or in other containers.Cognitive learning theory in the classroom the administrator can then choose how to map the container’s networking to the host networks according to their requirements. Standardized packaging format and runtime target cognitive learning theory in the classroom Inside of containers, developers can install and use any libraries their applications require without fear of interfering with host system libraries.Cognitive learning theory in the classroom dependencies are version locked when the image is created. Since the container runtime acts as a standard, stable deployment platform, developers do not need to know much about the specific machines where the containers will be running.Cognitive learning theory in the classroom as long as the container runtime is operational and adequate system resources are available, the container should run the same as it did in the development environment.Cognitive learning theory in the classroom Similarly, from an operational perspective, containerization helps standardize the requirements of the deployment environment. Rather than having to provision and maintain unique environments based on the application language, runtime, and dependencies, administrators can focus on maintaining generic hosts that function as container platforms and allocating pools of resources those machines can access.Cognitive learning theory in the classroom bundling all of the particular application idiosyncrasies within the container creates a natural boundary between the concerns of the application and that of the platform.Cognitive learning theory in the classroom scalability The scalability of a system is highly dependent on the application architecture and how the container images themselves are constructed.Cognitive learning theory in the classroom designs that work well with the container paradigm recognize the strengths of the container format to achieve a good balance of speed, availability, and manageability.Cognitive learning theory in the classroom service-oriented architectures, and specifically microservices, are incredibly popular in containerized environments because decomposing applications into discrete components with a focused purpose makes developing, scaling, and updating more straightforward.Cognitive learning theory in the classroom container terminology • container runtime: A container runtime is the component that actually runs and manages containers on a host. The minimum requirement is usually to be able to provision a container from a given image, but many runtimes bundle other functionality like process management, monitoring, and image management.Cognitive learning theory in the classroom docker includes a container runtime within it’s docker command, but there are many other alternatives available for different use cases. • docker: docker was the first technology to successfully popularize the idea linux containers.Cognitive learning theory in the classroom among others, docker’s ecosystem of tools includes docker, a container runtime with extensive container and image management features, docker-compose, a system for defining and running multi-container applications, and docker hub, a container image registry.Cognitive learning theory in the classroom • dockerfile: A dockerfile is a text file describing how to build a container image. It defines the base image, the commands to run within the system, and way that the runtime should start and manage the processes within the container.Cognitive learning theory in the classroom while not the only option, dockerfiles are the most common format for defining container images, even when not using docker’s image building functionality.Cognitive learning theory in the classroom Containers are not a magic bullet, but they do offer some attractive advantages over running software on bare metal or using other virtualization technologies.Cognitive learning theory in the classroom by providing lightweight, functional isolation and developing a rich ecosystem of tools to help manage complexity, containers offer great flexibility and control both during development and throughout their operational life cycle.Cognitive learning theory in the classroom next up: online training on containers, kubernetes, and rancher | |
|
Total comments: 0 | |