Kinnary Jangla
Accelerating Development Velocity Using DockerDocker Across Microservices
Kinnary Jangla
San Francisco, CA, USA
ISBN 978-1-4842-3935-3e-ISBN 978-1-4842-3936-0
Library of Congress Control Number: 2018962734
© Kinnary Jangla 2018
This work is subject to copyright. All rights are reserved by the Publisher, whether the whole or part of the material is concerned, specifically the rights of translation, reprinting, reuse of illustrations, recitation, broadcasting, reproduction on microfilms or in any other physical way, and transmission or information storage and retrieval, electronic adaptation, computer software, or by similar or dissimilar methodology now known or hereafter developed.
Trademarked names, logos, and images may appear in this book. Rather than use a trademark symbol with every occurrence of a trademarked name, logo, or image, we use the names, logos, and images only in an editorial fashion and to the benefit of the trademark owner, with no intention of infringement of the trademark. The use in this publication of trade names, trademarks, service marks, and similar terms, even if they are not identified as such, is not to be taken as an expression of opinion as to whether or not they are subject to proprietary rights.
While the advice and information in this book are believed to be true and accurate at the date of publication, neither the author nor the editors nor the publisher can accept any legal responsibility for any errors or omissions that may be made. The publisher makes no warranty, express or implied, with respect to the material contained herein.
Distributed to the book trade worldwide by Springer Science+Business Media New York, 233 Spring Street, 6th Floor, New York, NY 10013. Phone 1-800-SPRINGER, fax (201) 348-4505, e-mail [email protected], or visit www.springeronline.com. Apress Media, LLC is a California LLC and the sole member (owner) is Springer Science+Business Media Finance Inc (SSBM Finance Inc). SSBM Finance Inc is a Delaware corporation.

To all those engineers who struggle with ramp-up curves on new software tools!

Introduction

The idea of writing this book occurred to me while I was ramping up on Docker during my first year at Pinterest. There is a lot of content on the Internet, but it is unstructured and sometimes incorrect and inaccurate. This book will help you to understand the fundamentals of Docker. To understand anything in depth, it’s best to start with basic concepts. Over the past years, the needs of tech companies have evolved significantly. This book will help you understand the need for Docker in the software industry and how Docker has managed to ease the growing pains of this industry.

I have tried to structure this book by explaining the fundamentals before going into anything specific to Docker. I hope that helps you understand the fundamentals of Docker.

My hope, too, is that this book is useful to both students and engineers who want to ramp up on Docker quickly.

The following sections provide a snapshot of the book.

Chapter 1 : Containers

This chapter focuses on what Docker is all about. It’s about containers. But what are containers and how do they differ from virtual machines? Why does Docker make use of container technology and what are the benefits of that? What are the advantages and challenges of containerization? At the end of this chapter, you will have learned the underlying technology of Docker.

Chapter 2 : Docker

This chapter focuses on how the software industry evolved and what gave rise to the need for containers and, therefore, Docker. In this chapter, you’ll learn the history of Docker, in addition to some of its basic use cases today.

Chapter 3 : Monolith vs. Microservices

Because this book focuses on debugging microservices using Docker, this chapter talks about the evolution of microservices, the differences between monolith and microservices, and the advantages and challenges of both. It will help you understand why debugging becomes significantly difficult when you’re dealing with multiple services that all need to talk to one another.

Chapter 4 : Docker Basics

This chapter is all about taking the first few steps to begin working with Docker. This section discusses the terminology used in the Docker world, the underlying architecture of Docker, how to install Docker, and some basic Docker commands. This chapter is your go-to to step foot into Docker land.

Chapter 5 : Docker Images

This chapter goes deep into what Docker images are and how they’re created. It examines Dockerfiles, which is where all the instructions to build Docker images are located. Then it goes into how to build Docker images and, finally, into Docker containers in depth. I would encourage you to take some extra time to understand the role of Dockerfiles, Docker images, and Docker containers. I’d also advise acquiring a thorough understanding of this chapter.

Chapter 6 : Docker Compose

This chapter is devoted to the Docker Compose tool. This links all the services and helps in running an application from end to end. Here you’ll learn all aspects of Docker Compose: how to install it, how to use it, and what happens behind the scenes.

Chapter 7 : Debugging Microservices Using Docker

This is what the book has been leading to. This chapter is the core and longest chapter of this book. It explains what distributed environments are and their challenges. It later goes into depth about how to debug an end-to-end real-world use case, by explaining different related debugging techniques.

Chapter 8 : Advanced Docker Use Cases

After exploring how to debug an application, based on the microservices architecture, this chapter discusses some advanced use cases of Docker. It talks about the use of Docker in a production environment, orchestration using Docker, and offers some tips and tricks to help you with the software.

Acknowledgments

Writing a book requires teamwork. I’m lucky to have found a team of thorough tech reviewers such as Michael Erwin and James Markham, who revised my content thoroughly to ensure that this book is completely most up to date. Thanks, Apress, for the opportunity, and Nancy Chen, for all the hard work of coordination and keeping me on schedule.

This book took a long time to complete. In the past few months, I wanted to give up multiple times. It was my husband’s push and support that ultimately got me to the finish line. I can never thank you enough, Abhinav Vora.

Thank you to all my family and friends for being so patient and understanding of the lack of time and attention I was able to devote to you these past months. Your support and motivation kept me going.

Table of Contents

Index 145

About the Author and About the Technical Reviewer

About the Author

Kinnary Jangla

has worked in the tech industry for a dozen years and is currently an engineering manager at Pinterest in the Ads division. Previously she worked on the machine learning Homefeed infrastructure team where she used Docker to develop the debugging framework.

Kinnary previously worked at Uber and Microsoft, is the author of three books, and holds six patents. You can follow her on Twitter at @kjangla .

 

About the Technical Reviewer

Michael Irwin

is an application architect at Virginia Tech who is striving to modernize how software is developed and run on campus, by driving the adoption of Docker-based workloads, CI/CD pipelines, the public cloud, single-page applications, and more. As a Docker Captain and Community Leader (Meetup Organizer), he has the opportunity to share his expertise and experiences with others but also learn how others are using the latest technologies. When developing, he writes code in Node, Java (Java EE mostly), and JavaScript but actively contributes to projects written in other languages and frameworks. He’s blessed to have a beautiful wife and four daughters.

 
..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
18.119.157.39