How to Build a Serverless Postgres? ft Gwen Shapira
Cloud CommuteAugust 16, 2024x
25
00:28:3626.2 MB

How to Build a Serverless Postgres? ft Gwen Shapira

In this episode, our guest Gwen Shapira talks about her co-founded database startup Nile, a serverless Postgres database. She explains how they implemented the multi-tenant features, made sure that customers are probably isolated, how scalability works, and what the future holds. Gwen has years and years of experience using technologies as Oracle databases, PostgreSQL, Kafka, and many more.

In this episode of Cloud Commute, Chris and Gwen discuss:

  • Building Nile: A serverless Postgres for SaaS applications
  • Challenges of scaling multi-tenant architecture in databases
  • Kubernetes migration and infrastructure automation
  • The future of AI and vector databases in enhancing performance

Interested to learn more about the cloud infrastructure stack like storage, security, and Kubernetes? Head to our website (www.simplyblock.io/cloud-commute-podcast) for more episodes, and follow us on LinkedIn (www.linkedin.com/company/simplyblock-io). You can also check out the detailed show notes on Youtube (www.youtube.com/watch?v=e8dVUSwf_Eo).

You can find Gwen Shapira on X @gwenshap and Linkedin: /gwenshapira.

About simplyblock:

Simplyblock is an intelligent database storage orchestrator for IO-intensive workloads in Kubernetes, including databases and analytics solutions. It uses smart NVMe caching to speed up read I/O latency and queries. A single system connects local NVMe disks, GP3 volumes, and S3 making it easier to handle storage capacity and performance. With the benefits of thin provisioning, storage tiering, and volume pooling, your database workloads get better performance at lower cost without changes to existing AWS infrastructure.

👉 Get started with simplyblock: https://www.simplyblock.io/buy-now

🏪 simplyblock AWS Marketplace: https://aws.amazon.com/marketplace/seller-profile?id=seller-fzdtuccq3edzm


00:00:00
When we started Nile, my

00:00:02
co-founder and I really

00:00:04
wanted something that

00:00:05
would signify we were

00:00:06
building a platform.

00:00:07
So for us, having this

00:00:09
major river, a major

00:00:11
artery that things are

00:00:12
built on top of, was

00:00:14
a very good analogy.

00:00:15
The most valued guy

00:00:16
from my perspective was

00:00:18
the one that built the

00:00:19
Argo CD, the Jenkins

00:00:21
pipeline, the Kubernetes

00:00:22
cluster, all of that,

00:00:24
because in the end,

00:00:25
it was literally you

00:00:26
commit to your Git

00:00:27
repository, make a

00:00:29
new tag, the build

00:00:30
pipeline picks it up,

00:00:31
the deployment pipeline

00:00:32
picks it up, and you

00:00:34
magically have the

00:00:36
new version deployed.

00:00:36
And it was incredible.

00:00:38
So we were like, how

00:00:40
do we isolate tenants?

00:00:41
How do we give them

00:00:42
privacy and security?

00:00:43
How do we give each

00:00:45
one the performance

00:00:46
they need?

00:00:46
How do you scale

00:00:47
up as the number

00:00:48
of customers grows,

00:00:50
which is different

00:00:50
than scaling up as a

00:00:52
single customer grows?

00:00:55
You’re listening to

00:00:56
Simplyblock’s Cloud

00:00:57
Commute Podcast,

00:00:58
your weekly 20-minute

00:00:59
podcast about

00:01:00
cloud technologies,

00:01:01
Kubernetes, security,

00:01:02
sustainability,

00:01:03
and more.

00:01:06
Hello everyone.

00:01:07
Welcome back to this

00:01:08
week’s episode of

00:01:09
Simplyblock’s Cloud

00:01:09
Commute Podcast.

00:01:11
I’m not saying I have

00:01:12
another incredible

00:01:12
guest because today I

00:01:14
have an actually super,

00:01:15
super incredible guest.

00:01:19
Don’t laugh, you

00:01:21
know it’s right.

00:01:24
Gwen, it is a

00:01:26
pleasure to have you.

00:01:28
I don’t want to say that

00:01:29
all the other guests are

00:01:32
boring, but to me, you

00:01:34
are actually special,

00:01:36
so thank you very

00:01:36
much for being here.

00:01:39
Maybe just tell us

00:01:40
a little bit about

00:01:40
yourself, who you are,

00:01:42
what you do, and we’ll

00:01:44
take it from there.

00:01:45
Thank you.

00:01:46
So, first of all, thank

00:01:47
you for inviting me,

00:01:48
and I’m super, super,

00:01:50
super duper excited

00:01:51
to be on your show.

00:01:56
I am currently

00:01:58
co-founder of

00:01:59
Nile, where we are

00:02:00
building serverless

00:02:01
Postgres for SaaS.

