Kamal and Docker: Efficient Application Deployment Strategies - RUBY 660

Kamal and Docker: Efficient Application Deployment Strategies - RUBY 660

Released Wednesday, 13th November 2024
Good episode? Give it some love!
Kamal and Docker: Efficient Application Deployment Strategies - RUBY 660

Kamal and Docker: Efficient Application Deployment Strategies - RUBY 660

Kamal and Docker: Efficient Application Deployment Strategies - RUBY 660

Kamal and Docker: Efficient Application Deployment Strategies - RUBY 660

Wednesday, 13th November 2024
Good episode? Give it some love!
Rate Episode

Episode Transcript

Transcripts are displayed as originally observed. Some content, including advertisements may have changed.

Use Ctrl + F to search

0:00

Hey, it's Ryan Seacrest. Life comes at

0:02

you fast, which is why it's important

0:04

to find some time to relax. A

0:06

little you time. Enter Chumba Casino with

0:08

no download required. You can jump on

0:11

any time, anywhere for the chance to

0:13

redeem some serious prizes. So treat yourself

0:15

with Chumba Casino and play over a

0:17

hundred online casino style games. All for

0:20

free. Go to Chumba Casino.com to collect

0:22

your free welcome bonus. Sponsored by Chumba

0:24

Casino. This

0:29

podcast is sponsored by TalkSpace. You know

0:31

when you're really stressed or not feeling

0:33

so great about your life or about

0:35

yourself? Talking to someone who understands can

0:37

really help. But who is that person?

0:40

How do you find them? Where do

0:42

you even start? TalkSpace. TalkSpace makes it

0:44

easy to get the support you need.

0:46

With TalkSpace, you can go online, answer

0:48

a few questions about your preferences, and

0:50

be matched with a therapist. And because

0:52

you'll meet your therapist online, you'll have

0:54

to take time off work or arrange

0:56

childcare. You'll meet on your schedule, wherever

0:58

you feel most at ease. If

1:01

you're depressed, stressed, struggling with

1:03

a relationship, or if you

1:05

want some counseling for you

1:07

and your partner, or just

1:09

need a little extra one-on-one

1:11

support, TalkSpace is here for

1:13

you. Plus, TalkSpace works with

1:15

most major insurers, and most

1:18

insured members have a $0

1:20

copay. No insurance? No problem.

1:22

Now get $80 off of

1:24

your first month with promo

1:26

code space 80 when you

1:28

go to talkspace.com. Match with

1:31

a licensed therapist

1:34

today at

1:36

talkspace.com. Save

1:38

$80 with code space

1:41

80 at

1:43

talkspace.com. And we have

1:46

a very special guest today.

1:48

Joseph, do you want to

1:50

introduce yourself and tell

1:52

everybody why you're Ruby

1:54

famous here? Yes. Hello

1:57

everyone. So I'm Joseph.

1:59

I am... freelance software

2:01

engineer. And apparently now

2:03

also a book author,

2:05

I wrote two books.

2:07

The first one was

2:09

called Deployment from Scratch,

2:11

and the second one

2:13

is called Camelhan Book.

2:15

And that's probably why

2:17

we are here today.

2:21

Yeah, you know that Kamala

2:23

is like the one of

2:25

the latest crazes with all

2:27

the new rails announcements that

2:29

came out of rails world

2:31

So it's kind of exciting

2:34

to have an expert here

2:36

or at least somebody who

2:38

has Doved into the trenches

2:40

and put together all the

2:42

details for us to You

2:44

know expose the the secrets

2:46

of how minimalistic it is.

2:48

I hope I I honestly

2:50

haven't had a chance to

2:52

play with Kamal, so I'm

2:54

looking forward to hearing your

2:56

take on how it all

2:58

comes together. Yeah, I did

3:00

a deploy or two before

3:02

the show just so I

3:05

know. So I guess we

3:07

can start maybe at a

3:09

high level like, you know,

3:11

what does the deploy process

3:13

like look like, you know,

3:15

maybe before Kamal and why

3:17

Kamal is even here? Yeah,

3:20

so maybe it would be

3:22

interesting to see it from

3:24

the point of 47 signals,

3:26

because there are the company

3:29

behind Kamo, right? Kamel, actually

3:31

started by David Halmer Hansen,

3:34

so out there of rails,

3:36

he also started Kamo. And

3:38

they were doing the deployment

3:41

with Kapistan, which is a

3:43

simple Ruby deploy tool. You

3:46

basically have all your little...

3:48

tasks predefined in Ruby and

3:50

then you simply run them

3:53

there on the server and

3:55

something happens you know copies

3:58

channel at the time didn't

4:00

do much assumptions about what

4:02

will be on the server

4:05

or so on you could

4:07

define your own tasks so

4:10

you couldn't drive the deployment

4:12

the way you wanted it

4:14

was simply a tool given

4:17

to you and then they

4:19

jumped as everybody else on

4:21

this Kuberneti strain right like

4:24

big deployment that have infinite

4:26

scale. And to me at

4:29

the time, I remember it,

4:31

I was a little bit

4:33

sad because I was like,

4:36

they were the heroes of

4:38

kind of marketing the simple

4:41

way of deploys, right? So

4:43

not everybody has to be

4:45

on Kubernetes. And then it

4:48

was announced that they are

4:50

making... the leaf from cloud,

4:53

right? The big saving journey

4:55

of leaving the cloud. And

4:57

I know they wanted to

5:00

make a burnities work. They

5:02

went to some vendors, you

5:05

know, from Sousa and so

5:07

on. And David was talking,

5:09

writing about that. But then

5:12

he was really thinking, okay,

5:14

maybe we can do something

5:17

on our own, which is

5:19

not silly, so unusual for

5:21

David, I would say. And

5:24

so they kind of. So

5:26

what state is the SSH

5:29

kid, which is like Ruby

5:31

library, so Kamal is design

5:33

around Docker from the ground

5:36

up, you know, and because

5:38

of that, it also made

5:40

some assumptions to make something

5:43

a little bit easier. So

5:45

what state is the SSH

5:48

kid, which is like Ruby

5:50

library that simply connects over

5:52

SSH to your server. But

5:55

instead of running. some just

5:57

pure brush cold. You

6:00

still run, run, you still

6:02

run tasks, but they are

6:04

usually around running ducar commands.

6:07

So, come on, can install

6:09

ducar, and then simply run

6:11

various ducar commands tasks. The

6:13

simplest way, how you can

6:16

think about it at the

6:18

simplest level, is simply that

6:20

the car will connect and

6:22

run ducar, run, name of

6:25

your application, you know. And

6:27

it doesn't even have a

6:29

specific ducer pool task, for

6:31

example, because that's already something

6:34

that ducer does itself. So

6:36

common really tries to be

6:38

as minimalistic as possible and

6:40

as simple as possible. There

6:43

are some limitations to that,

6:45

of course, and I would

6:47

say the simplicity may confuse

6:49

people sometimes. Because as you

6:52

said, so what is the

6:54

deploy process, right? And usually

6:56

I would say before the

6:58

deploy itself, you prepared the

7:01

server beforehand, which we can

7:03

call provisioning, you know, part

7:05

of that's that can be

7:08

even spinning up the virtual

7:10

machines. For example, it's what

7:12

most people would probably do,

7:14

unless you have physical servers,

7:17

and then installing some software

7:19

firewalls and so on. It's

7:21

just that we've come out,

7:23

we don't need anything else

7:26

for the come-out to war.

7:28

then docor. And even docor

7:30

can be installed by command.

7:32

So it simplifies it a

7:35

lot, but it's still like

7:37

one piece of the puzzle.

7:39

Maybe you need other tools.

7:41

You want to install some

7:44

monitoring or recup scripts or

7:46

whatever. So just one part

7:48

of the whole of the

7:50

whole process. Nice. So, um,

7:53

noob question straight off the

7:55

bat. Like, I assume this

7:57

will also be, maybe a

7:59

source of confusion for someone

8:02

who does... doesn't know a

8:04

whole lot about DACA or

8:06

just like the modern deployment

8:08

complexity and stuff, but can

8:11

you explain what the difference

8:13

between Kuveneti and Kamal is

