Linux Containers and Virtualization


Book Description

Get a novel perspective on Linux containers and understand the world of virtualization. This book takes you down the rabbit hole to discover what lies below the API. You’ll go on a journey of virtualization and see how containers are realized in the Linux world. Linux Containers and Virtualization details the data structures within the Linux kernel which make up Linux containers. You will start with the fundamentals of virtualization including how different resources such as memory, CPU, network, and storage are virtualized. Then you will move on to hypervisors and virtualization using the Kernel virtual Machine (KVM) and Quick Emulator (QEMU). Next, you will learn about Linux namespace, cgroups, and layered file systems, which are the essential building blocks of Linux containers. The explanation traverses the Linux kernel codebase to show how these are realized in the Linux kernel. In the final chapter, you will code your own container by applying the concepts learnt in the previous chapters. On completion of the book, you will have the knowledge to start coding a Linux container. What You Will Learn Understand the basics of virtualization Discover how the Linux kernel supports virtualization See how the evolution of the Linux kernel and CPUs led to the creation of containerization technologies Develop the ability to create your own container framework Who This Book Is For Developers working on virtualized software deployment and containers. Architects designing platforms based on a container runtime as well as DevOps professionals who want to get a microscopic view on how containers and virtualization work would find the book useful.




Practical LXC and LXD


Book Description

Use Linux containers as an alternative virtualization technique to virtualize your operating system environment. This book will cover LXC’s unmatched flexibility with virtualization and LXD’s smooth user experience. Practical LXC and LXD begins by introducing you to Linux containers (LXC and LXD). You will then go through use cases based on LXC and LXD. Next, you will see the internal workings of LXC and LXD by considering the repositories and templates used. You will then learn how to integrate LXC and LXD with common virtualization and orchestration tools such as libvirt and SaltStack. Finally, you will dive into containerization and security. The book will explore some of the common problems in security and provide a case study on how containerization can help mitigate some of the operating system-level security issues in an IoT environment. What You Will Learn Get an introduction to Linux containers Discover the basics of LXC and LXD See use cases that can be solved with LXC and LXD – for developers, devops, and system administrators Master LXC and LXD repositories Use LXC and LXD with common virtualization and orchestration tools Consider a containerization and security in IoT case study Who This Book Is For The audience for this book should have basic knowledge of Linux and software development in general. The intended readership is primarily software developers, operations engineers, and system administrators who are interested in devops, though managers and enthusiasts will also benefit from this book.




The Docker Book


Book Description

Updated for Docker Community Edition v18.09! Docker book designed for SysAdmins, SREs, Operations staff, Developers and DevOps who are interested in deploying the open source container service Docker. In this book, we'll walk you through installing, deploying, managing, and extending Docker. We're going to do that by first introducing you to the basics of Docker and its components. Then we'll start to use Docker to build containers and services to perform a variety of tasks. We're going to take you through the development lifecycle, from testing to production, and see where Docker fits in and how it can make your life easier. We'll make use of Docker to build test environments for new projects, demonstrate how to integrate Docker with continuous integration workflow, and then how to build application services and platforms. Finally, we'll show you how to use Docker's API and how to extend Docker yourself. We'll teach you how to: * Install Docker. * Take your first steps with a Docker container. * Build Docker images. * Manage and share Docker images. * Run and manage more complex Docker containers. * Deploy Docker containers as part of your testing pipeline. * Build multi-container applications and environments. * Learn about orchestration using Compose and Swarm for the orchestration of Docker containers and Consul for service discovery. * Explore the Docker API. * Getting Help and Extending Docker.




Containerization with LXC


Book Description

Get acquainted with the world of LXC About This Book Get the most practical and up-to-date resource on LXC and take full advantage of what Linux containers can offer in the day-to-day operations of large-scale applications Learn how to deploy and administer various workloads such as web applications inside LXC Save your organization time and money by building robust and secure containers and by speeding the deployment process of your software Who This Book Is For This book is for Linux engineers and software developers who are looking to deploy applications in a fast, secure, and scalable way for use in testing and production. What You Will Learn Deep dive into the foundations of Linux containers with kernel namespaces and cgroups Install, configure, and administer Linux containers with LXC and libvirt Begin writing applications using Python libvirt bindings Take an in-depth look at container networking Set up monitoring and security with LXC Build and deploy a highly available application with LXC in the cloud In Detail In recent years, containers have gained wide adoption by businesses running a variety of application loads. This became possible largely due to the advent of kernel namespaces and better resource management with control groups (cgroups). Linux containers (LXC) are a direct implementation of those kernel features that provide operating system level virtualization without the overhead of a hypervisor layer. This book starts by introducing the foundational concepts behind the implementation of LXC, then moves into the practical aspects of installing and configuring LXC containers. Moving on, you will explore container networking, security, and backups. You will also learn how to deploy LXC with technologies like Open Stack and Vagrant. By the end of the book, you will have a solid grasp of how LXC is implemented and how to run production applications in a highly available and scalable way. Style and approach A practical guide that introduces the core technologies behind Linux containers and provides a deep dive into installation, configuration, and operations of LXC.