00:02:04
And before that, I

00:02:06
spent six, almost seven

00:02:09
years at Confluent.

00:02:10
I jumped to Confluent,

00:02:12
which for those who

00:02:13
haven’t heard, is

00:02:13
the Kafka company,

00:02:14
essentially.

00:02:17
There are a bunch of

00:02:18
Kafka companies now,

00:02:19
and it’s probably very

00:02:20
not Apache-correct to

00:02:22
say that, but it was a

00:02:23
company founded by the

00:02:25
people who started the

00:02:26
Apache Kafka project

00:02:27
and had huge investments

00:02:31
in the Apache Kafka

00:02:32
project over the years.

00:02:34
I was there from when it

00:02:38
was like, I was employee

00:02:39
either 10, 11, or 12.

00:02:41
We joined three of

00:02:42
us on the same day,

00:02:43
so I will never know

00:02:43
my exact number.

00:02:44
And by the time I

00:02:45
left, it was thousands

00:02:47
of employees.

00:02:48
So, that was

00:02:51
quite the journey.

00:02:52
I did a lot of

00:02:53
different roles.

00:02:54
I joined as an engineer,

00:02:55
I moved to product,

00:02:56
I moved to marketing,

00:02:58
and then I moved

00:02:59
back to engineering,

00:03:00
and then I did some

00:03:01
engineering management.

00:03:02
So, I got to experience

00:03:04
the ride, which kind

00:03:05
of helped me prepare

00:03:06
to start my own

00:03:07
company in some ways,

00:03:08
especially distinct in

00:03:10
product and marketing.

00:03:12
And then before that,

00:03:13
all of my background

00:03:14
is basically in data.

00:03:15
I started at HP and

00:03:18
then I worked on Oracle

00:03:21
for a very long time.

00:03:22
I did some

00:03:23
MySQL, Hadoop,

00:03:26
and then it was

00:03:28
Confluent and Kafka.

00:03:29
So, I have a

00:03:31
long career.

00:03:32
The way I like saying it

00:03:34
is, I’ve spent the last

00:03:35
20 years moving data

00:03:36
from place to place,

00:03:37
and I’m not done yet.

00:03:40
You see, exactly, that’s

00:03:41
the reason why I say

00:03:42
you’re a very special

00:03:43
guest to me, because

00:03:45
I know you mostly from

00:03:46
Twitter these days, and

00:03:49
I’ve never seen you talk

00:03:50
about anything but data.

00:03:52
And that is amazing.

00:03:55
Any kind of database,

00:03:56
any kind of, as

00:03:57
you said, data

00:03:58
movement, data

00:03:59
placement, whatever.

00:04:01
And I specifically love

00:04:03
all your engagement

00:04:05
with the different

00:04:06
communities, asking

00:04:08
questions, actually

00:04:10
meaningful questions.

00:04:11
I think that is very

00:04:12
different from a

00:04:13
lot of other people.

00:04:14
Yeah,

00:04:16
as I said, thank

00:04:17
you for being here.

00:04:17
It’s awesome.

00:04:18
I’m like, I’m the

00:04:20
one who’s excited.

00:04:23
You talked about Nile.

00:04:26
I always want to

00:04:26
say Neil, the German

00:04:28
pronunciation of it.

00:04:29
We talked about that

00:04:30
before in the pre-run

00:04:32
to this session.

00:04:34
Maybe tell us a little

00:04:35
bit about Nile, your

00:04:38
serverless Postgres

00:04:39
installation, and

00:04:40
why it is called

00:04:40
Nile, not Neil.

00:04:42
Ah, yeah.

00:04:43
The name question.

00:04:45
So, first of all,

00:04:48
I’m from the Middle

00:04:49
East, so I kind of

00:04:51
grew up with the Nile

00:04:53
and stories about

00:04:54
the Nile and so on.

00:04:55
And for me, it’s kind

00:04:57
of the bedrock of what

00:05:00
used to be a giant

00:05:01
empire, and it’s still

00:05:02
the bedrock of so much

00:05:04
commerce and so much

00:05:07
life that has been

00:05:08
going on around it.

00:05:09
And when we started

00:05:11
Nile, my co-founder

00:05:13
and I, we really

00:05:15
wanted something that

00:05:16
would signify we’re

00:05:17
building a platform

00:05:18
that businesses and

00:05:24
life, in general, would

00:05:26
be built on top of.

00:05:28
And so for us, having

00:05:30
this major river, a

00:05:32
major artery that things

00:05:35
were built on top of,

00:05:36
was a very good analogy.

00:05:39
I would also point

00:05:40
out, completely

00:05:42
coincidentally, that

00:05:42
Nile is slightly

00:05:43
longer than Amazon.

00:05:48
That is important.

00:05:49
I get that.