8:15

for people who don't understand

8:17

either of them? Yeah, so

8:20

basically you can split this

8:22

kind of deploy systems to

8:24

two categories. One is doing

8:26

push. to the server. So

8:29

we are pushing your configuration

8:31

to the server, your changes

8:33

to the server. In terms

8:35

of Kamal, that means from

8:38

your local computer or the

8:40

CI server, we will run

8:42

Kamal the Poi and Kamal

8:44

will issue the concrete commands

8:47

that have to run on

8:49

all those servers that you

8:51

defined. And Kubernetes is the

8:53

other category, which we call

8:56

like a pool systems, where

8:58

usually you have... one host

9:00

that runs the main master

9:02

agent in so sort of

9:05

way and the other servers

9:07

run some lightweight minion agents

9:09

and so the central system

9:11

is that one master host

9:14

and all the systems around

9:16

it can pull the information

9:18

from it. So they constantly...

9:20

to fix the new information.

9:23

And if they say, okay,

9:25

there is a new version,

9:27

then they go and pull

9:29

the information themselves. Oh, cool.

9:32

That makes sense. So, like,

9:34

why would, so me as

9:36

an indie developer who is

9:38

building very small apps on

9:41

very small scale, and I'm

9:43

thinking, do I even need

9:45

Dhaka, like, what's your opinion

9:47

on that? Yeah, in terms

9:50

of what I was thinking

9:52

about the split between like

9:54

Kubernetes and the agent systems,

9:56

this is what I think

9:59

that you do. don't really

10:01

need for small scale, right?

10:03

Because you don't need extra

10:05

resources to run the agents.

10:08

You don't need the extra

10:10

master server that maybe also

10:12

need some kind of backup

10:14

to be available and so

10:17

on. But as you say,

10:19

there's still the question about

10:21

darker itself, like isn't even

10:23

darker overhead, right? I saw

10:26

some people commenting on. Ruby

10:28

subreddit and they were like

10:30

kind of criticizing Kamal for

10:32

using Docker when THH wants

10:35

rails to be no build,

10:37

as the no build, right,

10:39

on the front end, but

10:41

then introducing build process on

10:44

the, on the server side.

10:46

But, Booker still has several

10:48

advantages. First of all, we

10:50

really package. pre-package the application

10:53

in the container. So we

10:55

can be sure of what's

10:57

really inside and that at

10:59

this revision the application was

11:02

running, which is important when

11:04

you will be doing a

11:06

rollback, you know, when something

11:08

wrong happened and you want

11:11

to roll back, then you

11:13

know that the previous version

11:15

was actually running fine. The

11:17

problem with copy strano way

11:20

of doing that is that

11:22

suddenly you are trying to

11:24

switch back to Ruby version

11:26

that hopefully is there, but

11:29

maybe if there will some

11:31

system changes, you know, system

11:33

updates, system utilities, and a

11:35

lot of real applications also

11:38

shell out to call some

11:40

system system tools, right? So

11:42

suddenly you don't even know

11:44

what will happen because it

11:47

can go all wrong. Yeah,

11:50

for those that aren't aware

11:52

Kavanaugh is all like local

11:54

file system and just has

11:56

like a, you know, sim

11:58

link cutoff to switch. whatever

12:01

production version you're using right

12:03

behind the scenes. Yeah, like

12:05

TLDR of it. There's all

12:07

this stuff, right? Yeah, exactly

12:10

as you say, and of

12:12

course, yes, it's simply a

12:14

trade-off. You can't really say

12:16

it's so much better or

12:19

so much worse. I think

12:21

for modern deploys, it's it's

12:23

preferable to do it with

12:25

something like doker or different

12:27

container technology. But I do

12:30

sympathize somehow to the local

12:32

criticism because you now need

12:34

a doctor registry to save

12:36

your images, which by the

12:39

way David suggested that they

12:41

will get rid of in

12:43

some future versions of Kamal.

12:45

So hopefully that will go

12:48

away. But yeah, it's a

12:50

new thing to learn basically.

12:52

So I understand. especially because

12:54

when I was writing my

12:56

first book deployment from scratch,

12:59

I also basically did something

13:01

like Capist Channel, except I

13:03

didn't even use Ruby. I

13:05

simply do it with Bash

13:08

only, you know. So you

13:10

don't have to learn any

13:12

other tool and you can

13:14

still install and run. And

13:17

the biggest advantage there is

13:19

that the switch, the update,

13:21

can be really fast. If

13:23

you are not even installing

13:26

a new version of Ruby

13:28

Jam, for example, it's really,

13:30

it's really super fast. But

13:32

I think the other advantages

13:34

of the credibility really really

13:37

are better for most people,

13:39

for majority of people. And

13:41

when I saw Kamal as

13:43

a tool, I was, I

13:46

told myself, okay, this is

13:48

it. because since I had

13:50

this Bash script kind of

13:52

deploy, you know, very, very

13:55

straightforward. I was thinking myself

13:57

of doing some kind of

13:59

small tool, something like Kamal.

14:01

At the time, I was

14:03

thinking maybe using some components

14:06

like keddy for web server,

14:08

you know, or maybe podman

14:10

instead of docor, because my

14:12

background is in like federally

14:15

nukes and stuff. But I

14:17

know that my little tool,

14:19

again, be just for me,

14:21

you know. So I thought

14:24

like Kamal is the closest

14:26

to what I want. And

14:28

so that's how I basically

14:30

started to be interested and

14:32

started to look more into

14:35

it. And I really liked

14:37

Kamal's direction to make it

14:39

just easier to jump on

14:41

darker without having to like

14:44

necessarily worry about like how

14:46

you configure darker and like

14:48

connect all of the services

14:50

and things like that out

14:53

of the box anyway, right?

14:55

And then, because it sets

14:57

you up kind of like,

14:59

okay, if you needed to

15:01

scale, you could then move

15:04

to some other, you know,

15:06

provider like AWS or something

15:08

that could scale the nodes

15:10

for you pretty easily and

15:13

you can reuse all the

15:15

configuration stuff. And so it's

15:17

a little exciting in that

15:19

way. And it makes it,

15:22

it makes me think though,

15:24

like, like, so how does

15:26

this compare to like, you

15:28

know, tools like Chef or,

15:30

you know, some other configuration

15:33

management aspects of like, like,

15:35

like, you know, the system

15:37

deployment process, like where are

15:39

some advantages that Kamal could

15:42

lead us? Where you, you

15:44

know, maybe, I know Chef

15:46

is like a, it takes

15:48

some extreme getting used, there's

15:51

onboarding a ramp like pretty

15:53

steep learning curve. But like

15:55

where do you see Kamal

15:57

like kind of maybe simplifying

15:59

that or how does it

16:02

compare? Or does it not?

16:04

Yeah, I think there is

16:06

this confusion among the the

16:08

post systems because then you

16:11

have exactly as you say

16:13

chef or Ansible and they

16:15

they maybe started more like

16:17

configuration tools, but they also

16:20

offer you a way to

16:22

do a deploy, you know.

16:24

So they're not completely obsolete.

16:26

We've come out because you

16:28

can still use them provision

16:31

the servers and then you

16:33

come out for the deploy

16:35

part. In my case, I

16:37

find that I don't need

16:40

that much of the configuration.

16:42

I mean, come out itself

16:44

even bills even bills. It's

16:46

almost you don't need anything,

16:49

but that's not really true

16:51

and then people are disappointed.

16:53

But for me, I for

16:55

example, included a very small

16:57

Ruby script, which is just

17:00

a little bit wrapper around

17:02

some show commands. How to

17:04

have fun, anytime, anywhere, step

17:06

one, go to Chumba Casino.com.

17:09

Chumba Casino. This podcast is

17:11

sponsored by TalkSpace. You know

17:13

when you're really stressed or

17:15

not feeling so great about

17:18

your life or about yourself?

17:20

Talking to someone who understands

17:22

can really help. But who

17:24

is that person? How do

17:26

you find them? Where do

17:29

you even start? Talk space.

17:31

Talk space makes it easy

17:33

to get the support you

17:35

need. With Talk space, you

17:38

can go online, answer a

17:40

few questions about your preferences,

17:42

