[00:00] (0.16s)
What is Kubernetes? Kubernetes is a tool
[00:03] (3.04s)
that makes it easier to manage and scale
[00:05] (5.60s)
an application that exists as a swarm of
[00:08] (8.40s)
containers. So it will handle things for
[00:10] (10.56s)
you like automatically scaling up
[00:12] (12.48s)
resources whether that's networking or
[00:15] (15.44s)
storage or whatever based on demand and
[00:19] (19.12s)
it handles that for you without you
[00:21] (21.20s)
having to think about it. You define
[00:22] (22.88s)
upper limits for a particular type of
[00:25] (25.28s)
resource and it'll go up to that as
[00:27] (27.44s)
needed. It scales automatically. This is
[00:29] (29.52s)
particularly useful if you're trying to
[00:31] (31.44s)
keep costs down and keep availability
[00:33] (33.52s)
high. The rise in complexity of
[00:36] (36.48s)
applications built as microservices is
[00:38] (38.72s)
what necessitated something like
[00:40] (40.40s)
Kubernetes. You could do all of this
[00:42] (42.56s)
before. The scaling of applications
[00:45] (45.20s)
running as microservices in clusters or
[00:47] (47.12s)
swarms. Before we had Kubernetes, it was
[00:49] (49.20s)
just very difficult and it was very
[00:51] (51.44s)
manual. Kubernetes is just an
[00:53] (53.12s)
abstraction on something that we used to
[00:55] (55.04s)
do manually. Kubernetes is the second
[00:57] (57.52s)
largest open source project in the world
[00:59] (59.28s)
after Linux. So what is it? Why is it so
[01:02] (62.16s)
popular? And how is it built? Today I
[01:04] (64.40s)
sit down with Cass Cosgrove who is the
[01:06] (66.24s)
leader of the Kubernetes release team
[01:07] (67.76s)
sub project. Cat started off as a
[01:10] (70.16s)
software engineer specializing in
[01:11] (71.52s)
embedded Linux and got involved with
[01:13] (73.20s)
Kubernetes by learning K3S, a minimized
[01:15] (75.84s)
version of Kubernetes that is designed
[01:17] (77.44s)
for smaller memory limited embedded
[01:19] (79.28s)
devices. Kat was a contributor to
[01:21] (81.04s)
Kubernetes for years before becoming a
[01:22] (82.96s)
lead on different parts of the project.
[01:24] (84.88s)
In our conversation, we cover the
[01:26] (86.96s)
architecture of Kubernetes and what
[01:28] (88.64s)
Kubernetes pods are. Why CAT thinks
[01:30] (90.80s)
Kubernetes won and became the de facto
[01:32] (92.80s)
infrastructure management solution in
[01:34] (94.64s)
part because of its strong focus on
[01:36] (96.20s)
documentation. How to propose changes to
[01:38] (98.32s)
Kubernetes via the K process and how
[01:40] (100.80s)
Kubernetes release happens in the span
[01:42] (102.72s)
of 12 to 14 weeks and many more topics.
[01:45] (105.84s)
If you're interested in backend
[01:47] (107.04s)
infrastructure or how wellorganized
[01:49] (109.04s)
large open source project operates, then
[01:50] (110.96s)
this episode is for you. If you enjoy
[01:53] (113.04s)
the show, please subscribe to the
[01:54] (114.16s)
podcast on any podcast platform and on
[01:56] (116.24s)
YouTube. K, first of all, just welcome
[01:58] (118.00s)
to the podcast. Thank you for having me.
[02:00] (120.72s)
Unless you're a Kubernetes well an
[02:04] (124.00s)
infrastructure uh person who actually
[02:06] (126.40s)
deals with Kubernetes day in day out,
[02:08] (128.32s)
most software developers, including
[02:10] (130.16s)
myself, I've never dealt Kubernetes
[02:12] (132.72s)
directly. However, so many of the
[02:14] (134.96s)
systems that I deploy to, a lot of the
[02:17] (137.12s)
APIs that run today are probably on
[02:19] (139.92s)
Kubernetes. I'm I'm pretty sure for
[02:21] (141.44s)
example use render. I'm assuming they're
[02:23] (143.20s)
going to use Kubernetes. At Uber we use
[02:25] (145.60s)
Kubernetes and apparently they're
[02:27] (147.36s)
they're one of the the biggest
[02:28] (148.72s)
deployments. What is Kubernetes? How did
[02:32] (152.40s)
it what is the relationship with Docker
[02:34] (154.72s)
and or or if if if there is any and as
[02:37] (157.76s)
an average developer when would you be
[02:39] (159.76s)
exposed to it if ever? So I think the
[02:42] (162.40s)
average developer especially if you're
[02:44] (164.24s)
like a web developer or an application
[02:46] (166.48s)
developer you don't need to worry about
[02:48] (168.40s)
what Kubernetes is. you're never going
[02:50] (170.16s)
to have to touch it directly. And um it
[02:53] (173.28s)
it's a specialization being like a
[02:55] (175.68s)
Kubernetes cluster admin or uh an S sur
[03:00] (180.16s)
or something. That's that's a
[03:01] (181.60s)
specialization. And I don't think that
[03:03] (183.76s)
the average developer needs to know or
[03:06] (186.32s)
care what Kubernetes is. You certainly
[03:08] (188.88s)
don't need to know how to use it. You
[03:10] (190.08s)
can know what it is, but you don't need
[03:11] (191.44s)
to know how to use it. There's so much
[03:13] (193.36s)
going on. Um it's it's complex. It's
[03:16] (196.80s)
notoriously difficult to learn. I don't
[03:19] (199.36s)
think that there is a reason to dive
[03:20] (200.72s)
into it uh super deep as an average
[03:23] (203.20s)
developer unless you're trying to make a
[03:25] (205.04s)
career switch into Kubernetes. Um which
[03:28] (208.80s)
I couldn't blame you for because it's
[03:30] (210.24s)
very lucrative. But um Kubernetes is a
[03:34] (214.80s)
tool that makes it easier to manage and
[03:37] (217.36s)
scale like an application that exists as
[03:39] (219.84s)
a swarm of containers. Um, so it will
[03:44] (224.32s)
handle things for you like automatically
[03:46] (226.16s)
scaling up resources whether that's
[03:49] (229.60s)
networking or storage or whatever based
[03:54] (234.00s)
on demand and it it handles that for you
[03:57] (237.76s)
without you having to think about it.
[03:59] (239.20s)
You define um upper limits for a
[04:02] (242.80s)
particular type of resource and it'll go
[04:05] (245.28s)
up to that as needed. It scales
[04:07] (247.36s)
automatically. This is particularly
[04:09] (249.52s)
useful if you're trying to like keep
[04:11] (251.76s)
costs down and keep availability high
[04:14] (254.64s)
for instance and it it looks so this is
[04:18] (258.40s)
direct from the Kubernetes documentation
[04:20] (260.40s)
and this is just this is what Kubernetes
[04:22] (262.80s)
components look like. This is a very
[04:25] (265.84s)
very simple cluster. Um, this box over
[04:29] (269.20s)
here on the left is your control plane.
[04:32] (272.48s)
And you aren't going to interact
[04:36] (276.16s)
directly with this a ton. This is mostly
[04:39] (279.56s)
automated. Um, over here on the right,
[04:42] (282.00s)
these where it says node, node, node,
[04:44] (284.88s)
those are all
[04:46] (286.92s)
pods. And within these pods run the
[04:50] (290.80s)
cublet, which is another like little
[04:52] (292.96s)
little control thing. It's interacting
[04:54] (294.88s)
with the um Kubernetes API to stand up
[04:58] (298.32s)
and down all of your containers. And all
[05:01] (301.20s)
of your containers exist within here
[05:02] (302.88s)
too. So if um one goes down like a a pod
[05:08] (308.08s)
fails for whatever reason, whether it
[05:11] (311.44s)
the code itself, the application crashes
[05:13] (313.92s)
or it runs out of resources or something
[05:15] (315.68s)
else weird happens, um your deployment
[05:18] (318.16s)
will stand it up again uh automatically
[05:20] (320.88s)
for you. You won't notice it. Your users
[05:22] (322.96s)
won't notice it probably. This episode
[05:24] (324.96s)
is brought to you by work OS. If you're
[05:27] (327.20s)
building a SAS app, at some point your
[05:28] (328.72s)
customers will start asking for
[05:29] (329.92s)
enterprise features like SL
[05:31] (331.24s)
authentication, skin provisioning, and
[05:33] (333.20s)
fine grain authorization. That's where
[05:35] (335.60s)
work OS comes in, making it fast and
[05:37] (337.52s)
painless to add enterprise features to
[05:39] (339.04s)
your app. Their APIs are easy to
[05:41] (341.20s)
understand and you can ship quickly and
[05:42] (342.88s)
get back to building other features.
[05:45] (345.28s)
Work OS also provides a free user
[05:46] (346.96s)
management solution called Offkit for up
[05:48] (348.80s)
to 1 million monthly active users. It's
[05:51] (351.12s)
a drop in replacement for Alt Zero and
[05:52] (352.96s)
comes standard with useful features like
[05:54] (354.48s)
domain verification, rulebased access
[05:56] (356.72s)
control, bot protection, and MFA. It's
[05:59] (359.52s)
powered by Radics components, which
[06:01] (361.12s)
means zero compromises in design. You
[06:03] (363.04s)
get limitless customizations as well as
[06:04] (364.72s)
modular templates designed for quick
[06:06] (366.76s)
integrations. Today, hundreds of fast
[06:08] (368.96s)
growing startups are powered by work OS,
[06:10] (370.96s)
including ones you probably know like
[06:12] (372.32s)
Cursor, Verscell, and Perplexity. Check
[06:15] (375.04s)
it out at work.com to learn more. That
[06:20] (380.04s)
workos.com. This episode is brought to
[06:22] (382.08s)
you by Modal, the cloud platform that
[06:24] (384.00s)
makes AI development simple. Need GPUs
[06:26] (386.72s)
without the headache. With Modal, just
[06:28] (388.80s)
add one line of code to any Python
[06:30] (390.40s)
function and boom, it's running in the
[06:32] (392.32s)
cloud on your choice of CPU or GPU. And
[06:35] (395.12s)
the best part, you only pay for what you
[06:37] (397.44s)
use. With sub-second container start and
[06:40] (400.08s)
instant scaling to thousands of GPUs,
[06:42] (402.16s)
it's no wonder companies like Sunno,
[06:43] (403.84s)
Ramp, and Substack already trust Modal
[06:45] (405.84s)
for their AI applications. Getting an
[06:48] (408.16s)
H100 is just a pip install away. Go to
[06:51] (411.48s)
modal.com/pragmatic to get $30 in free
[06:53] (413.60s)
credits every month. That is m o
[06:58] (418.04s)
d.com/pragmatic. And then so how does a
[07:00] (420.64s)
pod and let's say virtual machine
[07:02] (422.40s)
connect or or like in this case when we
[07:04] (424.08s)
say container, it's probably a virtual
[07:06] (426.00s)
machine, right? Nope. There is a
[07:08] (428.00s)
difference between a container and a
[07:10] (430.24s)
virtual machine. Um, all right.
[07:12] (432.88s)
Containers are virtualizing um the
[07:15] (435.68s)
operating system and applications
[07:17] (437.68s)
running within it. A virtual machine is
[07:20] (440.16s)
larger and beefier and it is uh likely
[07:23] (443.52s)
um also virtualizing hardware. So um
[07:27] (447.20s)
they are like they're different types of
[07:29] (449.44s)
virtualization and Kubernetes relies on
[07:31] (451.60s)
many types of virtualization.
[07:34] (454.52s)
Um, virtual memory is probably the is
[07:38] (458.88s)
the most recent like I don't know
[07:40] (460.72s)
breakthrough in virtualization I guess
[07:43] (463.20s)
and we cracked that in like uh the 60s
[07:46] (466.40s)
but that's that's what allows things
[07:48] (468.16s)
like containers to exist virtualized
[07:50] (470.48s)
memory. Um but yeah a container is a
[07:53] (473.28s)
type of virtualization a virtual machine
[07:55] (475.28s)
is a type of virtualization it's just
[07:57] (477.52s)
much much beefier. um you you can run
[08:00] (480.48s)
Kubernetes inside of a VM. Like there's
[08:02] (482.56s)
nothing stopping you from doing that,
[08:04] (484.56s)
but uh containers are not VMs
[08:07] (487.76s)
themselves. They're they're smaller,
[08:09] (489.12s)
they're more lightweight, they're easier
[08:10] (490.40s)
to share around. Um they're they're much
[08:13] (493.44s)
they're more configurable as well,
[08:14] (494.64s)
right? Like Yeah, they're they're you
[08:17] (497.20s)
can just chuck one. uh like the
[08:19] (499.60s)
popularity of Docker is largely because
[08:22] (502.56s)
of the sharability of Docker files and
[08:26] (506.16s)
things like the Docker registry and now
[08:28] (508.24s)
there's you know a million in one
[08:29] (509.60s)
container registries but sharability the
[08:33] (513.44s)
small compact size of containers is what
[08:35] (515.36s)
makes them so attractive. It's why we
[08:38] (518.32s)
generally not always develop
[08:40] (520.24s)
applications as microservices now rather
[08:43] (523.04s)
than monoliths. That's the containers is
[08:46] (526.80s)
what allow us to do that. And the like
[08:49] (529.04s)
rise in complexity of applications built
[08:52] (532.72s)
as microservices is what necessitated
[08:54] (534.96s)
something like Kubernetes. Um you could
[08:57] (537.52s)
do all of this before the the scaling of
[09:01] (541.28s)
applications um running as microservices
[09:03] (543.92s)
in in clusters or swarms. Before we had
[09:06] (546.56s)
Kubernetes, it was just very difficult
[09:08] (548.96s)
and it was very manual. Kubernetes is
[09:11] (551.60s)
just an abstraction on something that we
[09:13] (553.52s)
used to do manually. And now since we
[09:15] (555.92s)
are automating a lot of it with a very
[09:19] (559.12s)
very complex um overlord like Kubernetes
[09:22] (562.80s)
uh we can scale our applications much
[09:24] (564.96s)
larger much faster and we we can build
[09:27] (567.52s)
much more complex applications as much
[09:30] (570.16s)
more complex chunks of microservices
[09:32] (572.48s)
instead of having to throw a monolith in
[09:34] (574.72s)
here or there. So um this is like most
[09:38] (578.48s)
advances in technology since the NIAC
[09:41] (581.76s)
machine in the 1950s. Kubernetes is just
[09:44] (584.64s)
an abstraction layer on something that
[09:46] (586.40s)
we used to do by hand that sucked that
[09:49] (589.52s)
was hard to do by hand and now we've
[09:51] (591.84s)
we've automated it. And the trade-off
[09:53] (593.44s)
there is it's when you dig into it it's
[09:57] (597.36s)
it's confusing. It's it is it is
[09:59] (599.60s)
confusing. Can can can we talk about the
[10:01] (601.52s)
history? What happened? What was before
[10:03] (603.68s)
Kubernetes? Then as I understand the
[10:05] (605.52s)
roots are somewhere with Google right
[10:07] (607.36s)
cuz I think it's good to understand what
[10:09] (609.52s)
is it that you know either CIS admins or
[10:11] (611.60s)
or other people were doing and then you
[10:14] (614.40s)
know why why why we decided or why some
[10:16] (616.40s)
engineers decided like all right let's
[10:17] (617.92s)
actually build a better tool and now the
[10:20] (620.00s)
whole world just seems to have caught on
[10:21] (621.60s)
saying actually yeah we actually want
[10:23] (623.04s)
more of this. Yeah. So Google uh has has
[10:25] (625.84s)
a history and a reputation of
[10:27] (627.04s)
overengineering things, right? They they
[10:29] (629.36s)
they do. Um so internal to Google a long
[10:33] (633.84s)
long time ago, there was a tool called
[10:36] (636.28s)
Borg. Uh that is that is a Star Trek
[10:38] (638.80s)
reference, right? You will be
[10:39] (639.84s)
assimilated. Still around. Still around.
[10:42] (642.96s)
And um Borg was used internal to Google
[10:45] (645.92s)
to manage like their their own clusters,
[10:48] (648.56s)
their own their own microservices. And
[10:51] (651.28s)
somebody decided one day,
[10:54] (654.04s)
oo, this is really good. I think we're
[10:57] (657.64s)
something. We should open source this.
[11:00] (660.72s)
And so they did. And they talked to the
[11:03] (663.44s)
Linux Foundation who stood up the
[11:05] (665.12s)
cloudnative computing foundation as a
[11:07] (667.12s)
directed fund of the LF. And Kubernetes
[11:10] (670.24s)
was the first project donated to the
[11:12] (672.16s)
cloudnative computing foundation. That
[11:13] (673.76s)
was in um July almost 11 years ago. And
[11:17] (677.60s)
the first commit was by Joe Beta. um a
[11:21] (681.12s)
fun fun thing on the name Kubernetes
[11:24] (684.48s)
um it means helmsman in Greek and a
[11:28] (688.72s)
typical uh ship's wheel. Our our logo
[11:32] (692.00s)
has eight spokes, but ours has seven uh
[11:36] (696.24s)
as a reference to seven of nine from
[11:39] (699.84s)
from Star Trek. It's like a nod to to
[11:42] (702.32s)
Bourc, the original name. Yeah. Yeah. Uh
[11:46] (706.08s)
but it uh it took off pretty quickly.
[11:48] (708.32s)
Before that there were other there were
[11:50] (710.00s)
other ways to manage clusters right
[11:51] (711.44s)
there's um mthosphere and there was
[11:53] (713.52s)
docker swarm and a couple of of others
[11:56] (716.00s)
like this was very clearly something
[11:57] (717.52s)
that the market wanted that that
[11:59] (719.84s)
developers needed that uh s sur needed
[12:03] (723.28s)
though we didn't really have s sur as a
[12:05] (725.44s)
term back then back then we we certainly
[12:08] (728.88s)
do now s sur is just like a super fancy
[12:10] (730.96s)
cis admin now but uh yeah it it was born
[12:15] (735.28s)
out of Google um solving their own
[12:17] (737.84s)
problems and going you know what no
[12:21] (741.28s)
people people need this and they they
[12:23] (743.04s)
decided to ship it for free and now
[12:24] (744.88s)
we're the second largest open source
[12:26] (746.64s)
project in the world behind Linux which
[12:30] (750.40s)
we rely on so and and as as as a fun
[12:33] (753.52s)
history I talked with Dave Okconor who
[12:35] (755.68s)
was one of the first SRRES inside of
[12:37] (757.68s)
Google when it was internally called
[12:39] (759.36s)
like that but externally the term wasn't
[12:41] (761.20s)
popular until much later and he he said
[12:43] (763.28s)
this interesting story of how at the
[12:45] (765.60s)
time when he joined Google, they already
[12:48] (768.32s)
were managing thousands or tens of
[12:50] (770.40s)
thousands of servers and the problems
[12:51] (771.76s)
that they were facing is they went to um
[12:54] (774.32s)
like a hosting provider where they
[12:56] (776.24s)
wanted to host their their servers and
[12:58] (778.08s)
they told them how how many they need to
[12:59] (779.76s)
manage and the hosting provider was used
[13:01] (781.36s)
to managing maybe a hundred at max and
[13:03] (783.12s)
it was very manual and then he he said
[13:04] (784.96s)
that they just needed to create the the
[13:07] (787.12s)
processes the tools etc. So my is is it
[13:10] (790.32s)
is it fair that the understanding is
[13:11] (791.60s)
that we had this explosion in in both
[13:13] (793.44s)
physical servers then we had
[13:14] (794.72s)
virtualization virtual servers. Google
[13:17] (797.52s)
figured out how to do it and then they
[13:19] (799.84s)
just turned around and said like okay
[13:21] (801.12s)
let's yeah open it up pretty much. Yeah
[13:24] (804.56s)
that's that's pretty much what happened.
[13:26] (806.88s)
What I mean right now I think it's it's
[13:29] (809.12s)
a really positive thing on Google but
[13:30] (810.72s)
why do you think the motivation might
[13:32] (812.08s)
have been for for Google to it is
[13:34] (814.08s)
amazing that they did it and the
[13:35] (815.76s)
industry has has greatly benefited from
[13:37] (817.28s)
it but they could have just said like
[13:38] (818.80s)
okay let's just keep doing what we're
[13:40] (820.72s)
doing with Borg and not bother too much
[13:43] (823.12s)
because they still have Borg right they
[13:44] (824.64s)
do still have Borg um as far as I know
[13:46] (826.80s)
they still have Borg I haven't asked a
[13:48] (828.48s)
Google engineer about the state of Borg
[13:50] (830.08s)
in a minute they have I recently asked
[13:52] (832.16s)
as far as I know it's still a thing um
[13:53] (833.84s)
do you mean like why didn't they just
[13:55] (835.04s)
like productize Borg and sell it. Uh
[13:58] (838.48s)
either that or or just why did they
[14:00] (840.96s)
think this would benefit uh the the
[14:02] (842.88s)
industry and and maybe also their their
[14:04] (844.64s)
business? Sure. I mean now that we have
[14:07] (847.20s)
Google Cloud, like I I can see how for
[14:09] (849.04s)
example, you know, Kubernetes might have
[14:10] (850.64s)
indirectly helped that, but I'm just
[14:12] (852.56s)
thinking like just from a selfish
[14:14] (854.24s)
perspective, this is a really unselfish
[14:15] (855.68s)
thing from a corporation to do. I'm
[14:18] (858.32s)
trying to understand there's usually a
[14:20] (860.40s)
longer term motivation potentially or or
[14:22] (862.64s)
or maybe it was just engineers being
[14:24] (864.16s)
geeky and and thinking this is really
[14:25] (865.92s)
really helpful. Um I know those
[14:27] (867.68s)
engineers quite well and they are u
[14:30] (870.08s)
massive dweebs and I love them but um
[14:32] (872.64s)
awesome.
[14:34] (874.24s)
So like, yeah, I totally get how people
[14:36] (876.80s)
uh would think that open sourcing
[14:38] (878.48s)
something as successful as Kubernetes um
[14:41] (881.84s)
may not be like a smart business
[14:44] (884.48s)
decision, but look at the sheer amount
[14:48] (888.88s)
of influence Google has gained over the
[14:51] (891.60s)
cloudnative space over that. Um they
[14:54] (894.56s)
still have people, they still have
[14:55] (895.92s)
employees sitting on the technical
[14:57] (897.12s)
oversight committee for the CNCF. They
[14:59] (899.04s)
have Linux Foundation governing board
[15:00] (900.96s)
members. They have CNCF governing board
[15:03] (903.20s)
members. They have people I don't think
[15:04] (904.96s)
they have somebody sitting on Oh, no.
[15:06] (906.64s)
They do have somebody currently sitting
[15:07] (907.92s)
on the Kubernetes steering committee.
[15:09] (909.76s)
They still have a degree of control. Um
[15:12] (912.72s)
the way the way we govern ourselves as a
[15:15] (915.04s)
project um no one company can have more
[15:17] (917.92s)
than two representatives on the steering
[15:19] (919.60s)
committee. So they can't like rest
[15:21] (921.20s)
control of the project from the people
[15:23] (923.72s)
anymore like any any more than AWS or
[15:26] (926.40s)
Microsoft or Red Hat can. But it has
[15:29] (929.36s)
given them a a pretty extreme degree of
[15:32] (932.96s)
of influence. Uh I mean we're we're here
[15:35] (935.20s)
on this podcast talking about the fact
[15:37] (937.60s)
that Google gave us Kubernetes, Google
[15:39] (939.92s)
is directly responsible. That's fair.
[15:42] (942.16s)
I'm I'm trying to understand because I
[15:44] (944.32s)
think it's great that this is happening
[15:45] (945.84s)
and I think the more we understand what
[15:47] (947.36s)
the benefits are and why other companies
[15:49] (949.52s)
potentially should follow. For example,
[15:51] (951.76s)
Spotify did with was with backstage
[15:53] (953.92s)
their their developer portal and what
[15:55] (955.84s)
they told me is they think it will make
[15:58] (958.16s)
it cheaper on the long term for them to
[16:00] (960.32s)
actually maintain themselves because now
[16:01] (961.84s)
they're going to get other developers
[16:03] (963.36s)
from other companies or or independent
[16:05] (965.36s)
engineers bringing the ideas and also
[16:08] (968.24s)
standardization is is is another thing.
[16:10] (970.00s)
So yeah, if your project is good, people
[16:13] (973.60s)
will come contribute to it. Um
[16:15] (975.96s)
I we open source maintainers have mixed
[16:19] (979.04s)
feelings about this but um it is a way
[16:22] (982.08s)
to get free labor right nobody pays me
[16:25] (985.52s)
to maintain Kubernetes it's it's not my
[16:28] (988.96s)
job I don't have a cloud provider
[16:30] (990.32s)
writing me a paycheck for running the
[16:31] (991.84s)
Kubernetes releases um so we we do do
[16:35] (995.44s)
all of this work um for free another
[16:39] (999.20s)
benefit is that open source software is
[16:41] (1001.04s)
inherently more secure than closed
[16:43] (1003.60s)
source proprietary software
[16:45] (1005.20s)
Right. Um that that security angle is
[16:48] (1008.08s)
real hard to argue with. Uh Kubernetes
[16:50] (1010.80s)
just addressed a like a nasty CVE very
[16:53] (1013.84s)
recently in ingress engine X and that
[16:58] (1018.16s)
would be much slower to address on
[17:01] (1021.20s)
proprietary software with a smaller team
[17:03] (1023.92s)
that can't work around the clock. Right?
[17:06] (1026.00s)
You can't force your employees to work
[17:08] (1028.80s)
around the clock if it's a small group
[17:10] (1030.32s)
of people that are all in one time zone.
[17:12] (1032.16s)
an open source project, especially one
[17:14] (1034.08s)
as large as Kubernetes, we can respond
[17:16] (1036.96s)
around the clock, you know, and and how
[17:19] (1039.60s)
how large is Kubernetes both in terms of
[17:22] (1042.16s)
the uh the widespread in in the
[17:24] (1044.72s)
industry, the complexity of the software
[17:26] (1046.40s)
and the the team as as you uh referred
[17:29] (1049.12s)
to um Kubernetes first I I first I think
[17:33] (1053.28s)
I need to explain the different types of
[17:34] (1054.80s)
people involved in uh an open source
[17:37] (1057.44s)
project. Um generally you have users who
[17:39] (1059.76s)
are people who just consume your tool.
[17:42] (1062.08s)
You have contributors who are writing
[17:45] (1065.20s)
code or writing documentation or um in
[17:48] (1068.56s)
the case of the release team doing some
[17:50] (1070.88s)
like project management type of role but
[17:54] (1074.00s)
they don't have any control over the
[17:56] (1076.00s)
future or direction of the project um
[17:59] (1079.12s)
and have like maybe limited permissions
[18:01] (1081.20s)
within repositories or orcs. Uh
[18:04] (1084.04s)
maintainers have titles within a
[18:06] (1086.72s)
project. So, SIGDOC's technical lead,
[18:09] (1089.20s)
release team sub project lead are both
[18:11] (1091.36s)
titles. Um, you exist in an owner's file
[18:14] (1094.00s)
and you have control over governance and
[18:16] (1096.48s)
policy decisions about the project that
[18:19] (1099.04s)
affect everybody. Um, there are a couple
[18:23] (1103.84s)
dozen SIGs within Kubernetes all with um
[18:28] (1108.64s)
two to three chairs and two to four
[18:32] (1112.56s)
technical leads. Uh, those people would
[18:34] (1114.88s)
all be considered maintainers. then sub
[18:37] (1117.92s)
project owners um exist below that
[18:40] (1120.72s)
before you get down to regular
[18:42] (1122.08s)
contributors. So there's there's
[18:43] (1123.56s)
probably it's it's a large project and
[18:46] (1126.00s)
and everybody in SIG leadership is a
[18:48] (1128.08s)
project manager functionally like we're
[18:49] (1129.76s)
all doing administrative work. We're all
[18:52] (1132.24s)
managing people. um were all affecting
[18:55] (1135.44s)
the direction of our various areas of
[18:57] (1137.52s)
the of the Kubernetes project and
[18:59] (1139.52s)
there's
[19:00] (1140.84s)
probably 150 200 people who would be
[19:04] (1144.08s)
classed as maintainers and then uh more
[19:08] (1148.40s)
than a thousand contributors a month. It
[19:10] (1150.72s)
is it is a month a month. Wow. It's it's
[19:13] (1153.36s)
massive. So, so about like a few dozen,
[19:15] (1155.92s)
let's say like 20 to 40 SIG uh leaders,
[19:19] (1159.84s)
about 150 200 maintainers and like a
[19:22] (1162.32s)
little pyramid almost and then the the
[19:24] (1164.88s)
contributors who are I'm assuming
[19:26] (1166.64s)
contributors, some of them will be
[19:28] (1168.16s)
regular, some of them will be just one
[19:29] (1169.52s)
off. Some of them are one-off. Sometimes
[19:30] (1170.88s)
we, you know, we get drive by
[19:32] (1172.32s)
contributions like any other big project
[19:34] (1174.16s)
and some people just stick around as
[19:36] (1176.32s)
contributors. Um, and you you go through
[19:38] (1178.16s)
what we call a contributor ladder. So
[19:40] (1180.40s)
you show up as a contributor at first.
[19:42] (1182.64s)
You work as a contributor for a while in
[19:44] (1184.88s)
whatever area interests you most and if
[19:47] (1187.60s)
you stick around long enough and you
[19:49] (1189.20s)
want it, you'll eventually become a
[19:51] (1191.52s)
maintainer. You'll end up leading a sub
[19:53] (1193.44s)
project or you'll end up as a technical
[19:56] (1196.72s)
lead or a SIG chair. That's that's what
[19:58] (1198.80s)
happened to me. I was on the Kubernetes
[20:01] (1201.52s)
release team for 3 years and then I led
[20:04] (1204.72s)
a release myself. um Kubernetes version
[20:07] (1207.44s)
130 was my release and after that the
[20:10] (1210.88s)
SIG release chairs offered me the sub
[20:14] (1214.56s)
project and now I just keep running them
[20:17] (1217.44s)
and now I'm a maintainer and because I I
[20:19] (1219.68s)
had run the um docs sub team for the
[20:23] (1223.60s)
Kubernetes release a couple of times SIG
[20:25] (1225.68s)
docs asked me to be a technical lead and
[20:27] (1227.76s)
that's just that's how it works anybody
[20:30] (1230.00s)
can show up anybody can open an issue
[20:32] (1232.88s)
anybody can um open a pull request and
[20:37] (1237.68s)
dive in and and help out. You don't even
[20:39] (1239.76s)
really have to be a Kubernetes expert to
[20:42] (1242.00s)
be useful. You just you just have to
[20:43] (1243.84s)
know how software works or know how to
[20:45] (1245.28s)
write documentation or um know how to
[20:47] (1247.84s)
manage a team.
[20:49] (1249.84s)
And then so Kubernetes widespread wise,
[20:53] (1253.44s)
as I understand, most of the large
[20:55] (1255.56s)
infrastructure runs on on Kubernetes. If
[20:58] (1258.08s)
if it's compute, if if it's large, it's
[21:00] (1260.08s)
it's the one that makes most sense. I'm
[21:01] (1261.60s)
not even sure there's a there's a
[21:03] (1263.68s)
competitor that that is open source that
[21:05] (1265.44s)
that is equally capable is there? Well,
[21:08] (1268.96s)
not not that I would say is equally
[21:10] (1270.56s)
capable. Um there are certainly other
[21:12] (1272.88s)
ways to manage clusters. Um Docker Swarm
[21:15] (1275.44s)
is still a thing. Uh MSOS is still a
[21:18] (1278.56s)
thing. But yeah, like your people are
[21:22] (1282.08s)
most commonly using some kind of managed
[21:23] (1283.92s)
Kubernetes service like um anything on
[21:27] (1287.92s)
AWS or GKE, right? or like Azure has
[21:31] (1291.60s)
their own service too. Um pretty sure
[21:33] (1293.68s)
Oracle does, Red Hat certainly does. And
[21:36] (1296.32s)
then there are um flavors of Kubernetes
[21:40] (1300.16s)
like uh VMware's Tanzoo, right? Um and
[21:44] (1304.00s)
so G given that this project is so uh
[21:46] (1306.48s)
successful, how does the the the funding
[21:48] (1308.56s)
work? I'm going to assume that some of
[21:50] (1310.24s)
the contributors as you mentioned are
[21:52] (1312.32s)
actually paid full-time working at
[21:54] (1314.40s)
certain companies who have critical
[21:56] (1316.40s)
infrastructure running on Kubernetes and
[21:58] (1318.56s)
these companies figure well it's cheaper
[22:00] (1320.32s)
for us to pay a contributor to ensure
[22:03] (1323.76s)
that our use cases are are met but for
[22:06] (1326.16s)
example in your case and some of the
[22:07] (1327.60s)
other contributors how how does it make
[22:09] (1329.76s)
sense to spend a considerable amount of
[22:11] (1331.60s)
of your time which you know like we're
[22:13] (1333.68s)
talking about software engineers who are
[22:15] (1335.76s)
highly skilled uh spending here and
[22:18] (1338.08s)
there will be some goodwill. But what
[22:19] (1339.92s)
what are other uh ways that the the
[22:23] (1343.28s)
project remains as sustainable as it is?
[22:26] (1346.04s)
Uh unfortunately for a lot of us um this
[22:29] (1349.68s)
is both our this is a hobby, right? Like
[22:32] (1352.24s)
I I I enjoy it. Um many of my friends
[22:36] (1356.24s)
are other maintainers or other
[22:38] (1358.56s)
contributors. Like some of some of my
[22:40] (1360.40s)
closest friends are also maintainers. I
[22:43] (1363.52s)
flew to New York just to hang out with
[22:45] (1365.20s)
uh two of them a couple weeks ago. No
[22:47] (1367.12s)
reason. not work, just hanging out with
[22:48] (1368.88s)
them. And uh that's that's not too
[22:51] (1371.96s)
terribly uncommon. Like people just
[22:54] (1374.64s)
think it's fun. Um some people also do
[22:57] (1377.76s)
it as a career bump. This is something
[22:59] (1379.76s)
that like the Kubernetes project doesn't
[23:01] (1381.60s)
really love to admit, but we are a very
[23:04] (1384.72s)
very large and very very influential
[23:06] (1386.92s)
project and having it on your resume can
[23:10] (1390.80s)
be a career bump especially for people
[23:12] (1392.48s)
who are fresh out of college or very
[23:14] (1394.32s)
early in their career. which is why
[23:16] (1396.64s)
shadowing on the Kubernetes release team
[23:18] (1398.56s)
is such a popular entry point for
[23:20] (1400.72s)
contributors. We get hundreds of
[23:22] (1402.80s)
applications for the Kubernetes release
[23:24] (1404.64s)
team every cycle and about half of them
[23:27] (1407.04s)
are students. Um and that's that's
[23:29] (1409.84s)
pretty common too. Just just they want
[23:31] (1411.36s)
the they want the career experience.
[23:33] (1413.12s)
That is that is encouraging to hear by
[23:34] (1414.88s)
the way. Yeah. It's a lot of students.
[23:37] (1417.52s)
It is so many students and uh we do we
[23:40] (1420.24s)
do get students onto the team. Um,
[23:42] (1422.40s)
obviously I can't overload the release
[23:44] (1424.24s)
team with people who have no experience,
[23:46] (1426.80s)
but we we try to fit um a handful of
[23:49] (1429.04s)
them in every single cycle. Um, which
[23:51] (1431.36s)
which feels good. It's it's a good entry
[23:53] (1433.12s)
point for people. So, we get to watch
[23:54] (1434.40s)
them grow up through the project until
[23:57] (1437.04s)
ultimately they go get a job and leave
[23:58] (1438.80s)
and we never hear from them again, which
[24:00] (1440.48s)
is fine and doesn't make us feel bad
[24:02] (1442.08s)
because we we really have more
[24:03] (1443.36s)
contributors on the release team side
[24:05] (1445.36s)
than we know what to do with. Um, we we
[24:07] (1447.44s)
cannot have them all on the team every
[24:09] (1449.76s)
cycle. But um as for people who are paid
[24:13] (1453.28s)
for it, that's usually cloud vendors
[24:16] (1456.16s)
actually. Um like the the big clouds pay
[24:20] (1460.24s)
a lot of people just to be contributors
[24:23] (1463.68s)
or just to be maintainers either because
[24:26] (1466.80s)
you know they need something done or
[24:28] (1468.08s)
they want the influence or because they
[24:30] (1470.24s)
want the clout. Um some people get hired
[24:33] (1473.68s)
by some company just because they have a
[24:35] (1475.68s)
maintainer title within the project and
[24:38] (1478.24s)
that's that's it. It's it's purely clout
[24:40] (1480.72s)
and I don't object to that either as
[24:42] (1482.48s)
long as somebody's, you know, getting
[24:44] (1484.40s)
paid to do this instead of doing it for
[24:46] (1486.00s)
free. But the CNCF doesn't pay us. The
[24:48] (1488.56s)
Linux Foundation doesn't pay us. Um, the
[24:51] (1491.12s)
CNCF does pay our infrastructure costs.
[24:53] (1493.76s)
So like we're not starting a GoFundMe or
[24:56] (1496.72s)
putting money out of our own pockets to
[24:58] (1498.40s)
pay for our like testing or whatever.
[25:00] (1500.24s)
The CNCF pays that. That's part of what
[25:02] (1502.32s)
you get when you donate a project to the
[25:04] (1504.56s)
CNCF. they they take on some of your
[25:06] (1506.24s)
infrastructure costs um depending on
[25:08] (1508.16s)
where you are in the like sandbox
[25:10] (1510.40s)
incubating graduated scale but um yeah
[25:14] (1514.48s)
most of us do this for fun which is not
[25:17] (1517.76s)
the most healthy thing in the world and
[25:19] (1519.28s)
you have to set like really really
[25:20] (1520.96s)
really firm boundaries well well yeah
[25:24] (1524.32s)
there there there's that thing that
[25:25] (1525.52s)
comes into mind and also there's this
[25:27] (1527.04s)
famous XKCD comic where where there's
[25:29] (1529.36s)
this big pile of rocks and there's this
[25:31] (1531.36s)
small thing which says someone's side
[25:33] (1533.04s)
project so given how how critical
[25:35] (1535.84s)
Kubernetes is is becoming globally. It's
[25:38] (1538.96s)
it's a I think it's a bit of a mixed
[25:41] (1541.12s)
feelings. On on one end, I think it is
[25:42] (1542.96s)
cool to hear that it sounds like it is a
[25:45] (1545.92s)
very independent project that doesn't
[25:47] (1547.84s)
really have any one vendor uh going over
[25:50] (1550.72s)
it. On the other, there is this downside
[25:53] (1553.84s)
of like, well, you know,
[25:56] (1556.76s)
like yeah, it just just makes feelings.
[25:59] (1559.52s)
It it makes people um it makes me wins
[26:01] (1561.68s)
for small projects. Um but everybody
[26:03] (1563.84s)
starts as a small project and however
[26:05] (1565.52s)
like Kubernetes is so large and so
[26:07] (1567.60s)
influential and we have so much momentum
[26:09] (1569.76s)
that XKCD comic is not going to become a
[26:12] (1572.64s)
problem. U there there is a there is a
[26:15] (1575.12s)
queue of people waiting in the wings who
[26:17] (1577.76s)
would love to replace me and part of our
[26:20] (1580.48s)
we as a project our philosophy is that
[26:22] (1582.72s)
part of our job as maintainers is to be
[26:26] (1586.00s)
looking for somebody to mentor into
[26:28] (1588.40s)
replacing us. Uh we have a lot of
[26:30] (1590.72s)
anti-burnout policies in place. Um
[26:34] (1594.64s)
leading a release like being being the
[26:36] (1596.32s)
actual point person for a release, the
[26:38] (1598.32s)
the person who ultimately reports
[26:39] (1599.84s)
reports to me is a very stressful, very
[26:43] (1603.00s)
public, miserable job to do. It is 14
[26:46] (1606.72s)
weeks of having to manage and un 14
[26:50] (1610.08s)
weeks. That's the release cycle. That's
[26:51] (1611.44s)
the release cycles. Yeah. Like 14 to 16
[26:53] (1613.28s)
weeks. It depends on when it is in the
[26:55] (1615.28s)
year, but 14 to 16 weeks is about how
[26:57] (1617.04s)
long it takes us. And um it's 14 weeks
[27:00] (1620.08s)
of directly managing an unruly group of
[27:03] (1623.48s)
like 30 people who are trying to manage
[27:08] (1628.00s)
interactions with potentially hundreds
[27:10] (1630.56s)
of contributors between them and it
[27:12] (1632.96s)
sucks and by the end of it you are so
[27:14] (1634.64s)
tired. So we don't allow you to be
[27:18] (1638.16s)
involved in the release cycle after you
[27:20] (1640.80s)
lead one. You've got to take got to take
[27:22] (1642.80s)
a cycle off. Um, also SIG releases
[27:26] (1646.00s)
charter dictates that we will delay a
[27:28] (1648.72s)
release. We will push it back before we
[27:31] (1651.20s)
make our team work nights or weekends.
[27:34] (1654.48s)
We're we're never going to ask you to
[27:36] (1656.24s)
work more than you are comfortable
[27:37] (1657.76s)
working. Um, and we're we're very
[27:40] (1660.64s)
supportive of stepping back if you can't
[27:42] (1662.80s)
handle it. It doesn't affect your place
[27:44] (1664.88s)
in the project. You can come back the
[27:46] (1666.40s)
next cycle or whenever you're ready. Um,
[27:49] (1669.12s)
we're very encouraging of of taking
[27:51] (1671.84s)
breaks. So, we don't we don't really
[27:54] (1674.08s)
like to allow the the burnout to build
[27:56] (1676.16s)
up to a point where we might topple over
[27:58] (1678.00s)
like that XKCD comic. Um, we're always
[28:01] (1681.04s)
replacing each other. So, like
[28:02] (1682.72s)
eventually I this part is is just very
[28:05] (1685.76s)
encouraging to hear and this is
[28:06] (1686.96s)
something that I would I would assume
[28:09] (1689.44s)
that a lot of commercial companies like
[28:11] (1691.60s)
a commercial setup would uh let me just
[28:15] (1695.28s)
say hesitate in in in many cases again
[28:18] (1698.16s)
because of that thing. So, so I guess
[28:20] (1700.00s)
maybe we're seeing two parts of it, but
[28:21] (1701.68s)
this is just it it's the first time I'm
[28:23] (1703.84s)
actually hearing for such a large such a
[28:26] (1706.56s)
critical project to actually have it in
[28:28] (1708.40s)
place, which is just music to my ears.
[28:30] (1710.64s)
We're unusually well structured for an
[28:32] (1712.96s)
open source project. Um, we're we're
[28:34] (1714.88s)
unusually well structured for like an
[28:37] (1717.28s)
actual product within a company.
[28:39] (1719.68s)
Actually, we are are very very well
[28:42] (1722.24s)
organized by necessity because we're
[28:44] (1724.80s)
massive and we deal with so many people
[28:46] (1726.64s)
coming in and out constantly. we have no
[28:48] (1728.88s)
choice but to be super super well
[28:50] (1730.96s)
organized.
[28:53] (1733.00s)
So why do you think Kubernetes you you
[28:56] (1736.40s)
you you've you've seen the story mostly
[28:58] (1738.32s)
from the the inside and starting from
[29:00] (1740.24s)
the side. Why do you think Kubernetes
[29:02] (1742.16s)
won so big? Why has it become the de
[29:04] (1744.48s)
facto choice for any from from any
[29:06] (1746.96s)
mediumsiz sometimes even small size
[29:08] (1748.72s)
infrastructure? By the way, I' I've
[29:10] (1750.24s)
talked with Linear and they they chose
[29:11] (1751.92s)
Kubernetes very early on. Apparently, uh
[29:14] (1754.96s)
they they thought, you know, some people
[29:16] (1756.56s)
thought this would be like overkill, but
[29:18] (1758.16s)
it actually turned out to be a great
[29:19] (1759.68s)
decision for them. Yeah. H why do you
[29:23] (1763.20s)
think this project specifically won?
[29:25] (1765.20s)
What did Kubernetes do so well? Um I
[29:27] (1767.92s)
think we we caught on early because of
[29:30] (1770.08s)
because of hype, right? uh because of
[29:33] (1773.20s)
the Google name brand behind us and the
[29:36] (1776.40s)
association with Docker which was
[29:38] (1778.40s)
already very popular. um it was a
[29:40] (1780.40s)
familiar company donating a project that
[29:43] (1783.36s)
relied on a tool many were already
[29:45] (1785.84s)
familiar with and that got us initial
[29:48] (1788.24s)
like hype cycle right uh but then I'm
[29:51] (1791.28s)
going to toot my own horn and say that
[29:54] (1794.32s)
the continued popularity of Kubernetes
[29:56] (1796.96s)
is at least in part due to our truly
[30:00] (1800.16s)
exceptional documentation. If Kubernetes
[30:02] (1802.96s)
does something that you can touch as a
[30:05] (1805.28s)
user um as a cluster admin, we have
[30:08] (1808.08s)
documented it. Um Kubernetes uses
[30:10] (1810.72s)
something in the release cycle called um
[30:12] (1812.64s)
a Kubernetes enhancement proposal, a ke.
[30:15] (1815.12s)
Uh this was inspired by Python's PEPs,
[30:17] (1817.60s)
right? And one of the things we require
[30:20] (1820.24s)
for a kept to be considered complete and
[30:22] (1822.72s)
thus uh includable in a particular
[30:25] (1825.20s)
release is that if it has a userfacing
[30:27] (1827.68s)
change at all even if it's just a
[30:29] (1829.84s)
feature flag it must be documented or we
[30:32] (1832.96s)
do not allow it in the release. Uh today
[30:35] (1835.12s)
as we're recording this is actually the
[30:37] (1837.60s)
docs freeze for Kubernetes version 1.33.
[30:40] (1840.72s)
So today a lot of cap owners will either
[30:43] (1843.60s)
merge documentation or I will revert
[30:46] (1846.56s)
their PRs. Wow. That that that that that
[30:50] (1850.72s)
sounds like tyranny. It's does it does
[30:53] (1853.92s)
it you're never you're never left
[30:55] (1855.52s)
digging through Kubernetes code to
[30:57] (1857.20s)
figure out like what what this is. It
[31:00] (1860.00s)
sounds amazing as a user and as a
[31:02] (1862.24s)
developer. I'm cringing you know as a
[31:04] (1864.24s)
dev like like you really just don't want
[31:06] (1866.96s)
there's so many excuses we make up for
[31:08] (1868.72s)
not writing documents. the code will
[31:10] (1870.72s)
document itself if it's in
[31:12] (1872.00s)
documentation. It's not written, etc.
[31:14] (1874.88s)
No, I I'm I'm really impressed. Yeah, I
[31:17] (1877.36s)
I know the devs hate it. I know. But um
[31:20] (1880.64s)
our priority isn't making the devs
[31:23] (1883.68s)
happy. It's building a usable,
[31:27] (1887.20s)
sustainable project that people want to
[31:30] (1890.40s)
keep using. That means we got to
[31:32] (1892.16s)
document that. Um I hated writing docs
[31:34] (1894.72s)
when I was an engineer, too. I did. Um,
[31:37] (1897.28s)
I've I've slung some truly horrendous
[31:39] (1899.76s)
code that was entirely undocumented and
[31:42] (1902.56s)
I myself looking at it probably could
[31:44] (1904.56s)
not tell you what on earth it's doing.
[31:47] (1907.12s)
Um, so we we can't have that in a
[31:49] (1909.28s)
project this large, you know. Um, yeah.
[31:51] (1911.52s)
And and the project this complex, right?
[31:53] (1913.44s)
Like so so it it sounds like you're
[31:54] (1914.88s)
managing to balance because what I
[31:56] (1916.24s)
understand is Kubernetes is just become
[31:58] (1918.00s)
more and more complex as there's it
[31:59] (1919.92s)
does. you know, you you can tell me more
[32:01] (1921.28s)
about it. But there's going to be more
[32:02] (1922.48s)
more edge cases, more hardware, more
[32:04] (1924.16s)
setup, more more exotic this and that,
[32:07] (1927.04s)
but when you when you have proper
[32:08] (1928.80s)
documentation, at least that helps with
[32:10] (1930.48s)
it. If if you don't have it, there's no
[32:11] (1931.92s)
chance. Yeah, there's no there's
[32:13] (1933.36s)
absolutely no chance. And so that has
[32:15] (1935.12s)
gotten us over the hump of Kubernetes is
[32:17] (1937.60s)
hard to use. It is hard to use. Um it's
[32:19] (1939.92s)
hard to learn, but it could be so much
[32:21] (1941.92s)
worse. and the the availability of good
[32:24] (1944.96s)
documentation is I give a lot of of
[32:29] (1949.12s)
credit to that. Um also like GKE has
[32:32] (1952.08s)
really great tutorials for learning
[32:34] (1954.64s)
Kubernetes. I GK is Google Kubernetes
[32:36] (1956.88s)
Engine is their hosted solution. Yeah,
[32:38] (1958.88s)
it's their hosted solution and they they
[32:40] (1960.88s)
absolutely have the most like
[32:42] (1962.60s)
featurerich Kubernetes hosted um option
[32:45] (1965.76s)
by virtue of having had like several
[32:48] (1968.00s)
years of a head start on that. Um, but
[32:51] (1971.20s)
yeah, their their tutorials, they're
[32:52] (1972.72s)
just like how to learn Kubernetes are
[32:54] (1974.88s)
are actually quite good for like just
[32:57] (1977.12s)
getting your dipping your toes in the
[32:58] (1978.72s)
water. Um, and our own documentation,
[33:02] (1982.32s)
our own quick start guides. And that's
[33:04] (1984.00s)
another benefit also of being an open-
[33:05] (1985.92s)
source project. Like just like an open
[33:08] (1988.00s)
source project, the software is more
[33:09] (1989.44s)
secure. Our documentation can be better.
[33:11] (1991.60s)
We have a small army of people
[33:14] (1994.24s)
contributing to it and improving our
[33:16] (1996.28s)
documentation on a constant basis. So we
[33:20] (2000.32s)
we don't really um Yeah. And I guess I
[33:23] (2003.20s)
I'm not sure if this applies. Correct me
[33:24] (2004.88s)
if I'm not, but a lot of open source
[33:26] (2006.64s)
projects say like look, if you want to
[33:28] (2008.72s)
start contributing and you're you're not
[33:30] (2010.64s)
sure just yet, you can always just start
[33:32] (2012.24s)
with the documentation, right? Like it's
[33:34] (2014.72s)
it's an incredible which is win-win.
[33:36] (2016.88s)
Yeah. Docs are like a t pretty typical
[33:38] (2018.96s)
entry point for people who are like
[33:40] (2020.80s)
nervous about contributing to open
[33:42] (2022.24s)
source for the first time, which is a
[33:43] (2023.84s)
fear I absolutely get. I was terrified
[33:45] (2025.60s)
the first time I opened a PR in a
[33:47] (2027.92s)
Kubernetes repo. Um, it's it's
[33:51] (2031.12s)
nerve-wracking, especially if you're
[33:52] (2032.64s)
super early in your career. You know
[33:54] (2034.16s)
that you've got all of these people with
[33:55] (2035.36s)
way more experience than you like laser
[33:57] (2037.92s)
focused on what you just did and like
[33:59] (2039.92s)
did you apply a label incorrectly. Are
[34:01] (2041.84s)
you going to get chewed out for that?
[34:03] (2043.60s)
Um, but yeah, docs are an easier entry
[34:06] (2046.48s)
point for that. It feels like a little
[34:07] (2047.84s)
bit less pressure and that's pretty
[34:09] (2049.60s)
common across open source projects, not
[34:11] (2051.76s)
just Kubernetes. Um the unique thing
[34:14] (2054.16s)
about Kubernetes and getting started is
[34:16] (2056.56s)
the release team. We will let absolutely
[34:19] (2059.12s)
anybody apply to be on the release team
[34:23] (2063.04s)
and it's you know 20 25 spots uh every
[34:28] (2068.32s)
cycle three times a year. So it's it's
[34:31] (2071.20s)
pretty competitive but we will we will
[34:33] (2073.12s)
let absolutely anybody apply. You don't
[34:35] (2075.76s)
even you don't have to have contributed
[34:37] (2077.20s)
to Kubernetes at all before. Every cycle
[34:39] (2079.60s)
I've got to add two or three people to
[34:41] (2081.84s)
the org because they've never
[34:43] (2083.36s)
contributed before. Like this is their
[34:45] (2085.12s)
first and but but just just to
[34:46] (2086.80s)
emphasize, do I understand correctly?
[34:48] (2088.88s)
For example, we we recently had an
[34:50] (2090.40s)
episode with with Linux where in order
[34:52] (2092.48s)
for you to become a well to to lead or
[34:54] (2094.80s)
release it, you will you will need to
[34:56] (2096.88s)
put in many many years outstanding
[34:59] (2099.04s)
contributions and so on and there's no
[35:00] (2100.72s)
guarantee of of doing so. Correct. But
[35:02] (2102.64s)
for for other open source project it is
[35:04] (2104.32s)
also common to have this kind of tenure
[35:06] (2106.16s)
based thing because what you've said
[35:08] (2108.56s)
I've not heard it and any other projects
[35:11] (2111.36s)
say like we will actually open up the
[35:13] (2113.28s)
spots and and you can apply
[35:15] (2115.96s)
and taking on people with little tonal
[35:18] (2118.40s)
experience sounds like an approach I've
[35:20] (2120.80s)
just not heard before. Yeah the uh the
[35:23] (2123.28s)
application process we have and the way
[35:25] (2125.04s)
the release team works is unusual for an
[35:27] (2127.44s)
open source project. Um no tell me more.
[35:29] (2129.68s)
So so we we talk about that a lot. Um I
[35:32] (2132.48s)
will absolutely talk about the structure
[35:34] (2134.00s)
of the release team. So um the
[35:36] (2136.00s)
Kubernetes release team has two halves.
[35:37] (2137.92s)
There's the release team which I manage
[35:40] (2140.48s)
and release engineering. Um release
[35:43] (2143.04s)
engineering is doing the actual cutting
[35:45] (2145.60s)
of the releases. But the part of the
[35:48] (2148.80s)
team I manage is made up of several sub
[35:51] (2151.84s)
teams and a release lead. Um the sub
[35:54] (2154.56s)
teams are communications which is
[35:56] (2156.72s)
responsible for handling things like
[35:58] (2158.88s)
feature blogs. So that's working with uh
[36:01] (2161.76s)
cap owners or SIG leads to make sure
[36:04] (2164.00s)
that a particularly interesting feature
[36:06] (2166.08s)
that will make it into that release has
[36:08] (2168.16s)
a blog that goes out on the Kubernetes
[36:11] (2171.20s)
blog on a certain schedule. Oh, nice.
[36:13] (2173.28s)
Yeah, it's very cool. Um we we usually
[36:15] (2175.44s)
have like between 8 to 12 every cycle
[36:17] (2177.52s)
that end up um and release coms does not
[36:20] (2180.24s)
write that blog. They're just
[36:21] (2181.36s)
responsible for managing that it
[36:23] (2183.20s)
happens. Uh they're also responsible for
[36:25] (2185.92s)
managing interactions with the
[36:27] (2187.76s)
cloudnative computing foundation to
[36:29] (2189.44s)
schedule the release webinar and with
[36:31] (2191.36s)
the media to handle the webinar. Yeah,
[36:35] (2195.04s)
we have a we have a release webinar. Um
[36:36] (2196.48s)
we also have to manage uh the media to
[36:38] (2198.80s)
deal with press embargos and schedule
[36:41] (2201.04s)
media interviews for the release lead
[36:42] (2202.80s)
and anybody else on the release. This
[36:45] (2205.44s)
sounds like a publicly traded company
[36:46] (2206.88s)
doing its earnings call. It does,
[36:48] (2208.72s)
doesn't it? Um we also have release I'm
[36:51] (2211.76s)
so impressed. Yeah, it's it's a lot. Um,
[36:54] (2214.40s)
release docs manages making sure that
[36:56] (2216.64s)
every one of those kepts that has
[36:58] (2218.72s)
userfacing changes has documentation by
[37:01] (2221.36s)
its deadline. Uh, enhancements manages
[37:04] (2224.96s)
all of those kepts and makes sure that
[37:07] (2227.76s)
they uh have met all of the
[37:09] (2229.44s)
requirements, the the check boxes in the
[37:11] (2231.04s)
ke, which is like has the lead opted in?
[37:13] (2233.84s)
Um, is your code complete? Is it tested?
[37:16] (2236.72s)
Uh, did you get a production readiness
[37:18] (2238.56s)
review? That kind of thing. and um
[37:22] (2242.16s)
release signal which is responsible for
[37:24] (2244.96s)
watching our CI signal boards and
[37:28] (2248.00s)
chasing down SIGs and cap owners to
[37:30] (2250.08s)
squash bugs to make sure that we don't
[37:31] (2251.84s)
have like a master blocking test failing
[37:34] (2254.08s)
right before we cut like beta 2, right?
[37:36] (2256.96s)
Um they're also responsible for the go
[37:38] (2258.64s)
no-go signal on whether or not we can
[37:40] (2260.80s)
cut a release. And this
[37:44] (2264.76s)
requires 20 to 30 people every single
[37:48] (2268.48s)
cycle. five of them are leads and are
[37:50] (2270.48s)
selected. Um then the rest are shadows
[37:54] (2274.56s)
that are go through the application
[37:56] (2276.72s)
process and and get pulled in. That is
[37:58] (2278.96s)
unusual. Most open source projects do
[38:01] (2281.12s)
not operate that way. Um most open
[38:03] (2283.52s)
source projects I think don't need to.
[38:05] (2285.52s)
That's a consequence of the fact that
[38:06] (2286.96s)
the the project is so large and we have
[38:08] (2288.96s)
so many contributors. We couldn't manage
[38:11] (2291.44s)
this with a consistent group of like 5
[38:14] (2294.88s)
to 10 people without catastrophically
[38:17] (2297.04s)
burning them all out. um we we just
[38:19] (2299.36s)
simply couldn't do it. Um and even with
[38:22] (2302.16s)
the rotating cast, the release team can
[38:25] (2305.12s)
be a burnout factory because it's so
[38:27] (2307.28s)
much people management, it's so much
[38:28] (2308.64s)
project management, it's so much arguing
[38:30] (2310.88s)
with people and juggling like maybe
[38:32] (2312.96s)
conflicting priorities between teams. Um
[38:35] (2315.92s)
so we don't we don't like people to stay
[38:37] (2317.52s)
on the release team for too long. We
[38:39] (2319.52s)
want to see you move up through the
[38:40] (2320.64s)
ranks a little, maybe lead a sub team
[38:42] (2322.56s)
and then leave, find somewhere else in
[38:44] (2324.40s)
the project to go because if you stick
[38:46] (2326.24s)
around, you you will burn out, right? I
[38:50] (2330.32s)
did not obviously, which is why they
[38:51] (2331.76s)
gave me the the bigger hat. It it it is
[38:53] (2333.76s)
very interesting for me to reflect on
[38:56] (2336.00s)
how much project management and just how
[38:58] (2338.24s)
much like work management is happening
[38:59] (2339.76s)
within Kubernetes where whereas when we
[39:01] (2341.84s)
did the deep dive with the Linux kernel,
[39:04] (2344.08s)
it was a bit of the opposite. But again,
[39:05] (2345.84s)
it was pretty clear there that in the in
[39:07] (2347.76s)
case of Linux kernel, a lot of this work
[39:09] (2349.84s)
that that you're you're mentioning is
[39:11] (2351.28s)
happening at the actual releases. Let's
[39:13] (2353.04s)
say, you know, like Red Hat and whoever
[39:15] (2355.52s)
picks picks it up. But I think it's just
[39:17] (2357.44s)
a good reminder of like this this work
[39:19] (2359.60s)
for for any large project. It's there.
[39:21] (2361.68s)
You could kind of shift it here and
[39:23] (2363.52s)
there and and you you can you can play
[39:25] (2365.52s)
with it, but it has to happen. like it
[39:28] (2368.24s)
would never no project with more than
[39:30] (2370.64s)
like two people contributing to it is
[39:33] (2373.84s)
getting by without some kind of project
[39:35] (2375.44s)
management work. It's just that we don't
[39:36] (2376.88s)
have the title project manager. All
[39:39] (2379.20s)
maintainers are project managers to some
[39:41] (2381.28s)
degree like we we all have some um
[39:44] (2384.32s)
administrative or like um governance
[39:48] (2388.24s)
policy uh position within the project.
[39:51] (2391.20s)
It's it is project management if you are
[39:53] (2393.12s)
a maintainer. We just we just don't call
[39:54] (2394.80s)
them that. Yeah. Um, so like the Linux
[39:57] (2397.68s)
kernel has them too. Like somebody is
[39:59] (2399.28s)
doing that work. They're just not
[40:01] (2401.20s)
they're just not they don't like they
[40:03] (2403.36s)
don't like that word. I think that was
[40:05] (2405.36s)
my sense. Yeah, they don't I think a lot
[40:07] (2407.44s)
of um a lot of engineers are resistant
[40:10] (2410.64s)
to doing work that uh they don't they
[40:12] (2412.72s)
don't consider real engineering, you
[40:15] (2415.12s)
know. Um yeah but we're kind of seeing
[40:18] (2418.08s)
this by the way like now you know like
[40:20] (2420.64s)
software engineers like we don't like to
[40:22] (2422.24s)
say that we do product work but now
[40:24] (2424.08s)
product engineer is becoming a thing
[40:26] (2426.00s)
which is a software engineer who who
[40:27] (2427.92s)
will talk with customers as well and who
[40:29] (2429.92s)
and you know same same thing I think
[40:31] (2431.84s)
there used to be a time not not these
[40:33] (2433.68s)
days but maybe 10 or 15 years ago
[40:35] (2435.68s)
testing was we had dedicated you know
[40:38] (2438.40s)
testers or tests or whoever and then
[40:40] (2440.40s)
engineers wouldn't engineers wouldn't or
[40:43] (2443.28s)
would object to do testing but but you
[40:45] (2445.20s)
know, we would write unit tests and then
[40:46] (2446.96s)
integration and auto and and there this
[40:48] (2448.96s)
merge. So I think there's clearly a play
[40:51] (2451.36s)
course and what I'm personally seeing is
[40:53] (2453.80s)
is a a competent tech tech professional
[40:57] (2457.04s)
may that be a software engineer or or
[40:59] (2459.12s)
someone who is who's elsewhere will just
[41:01] (2461.20s)
take on more and more responsibilities.
[41:02] (2462.96s)
A great product manager these days will
[41:05] (2465.04s)
know how or will understand code. they
[41:06] (2466.80s)
they might not code by by choice and not
[41:09] (2469.92s)
same same thing but even just talking
[41:11] (2471.76s)
with you you you've been a software
[41:13] (2473.36s)
engineer you've actually built like
[41:14] (2474.56s)
critical infrastructure and now you're
[41:16] (2476.72s)
you you're doing something where we're
[41:18] (2478.40s)
doing less of that but it yeah I haven't
[41:20] (2480.24s)
written a line of code in months I don't
[41:22] (2482.56s)
have a reason to
[41:24] (2484.56s)
you could if if you wanted to or if you
[41:26] (2486.40s)
needed to if I wanted to yeah like for
[41:28] (2488.08s)
fun sometimes like I'll do some hobby
[41:29] (2489.68s)
projects at home or whatever but I don't
[41:32] (2492.16s)
have a reason to write code I used to be
[41:33] (2493.60s)
an engineer I can read and understand it
[41:35] (2495.76s)
just fine can write it if I need to. Um,
[41:38] (2498.24s)
but it's not it's not part of my job
[41:39] (2499.68s)
anymore. And like we you see this within
[41:42] (2502.96s)
engineering at real companies, right?
[41:44] (2504.72s)
The more senior your engineering title
[41:46] (2506.40s)
is, the less code writing you're
[41:48] (2508.48s)
actually doing. A principal engineer
[41:50] (2510.24s)
should not have their fingers in the
[41:52] (2512.24s)
code nearly as much as somebody who's
[41:55] (2515.28s)
like an an SD2, right? like they they
[41:58] (2518.88s)
don't they're making architectural
[42:00] (2520.64s)
decisions about the product or they're
[42:04] (2524.48s)
mentoring juniors. So like same deal
[42:08] (2528.16s)
within an open source project. I'm the
[42:11] (2531.04s)
open- source project equivalent of a
[42:13] (2533.12s)
principal engineer. I don't write code
[42:14] (2534.72s)
anymore. I make decisions about how we
[42:16] (2536.16s)
get this thing out the door. This
[42:17] (2537.76s)
episode is brought to you by
[42:19] (2539.32s)
cortex.io. Still tracking your services
[42:21] (2541.44s)
and production readiness in a
[42:22] (2542.64s)
spreadsheet. Real Microser is named
[42:24] (2544.72s)
after TV show characters. You aren't
[42:27] (2547.04s)
alone. Being woken up at 3:00 a.m. for
[42:29] (2549.36s)
an incident and trying to figure out who
[42:30] (2550.80s)
owns what service, that's no fun. Cortex
[42:33] (2553.84s)
is the internal developer portal that
[42:35] (2555.36s)
solves service ownership and accelerates
[42:37] (2557.20s)
the path to engineering excellence
[42:39] (2559.20s)
within minutes. Determine who owns each
[42:41] (2561.20s)
service with Cortex's AI service
[42:42] (2562.88s)
ownership model, even across thousands
[42:45] (2565.80s)
repositories. Clear ownership means
[42:47] (2567.76s)
faster migrations, quicker resolutions
[42:49] (2569.68s)
to critical issues like lock forj and
[42:51] (2571.84s)
fewer adhere pings during incidents.
[42:54] (2574.80s)
Cortex is trusted by leading engineering
[42:56] (2576.72s)
organizations like Affirm, Trip Advisor,
[42:58] (2578.72s)
Grammarly, and Sofi. Solve service
[43:01] (2581.20s)
ownership and unlock your team's full
[43:02] (2582.88s)
potential with Cortex. Visit
[43:05] (2585.80s)
cortex.io/pragmatic to learn more. That
[43:08] (2588.24s)
is cotx.io/pragmatic.
[43:12] (2592.40s)
Yeah, I we we used to have a joke
[43:14] (2594.88s)
internally with within I think my team
[43:16] (2596.96s)
or my broader team back when I was a
[43:18] (2598.48s)
Uber of it just went around. What's the
[43:20] (2600.96s)
difference between uh a junior or an
[43:24] (2604.00s)
entry- level engineer, a senior engineer
[43:26] (2606.16s)
and a staff engineer? It's like you get
[43:27] (2607.68s)
a code review, entry- level engineer
[43:29] (2609.60s)
comes in and says, "Oh, you know, the
[43:32] (2612.48s)
order is not alphabeticized as per our
[43:34] (2614.72s)
our our rules like we should change the
[43:37] (2617.04s)
order of the variables." Senior engineer
[43:39] (2619.28s)
goes in and and and on the same color
[43:41] (2621.28s)
line leaves the comment actually we
[43:43] (2623.44s)
should probably move this out into its
[43:45] (2625.52s)
own class uh because it should be
[43:47] (2627.92s)
encapsulated. the staff engineering
[43:49] (2629.68s)
comes in. Why are we even doing this?
[43:52] (2632.24s)
There's a service that does exactly this
[43:54] (2634.08s)
thing. You should be using that one.
[43:55] (2635.44s)
Yeah. Don't re don't reinvent the wheel.
[43:57] (2637.28s)
and and and it and you know the thing
[43:59] (2639.28s)
goes back to that the earlier career you
[44:02] (2642.00s)
should you should focus on the code for
[44:04] (2644.16s)
sure but but after a while you need to
[44:05] (2645.60s)
see the bigger pictures and I often saw
[44:07] (2647.68s)
some of the most impactful engineers on
[44:10] (2650.00s)
my team uh in a given let's say quarter
[44:12] (2652.56s)
if I had to use the business value they
[44:14] (2654.00s)
did it not by writing code sometimes by
[44:15] (2655.60s)
deleting code or sometimes pointing out
[44:17] (2657.36s)
the work we should just avoid by I don't
[44:20] (2660.24s)
know like merging with something or just
[44:22] (2662.48s)
saying no pushing back on product etc
[44:24] (2664.56s)
etc etc yeah no it's skill for sure.
[44:28] (2668.08s)
Yeah, but you need it's a baseline,
[44:29] (2669.60s)
right? Like you need to know that, but
[44:30] (2670.80s)
there's a lot more afterwards. So in in
[44:34] (2674.16s)
in in Kubernetes, if if if I'm a a
[44:38] (2678.16s)
software or contributor who has an idea,
[44:41] (2681.52s)
contributing some code, what does that
[44:43] (2683.44s)
look in terms of release? How will it
[44:45] (2685.12s)
eventually get uh released? That's one
[44:48] (2688.32s)
part of my question. And the other other
[44:49] (2689.60s)
part is is does Kubernetes work in in a
[44:53] (2693.12s)
similar way to some other open source
[44:54] (2694.48s)
project where you kind of open up and
[44:55] (2695.84s)
you depend on what contributions are or
[44:58] (2698.00s)
do you have a road map saying hey we'd
[45:00] (2700.24s)
like to encourage people to build this
[45:02] (2702.88s)
functionality or or solve for this
[45:04] (2704.64s)
problem. Yeah. Yeah. So, Kubernetes uh
[45:06] (2706.96s)
like I mentioned earlier has a process
[45:08] (2708.64s)
called a ke um Kubernetes enhancement
[45:12] (2712.00s)
proposal. And if there is a feature that
[45:14] (2714.08s)
you want within Kubernetes um you go
[45:17] (2717.52s)
open a cap. Uh it's just just an issue
[45:20] (2720.88s)
in the Kubernetes enhancements proposal
[45:22] (2722.96s)
or enhancements repo and uh there's
[45:25] (2725.60s)
there's a template for it. You go open
[45:27] (2727.36s)
your cap and then a discussion will
[45:29] (2729.28s)
ensue with whatever SIG owns that. So um
[45:32] (2732.72s)
if it is something within um I don't
[45:36] (2736.80s)
know it's a if if it's a storage thing
[45:39] (2739.44s)
SIG storage will own that cap and they
[45:42] (2742.56s)
will come weigh in and we'll have a
[45:43] (2743.84s)
discussion about whether or not this is
[45:45] (2745.68s)
actually uh useful whether or not this
[45:48] (2748.16s)
is viable um whether or not we have the
[45:50] (2750.88s)
resources to like try to get this done
[45:52] (2752.96s)
right now which is going to depend on
[45:54] (2754.40s)
other contributors looking at your
[45:55] (2755.76s)
proposal and going oo yeah I would like
[45:57] (2757.76s)
to work on that and and when you say
[45:59] (2759.68s)
discussion is it email Is it async? Is
[46:02] (2762.48s)
it actually like video call? Uh it so
[46:06] (2766.16s)
because we're an open source project, we
[46:07] (2767.68s)
prefer to do everything in public in a
[46:09] (2769.92s)
place where everybody can see it. So
[46:11] (2771.84s)
that discussion will happen on the
[46:13] (2773.36s)
GitHub issue or in Slack uh in a public
[46:16] (2776.56s)
channel. We very much discourage things
[46:18] (2778.80s)
from happening behind closed doors
[46:20] (2780.80s)
unless it's very sensitive like
[46:23] (2783.04s)
extremely sensitive in a security type
[46:25] (2785.52s)
of way or uh it could like negatively
[46:28] (2788.24s)
impact somebody's career. So like code
[46:30] (2790.08s)
of conduct stuff is always handled
[46:31] (2791.68s)
behind closed doors. Um but discussions
[46:34] (2794.24s)
about features that is all very public
[46:36] (2796.32s)
GitHub issue or the slack channel for
[46:39] (2799.60s)
for instance sig storage. Um if the uh
[46:44] (2804.00s)
decision is yeah we would like to do
[46:45] (2805.84s)
this then work begins. Um your SIG lead
[46:50] (2810.80s)
will need to opt in. It's just adding a
[46:53] (2813.68s)
label um sig lead opt in to the cap and
[46:56] (2816.64s)
that tracks it for inclusion in a
[46:59] (2819.36s)
release at which point you have a whole
[47:00] (2820.96s)
bunch of deadlines that you have to hit.
[47:04] (2824.08s)
Um code freeze is the big one obviously
[47:06] (2826.88s)
that's is your code in then if it needs
[47:10] (2830.72s)
documentation or whatever there's
[47:13] (2833.36s)
documentation freeze there's test freeze
[47:16] (2836.16s)
these deadlines all exist across the
[47:18] (2838.48s)
span of 14 weeks and if you hit all of
[47:21] (2841.52s)
those marks your feature is included in
[47:24] (2844.56s)
the release uh as an alpha at first um
[47:27] (2847.76s)
we do allow iterative stages so you
[47:30] (2850.00s)
don't have to get like the whole thing
[47:32] (2852.88s)
MVP out the door with your first alpha,
[47:35] (2855.28s)
you can have an alpha, too. Um, alpha
[47:38] (2858.08s)
features are off by default, but can be
[47:40] (2860.40s)
turned on with a feature flag. Uh, once
[47:43] (2863.12s)
you meet certain requirements to
[47:45] (2865.04s)
graduate your feature to beta, like
[47:46] (2866.88s)
you're you're expecting mineral minimal
[47:48] (2868.64s)
architectural changes to the way it
[47:50] (2870.24s)
functions and interacts with the rest of
[47:51] (2871.68s)
Kubernetes, um, we'll graduate you to
[47:53] (2873.92s)
beta and you are on by default, but can
[47:57] (2877.28s)
be turned off with a feature flag. Um
[48:00] (2880.16s)
once it's very stable, very usable and
[48:03] (2883.12s)
you feel like you're ready to go GA, we
[48:06] (2886.00s)
gradually general availability, right?
[48:07] (2887.84s)
Yeah. Yeah. We move it to GA in the next
[48:10] (2890.00s)
release and it is on by default and
[48:12] (2892.24s)
cannot be disabled. And then by that
[48:14] (2894.80s)
time feature flag is removed, right?
[48:16] (2896.32s)
Yeah. There's no feature flag at that
[48:17] (2897.60s)
point. And how at any given point in
[48:20] (2900.72s)
time roughly how many feature flags does
[48:22] (2902.48s)
Kubernetes have? Is it going to be in
[48:24] (2904.08s)
the it's going to be in the hundreds or
[48:25] (2905.68s)
thousands?
[48:26] (2906.92s)
Um, at minimum dozens I can go look. Um,
[48:31] (2911.68s)
let me share my screen and I will show
[48:33] (2913.28s)
you all of the feature gates we have.
[48:35] (2915.44s)
Love it.
[48:37] (2917.28s)
This is what I love about open source.
[48:38] (2918.96s)
You couldn't do this with commercial
[48:41] (2921.36s)
closed software. No, not at all. Um, so
[48:44] (2924.32s)
all of our feature gates are documented.
[48:46] (2926.00s)
This is usually all the documentation
[48:48] (2928.08s)
that an alpha requires cuz it's just
[48:50] (2930.32s)
like turning a thing off or on. Um uh
[48:53] (2933.76s)
you can you can see here what the
[48:55] (2935.60s)
default is. So whether it's functional
[48:58] (2938.00s)
whether it's alpha or beta uh when it
[49:00] (2940.08s)
was introduced and uh until when um some
[49:04] (2944.72s)
of these are you know deprecated and
[49:07] (2947.04s)
will be removed in the future. Some of
[49:08] (2948.64s)
them uh haven't been graduated since
[49:12] (2952.16s)
then but there are
[49:14] (2954.96s)
uh quite a lot. It doesn't look like
[49:16] (2956.88s)
hundreds but well it it looks several
[49:20] (2960.16s)
dozens. It it looks wow. And so so those
[49:23] (2963.52s)
are all features that are that are big
[49:26] (2966.32s)
enough to eventually some of them will
[49:28] (2968.96s)
graduate. Uh well hopefully most of them
[49:30] (2970.96s)
will graduate eventually. Yep. And these
[49:33] (2973.52s)
are all graduated or deprecated and will
[49:36] (2976.00s)
be removed at some point. Um yeah. So
[49:39] (2979.92s)
it's it's quite a lot. Uh we talk about
[49:42] (2982.16s)
what the feature stages mean here. Like
[49:44] (2984.40s)
really every every aspect of this
[49:46] (2986.64s)
project is is so well documented. Even
[49:48] (2988.72s)
the way the release team runs the way
[49:50] (2990.80s)
the the project is governed is all
[49:52] (2992.96s)
documented. We don't um keep anything as
[49:55] (2995.76s)
like tribal knowledge. Uh we we all we
[50:00] (3000.00s)
write everything down so that there's no
[50:02] (3002.16s)
arguing about it. But yeah, there's
[50:04] (3004.40s)
there's a ton of them. And and also you
[50:07] (3007.52s)
documenting this much, it just gives me
[50:09] (3009.12s)
the idea that if anyone wants to get a,
[50:12] (3012.24s)
you know, a bit of a a cheat of of like
[50:15] (3015.60s)
how a well-run project this size for
[50:19] (3019.04s)
forever inspiration. Yeah, you can you
[50:20] (3020.80s)
can just check it out. You can you can
[50:22] (3022.08s)
rip rip off the ideas that make sense
[50:24] (3024.72s)
and also you can adjust it for for your
[50:26] (3026.48s)
size or or for again you can experiment,
[50:29] (3029.12s)
right? I I I feel you always want to
[50:30] (3030.56s)
experiment but getting inspiration of
[50:32] (3032.08s)
something that works is a good starting
[50:33] (3033.36s)
point. Yeah, please do. I mean and and
[50:35] (3035.04s)
just like you know not not all products
[50:37] (3037.68s)
not all applications need to run on
[50:39] (3039.52s)
Kubernetes at first that that can very
[50:41] (3041.92s)
much be overkill um from an
[50:44] (3044.00s)
infrastructure standpoint not all open
[50:45] (3045.84s)
source projects need to be run like
[50:47] (3047.44s)
Kubernetes to begin with like there
[50:49] (3049.20s)
there are some things that are just like
[50:50] (3050.80s)
good practice that you should ingrain
[50:52] (3052.40s)
from the very beginning like if it's a
[50:53] (3053.92s)
userf facing change it needs
[50:55] (3055.40s)
documentation but you don't need like a
[50:57] (3057.60s)
structured release team the way we have
[51:00] (3060.80s)
it for your fourerson open source
[51:04] (3064.40s)
project that is releasing like one minor
[51:08] (3068.16s)
update a year, that's that's unnecessary
[51:10] (3070.40s)
and you've got like a couple dozen
[51:11] (3071.76s)
users, but for something the size of
[51:13] (3073.92s)
Kubernetes or close to the size of
[51:15] (3075.44s)
Kubernetes, yeah, that's super useful.
[51:17] (3077.76s)
Uh, rip us off. Absolutely rip us off.
[51:20] (3080.08s)
That's part of why we document it all.
[51:21] (3081.84s)
And it's ex Exactly. This this is
[51:24] (3084.16s)
beautiful like like having this this win
[51:26] (3086.08s)
and also you don't really need to
[51:27] (3087.20s)
explain it again and again. It's a point
[51:29] (3089.60s)
to do people at the docs. Yeah. the the
[51:31] (3091.92s)
way every role on the release team has
[51:33] (3093.76s)
to be run is exhaustively documented. So
[51:36] (3096.16s)
every every single role has a handbook
[51:38] (3098.24s)
that goes week by week and tells you
[51:39] (3099.84s)
what to do. Um which is part of why our
[51:42] (3102.16s)
releases are so smooth. Um if something
[51:44] (3104.64s)
goes wrong, probably it's documented and
[51:48] (3108.48s)
we we know how to solve it. Um of course
[51:51] (3111.36s)
every release we get something new and
[51:52] (3112.96s)
exciting that goes wrong to document,
[51:55] (3115.36s)
but uh that's happening less and less
[51:57] (3117.68s)
over time as we run out of edge cases.
[52:00] (3120.24s)
So now one one one thing I I'd like to
[52:03] (3123.84s)
ask you because I I'm really interested
[52:06] (3126.32s)
on on how I was going. How do you think
[52:09] (3129.60s)
the Gen AI tools LLMs that more and more
[52:12] (3132.48s)
engineers are using to you know write
[52:14] (3134.56s)
code help them write code will impact
[52:17] (3137.32s)
how Kubernetes is developed? Could it
[52:20] (3140.48s)
because because it's so extensively
[52:21] (3141.76s)
documented on one end I'm sure you know
[52:23] (3143.60s)
like these tools can ingest a lot of
[52:25] (3145.20s)
things. I I wonder if they could be
[52:27] (3147.84s)
useful. are are you seeing them being
[52:30] (3150.48s)
useful in let's say uh using features or
[52:33] (3153.04s)
for the release team to build your own
[52:34] (3154.80s)
tools to do some of your work easier?
[52:38] (3158.08s)
Okay, so my personal opinion I'm going
[52:40] (3160.96s)
to stress the word personal there is
[52:43] (3163.36s)
that the overwhelming majority of Genai
[52:46] (3166.32s)
tools are a scam. Um they they are a
[52:49] (3169.84s)
scam. They are designed to filch money
[52:52] (3172.24s)
out of VCs or the public or whoever
[52:55] (3175.68s)
else. The the people who fund the fund
[52:58] (3178.08s)
the VCs, the the liquidity partner or
[53:00] (3180.56s)
LPS. Yeah. The ambassadors. I think I
[53:03] (3183.04s)
think most of them are a scam. Uh I
[53:04] (3184.72s)
think a very small minority of them are
[53:06] (3186.96s)
genuinely useful. Um and the rests are
[53:09] (3189.92s)
are just it's a nothing burger. Um, as a
[53:14] (3194.56s)
maintainer within SIG release, uh, we
[53:18] (3198.00s)
have no use for generative AI or or LLM
[53:21] (3201.44s)
tools. Most of the issues we are dealing
[53:22] (3202.88s)
with are people problems. Um, Gen AI and
[53:25] (3205.36s)
LLMs are not going to resolve that.
[53:28] (3208.24s)
We're we're people managers. That's what
[53:30] (3210.00s)
we're doing. Um, so generative AI not
[53:33] (3213.76s)
useful there. With my SIG docs hat on,
[53:37] (3217.28s)
um, we actually explicitly have a policy
[53:39] (3219.20s)
of you are not allowed to use tools like
[53:40] (3220.96s)
that. Um, we caught somebody submitting
[53:44] (3224.08s)
a blog that had been written with some
[53:45] (3225.92s)
some kind of chat GPT tooling and we
[53:48] (3228.64s)
pulled it and told them not to do that
[53:50] (3230.88s)
again. Uh, we got a driveby PR from a
[53:54] (3234.80s)
paid product that claimed to simplify um
[53:59] (3239.60s)
writing documentation, maintaining
[54:01] (3241.44s)
documentation and uh handling things
[54:04] (3244.00s)
like style guide compliance. Kubernetes
[54:05] (3245.76s)
does have a documentation style guide.
[54:08] (3248.08s)
Um, we got a drive by PR from them that
[54:11] (3251.12s)
stipulated, hey, if you accept this, you
[54:12] (3252.96s)
know, it's we grant you a free license
[54:14] (3254.80s)
for this tool if as long as we can use
[54:16] (3256.56s)
your logo. Um, but here's the thing, it
[54:19] (3259.84s)
didn't work. It was making changes to a
[54:22] (3262.40s)
bunch of generated files that a human
[54:24] (3264.08s)
should never touch. And it wasn't
[54:27] (3267.12s)
actually enforcing style guide
[54:28] (3268.88s)
compliance. It it made a bunch of
[54:30] (3270.32s)
mistakes.
[54:31] (3271.56s)
So even even when the tool sounds
[54:35] (3275.12s)
useful, um it it is often not like it
[54:38] (3278.88s)
doesn't actually do what it says it's
[54:40] (3280.08s)
doing on the tin. And also drive by PR
[54:42] (3282.96s)
um in exchange for a logo on product.
[54:48] (3288.00s)
That is that's really poor behavior. If
[54:49] (3289.92s)
there if you own a product and you're
[54:51] (3291.28s)
listening to this, do not do that,
[54:53] (3293.28s)
please. We hate it so much cuz it it
[54:55] (3295.28s)
creates more work for us cuz we have to
[54:57] (3297.04s)
have a discussion as leadership about
[54:58] (3298.88s)
what we're going to do with that. like
[55:00] (3300.64s)
you caused three meetings. Please don't
[55:02] (3302.40s)
do that to me. Um, however, where I do
[55:05] (3305.68s)
want to see it is in things like um that
[55:09] (3309.68s)
are just toil for us. So things like
[55:12] (3312.24s)
application of of GitHub labels on
[55:14] (3314.88s)
issues or PRs. Like I would like
[55:17] (3317.36s)
something to automatically uh if if the
[55:20] (3320.68s)
language label gets added to a PR, I
[55:23] (3323.52s)
would like a tool that removes that
[55:25] (3325.28s)
label and applies the correct linguistic
[55:27] (3327.68s)
label or the correct area label or it it
[55:31] (3331.76s)
can't it probably can't make assumptions
[55:33] (3333.44s)
about priority. But things like handling
[55:36] (3336.08s)
labeling is like that's that's really
[55:38] (3338.16s)
annoying work that we have to do on just
[55:40] (3340.80s)
about every PR. if um a new contributor
[55:43] (3343.68s)
doesn't understand how our labels work,
[55:45] (3345.84s)
they they may not apply any of them and
[55:48] (3348.00s)
somebody like me has to go in and do it.
[55:50] (3350.48s)
So tooling like that would be useful,
[55:52] (3352.88s)
but um we haven't we haven't found
[55:55] (3355.68s)
somebody um offering that to us yet.
[55:58] (3358.24s)
Yeah. Ju ju just to add to or just to
[56:00] (3360.40s)
add another perspective on the the the
[56:03] (3363.04s)
scam part or what I I understand where
[56:05] (3365.20s)
you're coming from by the way in terms
[56:06] (3366.32s)
of it is over like I I think it's
[56:08] (3368.32s)
overhyped in so many ways and I'm a
[56:10] (3370.08s)
little frustrated that we're we're
[56:11] (3371.76s)
talking so much about what it could do
[56:13] (3373.52s)
one day instead of what it is happening.
[56:15] (3375.52s)
I'm very much focused on how we're using
[56:17] (3377.52s)
it today. An interesting input I got
[56:19] (3379.76s)
from John Austerhow the author of Phil
[56:21] (3381.76s)
philosophy of software design. He's a
[56:23] (3383.20s)
professor at Stamford and uh he he is
[56:25] (3385.68s)
actually contributing to the Linux
[56:27] (3387.04s)
kernel. he's he's doing uh he's
[56:29] (3389.52s)
implementing a protocol that one of his
[56:30] (3390.88s)
PhD students came up with and he told me
[56:33] (3393.60s)
I asked him if he uses uh genai much and
[56:36] (3396.08s)
and he said he doesn't except he said it
[56:39] (3399.20s)
was really helpful for him to help start
[56:42] (3402.24s)
contributing to Linux because he said
[56:43] (3403.84s)
it's so under document but his crit his
[56:45] (3405.60s)
criticism was that there's so little
[56:47] (3407.32s)
documentation that he actually turned to
[56:49] (3409.20s)
chat GPC to try to make sense of it and
[56:51] (3411.04s)
it helped him and and his takeaway
[56:53] (3413.80s)
was he actually said I don't really want
[56:56] (3416.40s)
to popularize is but but I I wish they
[56:58] (3418.72s)
would have added some more comments
[57:00] (3420.16s)
because because then I could have done
[57:01] (3421.52s)
it without the tools. So I'm actually
[57:04] (3424.00s)
getting the sense of like Kubernetes is
[57:05] (3425.76s)
very well documented which will
[57:07] (3427.36s)
obviously help people who are using
[57:08] (3428.64s)
these tools to you know d to to to
[57:12] (3432.00s)
learn. I mean you can probably just go
[57:13] (3433.52s)
to the source to be fair. You can but
[57:15] (3435.52s)
like I totally get using something like
[57:17] (3437.12s)
chatbt uh to
[57:19] (3439.80s)
explain something complex to you like
[57:22] (3442.40s)
that that is a good use of an LLM to me.
[57:26] (3446.24s)
Yeah. Um, it's one of the most produc
[57:29] (3449.84s)
No, that's that's great. I don't think
[57:31] (3451.52s)
you should be using it to generate a
[57:33] (3453.04s)
blog article or generate documentation.
[57:35] (3455.52s)
You certainly shouldn't be using it to
[57:37] (3457.28s)
translate your docs. The Kubernetes
[57:39] (3459.12s)
documentation is localized into like a
[57:41] (3461.04s)
couple dozen different languages and
[57:42] (3462.64s)
that's all done by humans, right? Um, so
[57:45] (3465.76s)
I don't I do not think that you should
[57:47] (3467.20s)
be using generative AI to do that. But
[57:49] (3469.60s)
using it to explain a complex topic or
[57:52] (3472.48s)
like look at some code and give you an
[57:54] (3474.40s)
idea of where it where it's going, like
[57:56] (3476.48s)
what it does, that's useful. Like that's
[57:58] (3478.56s)
that's a great way to use generative AI
[58:00] (3480.96s)
to me. When do you think Kubernetes is a
[58:03] (3483.20s)
great choice to to use and when do you
[58:05] (3485.36s)
think it can actually be an overkill? I
[58:07] (3487.44s)
I I get this a lot where especially
[58:09] (3489.76s)
small startups are are thinking should
[58:11] (3491.76s)
we start with Kubernetes or will it just
[58:14] (3494.00s)
be such an infrastructure overkill that
[58:15] (3495.44s)
that we shouldn't use it. So where would
[58:17] (3497.92s)
you draw that line or how do you see
[58:19] (3499.92s)
teams making this decision? Um I would
[58:23] (3503.60s)
say that uh you should think
[58:26] (3506.92s)
about how quickly do you think you're
[58:29] (3509.28s)
going to need to scale rapidly like like
[58:31] (3511.76s)
really rapidly. Um, if you think that
[58:35] (3515.20s)
you're going to need to do that pretty
[58:36] (3516.84s)
abruptly, then I would use Kubernetes
[58:40] (3520.96s)
earlier. Um, because migrating over to
[58:43] (3523.28s)
it can be a pain. Um, what you need to
[58:46] (3526.64s)
really think about is not so much the is
[58:50] (3530.40s)
Kubernetes itself as an infrastructure
[58:52] (3532.80s)
tool overkill, it's can you afford the
[58:55] (3535.92s)
people you need to manage it correctly.
[58:58] (3538.88s)
uh a mismanaged Kubernetes cluster is a
[59:01] (3541.52s)
very dangerous thing. Kubernetes is not
[59:03] (3543.92s)
secure by default. Uh you you do require
[59:07] (3547.04s)
an expert. Um so my best piece of advice
[59:10] (3550.40s)
for running Kubernetes early is do not
[59:13] (3553.68s)
roll your own cluster. Don't do that. Uh
[59:16] (3556.88s)
do do not do that. use some kind of
[59:18] (3558.64s)
managed Kubernetes service that handles
[59:21] (3561.04s)
a lot of the work for you and then you
[59:23] (3563.28s)
know hire hire an S sur with experience
[59:26] (3566.00s)
with GKE or AKS or whatever tooling
[59:30] (3570.24s)
you're using. Uh but just don't don't
[59:32] (3572.00s)
roll your own cluster. Kubernetes is
[59:34] (3574.64s)
easier to use than it was before. I
[59:37] (3577.12s)
don't think uh it's it's as much
[59:40] (3580.64s)
overkill early as it used to be. Like
[59:43] (3583.60s)
obvious obviously if you're just running
[59:45] (3585.04s)
a blog or something putting that on
[59:47] (3587.60s)
Kubernetes is ridiculous. My personal
[59:49] (3589.84s)
website does run on Kubernetes, but
[59:51] (3591.64s)
that's it if it's a bit, right? Like I
[59:54] (3594.24s)
don't need it to, right? It's it's a
[59:57] (3597.08s)
bit it's a pet project. Yeah, it's a pet
[60:00] (3600.00s)
project. It's fun. It's it's easy for me
[60:01] (3601.84s)
to deploy something to a cluster. I can
[60:03] (3603.68s)
do that faster than I can do it with
[60:05] (3605.44s)
like EC2, right? But that's because
[60:08] (3608.00s)
that's where my experience is. For for
[60:10] (3610.56s)
most people, that's not true. So, uh run
[60:13] (3613.12s)
it on some kind of managed service. And
[60:17] (3617.12s)
if you think that there is a point where
[60:18] (3618.72s)
you are ever going to need to scale
[60:20] (3620.24s)
super fast, migrate to Kubernetes before
[60:23] (3623.20s)
that happens. So that I think the the
[60:26] (3626.40s)
addition there is is if if you need to
[60:28] (3628.64s)
scale super fast, you can always choose
[60:30] (3630.32s)
to just stay on a cloud provider and
[60:32] (3632.40s)
just pay massive amounts, you will be
[60:35] (3635.04s)
overcharged for it. So So I guess
[60:37] (3637.04s)
Kubernetes makes sense when you actually
[60:38] (3638.56s)
want to control your costs a lot more,
[60:40] (3640.72s)
right? Yeah. Because because it's
[60:42] (3642.64s)
scalable. Um it's not like it it scales
[60:46] (3646.08s)
up and down, right? Like your your costs
[60:48] (3648.40s)
aren't going to be consistent. Um and
[60:51] (3651.28s)
that's that can be can make things a
[60:53] (3653.44s)
little bit difficult to predict, but
[60:54] (3654.80s)
there are there are companies and tools
[60:56] (3656.24s)
that help you u manage that aspect of
[60:58] (3658.48s)
running Kubernetes, but uh it won't be
[61:01] (3661.04s)
consistently high at least because of
[61:03] (3663.28s)
that uh up and down scalability. But
[61:06] (3666.08s)
yeah, just do it do it earlier rather
[61:08] (3668.08s)
than later uh for me. But if it's just a
[61:11] (3671.52s)
blog, if it's just a website or
[61:13] (3673.44s)
whatever, it's just a web
[61:14] (3674.92s)
application, you probably do not need
[61:17] (3677.28s)
Kubernetes if it's just a web app. And
[61:20] (3680.64s)
so for for those who are interested in
[61:22] (3682.00s)
in getting started with Kubernetes for
[61:23] (3683.60s)
building their own things to as as a
[61:25] (3685.28s)
user, where would you recommend them to
[61:26] (3686.88s)
look? And and what about for people who
[61:28] (3688.88s)
are would be interested in dipping their
[61:30] (3690.32s)
toes in contributing? What's what's a
[61:31] (3691.92s)
good place to start for starting to use
[61:34] (3694.64s)
it? I uh very much recommend our own
[61:37] (3697.28s)
documentation and GKE's tutorials. GKE's
[61:40] (3700.88s)
tutorials come with a little sandbox so
[61:42] (3702.88s)
that you can actually do the thing which
[61:45] (3705.36s)
is yeah very helpful. That's the way I
[61:47] (3707.04s)
prefer to learn personally. I need to be
[61:49] (3709.12s)
told how to do the thing and then
[61:50] (3710.48s)
actually do it. Um that's not true for
[61:52] (3712.80s)
everybody but that uh was a really
[61:56] (3716.16s)
really great resource for me early on.
[61:58] (3718.48s)
And our own documentation has quick
[62:00] (3720.32s)
start guides for a variety of ways of
[62:03] (3723.52s)
getting going with uh with Kubernetes
[62:05] (3725.52s)
though I have always just used mini
[62:07] (3727.20s)
cube. Um there are many ways to get a
[62:09] (3729.92s)
cluster going and it'll walk you through
[62:12] (3732.16s)
most of them. If you would like to get
[62:14] (3734.48s)
started contributing to Kubernetes, um
[62:17] (3737.76s)
you can come talk to me in the
[62:19] (3739.36s)
Kubernetes Slack. Uh and I will be happy
[62:22] (3742.08s)
to help you find a place, but I will
[62:24] (3744.40s)
probably recommend that you start with
[62:27] (3747.00s)
documentation uh in an area that is of
[62:29] (3749.44s)
specific interest to you. So if you're
[62:31] (3751.04s)
particularly interested in storage or
[62:32] (3752.48s)
networking, I will hand you a storage or
[62:34] (3754.08s)
networking piece of documentation that I
[62:36] (3756.16s)
think needs updating. Um, if you like
[62:39] (3759.44s)
more of a people managey thing, I will
[62:42] (3762.00s)
be happy to talk to you about the
[62:43] (3763.12s)
Kubernetes release team. However, again,
[62:45] (3765.44s)
we get hundreds of applications and
[62:47] (3767.20s)
there's like 25 spots. So, I would not
[62:49] (3769.76s)
ride on that exclusively as a way to get
[62:52] (3772.32s)
involved in the project. But yeah, come
[62:54] (3774.32s)
talk to me on the Kubernetes Slack
[62:56] (3776.16s)
workspace uh cat cosgrove and I am more
[62:59] (3779.12s)
than happy to help you personally.
[63:01] (3781.92s)
Wonderful. And we've already talked I
[63:03] (3783.92s)
think about the the b the professional
[63:05] (3785.36s)
benefits that uh can easily come by
[63:08] (3788.40s)
being associated with a project like
[63:10] (3790.00s)
Kubernetes in terms of an active uh
[63:12] (3792.00s)
contributor or or maintainer.
[63:15] (3795.20s)
Yeah, it's uh it's definitely a thing.
[63:17] (3797.68s)
Um release team members put Kubernetes
[63:20] (3800.24s)
release team uh comm's shadow on their
[63:23] (3803.52s)
resume. It's on people's LinkedIn. If
[63:25] (3805.68s)
you look at the number of people on
[63:26] (3806.80s)
LinkedIn who say they work at
[63:28] (3808.08s)
Kubernetes, uh myself included. Mine
[63:30] (3810.32s)
says I work at Kubernetes. Um, you do,
[63:32] (3812.80s)
right? I I do. Yeah. Yeah, I maintain
[63:35] (3815.12s)
the thing. So, um, I do work there. But,
[63:37] (3817.36s)
yeah, like people people put it on their
[63:38] (3818.92s)
resumes. Um, it it's popular, especially
[63:43] (3823.04s)
if you're a student about to graduate or
[63:45] (3825.12s)
you're very early in your career. It can
[63:47] (3827.12s)
definitely give you a resume boost, but
[63:48] (3828.96s)
what it also gives you is access to a
[63:52] (3832.32s)
very, very large network of people with
[63:54] (3834.64s)
significantly more experience than you
[63:56] (3836.64s)
who are generally quite friendly. So,
[63:58] (3838.96s)
it's a really good networking
[64:00] (3840.08s)
opportunity. We all hang out a lot. We
[64:01] (3841.92s)
all talk to each other a lot. Um we
[64:05] (3845.44s)
right before CubeCon, our our big
[64:07] (3847.92s)
conference that we have twice a year,
[64:09] (3849.68s)
there is a maintainer summit and we all
[64:13] (3853.12s)
get together and hang out and talk to
[64:14] (3854.64s)
each other for a whole day. It's our own
[64:17] (3857.04s)
little miniature conference. So there
[64:18] (3858.32s)
there is also the networking opportunity
[64:20] (3860.00s)
there too. It's not just the the resume
[64:21] (3861.68s)
fodder. Yeah. And I I like that you say
[64:24] (3864.56s)
networking because I feel it's people
[64:27] (3867.28s)
are starting to realize engineers are
[64:28] (3868.72s)
starting to realize with the job market
[64:30] (3870.32s)
becoming bit bit more frosty that oh
[64:32] (3872.32s)
having a network could be useful and
[64:34] (3874.40s)
then there's a question of how do you
[64:35] (3875.84s)
get get a network and just my two cents
[64:37] (3877.76s)
is the best network I've ever had is
[64:39] (3879.60s)
it's not people who are kind of like you
[64:41] (3881.20s)
I know them with driveby it's people who
[64:42] (3882.88s)
I actually worked with like did
[64:44] (3884.48s)
something together and and you know you
[64:46] (3886.48s)
can either do it at your full-time job
[64:48] (3888.32s)
as assuming you have one or on a project
[64:50] (3890.72s)
where you spent extended time and solve
[64:52] (3892.64s)
the problems which a project like
[64:54] (3894.80s)
Kubernetes or a different open source
[64:56] (3896.32s)
project. Yeah, for sure. Like if I've if
[64:58] (3898.48s)
I've worked with you on the on the
[64:59] (3899.84s)
Kubernetes project for a little while, I
[65:01] (3901.68s)
am happy to connect you with anybody
[65:03] (3903.92s)
else I know. Like if you if you're
[65:06] (3906.40s)
looking for a job at at Docker or at AWS
[65:11] (3911.32s)
or Microsoft or whatever, I know
[65:14] (3914.48s)
executives there by virtue of having
[65:17] (3917.52s)
done this for so long. And I'm happy to
[65:20] (3920.40s)
make connections if I've worked with you
[65:21] (3921.84s)
for a while. I will not just like one PR
[65:24] (3924.16s)
is not and if if that person has
[65:26] (3926.00s)
actually just you know put in good solid
[65:28] (3928.00s)
work. So I think just one more thing if
[65:30] (3930.24s)
just don't do anything halfass just like
[65:32] (3932.00s)
yeah don't have you need a whole ass
[65:33] (3933.84s)
everything. Yeah I I I think the the
[65:37] (3937.44s)
more the earlier people realize that the
[65:39] (3939.04s)
the better. So
[65:40] (3940.72s)
so to to wrap up I've just uh asked some
[65:43] (3943.28s)
some rapid questions and I'll shoot and
[65:45] (3945.04s)
then you tell me how like what comes to
[65:47] (3947.76s)
mind. What is your favorite framework or
[65:51] (3951.04s)
programming language? Python, which I
[65:54] (3954.40s)
shouldn't say because I'm managing the
[65:55] (3955.68s)
Kubernetes project which is written in
[65:57] (3957.04s)
Go, but it's Python. That that was
[65:59] (3959.28s)
really fast. How come? Um, it was not
[66:02] (3962.64s)
the first language I learned, but it was
[66:04] (3964.48s)
one of the one of the earlier ones. And
[66:06] (3966.64s)
I like that even if it's not good at
[66:09] (3969.76s)
everything, I can make it do just about
[66:12] (3972.84s)
anything. Um, so that versatility is
[66:15] (3975.52s)
really valuable to me as a as a
[66:16] (3976.96s)
prototyping tool. So I will prototype
[66:19] (3979.28s)
something in Python and if Python is not
[66:22] (3982.24s)
like the best tool in my toolbox for
[66:25] (3985.20s)
that particular application, I'll then
[66:26] (3986.72s)
go actually rebuild it in like Go or
[66:29] (3989.36s)
whatever is is most um applicable. I'm
[66:32] (3992.56s)
I'm coming around to Python. I I I never
[66:34] (3994.56s)
really use Python. I use other
[66:36] (3996.00s)
languages, C, JavaScript, etc. But you
[66:38] (3998.88s)
know what's getting me around to to
[66:40] (4000.08s)
Python? It's now that I'm going to a lot
[66:42] (4002.40s)
of the getting started guides on, let's
[66:44] (4004.56s)
say, AI tools, etc. They usually have it
[66:46] (4006.08s)
in all languages like from from from
[66:48] (4008.40s)
Python. Usually Python is the first one.
[66:49] (4009.92s)
And what I've noticed is Python is the
[66:52] (4012.32s)
the the least verbose. It is and the
[66:56] (4016.40s)
easiest to read. And I just liked
[66:58] (4018.16s)
reading it. So now I just set up my my
[66:59] (4019.84s)
thing. So I'm I'm actually changing my
[67:01] (4021.60s)
mind on that slowly. I'm I'm starting to
[67:03] (4023.76s)
see the the poll. Yeah. You can almost
[67:06] (4026.00s)
just write pseudo code and that's like
[67:07] (4027.68s)
very close to valid Python. Yeah. Which
[67:10] (4030.08s)
which rules. So it's awesome. Yeah. You
[67:13] (4033.28s)
got to do something quick and dirty.
[67:14] (4034.48s)
drive on. What is a book that you would
[67:17] (4037.28s)
recommend? Well, um h so I don't read uh
[67:21] (4041.84s)
workbooks at all. Uh I I actually have a
[67:24] (4044.56s)
a personal policy of not reading uh
[67:27] (4047.52s)
books for anything other than fun like
[67:29] (4049.52s)
for I only read for pleasure and I read
[67:31] (4051.44s)
quite a lot. Um right now I'm rereading
[67:35] (4055.04s)
A Fire Upon the Deep by Verer Ving which
[67:38] (4058.16s)
is very weird, very um very very strange
[67:41] (4061.44s)
hard science fiction. Um it's one of my
[67:43] (4063.36s)
favorite books. I would I would
[67:44] (4064.60s)
absolutely recommend that if you like
[67:47] (4067.60s)
hard sci-fi. Well, well, Cat, thank you
[67:49] (4069.76s)
so much for going into the the details
[67:52] (4072.24s)
of I guess talking through the
[67:54] (4074.40s)
surprisingly open nature of of
[67:55] (4075.76s)
Kubernetes and very well doumented
[67:57] (4077.60s)
nature of it. Thank you. Happy to. I
[68:00] (4080.40s)
hope you enjoyed this deep dive into how
[68:01] (4081.84s)
Kubernetes is built, how releases work,
[68:04] (4084.24s)
and all the organizational work that
[68:05] (4085.76s)
goes into keeping a project like this
[68:07] (4087.36s)
running. I found it particularly
[68:08] (4088.80s)
interesting to learn just how well
[68:10] (4090.16s)
everything in Kubernetes is documented,
[68:12] (4092.16s)
including how the project is organized
[68:13] (4093.68s)
and run. If you ever find yourself
[68:15] (4095.84s)
inside a large project, feel free to
[68:17] (4097.68s)
steal ideas on how to organize things
[68:19] (4099.60s)
from Kubernetes. Thanks a lot for Cat
[68:22] (4102.16s)
for sharing to all these details. You
[68:23] (4103.92s)
can connect with her on the links listed
[68:25] (4105.52s)
in the show notes below. We previously
[68:27] (4107.44s)
did a deep dive into how Linux was built
[68:29] (4109.20s)
and into a few other related topics. You
[68:31] (4111.52s)
can find all of these the pragmatic
[68:32] (4112.96s)
engineer deep dives in the show notes
[68:34] (4114.56s)
linked below. If you've enjoyed the
[68:36] (4116.08s)
podcast, please do subscribe on your
[68:37] (4117.60s)
favorite podcast platform and on
[68:39] (4119.20s)
YouTube. This helps more people discover
[68:41] (4121.12s)
the podcast and a special thanks if you
[68:43] (4123.12s)
leave a rating. Thanks and see you in
[68:45] (4125.52s)
the next one.