00:05:51
Slightly important, yes.

00:05:54
So, we liked the name.

00:05:56
We liked that

00:05:57
it’s four letters.

00:05:58
It’s short,

00:05:59
it’s memorable.

00:06:00
So, it has good

00:06:00
qualities for

00:06:01
a company name.

00:06:03
We

00:06:05
actually iterated

00:06:06
over several ideas.

00:06:07
We started the company

00:06:09
with the idea that,

00:06:10
at Confluent, building

00:06:12
Kafka took N people.

00:06:17
Building the entire

00:06:19
cloud services, the

00:06:21
self-serve SaaS on top

00:06:24
of Kafka, it was like

00:06:26
three times the people.

00:06:28
It was much harder.

00:06:30
And this was a

00:06:30
surprise to me.

00:06:33
I was always into

00:06:34
building data

00:06:34
infrastructure,

00:06:35
so this is hard.

00:06:36
But this was

00:06:37
really hard.

00:06:37
I didn’t realize that

00:06:38
there was something

00:06:39
much harder on top.

00:06:44
So, we really wanted

00:06:45
to build something

00:06:46
that would reduce the

00:06:48
overhead of building

00:06:50
these services

00:06:52
around the service.

00:06:53
And our first iteration

00:06:55
was a control plane.

00:06:57
We were not very

00:06:58
happy with it, and we

00:06:59
didn’t find a lot of

00:07:01
other people who were

00:07:01
happy with it either.

00:07:02
And then we started

00:07:04
thinking that the

00:07:07
problems we wanted to

00:07:08
solve, about managing

00:07:11
multiple tenants on the

00:07:12
same platform, which

00:07:13
is the core problem

00:07:14
of SaaS, how do you

00:07:16
provide one service to

00:07:18
a lot of customers with

00:07:20
very different needs

00:07:21
and very different

00:07:22
requirements, very

00:07:23
different workloads?

00:07:24
So, we were like, how

00:07:26
do we isolate them?

00:07:27
How do we give them

00:07:28
privacy and security?

00:07:29
How do we give each

00:07:31
one the performance

00:07:32
they need?

00:07:32
How do you scale

00:07:33
up as the number

00:07:35
of customers grows,

00:07:36
which is different

00:07:37
than scaling up as a

00:07:38
single customer grows?

00:07:40
We took all those

00:07:41
ideas and realized

00:07:41
that the right layer

00:07:42
to solve these is

00:07:42
in the database.

00:07:42
The idea is that

00:07:42
what you actually

00:07:49
need to isolate is

00:07:50
data access, all

00:07:52
the authorization,

00:07:53
authentication—those are

00:07:54
all data-level concerns.

00:07:56
They should be enforced

00:07:57
close to the data.

00:08:00
Performance, it has

00:08:03
a lot of factors,

00:08:04
but obviously, the

00:08:05
database is important.

00:08:06
It’s major in allowing

00:08:08
companies to scale.

00:08:09
And you see it in blogs

00:08:11
again and again, things

00:08:12
like flexibility.

00:08:14
Can you customize your

00:08:15
product for one customer

00:08:16
versus the other?

00:08:17
A lot of times, it

00:08:18
also ends up being

00:08:20
a database concern.

00:08:22
So, we’re like, okay,

00:08:24
we have to take a good,

00:08:26
solid database that is

00:08:27
open source and adapt

00:08:29
it to the concerns

00:08:30
of people building

00:08:31
software as a service,

00:08:33
because those are not

00:08:34
adequately addressed

00:08:35
today at the data layer.

00:08:38
And you took the only

00:08:40
meaningful option,

00:08:42
which is Postgres.

00:08:44
We like Postgres a lot.

00:08:46
I mean, if you’re going

00:08:47
to do a serverless

00:08:49
database and kind of

00:08:50
host it and manage

00:08:50
it, you cannot pick a

00:08:52
database that you don’t

00:08:53
really, really like.

00:08:54
You have to believe

00:08:55
that it is the

00:08:56
best database ever.

00:08:57
Otherwise, you know,

00:09:01
it’s hard to run

00:09:02
something as a service

00:09:03
for other customers if

00:09:04
you don’t believe you

00:09:05
are really choosing

00:09:06
something solid.

00:09:08
It’s probably

00:09:09
impossible.

00:09:10
I would totally

00:09:12
agree with that.

00:09:13
And I’m a big Postgres

00:09:15
fan myself for all

00:09:16
the same reasons.

00:09:17
The Postgres

00:09:22
ecosystem is massive.

00:09:23
There are so

00:09:23
many extensions.

00:09:24
I guess you can run

00:09:25
extensions on Nile?

00:09:28
So, you cannot pick

00:09:29
your own extensions yet.

00:09:31
We may get there at

00:09:32
some point, but we’re

00:09:33
not quite there.