and be matched with a

17:44

therapist. And because you'll meet

17:47

your therapist online, you don't

17:49

have to take time off

17:51

work or arrange child care.

17:53

You'll meet on your schedule,

17:55

wherever you feel most at

17:58

ease. If you're depressed, stressed,

18:00

struggling with a relationship, or

18:02

if you want some counseling

18:04

for you and your partner,

18:07

or just need a little

18:09

extra one-on-one support, TalkSpace is

18:11

here for you. Plus, TalkSpace

18:13

works with most major insurers,

18:16

and most insured members have

18:18

a... zero dollar copay. No

18:20

insurance, no problem. Now get

18:22

$80 off of your first

18:24

month with promo code space

18:27

80 when you go to

18:29

talkspace.com. Match with a licensed

18:31

therapist today at talkspace.com. Save

18:33

$80 with code space 80

18:36

at talk space.com. To provision

18:38

some very basic things for

18:40

the server like firewalls, different

18:42

SSHC users for security reasons

18:45

and so on. And in

18:47

this way, you might find

18:49

out that you need so

18:51

little that you don't really

18:53

need a proper tool like

18:56

chef. But at the same

18:58

time, I wouldn't say that

19:00

Kamal makes it obsolete because

19:02

they complement each other. I

19:05

do wonder if David, for

19:07

example, still have in his

19:09

mind to release something complementing

19:11

Kamal because... Kamal is so

19:14

simple and it started as

19:16

a multi-server tool but at

19:18

the same time it cannot

19:20

deploy a load balancer like

19:22

in front of the servers

19:25

right you have a proxy

19:27

that does to get plus

19:29

depose on each of hosts

19:31

like each server but you

19:34

still need like third-party load

19:36

balancer so Kamal is like

19:38

really like a very specific

19:40

tool and I wonder if

19:43

simply Kamal will Maybe get

19:45

a little bit bigger and

19:47

better in this way to

19:49

handle these things or there

19:51

will be something else Maybe

19:54

Would you use Kamal for

19:56

your like on independent single

19:58

server applications as well? Or

20:00

would you use your bash

20:03

script? Whatever approach you thought

20:05

in in your first book?

20:07

So I switched everything to

20:09

Kamal for all my projects

20:12

and and also I was

20:14

working with some clients to

20:16

switch them to come out.

20:18

For me, although I actually

20:20

really used the best scripts

20:23

from from the book, they

20:25

were developed specifically to be

20:27

educational. I didn't say don't

20:29

use tools, don't use Kubernetes.

20:32

But I've write it to

20:34

pure bash to simply show

20:36

people that everything else is

20:38

an obstruction, right? For example,

20:41

when you have Ansible, it's

20:43

written in Python, it's a

20:45

lot of Python code, that

20:47

in the end prepares a

20:49

bash code, the remote server

20:52

and then it executed there,

20:54

right? So I basically skipped

20:56

the part where I have

20:58

to teach someone about different

21:01

tools because, to be honest,

21:03

the tools come and go.

21:05

So the idea for the

21:07

first book was really not

21:10

being about particular tool, but

21:12

more like how this actually

21:14

works. But since we have

21:16

come out, I think it's,

21:18

for me, it's like a

21:21

perfect tool. There is some

21:23

alternative, you can look into

21:25

docu, or maybe even simple

21:27

docu compose, but personally I

21:30

think Kamal has advantage to

21:32

them because they are, it's

21:34

designed for multi-server use from

21:36

the ground up. Basically the

21:39

single server use schedule is

21:41

like edit later, right, with

21:43

Kamal too. And compared to

21:45

docu, there's also a different

21:47

philosophy. It's not like pass.

21:50

It's more like really just

21:52

a deploy tool. But if

21:54

I'm deploying my own application

21:56

that I also develop, I

21:59

think Kamal fits best to

22:01

that use case. You know,

22:03

maybe if you want to

22:05

deploy some public application, maybe

22:08

it's easier to install something

22:10

like qualify or some. are

22:12

the tools that can one

22:14

click install them. But I

22:16

think if you are the

22:19

developer of the application. really

22:21

fits the fields of it

22:23

with the best. And for

22:25

me personally, I really switched

22:28

100%. Yeah, to add on,

22:30

I'm seeing there's a PR

22:32

open right now to add

22:34

a cloud native build text

22:37

to Kamo, which would be

22:39

interesting, where you can basically

22:41

build the app based off

22:43

of other ones pretty easily.

22:45

Yeah, so basically that's. That's

22:48

the single, I would say,

22:50

advantage of docu today, that

22:52

it can be a little

22:54

bit more magical. It somehow

22:57

will build it for you.

22:59

I didn't have to write

23:01

docor file. But lucky for

23:03

us, Wales actually counts of

23:06

docor file, so there is

23:08

no extra work. It is

23:10

not true for every framework.

23:12

But of course, if you

23:14

are adopting docor, I still

23:17

recommend looking into... how to

23:19

build a file, how to

23:21

optimize it. For example, before

23:23

I was trying to squeeze

23:26

the the profile for my

23:28

real applications, you know, I

23:30

was removing all the all

23:32

the files. I don't need

23:35

them to have small footprint

23:37

since you have to do

23:39

the image and pull and

23:41

push. So, so yeah. What

23:43

is like kind of like

23:46

the full process like let's

23:48

say we do like a

23:50

real's new app and we

23:52

wanted to like deploy it

23:55

with Kamal to like some

23:57

Linod or something right or

23:59

digital ocean droplet like what

24:01

is the steps of the

24:04

process there like To just

24:06

like real's new yeah I

24:08

have a you know so

24:10

you know so you so

24:12

let's say you do you

24:15

did a real's new you

24:17

have your doctor file so

24:19

that's one that's one prerequisite

24:21

you have to have for

24:24

the ducer file because maybe

24:26

you are not on rails.

24:28

So let's just mention that

24:30

you do need your server

24:33

to run on port 80.

24:35

You can change it, but

24:37

it's like default if you

24:39

want it to simply work.

24:41

That's the main thing for

24:44

the docor file. Then you

24:46

will need a docor registry.

24:48

So make an account, a

24:50

docor hub or maybe your

24:53

provider hers, it's own register

24:55

that you can use. And

24:57

you need to create like,

24:59

they call it, come out,

25:02

because it's still like registry

25:04

passport, but you should create

25:06

a token and note it

25:08

down. And then you will

25:10

need to create some virtual

25:13

machine. It can be headsner,

25:15

it can be digital ocean,

25:17

and a cloud provider like

25:19

that would work. And for

25:22

that you will need to

25:24

create SSH key pairs. So

25:26

you will create key pair,

25:28

that means you have two

25:31

keys, one private and one

25:33

public, right? So the private,

25:35

obviously, you have to protect

25:37

the registry password. And during

25:39

the creation of the virtual

25:42

machine, When you go like

25:44

create, you choose some resources,

25:46

you know, how big the

25:48

VM should be and so

25:51

on. And then it will

25:53

ask you to copy your

25:55

key there. So that's how

25:57

they will provision the VM

26:00

for you. And you should

26:02

disable the password login value

26:04

there just for security. And

26:06

so that's the... That's that's

26:08

what you need to that's

26:11

what you need to have

26:13

you know at the at

26:15

the minimum at the minimum

26:17

like the basic ones. Now

26:20

maybe you also want to

26:22

deploy to a domain name

26:24

so then obviously you have

26:26

to purchase a domain name

26:29

and you will need a

26:31

DSM record at the very

26:33

least type a to point

26:35

your domain to the IP

26:37

address to the public IP

26:40

address you will get for

26:42

the machine you just provisioned.

26:44

And if you have that

26:46

you can basically start with

26:49

Kamal. With Kamal in it,

26:51

there is some basic configuration

26:53

file. There are comments in

26:55

line, so even when you

26:58

never saw it, you can

27:00

usually guess a little bit

27:02

what you will have to

27:04

put there. So you will

27:06

name your application. Kamal calls

27:09

it service. I would also

27:11

say be careful of the

27:13

name because when you are

27:15

doing the duker, a local

27:18

private networking, it's also like

27:20

kind of a name that

27:22

you are using. So you

27:24

