forked from mikeckennedy/talk-python-transcripts
-
Notifications
You must be signed in to change notification settings - Fork 5
/
Copy path033-openstack-cloud-computing-built-on-python.vtt
3785 lines (2523 loc) · 89.8 KB
/
033-openstack-cloud-computing-built-on-python.vtt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
WEBVTT
00:00:00.001 --> 00:00:08.120
You've probably heard of infrastructure-as-a-service cloud providers such as Amazon AWS and, to a lesser degree, Microsoft's Azure cloud platform.
00:00:08.120 --> 00:00:10.260
But have you heard of OpenStack?
00:00:10.260 --> 00:00:19.920
It's an incredibly powerful infrastructure-as-a-service platform where you can buy it as a service or install it in your own data center to build your own private cloud.
00:00:19.920 --> 00:00:21.920
Yeah, private clouds. That's a thing.
00:00:21.920 --> 00:00:29.280
Flavio Percoco, who works at Red Hat and spends his days writing Python code for OpenStack, is here to tell us all about it.
00:00:29.700 --> 00:00:34.840
This is Talk Python2Me, episode number 33, recorded October 16th, 2015.
00:00:59.400 --> 00:01:06.160
Welcome to Talk Python to Me, a weekly podcast on Python, the language, the libraries, the ecosystem, and the personalities.
00:01:06.160 --> 00:01:10.300
This is your host, Michael Kennedy. Follow me on Twitter where I'm @mkennedy.
00:01:10.300 --> 00:01:16.760
Keep up with the show and listen to past episodes at talkpython.fm, and follow the show on Twitter via at Talk Python.
00:01:17.360 --> 00:01:24.580
Let me introduce Flavio. Flavio Percoco is a software engineer at Red Hat, where he spends his days working on OpenStack.
00:01:24.580 --> 00:01:32.120
In his spare time, he speaks at conferences, contributes to Rust, plays with MongoDB, smokes his coffee, and drinks his pipe.
00:01:32.120 --> 00:01:34.520
Flavio, welcome to the show.
00:01:34.520 --> 00:01:37.460
Thank you, Michael. Thanks for having me here. It's really exciting.
00:01:37.800 --> 00:01:44.500
Yeah, it's really exciting, and it's great to catch up with you. It's been a few years since we've met up at the last MongoDB Master Summit in New York City, right?
00:01:44.500 --> 00:01:48.900
Yeah, it is. I think it's exactly like two years from there, yeah.
00:01:48.900 --> 00:01:50.120
Yeah, almost. Cool.
00:01:50.680 --> 00:01:54.360
So we're not going to talk about MongoDB today, even though it is excellent.
00:01:54.360 --> 00:02:00.740
We're going to talk about OpenStack and your work at Red Hat and cloud computing and all that kind of stuff, right?
00:02:00.740 --> 00:02:05.260
Yeah. I'm really excited about sharing more stuff about OpenStack.
00:02:05.260 --> 00:02:09.840
I spend most of my time there, honestly, so I have a lot to say.
00:02:09.840 --> 00:02:11.180
Yeah, that's excellent.
00:02:11.180 --> 00:02:17.060
So before we get into what OpenStack is and all the details, what's your story? How did you get into programming?
00:02:17.060 --> 00:02:22.260
I guess my story about how I got into programming is not like...
00:02:22.260 --> 00:02:26.480
I guess there are many people like me out there, but it's not like most of the cases where you just like...
00:02:26.480 --> 00:02:28.700
You were born knowing that you wanted to be a programmer.
00:02:28.700 --> 00:02:33.100
In my case, I actually didn't know what I wanted to do until very late.
00:02:33.100 --> 00:02:36.900
And I started digging into different areas.
00:02:36.900 --> 00:02:43.360
I went to study medicine, and then I went to be a psychologist, and then I wanted to learn foreign languages.
00:02:43.980 --> 00:02:46.520
And at some point I said, like, let me...
00:02:46.520 --> 00:02:50.180
Like, I saw this lump course that I...
00:02:50.180 --> 00:02:53.740
Somewhere, and it's like, okay, like doing webpages.
00:02:53.740 --> 00:02:54.720
It sounds cool.
00:02:54.720 --> 00:02:57.240
And I just gave it a try.
00:02:57.240 --> 00:03:00.760
And I just fell in love with it and started doing more.
00:03:00.760 --> 00:03:03.680
And I guess that's how I actually started.
00:03:04.120 --> 00:03:08.260
I tried to go to college, and it just didn't work for me, actually.
00:03:08.260 --> 00:03:10.620
And I just like...
00:03:10.620 --> 00:03:16.360
I dropped out of college at some point, and actually it was very early in my career, in my studies there.
00:03:16.360 --> 00:03:19.100
And I just went straight to working.
00:03:19.100 --> 00:03:23.560
And I already knew how to program, and I had done a couple of courses anyway.
00:03:23.960 --> 00:03:28.440
And I got into my first job and started improving and learning a lot from open source.
00:03:28.440 --> 00:03:35.660
And so I guess, like, it would be fair to say that, like, my background in programming is actually just open source.
00:03:35.660 --> 00:03:40.240
I started learning from other projects and sharing everything I did.
00:03:40.240 --> 00:03:44.180
I joined IRC channels and spent a lot of time there and learned from others.
00:03:44.660 --> 00:03:46.600
Many good people out there.
00:03:46.600 --> 00:03:52.580
And I guess I just made my way through it and got where I'm at today.
00:03:52.580 --> 00:03:54.240
Yeah, that's excellent.
00:03:54.240 --> 00:03:59.120
And, you know, I had a similar path in that I sort of became an accidental programmer.
00:03:59.120 --> 00:04:03.080
I just learned programming because I was trying to do something else, and I needed to know it.
00:04:03.080 --> 00:04:04.860
And I realized, wait, this is way better.
00:04:04.860 --> 00:04:07.420
So, yeah, there's a lot of us out there like that.
00:04:07.420 --> 00:04:12.080
Yeah, I feel really lucky to have just sort of stumbled into such a cool area.
00:04:12.080 --> 00:04:14.400
Yeah, same here.
00:04:14.400 --> 00:04:15.960
Yeah, so that's how you got into programming.
00:04:15.960 --> 00:04:16.720
How did you get into Python?
00:04:16.720 --> 00:04:25.220
Well, like I said, like, my first approach to programming was that LAMP course I did a long time ago.
00:04:25.220 --> 00:04:28.260
So that obviously means that I learned PHP there.
00:04:28.260 --> 00:04:32.680
And from PHP, I just decided that I wanted to create my own web browser.
00:04:32.680 --> 00:04:37.540
So I started learning C# for some reason because I didn't know enough back then.
00:04:37.540 --> 00:04:40.160
And I just, like, started playing with it, and I had all the plugins and stuff.
00:04:40.160 --> 00:04:43.700
And then I realized that that wasn't actually a very good idea.
00:04:44.140 --> 00:04:46.920
And I found Python through a friend of mine.
00:04:46.920 --> 00:04:49.120
And he just started explaining it to me.
00:04:49.120 --> 00:04:52.100
And I also attended, like, a small, like, Python 101.
00:04:52.100 --> 00:04:56.200
And I just, like, took off from there.
00:04:56.200 --> 00:04:59.380
And my first job was actually on Python.
00:04:59.380 --> 00:05:06.640
And it allowed me to learn way more about it and, you know, like, improve my skills.
00:05:06.640 --> 00:05:09.080
And I just kept doing Python ever since then.
00:05:09.640 --> 00:05:10.680
Yeah, that's excellent.
00:05:10.680 --> 00:05:15.920
And today you get paid to write open source code with Python, right?
00:05:15.920 --> 00:05:16.820
Yeah.
00:05:16.820 --> 00:05:17.460
That's awesome.
00:05:17.460 --> 00:05:18.160
So what do you do?
00:05:18.160 --> 00:05:20.680
I get paid to write open source code.
00:05:21.520 --> 00:05:23.060
And it's, like, 100 upstream.
00:05:23.060 --> 00:05:30.660
So I'm even happier because I'm just, I feel like I'm giving back to all those guys that, at some point, they gave me a lot.
00:05:30.660 --> 00:05:31.940
And they allowed me to learn.
00:05:31.940 --> 00:05:40.100
And so I like, like, one of the things I love is not just the technology I'm working on, but the fact that I know that it will be used by some other people to learn how to program.
00:05:40.180 --> 00:05:45.500
And I'm also part of all the, like, you know, like, mentoring other people.
00:05:45.500 --> 00:05:47.860
And there are several programs in OpenStack to do that.
00:05:47.860 --> 00:05:50.660
And I'm always, like, trying to participate there.
00:05:50.660 --> 00:05:54.340
So that's part of, like, what excites me the most about my current job, actually.
00:05:54.340 --> 00:05:55.040
Yeah, that's great.
00:05:55.040 --> 00:05:56.200
And you work at Red Hat, right?
00:05:56.200 --> 00:05:57.800
I work at Red Hat.
00:05:57.800 --> 00:06:00.460
I'm a software engineer there.
00:06:00.720 --> 00:06:07.500
And, like I said, I work 100% upstream on OpenStack, mostly oriented on storage projects.
00:06:07.500 --> 00:06:09.480
Like, OpenStack has many pieces.
00:06:09.480 --> 00:06:11.040
Like, it's huge right now.
00:06:11.040 --> 00:06:16.400
There's something like 375 GitHub repositories or something like this, right?
00:06:16.400 --> 00:06:17.940
Yeah, it is insane.
00:06:17.940 --> 00:06:21.820
Like, many of those are services.
00:06:21.820 --> 00:06:26.300
Tons of them, like, probably most of them are, like, libraries.
00:06:26.300 --> 00:06:31.160
And then we have a lot of projects that we use for CI that we have written ourselves.
00:06:31.160 --> 00:06:39.720
And there are many other projects that started off as part of OpenStack, but they just, like, improved and became, like, standalone services.
00:06:39.720 --> 00:06:41.380
And some others that just died.
00:06:41.380 --> 00:06:46.920
And we just kept the code there, obviously, because it's OpenStack, and why would you ever delete COVID?
00:06:46.920 --> 00:06:50.240
Let's start with what is OpenStack.
00:06:50.240 --> 00:06:54.100
And I just should tell everybody, like, I really don't know a whole lot about OpenStack.
00:06:54.100 --> 00:06:58.780
I've looked at it a little bit, but I'm basically new to it as well.
00:06:58.780 --> 00:07:00.380
So tell me, what is OpenStack?
00:07:00.380 --> 00:07:03.080
I'm going to tell you how OpenStack started.
00:07:03.080 --> 00:07:05.440
It started as an infrastructure as a service provider.
00:07:05.440 --> 00:07:13.160
And it just focused a lot on making sure that you could use all the hardware you have to provide cloud services.
00:07:13.160 --> 00:07:19.120
So it would use all your compute servers and power, sorry.
00:07:19.120 --> 00:07:22.980
All your compute power, and it will just allow you to use it as a service.
00:07:22.980 --> 00:07:27.080
And it will do the same for your networking routers and everything you have there.
00:07:27.080 --> 00:07:34.200
And it will create, like, private networks for you, clouding IP addresses and everything that you would need to have a cloud.
00:07:34.680 --> 00:07:37.120
And it will do the same with the storage and everything.
00:07:37.120 --> 00:07:39.820
But it was very focused on infrastructure as a service.
00:07:39.820 --> 00:07:48.340
So infrastructure as a service is basically using all your, like, metal to provide, like, a cloud service.
00:07:48.340 --> 00:07:54.180
You would just reuse all that and make sure that you can run several services and virtual machines and everything in there.
00:07:54.580 --> 00:08:01.880
If I had, like, Python web app I wanted to host, just, like, a simple blog or something, I probably wouldn't go to OpenStack.
00:08:01.880 --> 00:08:10.200
But if I wanted to create a better data center or my hosting company or something like this, then I would look to use OpenStack to make that happen.
00:08:10.200 --> 00:08:10.820
Is that accurate?
00:08:10.820 --> 00:08:11.980
Right.
00:08:11.980 --> 00:08:13.380
That's quite accurate.
00:08:13.380 --> 00:08:16.460
But there's, and that's how it started, actually.
00:08:16.460 --> 00:08:17.720
But there's more to it now.
00:08:17.720 --> 00:08:24.280
And it's the fact that at some point, the community realized that there was more to OpenStack than just infrastructure.
00:08:24.280 --> 00:08:36.460
And it just, I like to say, it just outgrow itself to the point that it just became a cloud provider, like, entire cloud provider, instead of just focusing on infrastructure.
00:08:36.460 --> 00:08:41.900
And you now have a whole lot of other services that are required to actually maintain a cloud.
00:08:41.900 --> 00:08:50.380
And this is something that I believe the community learned from its own experience while working on OpenStack.
00:08:50.380 --> 00:08:53.100
And it's the fact that to run a cloud, you need more than just infrastructure.
00:08:53.100 --> 00:09:06.220
If you want to be a good cloud provider or you want to have a cloud that you can manage easily without suffering a lot on maintenance and controlling it and ops and everything, you need more than that.
00:09:06.220 --> 00:09:07.100
You need, like, DNS.
00:09:07.100 --> 00:09:09.820
You need to make your networking easy to use.
00:09:09.820 --> 00:09:11.540
You probably need a database as a service.
00:09:11.540 --> 00:09:21.480
You need to make your own database if you have a big, like, you know, developer's team and you want those steps to be able to create databases easily without, like, spending much time maintaining those.
00:09:21.480 --> 00:09:24.700
But there's, like, you can use that in production as well.
00:09:24.700 --> 00:09:27.260
So there are many other services that are not necessarily infrastructure.
00:09:27.260 --> 00:09:30.280
Like, you even have, like, web search as a service.
00:09:30.280 --> 00:09:35.340
So you can store all your files and things into your cloud.
00:09:35.340 --> 00:09:41.060
So there's a lot into cloud development, into cloud management and cloud services than just infrastructure.
00:09:41.060 --> 00:09:45.520
So that's something, like, the community learned by itself while working on OpenStack.
00:09:45.520 --> 00:09:48.080
And it just became more than infrastructure.
00:09:48.080 --> 00:09:49.520
It's now, like, a cloud provider.
00:09:49.660 --> 00:09:51.620
That's how I like to think about it.
00:09:51.620 --> 00:09:53.080
That's how I like to present OpenStack.
00:09:53.080 --> 00:09:56.280
It is a cloud provider, and it will give you everything you need to run your cloud.
00:09:56.280 --> 00:10:09.960
To me, it feels somewhat on par with something like EC2 and the related services at AWS, much more so than, like, somewhere where you can just go get a virtual machine.
00:10:09.960 --> 00:10:17.420
You know, somewhere like DigitalOcean, where they have great virtual machines, but there's not, like, there's not a lot more than that around to help you, right?
00:10:17.420 --> 00:10:18.080
There's not.
00:10:18.080 --> 00:10:19.300
Exactly.
00:10:19.300 --> 00:10:19.420
Exactly.
00:10:19.420 --> 00:10:20.000
Exactly.
00:10:20.000 --> 00:10:28.900
The virtual private networks and the load balancing and the storage and the persistent disks across machines and all that kind of stuff, right?
00:10:28.900 --> 00:10:30.900
That is correct.
00:10:30.900 --> 00:10:34.720
And I've been giving this talk, like, this year.
00:10:34.720 --> 00:10:37.960
It's called Infrastructure as a Service Beyond Infrastructure.
00:10:38.040 --> 00:10:50.740
Well, like, I kind of, like, talk about what I think your cloud should have in order for it to be considered a cloud, which doesn't mean that companies or services like DigitalOcean are not good.
00:10:51.240 --> 00:10:53.620
But they're, like, they're not exactly clouds.
00:10:53.620 --> 00:10:55.520
They just provide a different kind of service.
00:10:55.520 --> 00:11:00.840
Like, DigitalOcean basically just provides you virtual private services, like servers, sorry.
00:11:00.960 --> 00:11:03.920
So you create your server and you have to manage it yourself.
00:11:03.920 --> 00:11:08.060
You don't have everything that you would need to run a cloud right there, right?
00:11:08.060 --> 00:11:22.740
And if you want to put your application in a cloud, you would just go to either OpenSack or other cloud providers that have all those services that you would need to run your application and don't die while trying to run it.
00:11:23.740 --> 00:11:36.920
Yeah, so I feel like services like DigitalOcean are excellent, but if you build increasingly complex and large-scale systems, you're probably going to, at some point, outgrow them.
00:11:36.920 --> 00:11:42.540
And then you're going to start looking around and say, okay, well, I need more than just a bunch of good VMs.
00:11:42.540 --> 00:11:45.940
I need, you know, all this orchestration and putting it together.
00:11:45.940 --> 00:11:50.720
And a lot of people go to places like EC2 or maybe Azure.
00:11:51.840 --> 00:12:01.100
But OpenStack, is there like an online service I can go pay a monthly fee and get access to the system?
00:12:01.100 --> 00:12:03.180
Or is this something I've got to put on just my data centers?
00:12:03.180 --> 00:12:04.780
Oh, not at all.
00:12:04.780 --> 00:12:08.900
There are many public cloud providers running OpenStack right now.
00:12:08.900 --> 00:12:14.660
A good example, probably one of, well, I'm actually not sure if it is the oldest one.
00:12:14.660 --> 00:12:15.820
It's probably one of the oldest one.
00:12:15.820 --> 00:12:17.400
It is Rackspace itself.
00:12:17.400 --> 00:12:18.920
They run OpenStack.
00:12:18.920 --> 00:12:20.620
There's also HP Cloud.
00:12:20.620 --> 00:12:22.460
There's VEX Host.
00:12:22.460 --> 00:12:23.820
There are tons of them.
00:12:23.820 --> 00:12:27.580
There's Enter Cloud in Italy as well.
00:12:27.580 --> 00:12:32.220
So there are many cloud providers, public cloud providers running OpenStack right now.
00:12:32.220 --> 00:12:33.580
They have different versions.
00:12:33.580 --> 00:12:35.740
They're not all running the latest version.
00:12:36.380 --> 00:12:48.400
When you have to decide whether you want to go to AWS, Azure, or just use OpenStack, you have to ask yourself many questions.
00:12:48.400 --> 00:12:57.260
One of the things that I believe make OpenStack the best solution for you is the fact that OpenStack is interpretable.
00:12:58.700 --> 00:13:14.780
Whatever you write on, whatever your application looks like, if you're running it in an OpenStack cloud and you want to migrate it from this cloud to another cloud and it is still OpenStack, you are guaranteed to be able to do that in a painless way.
00:13:14.900 --> 00:13:18.760
Because different OpenStack versions are interpretable.
00:13:18.760 --> 00:13:19.860
They keep backwards compatibility.
00:13:19.860 --> 00:13:24.960
So you can be sure that whatever works in HP, an HP cloud will also work in Rackspace cloud.
00:13:24.960 --> 00:13:28.780
If you write scripts on top of it and everything.
00:13:29.320 --> 00:13:39.120
Yeah, that's a pretty unique proposition because AWS is entirely proprietary, even though internally it runs a ton of open source stuff.
00:13:39.120 --> 00:13:41.960
It's all behind the scenes, super secret.
00:13:41.960 --> 00:13:46.580
Same thing with Windows Azure and some of the other hosting places, right?
00:13:46.580 --> 00:13:58.820
So the fact that you can take this maybe from a cheap hosting company over to Rackspace and then maybe even later into your own data center, if you really wanted to do that.
00:13:59.040 --> 00:13:59.160
Right.
00:13:59.160 --> 00:13:59.480
Right.
00:13:59.480 --> 00:14:02.540
But that's a possibility that you don't really have to worry about, right?
00:14:02.540 --> 00:14:03.680
Because it's all OpenStack.
00:14:03.680 --> 00:14:05.040
Exactly.
00:14:05.040 --> 00:14:07.780
And you don't just have to...
00:14:07.780 --> 00:14:11.040
It's not just about migrating your application from one cloud to another cloud.
00:14:11.040 --> 00:14:21.860
It also applies to using several clouds at the same time because not all public clouds are supposed to run all the services in order for them to be OpenStack compliant.
00:14:21.860 --> 00:14:27.500
I can decide to have my own public cloud running just Trove, which is database as a service.
00:14:28.080 --> 00:14:31.760
And there are other clouds like HP Cloud that did run all OpenStack, right?
00:14:31.760 --> 00:14:37.640
But as a user, if I want to have my internal cloud...
00:14:37.640 --> 00:14:39.360
So let me give you an example.
00:14:39.360 --> 00:14:41.220
Let me put it in another way.
00:14:41.720 --> 00:14:50.300
I may want to have all my web heads and my compute nodes running in one of the public clouds, like let's say Rackspace, right?
00:14:50.300 --> 00:14:51.060
Or HP Cloud.
00:14:51.060 --> 00:14:52.280
I want to have them there.
00:14:52.280 --> 00:14:54.400
But I want all my data to be in my cloud.
00:14:54.400 --> 00:15:00.660
So I can use my own servers and install my database as a service there or whatever, my own database and have a hybrid cloud.
00:15:01.940 --> 00:15:08.600
So it is not just a matter of deciding whether you want to have, whether you want to use a public cloud or a private cloud.
00:15:08.600 --> 00:15:20.400
But it's the fact that you can also mix them together and you are going to be guaranteed that they will be interpretable and they can all use the same service with the same data and everything.
00:15:20.620 --> 00:15:21.900
Really interesting point.
00:15:21.900 --> 00:15:26.780
I hadn't thought of just taking an individual piece and running that locally.
00:15:26.780 --> 00:15:28.460
But yeah, that makes a lot of sense.
00:15:28.460 --> 00:15:33.860
So cloud computing is, of course, important to Python developers.
00:15:33.860 --> 00:15:42.160
But OpenStack is especially relevant to Python developers because Python is used a little bit inside the development, right?
00:15:42.900 --> 00:15:43.300
Yeah.
00:15:43.300 --> 00:15:53.800
I normally say that OpenStack right now, well, when I joined OpenStack, it's probably not true anymore.
00:15:53.800 --> 00:15:56.940
When I joined OpenStack, it was like 500% Python.
00:15:56.940 --> 00:16:03.040
And there was like this 0.0001% of JavaScript because we have a UI dashboard.
00:16:03.040 --> 00:16:10.840
And I say it's not true anymore because we now also maintain like puppet manifests ourselves.
00:16:11.220 --> 00:16:12.580
And that's not Python, obviously.
00:16:12.580 --> 00:16:15.280
We keep like we maintain Ansible scripts.
00:16:15.280 --> 00:16:27.040
Like there are teams focusing a lot on operations and making OpenStack installable and easy to manage and reduce the maintenance more than from users.
00:16:27.040 --> 00:16:30.220
So it's not just like 500% Python anymore.
00:16:30.220 --> 00:16:38.140
But I can say like all the services right now are written in Python and they are mostly pure Python.
00:16:38.260 --> 00:16:41.020
There are some services doing some experiments with Google as well.
00:16:41.020 --> 00:16:43.760
But most of them are Python, yeah.
00:16:43.760 --> 00:16:47.980
Like the community is definitely 100% Python oriented.
00:16:47.980 --> 00:16:52.820
And there are like obviously other tastes for other programming languages.
00:16:52.820 --> 00:16:54.040
Yeah, of course.
00:16:54.040 --> 00:16:55.600
So that's really excellent.
00:16:55.600 --> 00:16:58.620
And I think that's a great testament to Python itself, right?
00:16:58.620 --> 00:17:03.900
That you can build such an amazing infrastructure as a service system with it, right?
00:17:04.660 --> 00:17:05.600
Yeah, it is.
00:17:05.600 --> 00:17:09.060
And I would say it even goes beyond that.
00:17:09.060 --> 00:17:24.020
It's not just the fact that you can build such a cloud system with Python, but the fact that it has allowed us to make it in an easy enough way and to be more welcoming as a community.
00:17:24.380 --> 00:17:31.760
Like to welcome more people because Python is easier to learn because Python is, it has a big, well, it has a quite big community.
00:17:33.200 --> 00:17:35.860
It is even for beginners.
00:17:35.860 --> 00:17:48.060
Like we have many people like just still in college or right out of college coming to OpenStack saying, okay, like I still don't have a job, but I want to do something interesting.
00:17:48.060 --> 00:17:50.380
And they apply for all these mentorship programs.
00:17:50.380 --> 00:17:53.800
They're like Google, Google Summer of Code or Outreach.
00:17:53.800 --> 00:17:58.920
And they will just learn as they go from OpenStack itself.
00:17:58.920 --> 00:18:14.080
So, and all the CI system and the fact that we can test all the programs, all the services easily and run like the number of jobs, of CI jobs that we run daily is insanely high.
00:18:14.080 --> 00:18:20.180
And I already forgot the exact number, but when I heard it the first time, I was like, that's insane.
00:18:20.180 --> 00:18:28.880
Like you wouldn't be able to do that with other programming languages like that would require you to compile the software before you can actually test it, for instance.
00:18:28.880 --> 00:18:39.360
It's interesting to compare OpenStack against places like AWS, where if you're wondering how some service works, you really could go in there and look.
00:18:39.360 --> 00:18:42.920
And it's out there for everybody to see what's going on, right?
00:18:43.960 --> 00:18:45.020
Yeah, it is.
00:18:45.020 --> 00:18:54.880
And one other thing that I like, and I also hate at the same time about OpenStack is the fact that it is non-opinionated in many different areas.
00:18:54.880 --> 00:18:59.920
And by non-opinionated, I mean that you have, let's talk about Nova, for instance.
00:18:59.920 --> 00:19:04.080
Nova is the compute service, and it's the one that will allow you to create virtual machines, right?
00:19:04.080 --> 00:19:07.100
But there are many hypervisors out there.
00:19:07.100 --> 00:19:11.680
So most of the services, several of the services in OpenStack are just provisioning services.
00:19:11.680 --> 00:19:15.840
They would sit on top of something else, and they would just manage that.
00:19:16.360 --> 00:19:23.720
So the default hypervisor for Nova right now is like LibWare to KVM.
00:19:23.720 --> 00:19:29.700
But you can also have Hyper-V and VMware.
00:19:29.700 --> 00:19:37.360
You can have different hypervisors under the hood, and you would just pick whatever you want when you want to deploy OpenStack.
00:19:39.220 --> 00:19:52.020
And what it gives you is that it gives you the opportunity to pick your own flavor of what the underlying virtualization layer should look like,
00:19:52.020 --> 00:19:54.320
and run whatever you prefer there.
00:19:54.320 --> 00:19:59.600
It is good to some extent because it just gives you all that flexibility.
00:20:00.020 --> 00:20:06.820
And the part that I don't really like a lot is because it just forces you to create more and more abstractions on top of that,
00:20:06.820 --> 00:20:14.760
which I don't think is necessarily bad in many areas, but there are some other areas where being more opinionated would be good.
00:20:15.760 --> 00:20:21.180
And the reason I'm saying this is because I'm pretty sure AWS is just focused on any single hypervisor,
00:20:21.180 --> 00:20:26.920
whereas in OpenStack you can also look at how you can orchestrate not only a cloud service,
00:20:26.920 --> 00:20:32.020
but also a cloud service that can run on top of several different underlying technologies
00:20:32.020 --> 00:20:38.460
that would allow you to just pick your favorite flavor and just run with it.
00:20:38.460 --> 00:20:40.560
Yeah, that's interesting.
00:20:40.560 --> 00:20:43.940
You know, that kind of stuff is good for the flexibility,
00:20:43.940 --> 00:20:48.980
but it also makes it potentially harder for people who are getting started to know what to choose, right?
00:20:48.980 --> 00:20:53.940
Because they've got to make a decision instead of just following some opinionated sort of guidance, right?
00:20:55.080 --> 00:20:55.520
Exactly.
00:20:55.520 --> 00:20:59.460
And you just made a very good point,
00:20:59.460 --> 00:21:04.920
and that's something that we started looking at in the last, I would say, two cycles probably.
00:21:04.920 --> 00:21:12.180
And it's the fact that we wanted to have some kind of like starter kit for people that are coming to OpenStack
00:21:12.180 --> 00:21:16.720
and they say, okay, okay, I've heard OpenStack is cool, so where should I start?
00:21:17.540 --> 00:21:28.000
And this starter kit is like four services running in a very simple and tiny that's lightweight,
00:21:28.000 --> 00:21:28.980
let's say lightweight.
00:21:28.980 --> 00:21:35.900
And so that you can just run those four, you can play with OpenStack a little bit,
00:21:35.900 --> 00:21:41.140
but you're not going to hit a dead end because as soon as you start liking it
00:21:41.140 --> 00:21:46.300
and you want to grow OpenStack and your own development and your own deployment, I'm sorry,
00:21:46.300 --> 00:21:50.700
you can just start from there and just install more services
00:21:50.700 --> 00:21:54.000
or change some configurations parameter and make it just better.
00:21:54.000 --> 00:21:59.940
So that starter kit is really important because it just lets you know where to start from
00:21:59.940 --> 00:22:04.500
and what are the kind of like essential services to actually have a cloud.
00:22:04.500 --> 00:22:06.220
Yeah, that sounds really helpful.
00:22:06.220 --> 00:22:06.820
Excellent.
00:22:06.820 --> 00:22:08.860
I'll link to that in the show notes as well.
00:22:08.860 --> 00:22:09.560
Awesome.
00:22:09.560 --> 00:22:23.160
This episode is brought to you by Hired.
00:22:23.160 --> 00:22:28.160
Hired is a two-sided, curated marketplace that connects the world's knowledge workers
00:22:28.160 --> 00:22:29.620
to the best opportunities.
00:22:29.620 --> 00:22:33.980
Each offer you receive has salary and equity presented right up front
00:22:33.980 --> 00:22:38.800
and you can view the offers to accept or reject them before you even talk to the company.
00:22:39.440 --> 00:22:45.160
Typically, candidates receive five or more offers in just the first week and there are no obligations ever.
00:22:45.160 --> 00:22:47.240
Sounds pretty awesome, doesn't it?
00:22:47.240 --> 00:22:49.300
Well, did I mention there's a signing bonus?
00:22:49.300 --> 00:22:53.400
Everyone who accepts a job from Hired gets a $2,000 signing bonus.
00:22:53.400 --> 00:22:57.720
And as Talk Python listeners, it gets way sweeter.
00:22:57.720 --> 00:23:05.280
Use the link Hired.com slash Talk Python To Me and Hired will double the signing bonus to $4,000.
00:23:06.280 --> 00:23:07.020
Opportunity's knocking.
00:23:07.020 --> 00:23:10.640
Visit Hired.com slash Talk Python To Me and answer the call.
00:23:19.440 --> 00:23:25.140
So, speaking of starter kits and so on, when would it make sense to think,
00:23:25.140 --> 00:23:32.420
okay, it's time for me to stop just running a virtual machine here and there and try to focus on
00:23:32.420 --> 00:23:38.880
maybe bringing OpenStack into my software deployment data center type scenario?
00:23:39.160 --> 00:23:41.100
What kind of apps do I run?
00:23:41.100 --> 00:23:47.020
I guess what sort of experiences you have with people getting started and then growing into this?
00:23:47.020 --> 00:23:52.980
That's actually a very good question because many people think that in order to run OpenStack,
00:23:52.980 --> 00:23:59.620
the requirement for running OpenStack is having a huge public cloud service.
00:24:00.300 --> 00:24:01.780
And that is not true.
00:24:01.780 --> 00:24:07.340
Like, we have people running small deployments of OpenStack.
00:24:07.340 --> 00:24:11.520
I myself run a small deployment of OpenStack in my test environment.
00:24:11.520 --> 00:24:15.820
And that's what I used to create, new virtual machines where I would test OpenStack and everything I'm doing.
00:24:16.400 --> 00:24:23.120
So, and I would say, like, the moment you start needing more than just one virtual machine,
00:24:23.120 --> 00:24:28.980
and that would be a good moment for you to start considering something like OpenStack.
00:24:28.980 --> 00:24:32.520
Or even starting from the moment where you need a virtual machine.
00:24:32.520 --> 00:24:35.840
And the reason I'm saying this is because if you're working on a service,
00:24:35.840 --> 00:24:38.500
you're likely going to scale it at some point.
00:24:38.700 --> 00:24:43.000
It's not going to scale enough within a single virtual machine,
00:24:43.000 --> 00:24:46.980
and you'll need more compute power or storage or network.
00:24:46.980 --> 00:24:48.940
At least for durability, right?
00:24:48.940 --> 00:24:50.120
Exactly.
00:24:50.120 --> 00:24:50.760
Yeah.
00:24:50.760 --> 00:24:51.760
Exactly.
00:24:51.760 --> 00:25:02.260
And so you likely need something that will allow you to add more compute or whatever to your deployment.
00:25:02.260 --> 00:25:08.100
And from that moment, you already need something like OpenStack, like a cloud provider.
00:25:08.100 --> 00:25:14.860
And if you're starting, you definitely don't want to give money to other people.
00:25:14.860 --> 00:25:19.820
But obviously, like OpenStack, it doesn't run on air.
00:25:19.820 --> 00:25:21.280
It obviously needs some compute.
00:25:21.280 --> 00:25:26.240
And it really depends on what your needs are in that case.
00:25:26.240 --> 00:25:30.760
But seriously, when you start needing virtual machines to deploy yourself,
00:25:30.760 --> 00:25:33.820
that's probably a very good moment to start using OpenStack.
00:25:33.820 --> 00:25:38.040
Because it will allow you to do that easily, and it will manage all the virtual machines for you.
00:25:38.040 --> 00:25:41.120
And the fact that you don't have to care about it,
00:25:41.120 --> 00:25:46.500
the fact that you don't have to worry about starting the virtual machine yourself,
00:25:46.500 --> 00:25:48.520
about making sure that it is running there,
00:25:48.520 --> 00:25:52.940
and that your data is in the right volume or whatever,