00:09:34
And partially

00:09:34
it’s because

00:09:38
we are currently

00:09:40
still limiting

00:09:41
what people can do.

00:09:42
You also cannot even

00:09:43
run your own functions

00:09:44
at this point.

00:09:46
We will get there.

00:09:49
We are still only

00:09:50
a year or two into

00:09:51
the startup journey.

00:09:53
But at this point, what

00:09:54
we are doing is taking

00:09:56
popular extensions and

00:09:58
baking them into Nile.

00:10:00
So, our customers

00:10:02
pick up the phone,

00:10:03
or realistically,

00:10:04
pick up their Discord

00:10:06
and say, hey, we

00:10:08
need this extension,

00:10:09
PostGIS, PGVector,

00:10:15
PGCrypto has been

00:10:15
super popular.

00:10:17
And we’re like, okay,

00:10:18
hopefully we’re on it.

00:10:19
And we’re also

00:10:20
writing our own

00:10:23
extensions.

00:10:23
Nile itself is

00:10:24
an extension.

00:10:26
And we also have

00:10:28
team members who

00:10:29
have their own

00:10:30
open-source extensions

00:10:31
that are quite

00:10:34
popular.

00:10:34
I think that is a

00:10:35
totally fair approach.

00:10:37
And I guess a year in,

00:10:39
you probably have most

00:10:41
of the extensions that

00:10:42
people want anyway,

00:10:43
so we’re probably

00:10:44
good on that side.

00:10:46
We definitely try to be

00:10:47
responsive to customers.

00:10:49
This is important

00:10:50
when you’re a startup.

00:10:51
Right.

00:10:52
So, you mentioned

00:10:53
that you’re building

00:10:55
your own extension.

00:10:56
You say serverless

00:10:58
Postgres.

00:10:59
Postgres by itself

00:11:00
isn’t really serverless.

00:11:01
So, what would you

00:11:02
say was the biggest

00:11:05
challenge or hurdle you

00:11:07
had to overcome to make

00:11:08
Postgres serverless?

00:11:11
It really scares

00:11:12
me to answer this

00:11:13
question because deep

00:11:15
down, I feel like

00:11:16
we have not met the

00:11:17
biggest challenge yet.

00:11:19
I feel like the other

00:11:21
shoe is about to drop.

00:11:22
I feel like it’s

00:11:23
still ahead of us.

00:11:25
So, I would want

00:11:27
to qualify it

00:11:28
as the biggest

00:11:28
challenge to date.

00:11:31
We don’t know what

00:11:32
we don’t know.

00:11:33
And this is maybe

00:11:35
the scariest part.

00:11:38
I think there are

00:11:41
two things that were

00:11:42
challenging, and they’re

00:11:43
actually intertwined.

00:11:45
Maybe three things.

00:11:46
One of them is

00:11:48
the transactional

00:11:48
guarantees.

00:11:53
A big reason that people

00:11:54
pick Postgres and not

00:11:55
MongoDB is that it’s a

00:11:57
relational database with

00:11:59
strong ACID guarantees.

00:12:00
Postgres is actually one

00:12:02
of the best databases in

00:12:03
terms of transactional

00:12:05
guarantees.

00:12:05
When you say

00:12:06
serializable, it’s

00:12:08
Snapshot Serializable,

00:12:09
which is better than

00:12:10
Snapshot Isolation.

00:12:12
It

00:12:14
has better guarantees.

00:12:15
So, they did so

00:12:17
much good work.

00:12:19
We have to work with

00:12:20
it, and it opened up

00:12:22
a lot of questions.

00:12:23
Can you have a

00:12:24
transaction that

00:12:25
involves multiple

00:12:26
tenants, or do you

00:12:27
limit transactions

00:12:28
only to one tenant?

00:12:29
How does it work as

00:12:30
you try to scale?

00:12:32
So, dealing with those

00:12:33
concerns, we chose

00:12:36
to take limitations.

00:12:37
Your transactions have

00:12:38
to be for a single

00:12:39
tenant at this point.

00:12:42
We don’t let you

00:12:45
transactionally update

00:12:45
an entire table with

00:12:46
all the tenants in it.

00:12:47
Some people don’t

00:12:49
love it, but we feel

00:12:51
that this is the

00:12:53
bread and butter of

00:12:54
SaaS, isolating the

00:12:55
changes to individuals.

00:12:57
What would you be

00:12:58
doing writing over

00:12:59
multiple tenants?

00:13:00
That sounds scary.

00:13:02
Yes, and when we

00:13:05
allow it, we found

00:13:07
that customers

00:13:08
often regret it.

00:13:10
The number of times that

00:13:11
you deleted or updated

00:13:13
an entire table because

00:13:14
you unintentionally

00:13:15
left out a WHERE clause