cannot like put any characters

27:27

you want there, you know,

27:29

just stick to normal letters

27:31

and dashes and then you

27:33

are fine. So, so we

27:35

are not surprised later that

27:38

it doesn't work. Then you

27:40

specify the image. which is

27:42

your container registries username like

27:44

slash the application name basically

27:47

and then you can put

27:49

the IP address among servers.

27:51

When you do that you

27:53

are configuring your application server

27:56

by default the role called

27:58

web and you can. return

28:00

just after this one, how

28:02

Kamal splits the application circuit.

28:04

roles and accessories. But for

28:07

now if you just put

28:09

there the IP address that's

28:11

enough and then you will

28:13

configure proxy you will say

28:16

okay I want SSL and

28:18

you will put their host

28:20

which is your domain name

28:22

or it can be also

28:25

sub domain. It can be

28:27

even more hosts if you

28:29

want. So very very flexible.

28:31

This is very nice. Then

28:33

you finish up with the

28:36

registry and then there's builder

28:38

configuration, but by default I

28:40

think there's some reasonable value.

28:42

And once you have all

28:45

this, then you only need

28:47

to provide the environment, which

28:49

is the secrets fee. We

28:51

talk about like common registry

28:54

password, but it can be

28:56

many more secrets that the

28:58

application have, obviously. So you

29:00

list them. There is basically

29:02

some environment variables you can

29:05

list directly, but the secret

29:07

ones you actually just put

29:09

under like end secret in

29:11

the amo file, and then

29:14

you only list them, but

29:16

they leave somewhere else. When

29:18

you did the Kamal in

29:20

it from before, Kamal also

29:23

created.coma slash secret file. That's

29:25

where the secret is. And

29:27

of course, then you can

29:29

also call password managers and

29:31

so on. But at the

29:34

very basic one, you would

29:36

just put the secrets there.

29:38

You will not check it

29:40

out. Check it in the

29:43

source control. And then your

29:45

configuration is done. You run

29:47

Kamal setup. And Kamal does

29:49

everything for you. It will

29:52

connect to the server. It

29:54

will install the occur. It

29:56

will install the... come out

29:58

proxy and then it will

30:00

book your application. So that's.

30:03

the most minimalistic way of

30:05

the point with Kamal. Gotcha.

30:07

So I'm walking through the

30:09

commands, like as you were

30:12

reading through that, and just

30:14

so like we can, for

30:16

the most people know, Heroku,

30:18

very like, Heroku new, and

30:21

then deploy, you know, get

30:23

push for Well, everything you

30:25

just said, right, which is

30:27

pretty wild. Where we have

30:29

like, come all in it,

30:32

creates all the configuration files,

30:34

come all config, like, you

30:36

know, starts to create your

30:38

initial configuration file to add

30:41

all of the stuff to,

30:43

and then you have come

30:45

all deploy that just, like,

30:47

push that up and proxy

30:50

to the new version, right?

30:52

of the app. Yeah, yeah,

30:54

basically, as you say, I

30:56

mean, the camera config is

30:58

already created if camera in

31:01

it and come out config

31:03

simply rejects the configuration. It's

31:05

good. That's actually good point

31:07

to run before the deploy.

31:10

Yeah, that's awesome. I mean,

31:12

that's where we want to

31:14

head, right? Like, it's like,

31:16

it's pretty close. I mean,

31:19

I guess like, like, uh,

31:22

Yeah, I mean so many

31:25

like so many hosting providers

31:27

now have that like one

31:29

clip process to just get

31:31

your VM up that It

31:33

almost doesn't even make sense

31:35

to abstract away that process,

31:37

right? To make it easier

31:40

because they already provide that

31:42

for the most part But

31:44

this is really cool. So

31:46

I'm trying to think like

31:50

We walk through a very

31:52

simple like example, right? And

31:55

I imagine like with all

31:57

of the push to solid

31:59

Q and solid X Y

32:01

Z that like this is

32:03

all running on a single

32:06

machine? How does all of

32:08

that work? Like is it

32:10

by default running the database

32:12

on the same web server?

32:15

Yeah, so that's a good

32:17

question for talking a little

32:19

bit about how Kama actually

32:21

splits your application and what

32:23

it actually does for you.

32:26

Because this was a simple

32:28

example. You have one VM,

32:30

one. one container, right? But

32:32

your application probably does a

32:34

little bit more. It has

32:37

to run jobs or some

32:39

kind of other scheduling or

32:41

maybe are running an API

32:43

server or some marketing website

32:46

and then all those needs

32:48

databases. So at the high

32:50

level, Kamel splits this into

32:52

servers and accessories. So servers

32:54

are your application servers. Those

32:57

all run your application image.

32:59

So you cannot build like

33:01

from multiple images. It has

33:03

to be one image. There's

33:06

just different command that it's

33:08

being drawn. But it comes

33:10

from the application. Of course

33:12

you can package whatever you

33:14

want in the container and

33:17

you for example can have

33:19

application. How to have fun,

33:21

anytime, anywhere. Step one, go

33:23

to Chumba Casino.com. Chumba Casino.com.

33:25

Got it. Step two, collect

33:28

your welcome bonus. Come to

33:30

Papa, welcome bonus. Step three,

33:32

play hundreds of casino-style games

33:34

for free. That's a lot

33:37

of games, all for free.

33:39

Step four, unleash your excitement.

33:41

Chumba Casino has been delivering

33:43

thrills for over a decade.

33:45

So claim your free welcome

33:48

bonus now and live the

33:50

Chumba Life. Visit Chumba. Ryan

33:56

Reynolds here from it mobile.

33:58

I don't know if you

34:00

knew this but anyone can

34:02

get the same premium wireless

34:04

for $15 a month plan

34:07

that I've been enjoying. It's

34:09

not just for celebrities, so

34:11

do like I did, and

34:13

have one of your assistance

34:15

assistance to switch you to

34:17

Mint Mobile today. I'm told

34:19

it's super easy to do

34:21

at MintMobile.com/switch. Up front payment

34:23

of $45 for three month

34:25

plan, equivalent to $15 per

34:27

month required. Intro rate for

34:30

three months only. Then full

34:32

price plan options available, taxes

34:34

and full taxes available, taxes

34:36

and fees extra. a jungle

34:38

application next to it, you

34:40

know, but you have to

34:42

put it to the image

34:44

because that's kind of a

34:46

constraint that come on puts

34:48

and you. And with this

34:50

server roles, it's important to

34:53

say that there is a

34:55

primary role by default. It's

34:57

called web, but you can

34:59

rename it. And the primary

35:01

role assumption is that this

35:03

is your main application server.

35:05

That's your rails S, basically,

35:07

or like your puma starting

35:09

up. And why is important?

35:11

Because it plays in a

35:13

role, how come I actually

35:16

does deploy on multiple servers

35:18

and also on each particular

35:20

server. Because when it puts

35:22

your application, it usually puts

35:24

your accessories, which are the

35:26

databases, all these low-running services

35:28

that are not necessarily, I

35:30

mean, they're connected with your

35:32

application, but it's... but it's

35:34

something else. You know, they're

35:36

not part of the Kamal

35:39

deployed process per side. They

35:41

should already be running and

35:43

you are simply taking use

35:45

of it. But the primary

35:47

was important because Kamal changed

35:49

a little bit regarding health

35:51

checks and how it ensures

35:53

that actually the container is

35:55

healthy and can serve traffic

35:57

or can run. before we've

35:59

tried. we had something like

36:02

a court file. I won't

36:04

really go into it because

36:06

it's already kind of obsolete.

36:08

But I will say that

36:10

the new way, there is

36:12

something called the barrier. Maybe

36:14

you won't find this name

36:16

in the dogs, but you

36:18

might find it in the

36:20

code or somewhere in the

36:22

issues. That's how common maintenance

36:25

call it. And the barrier

36:27

means that common weight first

36:29

for your that container to

36:31

boot up successfully. the new

36:33

one, for example, for the

36:35

new version. And once it's

36:37

healthy, then it assumes it

36:39

can boot everything else. So

36:41

all other roles, whether it's

36:43

jobs or marketing sites or

36:45

whatever you put there, will

36:48