Teach Yourself Linux Virtualization and High Availability


Book Description

High availability server virtualization currently powers the vast majority of public-facing compute deployments and Linux lies at the heart of nearly all of them. If you aren't already engaged in a virtualized project that touches some kind of Linux technology, you probably will be soon. What are you doing to build your skills to meet the future? The Linux Professional Institute's LPIC-3 304 certification expectations are an excellent, vendor neutral introduction to Linux server virtualization and cluster management. Even if you don't have plans to take the exam and earn the certification itself right now, using the 304 as a curriculum guide is a smart move. And, one way or another, this book is a great primary resource.




Mastering KVM Virtualization


Book Description

Dive in to the cutting edge techniques of Linux KVM virtualization, and build the virtualization solutions your datacentre demands About This Book Become an expert in Linux virtualization Migrate your virtualized datacenter to the cloud Find out how to build a large scale virtualization solution that will transform your organization Who This Book Is For Linux administrators – if you want to build incredible, yet manageable virtualization solutions with KVM this is the book to get you there. It will help you apply what you already know to some tricky virtualization tasks. What You Will Learn Explore the ecosystem of tools that support Linux virtualization Find out why KVM offers you a smarter way to unlock the potential of virtualization Implement KVM virtualization using oVirt Explore the KVM architecture – so you can manage, scale and optimize it with ease Migrate your virtualized datacenter to the cloud for truly resource-efficient computing Find out how to integrate OpenStack with KVM to take full control of the cloud In Detail A robust datacenter is essential for any organization – but you don't want to waste resources. With KVM you can virtualize your datacenter, transforming a Linux operating system into a powerful hypervisor that allows you to manage multiple OS with minimal fuss. This book doesn't just show you how to virtualize with KVM – it shows you how to do it well. Written to make you an expert on KVM, you'll learn to manage the three essential pillars of scalability, performance and security – as well as some useful integrations with cloud services such as OpenStack. From the fundamentals of setting up a standalone KVM virtualization platform, and the best tools to harness it effectively, including virt-manager, and kimchi-project, everything you do is built around making KVM work for you in the real-world, helping you to interact and customize it as you need it. With further guidance on performance optimization for Microsoft Windows and RHEL virtual machines, as well as proven strategies for backup and disaster recovery, you'll can be confident that your virtualized data center is working for your organization – not hampering it. Finally, the book will empower you to unlock the full potential of cloud through KVM. Migrating your physical machines to the cloud can be challenging, but once you've mastered KVM, it's a little easie. Style and approach Combining advanced insights with practical solutions, Mastering KVM Virtualization is a vital resource for anyone that believes in the power of virtualization to help a business use resources more effectively.




Hardware and Software Support for Virtualization


Book Description

This book focuses on the core question of the necessary architectural support provided by hardware to efficiently run virtual machines, and of the corresponding design of the hypervisors that run them. Virtualization is still possible when the instruction set architecture lacks such support, but the hypervisor remains more complex and must rely on additional techniques. Despite the focus on architectural support in current architectures, some historical perspective is necessary to appropriately frame the problem. The first half of the book provides the historical perspective of the theoretical framework developed four decades ago by Popek and Goldberg. It also describes earlier systems that enabled virtualization despite the lack of architectural support in hardware. As is often the case, theory defines a necessary—but not sufficient—set of features, and modern architectures are the result of the combination of the theoretical framework with insights derived from practical systems. The second half of the book describes state-of-the-art support for virtualization in both x86-64 and ARM processors. This book includes an in-depth description of the CPU, memory, and I/O virtualization of these two processor architectures, as well as case studies on the Linux/KVM, VMware, and Xen hypervisors. It concludes with a performance comparison of virtualization on current-generation x86- and ARM-based systems across multiple hypervisors.




Using Docker


Book Description