00:13:20
is distressing.

00:13:22
So,

00:13:24
we are opinionated to

00:13:25
an extent in preventing

00:13:27
people from shooting

00:13:28
themselves in the foot.

00:13:29
Dealing with

00:13:30
the transaction

00:13:33
limitations has been an

00:13:34
interesting experience.

00:13:37
Distributing—so there

00:13:39
are things that do

00:13:40
have to get distributed

00:13:41
to all the tenants.

00:13:43
For example, no matter

00:13:44
how much we isolate

00:13:45
tenants to their own

00:13:46
databases, if you are

00:13:47
adding a new column

00:13:49
to a table, you need

00:13:49
every single tenant to

00:13:51
have this new column.

00:13:53
So, dealing with those

00:13:54
distributed DDLs has

00:13:55
been really interesting.

00:13:58
Storage is interesting.

00:13:59
And I think the

00:14:00
interesting bit is how

00:14:01
intertwined everything

00:14:03
is in Postgres.

00:14:05
If we want to have the

00:14:06
tenant isolation at the

00:14:07
storage layer, which

00:14:09
we really want because

00:14:10
this is the magic

00:14:11
that allows us to move

00:14:12
tenants to new machines

00:14:14
as you get more and more

00:14:15
customers, we can kind

00:14:16
of auto-shard it for

00:14:17
you and spread it out.

00:14:20
This means that

00:14:21
every data block

00:14:22
has to know which

00:14:25
tenant it belongs to.

00:14:26
Every record in the

00:14:27
WAL [write-ahead log]

00:14:28
has to know which

00:14:28
tenant it belongs to.

00:14:30
So, it’s kind of

00:14:32
a big rabbit hole

00:14:33
that you go down.

00:14:36
Transactions and the

00:14:37
commit logs have to

00:14:38
know which tenants

00:14:39
they belong to.

00:14:41
So, it’s been an

00:14:43
interesting journey.

00:14:44
And as I said, I don’t

00:14:44
think we’re at the

00:14:45
end of the journey

00:14:46
at all at this point.

00:14:48
That’s fair.

00:14:49
I think if you’re

00:14:51
making such a big

00:14:52
change to a system

00:14:57
that wasn’t designed,

00:14:57
well, not necessarily

00:14:58
not designed for it,

00:14:59
but it wasn’t really

00:15:01
thought of in this way

00:15:02
when they created the

00:15:03
actual system, that

00:15:05
is really interesting.

00:15:06
I think it’s always

00:15:08
fair to say we don’t

00:15:10
know where the road is

00:15:11
ahead, because nobody,

00:15:13
well, almost nobody,

00:15:15
did this before.

00:15:16
There are some others

00:15:18
that say serverless

00:15:20
Postgres, but I think

00:15:21
it really depends on

00:15:22
how you actually define

00:15:23
serverless or not.

00:15:25
Defining serverless is

00:15:26
another rabbit hole.

00:15:29
I only give

00:15:30
serverless, I don’t

00:15:30
try to define it.

00:15:32
That is true.

00:15:34
So, as a developer, how

00:15:37
would I get started?

00:15:39
I mean, it is Postgres,

00:15:40
so I guess any Postgres

00:15:41
client works for me?

00:15:43
Absolutely, any

00:15:44
Postgres client, any

00:15:45
ORMs that you enjoy.

00:15:47
We tested with the

00:15:49
popular ones, so I

00:15:50
can tell you, and

00:15:51
we have examples.

00:15:53
As you probably know,

00:15:54
we share a deep passion

00:15:56
for developer experience

00:15:58
and really getting-

00:15:59
making sure that

00:15:59
developers of all kinds

00:16:00
experienced, beginners,

00:16:01
this language, that

00:16:02
language, meeting

00:16:04
developers where they

00:16:07
are is so important.

00:16:09
So we have tutorials

00:16:11
for any popular ORM.

00:16:13
If you like Prisma,

00:16:16
Drizzle, SQLAlchemy,

00:16:18
and Hibernate, we have

00:16:21
Django we basically

00:16:24
try to cover everything

00:16:26
that people use and just

00:16:28
give a small example.

00:16:31
And you use it

00:16:32
completely normally.

00:16:33
There are only two

00:16:34
tricky bits that

00:16:34
you need to get.

00:16:36
Nile shows up with some

00:16:38
tables already built-in,

00:16:39
like the tenants table.

00:16:40
You need to pull them

00:16:42
into your ORM and

00:16:44
generate an object

00:16:45
from the database,

00:16:46
which is something

00:16:46
that some developers

00:16:48
haven’t done before,

00:16:48
but it’s actually very

00:16:50
easy in every ORM.

00:16:52
And the other one

00:16:53
is that you need,

00:16:55
in a transaction, to

00:16:56
specify which tenant