also start without any further

36:50

health check, because the only

36:52

camel proxy checks is for

36:54

this primary role. So that's...

36:56

very important to realize, for

36:58

example, you might be deploying

37:00

front and back end, you

37:02

know, split. And if come

37:04

out, you can have front

37:06

and application as one application

37:08

and back end as one

37:11

application. But if you are

37:13

putting it together and you

37:15

are simply splitting it into

37:17

roles, then one of them

37:19

has to be the primary

37:21

that come out will wait

37:23

on and then it will

37:25

also boot the others. So

37:27

that's like. one important thing.

37:29

You can still have health

37:31

checks also for other containers,

37:34

but then it's just the

37:36

regular docor health checks that

37:38

you can add there, but

37:40

nothing to do with the

37:42

come out proxy process of

37:44

booting. Which docor registry would

37:46

you personally recommend people use?

37:48

I personally use the care

37:50

hub right now. I want

37:52

to support them because I

37:54

know they have... hard time

37:57

as a company to actually

37:59

make money out of Tucker.

38:01

And it's great that is

38:03

free and everything, you know,

38:05

but to support them, I

38:07

use them currently. Maybe the

38:09

smart answer is use the

38:11

registry with your provider because

38:13

it might be faster for

38:15

you, you know, might be

38:17

even cheaper because I think

38:20

they're increasing prices right now

38:22

with But I like the

38:24

idea of supporting them in

38:26

some way. So right now

38:28

I'm using the registry. Cool.

38:30

And so the thing with

38:32

this more of a broader

38:34

question around self hosting as

38:36

opposed to using up a

38:38

pass, the two things that

38:40

kind of scare me about

38:43

self hosting, which is why

38:45

I haven't actually deployed an

38:47

app by myself yet I

38:49

use render. The two things

38:51

that kind of scare me.

38:53

One is database backups for

38:55

like, I use postgras personally,

38:57

but I probably use SQLite

38:59

for the next project, which

39:01

would make life a bit

39:03

easier in that regard. But

39:06

database backups and OS upgrades.

39:08

So like for someone who's

39:10

only ever used like Heroku

39:12

or Ender never had to

39:14

worry about this kind of

39:16

stuff. What would you tell

39:18

them? You mentioned backups first,

39:20

right? So in the docor

39:22

way of doing backups is

39:24

likely to simply run a

39:26

docor container that does backups,

39:29

right? That's the docor way

39:31

because you have to run

39:33

everything in docor. You can

39:35

still do manual backups as

39:37

before. I actually mentioned it

39:39

in Kamalhan books, how to

39:41

do it. So you can

39:43

still do manual backup. You

39:45

can call, you know, the...

39:47

The command is a bit

39:50

larger because you have to

39:52

use the... It is actually

39:54

a good point. come out

39:56

to edit aliases so you

39:58

can prepare these commands and

40:00

then have like nice come

40:02

all backup and it will

40:04

do backup right so so

40:06

in a way it works

40:08

the same as normal self

40:10

hosting but it's definitely more

40:13

work than just using managed

40:15

database and I would say

40:17

it might be good for

40:19

people to first just move

40:21

with their server load like

40:23

application servers and wait with

40:25

the database just used to

40:27

manage the database. There's nothing

40:29

wrong with that. In fact,

40:31

I think most people will

40:33

run it like that will

40:36

take advantage of the managed

40:38

database because it saves you

40:40

a lot of hustle which

40:42

is true. But yeah, if

40:44

you want to do it

40:46

yourself, you will try on

40:48

a container there. Then you

40:50

can upload it, for example,

40:52

every day to S3 or

40:54

something like that and also

40:56

have a way to pull

40:59

it back if something happens.

41:01

I also recommend to always

41:03

turn on the automatic VM

41:05

backups, which means the whole

41:07

VM is backup like every

41:09

day on your cloud hosting

41:11

provider. This is especially cool

41:13

for like this project that,

41:15

for example, I deploy, you

41:17

know, they are not big

41:19

yet, they are one per

41:22

server. So I know I

41:24

have snapshot every day. database

41:26

and but also everything else

41:28

so I can just with

41:30

one click to return there

41:32

and continue which is really

41:34

really good but you know

41:36

as it is with backups

41:38

it's good to always have

41:40

like two different backups maybe

41:42

just to be sure so

41:45

I think that extra extra

41:47

assurance can be this virtual

41:49

machine backups as a whole

41:51

yeah And actually with

41:53

the system updates, I think

41:56

it's kind of similar because

41:58

if you have backup of

42:01

the VM and you can

42:03

return and return to

42:05

the to the process later.

42:08

And if Kamal, if you

42:10

have more hosts, you

42:12

can simply put the host

42:15

that you're upgrading like kind

42:17

of offline, you know, upgrade

42:20

the system there and then

42:22

you put it back to

42:25

the pool of servers. That's

42:27

ideal. If you have more

42:30

service and you can do

42:32

it, that's like a safe

42:35

way to to run

42:37

it. Does the current Kamal

42:39

proxy handle like low balancing

42:42

to do like slow

42:44

rollouts of versions of the

42:46

app or? Yeah, yeah, it

42:49

will, it does so-called blue

42:51

green deploy. So on every

42:54

host it will put a

42:56

new application, you're running also

42:59

the old one, then after

43:01

the house check, it switch,

43:04

but then also it switch,

43:06

but then also it

43:08

like goes and runs it.

43:11

across all hosts, right? So

43:13

yeah, there's some settings,

43:15

some little settings around that.

43:18

And it will do the

43:20

rollout for you. Yeah. That's

43:23

really cool. So I'd love

43:25

to shift gears a little

43:28

bit into this whole, like,

43:30

Kamal accessory stuff, because this

43:33

is something I wasn't immediately

43:35

obvious, like, how it all

43:38

works and when's the

43:40

best. Use case, right, where

43:42

when it's not good thing

43:45

to use as an

43:47

accessory, like what is an

43:49

accessory, right? Do you want

43:52

to just give us

43:54

like a high level like

43:56

what the Kamala accessories are

43:59

and like one example of

44:01

like the most common

44:03

one that you would add

44:06

to in that new app?

44:08

Yeah, so basically accessories.

44:10

are come away of running

44:13

like some kind of permanent

44:15

services, you know, that are

44:18

not part of that deploy

44:20

life cycle, they simply run.

44:23

Next to it, whether that's

44:25

relational database is key value

44:28

stores, search, maybe headless browsers,

44:30

you know, anything else that

44:33

you just run as

44:35

a service, basically, as your

44:37

application is using. Most people

44:40

will simply use a

44:42

database as an accessory or

44:44

first accessory. And then you

44:47

can run accessories on the

44:50

same host or different holes.

44:52

Basically, that's what I really

44:55

like about, come out, you

44:57

simply put the IP there,

45:00

IP address, and it will

45:02

deploy on that host, you

45:05

know, whether that was

45:07

an application role or accessory,

45:09

it just puts it there

45:12

where you want it.

45:14

If you want to collocate

45:16

it with the roles, you

45:19

can also just say, just

45:21

put it where the role.

45:24

That is... Ryan

45:29

Reynolds here for Mint Mobile.

45:31

I don't know if you

45:33

knew this, but anyone can

45:35

get the same premium wireless

45:37

for $15 a month planned

45:39

that I've been enjoying. It's

45:42

not just for celebrities, so

45:44

do like I did, and

45:46

have one of your assistance

45:48

assistance to switch you to

45:50

Mint Mobile today. I'm told

45:52

it's super easy to do

45:54

at MintMobile.com/switch. Up front payment

45:56

of $45 for three-month plan

45:58

equivalent to $15 per month

46:00

required. Intro rate for three

46:02

months only. Then full price

46:05

plan options available. Taxes and

46:07

fees extra. See full terms

46:09

at mintMobile.com. it will automatically

46:11

put the application next to

46:13

your, I mean, your database

46:15

next to your application on

46:17

that server. So you don't

46:19

even have to specify the

46:21

IP again, for example. But

46:23

in principle, you can really

46:25

spin it up anywhere, anywhere

46:28

you want. That's neat. So

46:30

like, let's say a more,

46:32

maybe more advanced one would

