Go for DevOps
Copyright © 2022 Packt Publishing
All rights reserved. No part of this book may be reproduced, stored in a retrieval system, or
transmitted in any form or by any means, without the prior written permission of the publisher,
except in the case of brief quotations embedded in critical articles or reviews.
Every effort has been made in the preparation of this book to ensure the accuracy of the information
presented. However, the information contained in this book is sold without warranty, either express
or implied. Neither the authors, nor Packt Publishing or its dealers and distributors, will be held
liable for any damages caused or alleged to have been caused directly or indirectly by this book.
Packt Publishing has endeavored to provide trademark information about all of the companies and
products mentioned in this book by the appropriate use of capitals. However, Packt Publishing
cannot guarantee the accuracy of this information.
Contributors
About the authors
John Doak is the principal manager of Layer 1 Reliability Engineering at Microsoft. John led the
development of the Azure Data Explorer and Microsoft Authentication Library Go SDKs.
Previously, he was a Staff Site Reliability Engineer at Google. As part of network engineering, he
created many of their first network automation systems. John led the migration of that group from
Python to Go, developing Go training classes that have been taught around the world. He was a
pivotal figure in transforming the network team to a network/systems group that integrated with
SRE. Prior to that, he worked for Lucasfilm in video games and film. You can find his musings on
Go/SRE topics and his Go classes on the web.
I'd like to thank Raleigh Mann who was my manager at both Lucasfilm and Google during most
of my time there. His advice and steadfastness when standing beside me are why I still call him
Boss today. Stephen Stuart, who gave me my initial foray into management, which I'm not sure I
should thank or curse him for. Thanks to Less Lincoln, the man, the myth, the legend. I’ve worked
with Less for four years, he’s as much a mystery box as when I first met him (and I think he likes
it that way). Of course, I would never have gotten here without the love and support of my parents,
I love you both. Thanks to Sarah Murphy, who was an early contributor to the book. And thanks
to David Justice. Without his hard work and enthusiasm, I would not have been able to do this.
David Justice is the principal software engineer lead for the Azure K8s infrastructure and Steel
Thread teams, which maintain a variety of CNCF and Bytecode Alliance projects. He is a
,maintainer of the Cluster API Provider Azure and a contributor to the Cluster API. Prior to that,
David was the technical assistant to the Azure CTO, where he was responsible for Azure cross-
group technical strategy and architecture. Early on at Microsoft, he was a program manager leading
Azure SDKs and CLIs, where he transitioned all Azure services to describe them using OpenAPI
specifications in GitHub and established automations to generate Azure reference docs, SDKs, and
CLIs. Prior to working at Microsoft, David was the CTO of a mobile CI/CD SaaS called CISimple.
Thank you to my lovely, supportive wife, Deya, for encouraging me to pursue time-consuming
activities such as writing a book, educational pursuits, start-ups, and her favorite, golf. Deya and
Will, you will never know how much your love, hugs, and support powered me through late nights
and droughts of creativity. This book would not be possible without the brilliance, reliability, and
counter-perspectives of my coauthor, John, for whom the word example means a 30k-line robust
application. Thank you to the whole Packt team and all the reviewers, but especially Romy Dias
who edited my work into something more closely resembling English prose. Finally, thank you
Dad and Papa for always believing in me.
About the reviewers
Trieu Pham is a software engineer with various technical ideas. His current focus and specialty
are on API development, microservices, DevOps, and Golang. He has a bachelor's degree in
mathematics and computer science, a master's degree in computer engineering, and a PhD in
engineering.
Lukasz Sudol is a senior director of engineering at GumGum. He began working in the e-
commerce industry by developing backend systems. During the past decade, his work has focused
on developing high-availability application architectures for AdTech. He enjoys helping people to
develop and working with interesting technologies.
I would like to thank my family, my fiancée Marcelina, and my friends who understand the time
and commitment it takes to research and test engineering tools that are constantly changing. And
to the reader, I hope my contribution will help you get through the book more eas
All rights reserved. No part of this book may be reproduced, stored in a retrieval system, or
transmitted in any form or by any means, without the prior written permission of the publisher,
except in the case of brief quotations embedded in critical articles or reviews.
Every effort has been made in the preparation of this book to ensure the accuracy of the information
presented. However, the information contained in this book is sold without warranty, either express
or implied. Neither the authors, nor Packt Publishing or its dealers and distributors, will be held
liable for any damages caused or alleged to have been caused directly or indirectly by this book.
Packt Publishing has endeavored to provide trademark information about all of the companies and
products mentioned in this book by the appropriate use of capitals. However, Packt Publishing
cannot guarantee the accuracy of this information.
, Contributors
About the authors
John Doak is the principal manager of Layer 1 Reliability Engineering at Microsoft. John led the
development of the Azure Data Explorer and Microsoft Authentication Library Go SDKs.
Previously, he was a Staff Site Reliability Engineer at Google. As part of network engineering, he
created many of their first network automation systems. John led the migration of that group from
Python to Go, developing Go training classes that have been taught around the world. He was a
pivotal figure in transforming the network team to a network/systems group that integrated with
SRE. Prior to that, he worked for Lucasfilm in video games and film. You can find his musings on
Go/SRE topics and his Go classes on the web.
I'd like to thank Raleigh Mann who was my manager at both Lucasfilm and Google during most
of my time there. His advice and steadfastness when standing beside me are why I still call him
Boss today. Stephen Stuart, who gave me my initial foray into management, which I'm not sure I
should thank or curse him for. Thanks to Less Lincoln, the man, the myth, the legend. I’ve worked
with Less for four years, he’s as much a mystery box as when I first met him (and I think he likes
it that way). Of course, I would never have gotten here without the love and support of my parents,
I love you both. Thanks to Sarah Murphy, who was an early contributor to the book. And thanks
to David Justice. Without his hard work and enthusiasm, I would not have been able to do this.
David Justice is the principal software engineer lead for the Azure K8s infrastructure and Steel
Thread teams, which maintain a variety of CNCF and Bytecode Alliance projects. He is a
maintainer of the Cluster API Provider Azure and a contributor to the Cluster API. Prior to that,
David was the technical assistant to the Azure CTO, where he was responsible for Azure cross-
group technical strategy and architecture. Early on at Microsoft, he was a program manager leading
Azure SDKs and CLIs, where he transitioned all Azure services to describe them using OpenAPI
specifications in GitHub and established automations to generate Azure reference docs, SDKs, and
CLIs. Prior to working at Microsoft, David was the CTO of a mobile CI/CD SaaS called CISimple.
Thank you to my lovely, supportive wife, Deya, for encouraging me to pursue time-consuming
activities such as writing a book, educational pursuits, start-ups, and her favorite, golf. Deya and
Will, you will never know how much your love, hugs, and support powered me through late nights
and droughts of creativity. This book would not be possible without the brilliance, reliability, and
counter-perspectives of my coauthor, John, for whom the word example means a 30k-line robust
application. Thank you to the whole Packt team and all the reviewers, but especially Romy Dias
who edited my work into something more closely resembling English prose. Finally, thank you
Dad and Papa for always believing in me.
About the reviewers