00:16:57
the transaction is

00:16:58
for because that’s

00:16:59
the entire point.

00:17:01
And this is the

00:17:03
main point of most

00:17:05
of our examples.

00:17:05
Here is the snippet

00:17:07
of how you specify

00:17:08
the tenant in Prisma,

00:17:10
in Hibernate, in

00:17:11
Drizzle, and so on.

00:17:13
We tie it end to

00:17:15
end because we are

00:17:16
very SaaS-focused.

00:17:17
We believe that

00:17:18
the tenant will

00:17:19
probably be a header

00:17:20
in an HTTP request.

00:17:22
There will probably

00:17:23
be a JWT or a session

00:17:25
with the user.

00:17:26
And so we tie the HTTP

00:17:28
header down to the

00:17:30
transaction, we tie

00:17:32
the user down to the

00:17:34
transaction, we validate

00:17:35
that the user actually

00:17:36
has access to the

00:17:37
tenant that is mentioned

00:17:38
in the transaction.

00:17:39
This is the whole point

00:17:40
of pushing all this

00:17:41
information from the

00:17:43
browser, from the layer,

00:17:44
all the way down to the

00:17:45
database so we can do

00:17:46
these kinds of things.

00:17:48
Right, right.

00:17:49
Okay, cool.

00:17:51
And I can just go

00:17:52
to, what is it?

00:17:53
The nile- Thenile.dev.

00:17:57
Dev.

00:17:58
Right.

00:17:58
I knew it was not io.

00:18:00
Thenile.dev.

00:18:01
Yeah.

00:18:03
It was always probably

00:18:04
free, but we thought

00:18:05
that we- especially

00:18:07
since we didn't start

00:18:08
with that phrase.

00:18:10
I think we thought

00:18:11
that io is- We're not

00:18:13
really dealing with IO.

00:18:14
We're all about storage.

00:18:15
Yeah, fair enough.

00:18:16
So, thenile.dev and I

00:18:17
sign up for an account

00:18:18
and I get all the

00:18:19
credentials I need?

00:18:21
Exactly.

00:18:22
All right.

00:18:23
So, we’re a cloud

00:18:25
podcast, so who

00:18:27
would we be not to

00:18:28
ask the question

00:18:29
of all questions?

00:18:30
How does that

00:18:31
look backend wise?

00:18:32
I mean, we’re

00:18:33
talking a lot about

00:18:34
Kubernetes here.

00:18:39
We actually migrated

00:18:40
to Kubernetes

00:18:41
fairly recently.

00:18:44
We started out with

00:18:45
just ECS a bunch of

00:18:48
EC2 machines, some

00:18:49
Pulumi scripts to

00:18:51
deploy stuff on them.

00:18:53
And it worked for us

00:18:56
for a very long time.

00:18:57
It got really messy as

00:19:00
we added more services.

00:19:02
It got pretty messy

00:19:03
to do releases, and

00:19:05
that’s when we moved

00:19:06
to Kubernetes, and

00:19:09
now we have Helm

00:19:09
charts, we have FluxCD,

00:19:12
so everyone with a

00:19:14
service can basically

00:19:15
upgrade their version.

00:19:17
It actually happens

00:19:18
automatically, so

00:19:18
you merge and then it

00:19:21
triggers a bunch of

00:19:22
tests, it deploys to

00:19:23
dev, it opens a pull

00:19:26
request to upgrade

00:19:27
production, and if

00:19:28
you merge the pull

00:19:29
request, it goes live.

00:19:31
So, we have a fantastic

00:19:36
infra engineer

00:19:37
who set it all up.

00:19:42
Good infra engineers

00:19:43
are so understated.

00:19:44
They do

00:19:47
amazing things and

00:19:48
act like it’s obvious.

00:19:48
For

00:19:57
me, it’s like, oh my

00:19:57
god, it’s all magical.

00:19:59
I completely

00:20:01
agree with you.

00:20:02
It was the same

00:20:03
with my startup.

00:20:04
One of the most valued

00:20:06
people, and I’m not

00:20:08
saying that all the

00:20:08
other guys were bad,

00:20:10
but the most valued guy

00:20:11
from my perspective was

00:20:12
the one that built the

00:20:14
Argo CD, the Jenkins

00:20:17
pipeline, the Kubernetes

00:20:18
cluster, all of that,

00:20:20
because in the end,

00:20:21
it was literally you

00:20:22
commit to your Git

00:20:25
repository, you make

00:20:25
a new tag, the build

00:20:28
pipeline picks it up,

00:20:29
the deployment pipeline

00:20:30
picks it up, and you

00:20:33
magically have the

00:20:34
new version deployed.

00:20:35
And it was incredible.

00:20:37
It saves other

00:20:37
engineers so much time.

00:20:40
It’s just this giant

00:20:42
force multiplier and