46:34

be something like sidekick or

46:36

like a background processor. How

46:38

do the employees then work

46:40

like as you deploy a

46:42

new version and it needs

46:44

to like do like a

46:46

rolling restart to wait for

46:49

you know whatever jobs to

46:51

finish before it it cycles

46:53

over to the new version

46:55

for new jobs? What's that

46:57

kind of process? you would

46:59

call it like jobs for

47:01

example, right? And as I

47:03

said before, it's not a

47:05

primary role. So the health

47:07

check there is not silly

47:09

done. It waits for the

47:12

web container to boot. And

47:14

once at least one of

47:16

them boots, so it doesn't,

47:18

it can be on different

47:20

hosts, you know, like once

47:22

it successfully boots, come on,

47:24

okay, I know the application.

47:26

I probably built well with

47:28

the assumption, then it will

47:30

simply start the good process

47:32

for also the other roles.

47:35

So for roles that are

47:37

not web-based, there's this assumption

47:39

that you can simply decommission

47:41

them and start them again.

47:43

If you have more web

47:45

roles, you can. you can

47:47

also say that, okay, run

47:49

the proxy, come up proxy

47:51

with this role, and then

47:53

the request will... be still

47:55

trained. So come up, we

47:58

will still bait for the

48:00

request to finish before it

48:02

will be switching, you know,

48:04

but that's really just the

48:06

roles that are what we

48:08

could call proxy roles, roles

48:10

that use proxy. But the

48:12

other ones, they are not

48:14

really a big assumption of

48:16

like, Kamel is the tool

48:18

that doesn't know that you

48:21

are deploying sidekick or that

48:23

you are deploying post-ge sequel

48:25

accessory, it doesn't know, you

48:27

know. That's why it is

48:29

also not like some kind

48:31

of plug-in to run post-ge

48:33

sequel or my sequel. It's

48:35

the configuration you have to

48:37

do. That's the simplicity, but

48:39

maybe also annoyance for some

48:41

people that you just does

48:44

what you tell it to

48:46

do. Gotcha. So you... It's

48:48

just the interface, you have

48:50

to like kind of figure

48:52

out all the implementation details

48:54

of it, how you're using

48:56

it. Yeah, in the simplest

48:58

way, it's really just trans,

49:00

ducar containers with ducaram, and

49:02

sometimes they are health check

49:05

involved, you know, and it's

49:07

important to learn how the

49:09

life cycle goes like that,

49:11

okay, accessories are booked first,

49:13

then then the servers are.

49:15

who did first, primary role

49:17

than the others, and then

49:19

you realize that then you

49:21

can think about how to

49:23

write a configuration you even

49:25

need. So what are the

49:28

latest releases in version two

49:30

that has gotten you pretty

49:32

excited about? Yeah, so I

49:34

think Kamao is now probably

49:36

interesting even to people that

49:38

very interesting in common one,

49:40

you know. For one, deploying

49:42

to a single server is

49:44

so much easier and straightforward.

49:46

There were ways how to

49:48

do it in common one,

49:51

but you have to configure

49:53

traffic and it was a

49:55

bit annoying. And now it's

49:57

all seamless in the config,

49:59

you just write which holes,

50:01

as is all true. And

50:03

there you have it. It's

50:05

like number one thing for

50:07

Kamal 2, that it out

50:09

of provision to your as

50:11

a cell certificate with lots

50:14

and encrypt. You don't have

50:16

to do anything. It's just

50:18

in the configuration. But there

50:20

is one pivot I would

50:22

just say with that. it

50:24

does not apply for multi-host

50:26

deployment because again Kamal is

50:28

so simple there is no

50:30

centralized really way of sharing

50:32

the the issued certificates for

50:34

example you know the different

50:37

host doesn't know about each

50:39

other so if you would

50:41

be issuing certificates again on

50:43

every host then maybe you

50:45

run out of the attempts

50:47

at that's encrypt or something

50:49

like that. But for single

50:51

server, this big leap forward,

50:53

I would say. But in

50:55

general, the depots get faster,

50:57

you know, because of the

51:00

process I described, so there's

51:02

maybe a little bit less

51:04

health checks done, because there's

51:06

just like one for the

51:08

primary roles, and then we

51:10

are rolling, we are going

51:12

for it. But that makes

51:14

it really faster. Also, Traffic

51:16

has one nice side effect

51:18

that the server CPU utilization

51:21

went down because that was

51:23

one thing that was constantly

51:25

pulling for like. Hello, it

51:27

is Ryan, and I was

51:29

on a flight the other

51:31

day playing one of my

51:33

favorite social spin slot games

51:35

on Chumba Casino.com. I looked

51:37

over the person sitting next

51:39

to me, and you know

51:41

what they were doing? They

51:44

were also playing Chumba Casino.

51:46

Everybody's loving, having fun with

51:48

it. Chumba Casino is home

51:50

to hundreds of casino-style games

51:52

that you can play for

51:54

free anytime, anywhere. So sign

51:56

up now at Chumba Casino.com

51:58

to live the Chumba Casino.

52:00

sponsored by Shumba Casino. No

52:02

purchase necessary VGW Group void

52:04

were prohibited by law 21

52:07

plus terms and conditions apply.

52:09

State of Docker containers, right?

52:11

Because the configuration doesn't live

52:13

on the traffic side, but

52:15

on the container side, so

52:17

it's constantly polling. So if you

52:20

would look, you would have some

52:22

CPU utilization all the time and

52:24

that that's not the case with

52:26

the new new common proxy, you

52:28

know. The proxy is... pretty like

52:30

simply doesn't do too much

52:32

the roads to host, you

52:35

can register service, it takes

52:37

care of draining the request when

52:39

it's switching over, you know,

52:41

and there are not many

52:43

features of like what proxy

52:45

could have like keddy or

52:48

engine X, you know, either

52:50

some basic request response buffering

52:52

or handles like maximum

52:55

request sizes and proxy

52:57

headers, but It doesn't even

53:00

do anything with, let's

53:02

say, your static assets, right?

53:04

For that we have truster,

53:06

so they didn't really

53:08

copy, for example, this

53:10

functionality to come out

53:13

proxy. It's still simple.

53:15

I think simple is

53:18

good. Some people might find

53:20

it limiting. Let's see what

53:22

we'll see in the future, because

53:24

I would say the development of.

53:27

Kamal, since I started

53:30

to look into it, and

53:32

then even since I started

53:34

to rank Kamalhan book,

53:36

was really, really fast.

53:38

Right. I did already like

53:41

two updates, like basically two

53:43

editions, the first one, with

53:45

a big update for

53:47

Kamal 1-7. So yeah, it's

53:50

faster, it's much easier to use,

53:52

I would say, and things are

53:54

things are going well. Yeah,

53:58

you did. You'd

54:00

bring up something that I

54:02

was trying to work through,

54:04

how you were doing Kamal.

54:06

I guess, like, let's say,

54:08

like, you know, you want

54:10

to, like, configure a tune,

54:12

some, like, engine X caching

54:14

or proxies specific in engine

54:16

X or some other system

54:18

level configuration. Is that all

54:20

handled, like, in whatever server

54:22

that you would configure with

54:25

Kamal? Like, it's... it's a

54:27

step away from that aspect?

54:29

And maybe how does it

54:31

like, can it work with

54:33

it? To auto generate that

54:35

kind of stuff? So, come

54:37

I'll work with some assumption.

54:39

As I said, it doesn't

54:41

provision load bonds in front

54:43

of your servers, right? And

54:45

similarly, it doesn't really handle

54:47

some... serving of static assets.

54:49

The assumption is that you

54:51

either use something like cluster

54:53

inside your image, for example,

54:55

so you have one more

54:57

little proxy there. You could

54:59

also have, for example, your

55:01

own engines load balancer, that

55:03

also does the sketching, but

55:05

you will have to deploy

55:07

it yourself. That's the thing.

55:10

Kamal won't do it for

55:12

you. Or there's this assumption

55:14

that most people maybe will

55:16

just proxy with cloud player.

55:18

and do the cashing there,

55:20

you know. So there's some

55:22

limitation to it. For most

55:24

people, I think there's a

55:26