Docker containers offer simpler, faster, and more robust methods for developing, distributing, and running software than previously available. With this hands-on guide, you’ll learn why containers are so important, what you’ll gain by adopting Docker, and how to make it part of your development process. Ideal for developers, operations engineers, and system administrators—especially those keen to embrace a DevOps approach—Using Docker will take you from Docker and container basics to running dozens of containers on a multi-host system with networking and scheduling. The core of the book walks you through the steps needed to develop, test, and deploy a web application with Docker. Get started with Docker by building and deploying a simple web application Use Continuous Deployment techniques to push your application to production multiple times a day Learn various options and techniques for logging and monitoring multiple containers Examine networking and service discovery: how do containers find each other and how do you connect them? Orchestrate and cluster containers to address load-balancing, scaling, failover, and scheduling Secure your system by following the principles of defense-in-depth and least privilege




Linux in Action


Book Description

Summary Linux in Action is a task-based tutorial that will give you the skills and deep understanding you need to administer a Linux-based system. This hands-on book guides you through 12 real-world projects so you can practice as you learn. Each chapter ends with a review of best practices, new terms, and exercises. Purchase of the print book includes a free eBook in PDF, Kindle, and ePub formats from Manning Publications. About the Technology You can't learn anything without getting your hands dirty including Linux. Skills like securing files, folders, and servers, safely installing patches and applications, and managing a network are required for any serious user, including developers, administrators, and DevOps professionals. With this hands-on tutorial, you'll roll up your sleeves and learn Linux project by project. About the Book Linux in Action guides you through 12 real-world projects, including automating a backup-and-restore system, setting up a private Dropbox-style file cloud, and building your own MediaWiki server. You'll try out interesting examples as you lock in core practices like virtualization, disaster recovery, security, backup, DevOps, and system troubleshooting. Each chapter ends with a review of best practices, new terms, and exercises. What's inside Setting up a safe Linux environment Managing secure remote connectivity Building a system recovery device Patching and upgrading your system About the Reader No prior Linux admin experience is required. About the Author David Clinton is a certified Linux Server Professional, seasoned instructor, and author of Manning's bestselling Learn Amazon Web Services in a Month of Lunches. Table of Contents Welcome to Linux Linux virtualization: Building a Linux working environment Remote connectivity: Safely accessing networked machines Archive management: Backing up or copying entire file systems Automated administration: Configuring automated offsite backups Emergency tools: Building a system recovery device Web servers: Building a MediaWiki server Networked file sharing: Building a Nextcloud file-sharing server Securing your web server Securing network connections: Creating a VPN or DMZ System monitoring: Working with log files Sharing data over a private network Troubleshooting system performance issues Troubleshooting network issues Troubleshooting peripheral devices DevOps tools: Deploying a scripted server environment using Ansible




Learning Proxmox VE


Book Description

Unleash the power of Proxmox VE by setting up a dedicated virtual environment to serve both containers and virtual machines About This Book Create virtual machines and containers from the comfort of your workstation using Proxmox VE's web-based management interface Maximize performance, security, and the quality of virtual services by tailoring container and virtual machine configurations based on established best practices Put theory to practice by deploying virtual servers that promise portability, modularity, flexibility, security, and quality of service at any scale Who This Book Is For This book is intended for server and system administrators and engineers who are eager to take advantage of the potential of virtual machines and containers to manage servers more efficiently and make the best use of resources, from energy consumption to hardware utilization and physical real estate What You Will Learn Install and configure Proxmox VE Create new virtual machines and containers Import container templates and virtual appliances Optimize virtual machine performance for common use cases Apply the latest security patches to a Proxmox VE host Contrast PVE virtual machines and containers to recognize their respective use cases Secure virtual machines and containers Assess the benefits of virtualization on budgets, server real estate, maintenance, and management time In Detail Proxmox VE 4.1 provides an open source, enterprise virtualization platform on which to host virtual servers as either virtual machines or containers. This book will support your practice of the requisite skills to successfully create, tailor, and deploy virtual machines and containers with Proxmox VE 4.1. Following a survey of PVE's features and characteristics, this book will contrast containers with virtual machines and establish cases for both. It walks through the installation of Proxmox VE, explores the creation of containers and virtual machines, and suggests best practices for virtual disk creation, network configuration, and Proxmox VE host and guest security. Throughout the book, you will navigate the Proxmox VE 4.1 web interface and explore options for command-line management Style and approach This book is a practical exploration of the different processes and procedures, which are essential in beginning your journey to fluent creation and optimization of effective containers and virtual machines.