00:20:44
it prevents all kinds

00:20:45
of random incidents,

00:20:48
possibly generating

00:20:49
some new ones, but I

00:20:50
think on the balance,

00:20:50
it’s been amazing.

00:20:50
The problem is

00:20:50
that a lot of that

00:20:50
work is invisible.

00:20:50
It’s like how in

00:20:59
the past front-end

00:21:00
engineers or graphic

00:21:01
designers were the

00:21:01
ones everyone loved

00:21:04
because they had

00:21:05
something to show.

00:21:06
And as a backend

00:21:07
engineer, you’re

00:21:07
working for

00:21:10
weeks with nothing

00:21:11
visual to show.

00:21:16
It’s really hard,

00:21:17
especially in larger

00:21:18
companies with formal

00:21:20
performance reviews

00:21:21
and calibrations

00:21:22
across the company.

00:21:24
You have to show

00:21:26
the impact of an

00:21:27
engineer, right?

00:21:28
On one hand, you have

00:21:29
a front-end engineer

00:21:31
who moves a button two

00:21:32
pixels to the left and

00:21:34
suddenly conversion is

00:21:35
up by 50%—huge impact.

00:21:39
But what they did

00:21:40
was move a pixel.

00:21:42
On the other hand,

00:21:43
you have someone who

00:21:45
rewrites a core part of

00:21:48
the storage engine to

00:21:49
be 30 times faster and

00:21:53
100 times more reliable.

00:21:54
Okay, but what

00:21:55
was the impact?

00:21:56
Well, customers no

00:21:57
longer lose data and

00:21:58
are slightly happier

00:21:59
because it’s faster.

00:22:01
Yes, that

00:22:04
is so true and so sad.

00:22:07
I’ve been there in my

00:22:10
career at least once,

00:22:12
probably more than that.

00:22:13
Infra engineers

00:22:14
should not work for

00:22:15
large companies.

00:22:16
I mean, I’m being

00:22:17
tongue-in-cheek,

00:22:17
obviously, a lot of

00:22:18
them are very happy at

00:22:19
Google and AWS, but if

00:22:23
you want to be noticed

00:22:24
for your impact, a

00:22:26
small company is so much

00:22:27
better because everyone

00:22:29
is an engineer and

00:22:29
sees what you’re doing.

00:22:31
But I think that’s

00:22:32
true in general.

00:22:33
With Simplyblock,

00:22:34
we’re still a super

00:22:35
small startup, around

00:22:38
16 or 17 people.

00:22:40
I chose to go back

00:22:41
to that small company

00:22:44
environment exactly for

00:22:45
that reason, because

00:22:46
you have influence.

00:22:48
You really matter.

00:22:51
You’re not

00:22:51
just a number.

00:22:53
Exactly.

00:22:54
How did we even

00:22:54
move to Kubernetes?

00:22:55
Well, we hired the

00:22:56
infra guy and he talked

00:22:58
to developers, and

00:23:00
they said, yeah, this

00:23:01
sounds like a good idea.

00:23:02
Let’s try it.

00:23:02
He did it, and

00:23:02
everyone said,

00:23:05
yeah, this is

00:23:05
so much better.

00:23:11
Let’s go.

00:23:11
That’s the impact

00:23:12
I’m talking about.

00:23:14
He came in, made a

00:23:15
suggestion, and it

00:23:18
was a good idea.

00:23:19
Now everything is

00:23:19
much better than

00:23:20
it was before.

00:23:22
One thing, because

00:23:24
Simplyblock is a

00:23:24
storage company, you

00:23:25
mentioned that storage

00:23:26
is a problem for you.

00:23:29
In what sense?

00:23:32
So, I wouldn’t say that

00:23:35
storage is exactly a

00:23:36
problem, but it is a

00:23:37
part of Postgres that we

00:23:39
had to figure out how to

00:23:40
modify, like finding the

00:23:42
spare bits in the block

00:23:44
where we can put tenant

00:23:48
identifiers.

00:23:49
But I would say that

00:23:51
in general, in the

00:23:51
industry, if you look

00:23:54
at incidents across the

00:23:56
board, and there’s been

00:23:58
plenty of research,

00:24:00
storage outages are

00:24:02
kind of a leading

00:24:03
cause of outages.

00:24:07
Obviously, storage

00:24:07
performance has

00:24:09
a gigantic impact

00:24:10
on the performance

00:24:11
of any system.

00:24:13
You can only get as

00:24:15
fast as your storage.

00:24:16
Your performance cannot

00:24:17
really get better

00:24:17
than your storage.

00:24:25
That’s true.

00:24:26
The idea of tiering

00:24:27
storage, which I

00:24:29
think Confluent kind

00:24:30
of pioneered—though

00:24:31
I wasn’t on the team