way how to do it.

55:28

It's just like, it's not

55:30

handled directly and come out

55:32

right now. Gotcha. Yeah, that

55:34

makes sense. I mean, still

55:36

early days. Yeah, yeah, I

55:38

think so. Well, cool. So

55:40

is there any like, dashboard

55:42

or monitoring or something like

55:44

that, that's available to like

55:46

kind of see things. I

55:48

see there's like a, you

55:50

know, come all details. where

55:52

you can kind of peek

55:54

at the apps and services

55:57

running. Is there any like

55:59

UX stuff out there that

56:01

people are using to visualize

56:03

or gather metrics or things

56:05

like this? Well, I believe

56:07

that for the sounds that

56:09

they use something like from

56:11

elastics, such tag like a

56:13

phenomena or something like that.

56:15

thing server depots for example

56:17

I take advantage of digital

56:19

ocean agent because you can

56:21

just click you want it

56:23

and then you have very

56:25

beautiful dashboard that you get

56:27

for free basically you can

56:29

even set up alerts so

56:31

for very small hosting for

56:33

example what I do I

56:35

think that works very nicely

56:37

I know that somebody is

56:39

making something but it was

56:42

not announced so maybe there

56:44

will be some come out

56:46

specific tooling but right now

56:48

we don't have it so

56:50

you have to do the

56:52

usual way if you want

56:54

host monitoring install that data

56:56

dot agents you know or

56:58

being Grafana is definitely something

57:00

that's not really solved in

57:02

the I would say easy

57:04

way to just to just

57:06

like enable and run with

57:08

but I think that would

57:10

be some nice Nice project

57:12

for somebody for sure. Hey,

57:14

you definitely got me wanting

57:16

to deploy a couple of

57:18

apps just for fun. So

57:20

what are maybe some things

57:22

that you're looking forward to

57:24

or maybe hopeful that they

57:27

get added? I mean, outside

57:29

of like the two items

57:31

that we just talked about

57:33

with the, you know. maybe

57:35

making proxying a little easier

57:37

or the metrics aspects like.

57:39

Is there anything missing from

57:41

the process that you like

57:43

hope gets at it? For

57:45

me, I was kind of

57:47

already happy with Kamal 1.

57:49

I mean, now that I

57:51

see Kamal 2, I'm even

57:53

more happy. But I kind

57:55

of already made it work,

57:57

you know, it did the

57:59

job. And for example, when

58:01

you, when we were comparing

58:03

with Kapistrano in the beginning,

58:05

you know, it doesn't also

58:07

have some kind of dashboard

58:09

for you, you know. because

58:11

the tool is limited. And

58:14

in some way, I think

58:16

it's good that it has

58:18

some kind of limits or

58:20

some kind of philosophy of

58:22

what it wants to be.

58:24

And then there can be

58:26

a sister project that provides

58:28

the extra features. So I

58:30

will talk about, of course,

58:32

like this kind of dashboard

58:34

or maybe even nicer backups,

58:36

all these things would be

58:38

nice or maybe provisioning. Actually,

58:40

it was my idea that

58:42

I could develop. this project

58:44

that it would be like

58:46

zero config provisioning for Kamo

58:48

with the headline, you know.

58:50

I don't know if I

58:52

will get to it, but

58:54

it's an idea I have.

58:56

So personally, I would see

58:59

it as sister projects. I

59:01

also think that David suggested

59:03

that yeah, Kamo will probably

59:05

stay focused and I think

59:07

I think it's a good

59:09

thing because when I look

59:11

at Docu for example, it

59:13

was like the single server

59:15

pass and it was very

59:17

well for that. But now

59:19

I checked the docs recently

59:21

and I see that there

59:23

is also a way how

59:25

to spin up a K3S

59:27

scheduler. You know, and then

59:29

you are like kind of

59:31

deleting the tool to be

59:33

everything for everybody. And that's

59:35

also in the end negative.

59:37

for me. So I'm happy

59:39

if it stays simple, you

59:41

know, improves in little ways.

59:44

Yeah, I hear you. It's

59:46

going to be hard to

59:48

shake, like, the existing, like,

59:50

larger infrastructure stuff, focusing on,

59:52

like, the very specific, simple

59:54

utility of Docker maintenance and

59:56

services. Definitely is appealing. Like,

59:58

going off of that, then,

1:00:00

is there anything like you

1:00:02

would like to see removed

1:00:04

from the overall, like, architecture

1:00:06

process that maybe is just

1:00:08

causing more headache and confusion

1:00:10

than is adding value? Not

1:00:12

really. I have to say

1:00:14

that the change with secrets

1:00:16

for me was a little

1:00:18

bit maybe a downside in

1:00:20

my specific way because what

1:00:22

I was doing, since I

1:00:24

knew how Kama really worked,

1:00:26

I kept on CI maybe

1:00:28

just like two amps and

1:00:31

I could like just do

1:00:33

deployed and not until it

1:00:35

put my secrets to to

1:00:37

get up, you know, which

1:00:39

I was very happy about.

1:00:41

And now you either have

1:00:43

to put it there or

1:00:45

use a secret manager, which

1:00:47

of course, if you are

1:00:49

a company, you should be

1:00:51

using secret management. But for

1:00:53

me, I was like, I

1:00:55

was just little projects and

1:00:57

I was happy that I

1:00:59

could do it this way

1:01:01

and now I can't. But

1:01:03

in other, I still think

1:01:05

it's probably better. It's just

1:01:07

like, in my specific case,

1:01:09

I was happy to deploy

1:01:11

without the without the change.

1:01:13

two environments because before it

1:01:16

was two steps, come on

1:01:18

with five, this is push

1:01:20

the amps and then come

1:01:22

on deploy. But now it's

1:01:24

all together. So you do

1:01:26

need all amps because if

1:01:28

you don't have them, then

1:01:30

it will fail. So there's

1:01:32

maybe like one thing in

1:01:34

my specific case, but I

1:01:36

think generally it's still a

1:01:38

step forward for for common.

1:01:40

And you know, I wish

1:01:42

people would Maybe replace some

1:01:44

Kubernetes clusters, but to be

1:01:46

honest, it's probably not what

1:01:48

will necessarily have. I think

1:01:50

the most value from come

1:01:52

out can get people that

1:01:54

are now deploying with just

1:01:56

look at compose. Because look

1:01:58

at compose, it's originally a

1:02:01

deaf tool, you have to

1:02:03

put all the containers down

1:02:05

and up. And I know

1:02:07

there are some third-party proxies

1:02:09

that tries to solve this

1:02:11

get-less deploy, but Kamel is

1:02:13

so much nicer in my

1:02:15

opinion, you know, and whatever

1:02:17

criticism we would have for

1:02:19

Kamel. It would probably apply

1:02:21

there as well. So I

1:02:23

think it's just like a

1:02:25

plus, just a better tool.

1:02:27

It is Ryan here and

1:02:29

I have a question for

1:02:31

you. What do you do

1:02:33

when you win? Like are

1:02:35

you a fist-pumper? A woo-hooer!

1:02:37

A hand clap or a

1:02:39

high-fiver? If you want to

1:02:41

hone in on those winning

1:02:43

moves, check out Chumba Casino.

1:02:45

Choose from hundreds of social

1:02:48

casino-style games for your chance

1:02:50

to redeem serious cash prizes.

1:02:52

There are new game releases

1:02:54

weekly plus free daily bonuses

1:02:56

so don't wait. Start having

1:02:58

the most fun ever at

1:03:00

Chumba Casino Casino. But

1:03:06

yeah, we'll we'll see.

1:03:09

Yeah, I think we've

1:03:11

we've covered quite a

1:03:14

lot of topics here.

1:03:16

We're kind of coming

1:03:18

to, you know, time

1:03:21

here, but is there

1:03:23

any other things you

1:03:25

wanted to cover before

1:03:28

we move into our

1:03:30

pick section of the

1:03:33

show? Not not

1:03:35

really cover but if I

1:03:37

can I would just like

1:03:39

want to thank you David

1:03:41

for even starting come out

1:03:43

and Also think don't I

1:03:45

mean who? Done a lot

1:03:47

of work on come out

1:03:49

too and also wrote a

1:03:51

forward so thank you Donal

1:03:54

and also to Kevin McConnell

1:03:56

because he was the main

1:03:58

guy behind Kamal proxy. She's

1:04:00

a very important aspect of

1:04:02

Kamal too. And then also

1:04:04

a final shout out to

1:04:06

Rosa because she kind of

1:04:08

sent Don't all the information

1:04:10

that I am writing the

1:04:12

book and then he wrote

1:04:14

me in the email and

1:04:17

that's how it all happened.

1:04:19

So yeah, thank you. Thank

1:04:21

you guys. And everybody else

1:04:23

that you know works on

1:04:25

Kamal, I would like to

1:04:27

think. Yeah,

1:04:30

seriously. Thank you. All this

1:04:32

stuff is definitely going to

1:04:34

make it easier to dock

1:04:36

or at least. Should be

1:04:39

should help with deploys in

1:04:41

general. It's definitely helpful to

1:04:43

have a definitive rails process

1:04:45

for deployments, which was missing

1:04:48

for quite a long time.

1:04:50

So it's exciting to see.

1:04:52

Well, great. We're going to

1:04:54

move into PICS. It's a

1:04:57

segment of their show where

1:04:59

we just... Find some things

1:05:01

that we're excited about in

1:05:03

life or code or whatever

1:05:06

it may be that pique

1:05:08

your interest. And I can

1:05:10

kick us off. I have

1:05:12

this particle, I guess, infatuation.

1:05:15

It's a little hardware devices,

1:05:17

little microcontrollers. They have this

1:05:19

little development board called the

1:05:21

Muon that lets you do

1:05:24

things with cellular and mesh

1:05:26

it with like You know

1:05:28

Wi-Fi so you can get

1:05:30

like kind of like a

1:05:33

blended solution on a microcontroller.

1:05:35

It's a lot of fun.

1:05:37

I'm messing with Open A-I's

1:05:39

new pipeline for fine-tuning stuff

1:05:42

They call it distillation. It's

1:05:44

a lot of fun where

1:05:46

you could just send all

1:05:48

of your... AI prompt and

1:05:51

responses to open AI and

1:05:53

they'll automatically fine tune a

1:05:55

new model for you based

1:05:57

on the outputs and inputs

1:06:00

that you give it, which

1:06:02

is just wild. So I'm

1:06:04

having a lot of fun

1:06:06

just messing around and seeing

1:06:09

what I can get it

1:06:11

to do. Yeah, I just

1:06:13

wanted to say like, also

1:06:15

like this, just little improvements

1:06:18

in life that you can

1:06:20

do, for example, on my

1:06:22

travels this year, I switched

1:06:24

to finally using e-Sem, so

1:06:27

I didn't have to like,

1:06:29

you know, by physical Sim,

1:06:31

change on the airport when

1:06:33

I was like, 30 and

1:06:36

tired and everything, because I

1:06:38

just like clicked on my

1:06:40

phone and I had service.

1:06:42

And it's like this little

1:06:45

things that like actually are

1:06:47

really amazing that I love.

1:06:49

But since my book is

1:06:52

about also like kind of

1:06:54

doing something independently, you know,

1:06:56

like in the in the

1:06:58

hacking spirit, I want to

1:07:01

do a recommendation for one

1:07:03

show. It's called the Indie

1:07:05

Life. It's by Dagobert. He

1:07:07

was doing. a startup, he

1:07:10

kind of failed, he also

1:07:12

got divorced, and now he's

1:07:14

like starting this show where

1:07:16

you, where he discusses these

1:07:19

people, also the not so

1:07:21

glamorous side of this in

1:07:23

the acting entrepreneurship and stuff.

1:07:25

It's a nice show, so

1:07:28

I would recommend this to

1:07:30

check out. Cool. Is there

1:07:32

any easem provider that you'd

1:07:34

recommend because I'm traveling to

1:07:37

New Zealand in a couple

1:07:39

of an hour? about three

1:07:41

weeks and I was looking

1:07:43

at reasons as well. It

1:07:46

was just my first time

1:07:48

I picked one that... some

1:07:50

of the countries I go

1:07:52

and that's it, but it

1:07:55

worked, it worked nice. It's

1:07:57

probably a bit more expensive,

1:07:59

but I mean, I really

1:08:01

appreciate the leveling up in

1:08:04

the comfort of travel, so

1:08:06

for me. Yeah, yeah, yeah,

1:08:08

it's definitely worth the price.

1:08:10

Right, my picks, I've got,

1:08:13

I've got a movie in

1:08:15

a TV show, so. I

1:08:17

watched a movie last night

1:08:19

called A Night on Earth

1:08:22

by Jim Jarmush. I think

1:08:24

it's from 1991. Absolutely brilliant

1:08:26

if you like character driven

1:08:28

movies that don't have a

1:08:31

lot of plot but have

1:08:33

very colorful characters. This is

1:08:35

the kind of movie for

1:08:37

you I think. Really enjoyed

1:08:40

a guy. I met at

1:08:42

the Haggis Ruby Conference last

1:08:44

week. I recommended this movie.

1:08:46

That's why I watched it.

1:08:49

and yeah I'd recommend it

1:08:51

to everyone else. And season

1:08:53

two of a show called

1:08:55

Shrinking has just started on

1:08:58

Apple TV. I loved season

1:09:00

one and season two started

1:09:02

off really strongly as well.

1:09:04

I think four episodes are

1:09:07

at. It's starring Harrison Ford

1:09:09

and Jason Siegel from any

1:09:11

of my who's familiar with

1:09:13

how I met your mother

1:09:16

would know who he is

1:09:18

know who he is who

1:09:20

he is know who he

1:09:22

is And Ted Lasso fans

1:09:25

will also be happy to

1:09:27

hear that Brett Goldstein has

1:09:29

now has joined the cast

1:09:31

for season two. So if

1:09:34

any of the names ring

1:09:36

a bell, I'd be sure

1:09:38

checking out because I'm a

1:09:40

huge fan. Yeah, those are

1:09:43

my two picks. Awesome. Yeah,

1:09:45

I always love a good

1:09:47

TV movie show combo. Well,

1:09:50

you also it was it was

1:09:53

really great having you on today

1:09:55

Thank you for sharing all

1:09:57

of your, you know deep diving

1:09:59

on Kamal and Those that haven't

1:10:02

checked it out yet, check out

1:10:04

all of Joseph's great books that

1:10:07

he's putting together. The small

1:10:09

handbook for sure. I'm gonna be

1:10:11

diving into that myself. So I

1:10:13

appreciate you taking the time today.

1:10:16

And honestly, you're spending all that

1:10:18

time putting this content together

1:10:20

because it's much needed. Thank you.

1:10:23

And thank you for having me

1:10:25

on the show. I enjoyed. Awesome.

1:10:27

Well, we'll have to have you

1:10:30

come on again when Come

1:10:32

All Three comes out and we

1:10:34

can get you to tear apart

1:10:37

all the great new features that

1:10:39

are to come, I'm sure. Perfect.

1:10:41

Well, that's it for day

1:10:43

folks. I'm Valentino. Thank you, I

1:10:46

wish. Thank you, Joseph. Until next

1:10:48

time. Hey,

1:10:53

it's Ryan Seacrest. Life comes at you

1:10:55

fast, which is why it's important to

1:10:57

find some time to relax. A little

1:11:00

you time. Enter Chumba Casino with no

1:11:02

download required. You can jump on any

1:11:04

time, anywhere for the chance to redeem

1:11:06

some serious prizes. So treat yourself with

1:11:09

Chumba Casino and play over a hundred

1:11:11

online casino style games. All for free.

1:11:13

Go to Chumba Casino.com to collect your

1:11:15

free welcome bonus. Sponsored by Chumba Casino.

Rate

Join Podchaser to...

  • Rate podcasts and episodes
  • Follow podcasts and creators
  • Create podcast and episode lists
  • & much more

Episode Tags

Do you host or manage this podcast?
Claim and edit this page to your liking.
,

Unlock more with Podchaser Pro

  • Audience Insights
  • Contact Information
  • Demographics
  • Charts
  • Sponsor History
  • and More!
Pro Features