00:24:32
that pioneered it, but

00:24:33
I was fairly close to

00:24:35
it—is that you have

00:24:36
some data that has

00:24:37
to be on expensive,

00:24:38
fast disks and some

00:24:40
data that may need

00:24:42
to be high-throughput

00:24:44
and very reliable,

00:24:45
but low latency is

00:24:48
not the concern.

00:24:50
Maybe actually having

00:24:51
a lot of copies

00:24:52
is more important.

00:24:54
This is one of the

00:24:57
most important ideas

00:24:58
when it comes to

00:24:59
serverless and building

00:25:01
cloud-native systems.

00:25:03
Okay, that is a

00:25:05
perfect answer.

00:25:06
I could not add

00:25:08
anything to that.

00:25:09
I mean, who would

00:25:10
I be anyway?

00:25:14
We already crossed

00:25:15
the 20-minute mark

00:25:16
by a few minutes,

00:25:20
so the last question

00:25:23
for every guest:

00:25:24
What do you think is

00:25:25
the next big thing?

00:25:26
Could be database,

00:25:27
could be AI, could

00:25:30
be anything you like.

00:25:32
Yeah, I’m kind of

00:25:33
struggling to think.

00:25:34
As much as I want to

00:25:35
talk up the future

00:25:37
of databases, I’m

00:25:38
struggling to think

00:25:39
of anything bigger

00:25:42
than AI going on.

00:25:45
One of the big questions

00:25:46
is whether the idea

00:25:49
of vectorizing data,

00:25:53
storing it in a

00:25:54
database, and using

00:25:56
vector similarity to

00:25:58
enhance AI performance

00:25:59
is here to stay.

00:26:02
Every indication tells

00:26:04
me that the concept is

00:26:06
solid and the techniques

00:26:07
are getting better

00:26:08
and better, both in

00:26:09
terms of embeddings

00:26:10
and also techniques

00:26:11
outside of embeddings.

00:26:15
I also see PGVector

00:26:17
keeps getting better

00:26:19
with more contributions,

00:26:20
performance

00:26:23
improvements, new

00:26:25
indexes, and so on.

00:26:28
So I feel like-

00:26:31
Watching, and I don't

00:26:33
know that vector data, I

00:26:34
know it's controversial.

00:26:35
There's a lot of people

00:26:36
probably listening

00:26:36
with a Vector database.

00:26:38
I don't know that there

00:26:40
is tons of appetite,

00:26:41
especially in small

00:26:43
startups where a lot

00:26:44
of the AI is happening

00:26:45
in small startups.

00:26:46
Whether there is a lot

00:26:47
of appetite for yet

00:26:48
another database versus.

00:26:51
I'm seeing so much,

00:26:52
just let me do

00:26:54
everything in Postgres.

00:26:55
And if Postgres is a

00:26:58
few percent point maybe

00:27:00
slower than the absolute

00:27:02
leading edge vector DBs,

00:27:03
I think a lot of people

00:27:04
will absolutely take

00:27:05
the bargain because just

00:27:07
let me do everything

00:27:08
in my Postgres.

00:27:10
So I do think

00:27:12
that, yeah, RAC

00:27:14
is here to stay.

00:27:15
Vector similarity

00:27:17
is getting better

00:27:18
and better, and

00:27:19
faster and faster.

00:27:20
And I do think that

00:27:23
PGVector is going to

00:27:23
own a huge slice of it.

00:27:26
All right, cool.

00:27:27
Yeah.

00:27:27
I think that is a very

00:27:29
nice last sentence.

00:27:32
RAC is here to stay.

00:27:34
Thank you very much.

00:27:36
We are at 26 minutes.

00:27:38
I think we have

00:27:39
to cut it here.

00:27:42
Thank you very much

00:27:43
for being here.

00:27:44
Awesome chat, just

00:27:48
like the pre-recording

00:27:49
chat we had.

00:27:52
It’s such an

00:27:54
honor to have you.

00:27:56
As I said, I’m the

00:27:57
one who was excited

00:27:58
here, so thank you very

00:28:00
much for being here.

00:28:02
Thank you so much.

00:28:03
It’s been a pleasure.

00:28:05
For the audience,

00:28:07
you know how it

00:28:08
rolls, same time next

00:28:10
week, same place.

00:28:11
I hope you’re coming

00:28:13
back and you’re

00:28:13
listening again.

00:28:14
Thank you very much

00:28:14
for being here as well.

00:28:18
The Cloud Commute

00:28:19
Podcast is sponsored by

00:28:20
Simplyblock, your own

00:28:22
elastic block storage

00:28:23
engine for the cloud.

00:28:24
Get higher IOPS and

00:28:25
low predictable latency

00:28:26
while bringing down your

00:28:27
total cost of ownership.

00:28:28
www.simplyblock.io