Transcript: Deployment von Webapplikationen

· Back to episode

Full episode transcript. Timestamps refer to the audio playback.

Dominik

Ja, hallo liebe Hörerinnen und Hörer, hier sind wir wieder, diesmal bei der zwölften Episode vom Python-Podcast.

Dominik

Was machen wir heute? Heute machen wir ein bisschen Deployment für Anfänger.

Dominik

Also so ein bisschen werde ich den Lochen löchern damit, wie man einfache Dinge auf irgendwelche Server bekommt.

Dominik

Ja, ich bin der Dominik, hallo, Jochen ist wieder da, wir sind im Wintergarten, Sommergarten ist wieder viel zu heiß.

Dominik

Wir hoffen, euch geht's gut.

Dominik

Hört uns gerne zu.

Dominik

Schreibt uns gerne alles, was ihr wollt, alles, was ihr

Dominik

möchtet, an hallo.pysornpodcast.de

Dominik

Ja,

Dominik

schöne Grüße.

Jochen

Ja, genau. Jetzt haben auch tatsächlich Leute

Jochen

inzwischen so ein bisschen angefangen, die Kommentarfunktion

Jochen

zu benutzen. Da war ich ja irgendwie...

Dominik

Ja, unser Pocketcast-Chapter

Dominik

mal funktioniert. Wirklich, wir wollen

Dominik

irgendwann noch mal ein bisschen daran basteln, dass das dann mal geht.

Jochen

Ja, und an den Kommentaren müssen wir wahrscheinlich auch noch

Jochen

so ein bisschen was tun.

Jochen

Da wäre es

Jochen

vielleicht nicht so schlecht, wenn man E-Mail-Benachrichtigungen kriegen könnte

Jochen

oder vielleicht zumindest

Jochen

ein Kommentarfeed oder sowas. Muss ich

Jochen

mal gucken. Geht bestimmt.

Jochen

Habe ich mir schon mal auf die To-Do-Liste geschrieben,

Jochen

aber es ist

Jochen

nicht nur sehr warm, es ist auch irgendwie sehr

Jochen

wenig Zeit momentan für alle möglichen Dinge.

Jochen

Ja, ja. Alles auf einmal.

Jochen

So ist das halt.

Jochen

Aber genau, so ein bisschen

Jochen

haben wir ja schon. Insofern brauchen wir uns nicht die ganze

Jochen

Zeit nur zu beschweren, sondern können auch ein bisschen was erzählen.

Jochen

Ja, diesmal durchherrsche ich

Jochen

dich ja ganz viel mit lustigen Dingen, wie man

Jochen

wieso man, warum man den ganzen Unsinn überhaupt

Jochen

macht. Ja, ja,

Jochen

ich finde es ein interessantes Thema und

Jochen

naja, das ist, ehrlich gesagt,

Jochen

ich meine, so Inspirationen aus

Jochen

anderen Podcasts, die ich so höre, zu

Jochen

nehmen, ist momentan auch so ziemlich das Einzige, wo ich Inspirationen

Jochen

hernehmen kann. Daher dachte ich, nehme ich mal

Jochen

irgendwie die Veröffentlichung von

Jochen

Jungle for Professionals

Jochen

von Will Vincent,

Jochen

die jetzt gerade irgendwie dieses Wochenende

Jochen

passiert ist, zum Anlass da auch so ein bisschen was

Jochen

zuzusagen, weil ich hatte so beim, ich habe es

Jochen

noch nicht komplett durchgelesen, aber ich habe so ein bisschen reingeguckt.

Jochen

Also wie ihr merkt, wir sind direkt bei der nächsten

Jochen

Chapter Mark-Szene.

Jochen

Ja, Moment, genau.

Jochen

News.

Jochen

Ja, alles klar, habe ich gesetzt.

Jochen

Ja,

Jochen

so beim Durchblättern habe ich

Jochen

schon gedacht, okay, das sind genau die Sachen, mit denen

Jochen

ich auch schon irgendwie lange

Jochen

rumgeplagt habe und

Jochen

das ist wirklich sehr schön gemacht.

Jochen

Und

Jochen

ja, das ist eine Menge

Jochen

Zeug, also wie betreibt man eigentlich überhaupt

Jochen

irgendwie so eine Webseite da draußen im Netz und

Jochen

was macht man da

Jochen

alles und gerade jetzt

Jochen

speziell irgendwie

Jochen

was Django angeht, was

Jochen

muss man da alles tun und

Jochen

insofern, wenn einen das interessiert oder man das

Jochen

Problem irgendwie hat, dann kann ich

Jochen

dieses Buch auch durchaus empfehlen, das

Jochen

ist eine sehr schöne Zusammenfassung

Jochen

von all den Dingen, die man da so

Jochen

beachten sollte.

Jochen

Ja, aber eben, genau,

Jochen

Also ich fand immer, das kam immer zu kurz.

Jochen

Also auch wenn man sich so andere Bücher anguckt.

Jochen

Dieser Teil, da wird dann immer gesagt, so naja, Händewedeln, das ist alles kompliziert.

Jochen

Das ist nicht so einfach.

Jochen

Fragt einfach euer Ops-Team.

Jochen

Ja, und dann hat man das vielleicht gar nicht.

Jochen

Das ist blöd.

Jochen

Und genau, da kriegt man einen ganz guten Eindruck, was man da so tun kann.

Jochen

Und irgendwie, ja, ich fand immer, das ist ein Thema, was zu kurz kommt,

Jochen

aber was halt durchaus sehr wichtig ist, wenn man irgendwas auf die Straße kriegt.

Jochen

Und darüber wollten wir so ein bisschen was reden.

Jochen

Vor allen Dingen, weil wir müssen ja einfach mal

Jochen

alle Synergien nutzen, die wir kriegen können.

Jochen

Ich glaube, du wolltest ja auch irgendwie so eine Webseite

Jochen

haben oder so, ne? Ja, ja, genau. Ich wollte

Dominik

so einen Server mal selber auch irgendwie aufsetzen

Dominik

und da brauche ich so ein bisschen Hilfe natürlich

Dominik

bei und gucken, was man mit Python alles

Dominik

machen kann und da lüge ich dich gleich ein bisschen mit.

Dominik

Haben wir noch irgendwelche News aus der Szene,

Dominik

die wir vielleicht dann noch hier reinbekommen?

Dominik

Ja, ich würde einfach mal die Sachen,

Dominik

die so passiert sind, einfach

Jochen

nach und nach. Was haben wir denn da noch

Jochen

so? Du hast noch so einen Postcast

Dominik

gehört am Wochenende, Data Engineering.

Dominik

Da hast du irgendwas

Jochen

Spannendes zu erzählen. Ja, aber das weiß

Jochen

ich gar nicht, ob das jetzt so super in

Jochen

dieses Format passt.

Jochen

Da ging es um

Jochen

eine Firma, die halt so

Jochen

Data Labeling macht. Also gut,

Jochen

ich mache ja auch viel Machine Learning Zeugs,

Jochen

Data Science und

Jochen

also ich fand das deswegen gut,

Jochen

also weil, also ich glaube,

Jochen

wie hieß

Jochen

die Firma nochmal?

Jochen

Cloudworker oder so. Der Chef

Jochen

von dem, einer der Gründer, hat er halt

Jochen

irgendwie auf dem Detail-Engineering-Podcast da

Jochen

was zu erzählen und

Jochen

das, was er so beschrieben hat an,

Jochen

das sind die Probleme, die man normalerweise kriegt, wenn man

Jochen

irgendwie

Jochen

Firmen dabei helfen will,

Jochen

irgendwas in die Richtung zu machen, das kam

Jochen

mir schon alles sehr bekannt vor, weil das sind halt auch die Dinge,

Jochen

die ich immer beobachte, wenn ich da irgendwelche

Jochen

Projekte zu mache und

Jochen

ja, das sind halt so, eben,

Jochen

wenn man, die meisten denken, das ist kein

Jochen

Problem. Woher kriegt man eigentlich Daten? Dabei ist das ein Riesenproblem.

Jochen

Also das ist oft

Jochen

etwas, was nicht wirklich gelöst wird

Jochen

oder wo viel größere Schwierigkeiten

Jochen

dann tatsächlich lauern.

Dominik

Also man kann jetzt nicht alle Maschinen lösen, aber die haben gar keine Daten, um das zu tun.

Jochen

Genau. Oder denken sie, haben die Daten,

Jochen

kommen aber irgendwie nicht ran oder brauchen die Daten

Jochen

aber in einem anderen Format und dann gibt es

Jochen

irgendwelche Abteilungen, die sich da querstellen.

Jochen

Das ist immer furchtbar. Also das ist immer ganz schrecklich, an die Daten

Jochen

ranzukommen. Das ist meistens ein großes

Jochen

Problem. Und

Jochen

der hatte auch so ein paar lustige Beispiele dafür,

Jochen

wie momentan da

Jochen

also auch wirklich

Jochen

kuriose Ideen der Leute kommen, um Daten

Jochen

zu bekommen, weil sie momentan zum Beispiel,

Jochen

also wenn man irgendwas mit Bilderkennung machen möchte

Jochen

oder so, braucht man halt auch oft viele, viele Daten

Jochen

und in Las Vegas

Jochen

scheint es wohl mittlerweile üblich zu sein, dass da

Jochen

irgendwie die

Jochen

irgendwie

Jochen

Hotelzimmer werden gefilmt. Ja, Hotelzimmer

Jochen

oder man mietet auf Airbnb

Jochen

diverse Geschichten und

Jochen

bezahlt mehr oder weniger oder gibt Leuten Goodies

Jochen

dafür, dass sie sich da reinstellen und dann

Jochen

darf man Fotos von ihnen machen oder so, weil man

Jochen

unterschiedliche Leute in unterschiedlichen Situationen

Jochen

haben muss. Nicht, dass irgendwie das Modell

Jochen

dann nur lernt, irgendwie

Jochen

den gleichen Raum wieder zu erkennen. Das wäre ja doof,

Jochen

deswegen braucht man unterschiedliche. Und es ist nicht so einfach.

Jochen

Und dann ist das natürlich

Jochen

auch relativ schnell, relativ teuer, wenn man die Daten

Jochen

versucht selber zu generieren. Oder man muss irgendwie mit Drohnen rumfliegen

Jochen

und Sachen fotografieren und sowas.

Jochen

Klingt ja nach großem Spaß.

Jochen

Ja, es klingt nach großem Spaß, aber es ist auch

Jochen

so ein bisschen, das ist alles so wilder Westen momentan so ein bisschen.

Jochen

Was ja auch, ja,

Jochen

je nachdem.

Jochen

Das wäre durchaus Spaß.

Jochen

Ja, ja, genau.

Jochen

Brown Code Tonight.

Jochen

Genau, genau.

Jochen

Das habe ich gehört. Das fand ich ganz cool.

Jochen

Kann man sich mal anhören.

Jochen

Ich werde einfach den Link dazu in die Show Notes packen.

Jochen

Das hat jetzt aber gar nicht so viel mit Python zu tun,

Jochen

sondern es war eher so,

Jochen

wie kriege ich das eigentlich hin, wenn ich viele Daten zu annotieren

Jochen

habe und zu labeln?

Jochen

Eher so Data Science Machine Learning-Geschichten.

Jochen

Dann hat die S-Guys was getwittert

Jochen

zum nächsten Chat, glaube ich, war das.

Jochen

Ja, ah, okay.

Jochen

Genau, da ging es um

Jochen

Pre-Talks, glaube ich.

Jochen

Ja.

Jochen

Meine ich.

Jochen

Das war der nächste Eintrag.

Jochen

Doch, ja, genau.

Jochen

Und zwar ist das so eine

Jochen

Konferenz

Jochen

Organisationssoftware,

Jochen

die halt irgendwie viele Leute verwenden.

Jochen

Ist auch so eigentlich ganz

Jochen

cool, Django-basiert.

Jochen

die wurde auch verwendet, um

Jochen

zum Beispiel die Subscribe, diese Podcast-Konferenz

Jochen

zu machen. Ja, da waren wir ja auch.

Jochen

Deswegen kam mir das schon so bekannt vor.

Jochen

Es wurde auch damit

Jochen

organisiert und viele Events

Jochen

im CCC-Umfeld, vor allen Dingen wohl auch das Camp,

Jochen

wird halt damit

Jochen

geplant. Und

Jochen

denen fehlt irgendwie

Jochen

ein ordentliches Ticketsystem.

Jochen

Und

Jochen

irgendwie, dass auch Pre-Talks

Jochen

irgendwie mit E-Mails ordentlich umgehen kann und so.

Jochen

Und deswegen hat auch Twitter mal gefragt,

Jochen

Und ob es da nicht Leute gibt, die sehr Lust hätten, sich mit zu beschäftigen oder vielleicht im Rahmen von einem Sprint auf dem Camp irgendwie da was dran zu tun. Gerne auch Einsteiger, weil man kann da sicherlich auch viel lernen und auch für andere ist es vielleicht mal eine Gelegenheit, Leuten was zu zeigen, wie Django da so funktioniert, was man da so tun kann.

Jochen

Also fand ich auf jeden Fall eine gute Idee und das Ding wollte ich mir auch immer schon mal näher angucken und finde ich eine gute Gelegenheit. Ich würde da auch hingehen, wenn ich auf dem Camp wäre. Ich weiß es aber nicht. Ich fürchte, ich werde nicht da sein. Ganz vielleicht doch, aber wahrscheinlich nicht. Daher wird das leider nicht funktionieren.

Dominik

Wann ist das denn überhaupt vielleicht für irgendjemand geneigt?

Jochen

Das Camp ist irgendwie Ende

Jochen

August. Ich glaube, es ist alles ausverkauft.

Jochen

Schon lange jetzt. Ja, schon lange, genau.

Jochen

Moment, ich gucke mal gerade.

Jochen

Das CCC-Camp, wann ist denn das?

Jochen

Also irgendwie

Jochen

20. bis 25.

Jochen

8.

Jochen

Irgendwo in der Nähe von Berlin.

Jochen

Genau.

Jochen

Ja,

Jochen

also ist auf jeden Fall,

Jochen

wenn da zufällig jemand hingeht oder so, dann ist das

Jochen

sicher eine gute Gelegenheit, um sich mal intensiver

Jochen

mit Django beschäftigen zu können

Jochen

und auch was Sinnvolles damit zu tun, was ja auch

Jochen

nicht so, dafür gibt es ja auch gar nicht so

Jochen

wahnsinnig viele Gelegenheiten oft.

Jochen

Ja.

Jochen

Und, ach, da hat eine Überleitung,

Jochen

die da vielleicht auch

Jochen

direkt Sinn macht,

Jochen

ist,

Jochen

habe ich auch gehört

Jochen

in einem Podcast,

Jochen

ja, ich bin momentan viel auf Spielplätzen

Jochen

unterwegs und höre da Podcasts.

Jochen

Kinder toben,

Dominik

Vor allem dann langweilig, wenn man in der Sonne rumsteht.

Jochen

Und zwar ging es da um Tiger.io.

Jochen

Halt nicht so wie das gefährliche Raubtier,

Jochen

sondern mehr so wie diese öde, weite Ödnis im Norden.

Dominik

Das Projektmanagement-Tool, das wollen wir doch später besprechen.

Jochen

Nee, aber das passt jetzt super, das hier dran zu flanschen,

Jochen

weil das ist nämlich, könnte man super auch mit dem P-Talks

Jochen

eigentlich verbinden, weil, na ja,

Jochen

da fehlt halt vielleicht so ein bisschen Ticketsystem.

Jochen

und das Tiger hat das

Jochen

auch schon eingebaut und das hat irgendwie

Jochen

ein ziemlich cooles Ticketsystem eigentlich

Jochen

und das ist halt auch Django und das ist vor allen Dingen

Jochen

Django REST Framework und hat eine super

Jochen

API, das heißt, man kann das alles

Jochen

toll auch irgendwie

Dominik

ansteuern. Jetzt müssen wir nochmal kurz erklären, was denn Tiger

Dominik

jetzt überhaupt ist. Also Tiger ist ein Projektmanagement-Tool,

Dominik

wo man Boards bauen kann, Kanbans bauen

Dominik

kann, so ein bisschen wie Trello, wenn ihr das vielleicht

Jochen

kennt oder so. Ja, wobei ich würde

Jochen

sagen, also wenn man

Jochen

irgendwie Jira

Jochen

Herzliches Beileid, wer es kennt, aber

Jochen

ich war

Jochen

öfter mal

Jochen

das Missvergnügen, irgendwie da

Jochen

mich mit Beschäftigen zu wissen und das war

Jochen

immer meistens eher schmerzhaft. Das kann aber auch sein,

Jochen

das ist einfach, ich meine, es ist einfach viel Zeug und ich

Jochen

habe jetzt auch meistens nicht so viel Lust, mich

Jochen

mit Projektmanagement-Software zu beschäftigen, daher

Jochen

vielleicht lag es auch einfach daran, dass ich da nie

Jochen

so wirklich durchschaut habe, wie das

Jochen

funktioniert und

Jochen

dann schnell was machen wollte und das ging dann halt nicht, weil es

Jochen

kompliziert ist und dann war ich irgendwie frustriert.

Jochen

Mag sein.

Jochen

Vielleicht ist es auch einfach ein furchtbares Tool, kann sein.

Jochen

Finde ich auch.

Jochen

Also ich konnte es auch nie leiden.

Jochen

Ja, das haben wir so auf der komplexen

Jochen

Enterprise-Seite irgendwie

Jochen

möglicherweise und dann irgendwie sowas wie

Jochen

Trello, also die Mutterfirma von

Jochen

Jira ist Atlassian,

Jochen

die auch mal so, wie hieß das,

Jochen

Bitbucket gemacht haben und so,

Jochen

die sich jetzt aber eher so in die Projektmanagement-

Jochen

Software-Ecke begeben haben, was wahrscheinlich

Jochen

ein schlauer Schlagzug war.

Jochen

Und auf der anderen Seite

Jochen

Trello, genau, das eigentlich von den

Jochen

Leuten, die auch Stack-Overflow gemacht haben,

Jochen

irgendwie mal gegründet worden, aber

Jochen

verkauft worden an

Jochen

Atlassian. Aber

Jochen

das ist eher so eine leichtgewichtige Geschichte

Jochen

und gefällt mir, der Ansatz gefällt mir irgendwie besser,

Jochen

aber auch wie man das bedient, gefällt mir besser.

Jochen

Kann natürlich nicht so viel

Jochen

wie Jira. Und das

Jochen

sind sozusagen vielleicht die beiden Pole,

Jochen

die so von

Jochen

super komplex Enterprise bis zu

Jochen

naja, relativ einfach und

Jochen

schlank und leicht zu bedienen.

Jochen

auf der anderen Seite, dazwischen

Jochen

gibt es aber von Atlassian jetzt nix.

Jochen

Und da ist

Jochen

glaube ich, oder da positioniert sich

Jochen

Tiger selber als, ist ein bisschen,

Jochen

hat ein bisschen mehr Features als Trello,

Jochen

aber ist nicht ganz so,

Jochen

nicht ganz so

Jochen

kompliziert wie jetzt Jira.

Jochen

Aber, und es hat halt

Jochen

als Kernfeature halt eine

Jochen

API, sodass man quasi alles, man kann sogar mit der API

Jochen

mehr machen, als man jetzt mit dem Frontend machen könnte.

Jochen

Daher,

Jochen

ja, es gibt irgendwie mobile

Jochen

Apps irgendwie, die man da verwenden

Jochen

kann, die jemand anders gebaut hat, aber der gesehen

Jochen

hat, dass man die API verwenden kann und dann hat er das einfach mal gebaut.

Jochen

Ja, also wir werden auch später noch

Dominik

erzählen, wie man sowas denn auf dem Server hostet.

Dominik

Das ist ja das, was wir damit tun. Genau, wenn man

Jochen

das installieren wollte, ist es auch komplett

Jochen

freistoffbar. Das heißt, man kann das irgendwie

Jochen

lokal sich installieren und da betreiben. Das ist ja auch

Jochen

für viele Leute wahrscheinlich ganz wichtig, dass man das

Jochen

tun kann. Und man kann halt auch reingucken

Jochen

und schauen, wie die da so Sachen implementiert

Jochen

haben. Ich habe so ein bisschen reingeguckt und war,

Jochen

das ist eigentlich ganz gut. Ja, man kann seinen eigenen Board bauen,

Dominik

seine eigenen Trelle-Boards organisieren, kann man Boards auf seinem eigenen

Dominik

Server basteln. Und sowas habe ich auf jeden Fall

Dominik

vor. Finde ich ziemlich cool und ich bin schon

Dominik

ziemlich gespannt, wie das alles funktioniert.

Jochen

Ja, genau. Also Scrum macht

Jochen

das Ding oder man kann halt auch

Jochen

damit machen.

Jochen

Ja, und

Jochen

kann man sich ja mal anschauen. Ist eigentlich ganz nett.

Jochen

Genau.

Jochen

Ja, was hatten wir noch?

Dominik

Wir wollten eigentlich noch ganz kurz auf die Frage von

Dominik

Arnim eingehen, der uns eine E-Mail geschickt hatte.

Jochen

Oh, das haben wir auch verschludert irgendwie.

Dominik

Ja, das war ein bisschen her tatsächlich, schon im Mai, glaube ich.

Dominik

Und ja, er wollte mehr über Error-Driven-Development hören.

Dominik

Und ja, wir wollten eigentlich mal eine Folge zu Tests machen.

Dominik

Ja, das machen wir auf jeden Fall.

Dominik

Aber das wird noch ein bisschen dauern.

Dominik

Ja.

Dominik

Und deswegen so viel, ja, was meinst du denn überhaupt damit an?

Dominik

Alle vielleicht nochmal irgendwie fragen.

Dominik

Es gibt irgendwie da nicht so ganz klar, welche Methode.

Jochen

Ich dachte, ich wüsste, was gemeint wäre.

Jochen

Aber dann habe ich nochmal gegoogelt und dachte so, oh nee, ich weiß doch nicht.

Jochen

weil, also ich glaube, das kam

Jochen

als Reaktion auf einen Pick

Jochen

aus einer Folge von Anfang

Jochen

Mai, wo wir erwähnt hatten, dass es

Jochen

MatMat gibt.

Jochen

Das Ding

Jochen

macht, sozusagen guckt halt,

Jochen

ob, es ist mehr so eine

Jochen

Geschichte, um zu schauen, ob deine Tests

Jochen

halbwegs abdecken, was dein Code so tut,

Jochen

indem es einfach deinen Code zufällig verändert

Jochen

und dann guckt, ob die Tests brechen oder nicht.

Jochen

Und wenn dein Code zufällig

Jochen

verändert werden kann, ohne dass deine Tests brechen,

Jochen

dann weißt du halt, okay, das ist ein Problem.

Jochen

Und sie nennen das Mutation-Testing.

Jochen

Das ist eigentlich auch eine ganz nette Idee.

Jochen

Aber das würde ich jetzt Error-Driven-Development,

Jochen

weiß ich nicht.

Jochen

Leute benutzen den Begriff gerne als Gegenbegriff

Jochen

zu Test-Driven-Development.

Jochen

Beziehungsweise schreiben dann halt,

Jochen

dass wenn du kein Test-Driven-Development machst,

Jochen

dann machst du halt Error-Driven-Development.

Jochen

Was vielleicht, wenn man sich das mal klar macht,

Jochen

also natürlich ist das irgendwie schon so.

Jochen

Und wenn man sich das mal klar macht,

Jochen

dann kann man sich auch vielleicht vorstellen, dass es nicht so eine

Jochen

super schlaue Idee ist, sondern dass man das vielleicht

Jochen

ja dann gleich richtig

Jochen

machen kann. Wobei, naja, ich meine,

Jochen

ich würde auch dieses Test Driven Development

Jochen

Kool-Aid nicht irgendwie

Jochen

nicht einfach so schlucken,

Jochen

sondern da

Jochen

also man sollte Sachen vielleicht

Jochen

nicht so total übertreiben,

Jochen

was die Reinheit angeht, der Gedanken.

Jochen

Ich

Jochen

probiere auch oft lieber Dinge erstmal

Jochen

aus oder so, bevor ich dann Tests schreibe, weil

Jochen

man legt sich halt auch, was die Implementation

Jochen

angeht, ziemlich fest, wenn man Tests schreibt.

Jochen

Damit sollte man

Jochen

sich dann schon halbwegs sicher sein, was das Ding eigentlich machen soll,

Jochen

bevor man das tut. Aber

Jochen

ja, es ist auf jeden Fall, Testschreiben ist eine gute Idee

Jochen

und

Jochen

sozusagen

Jochen

sich nicht von den Fehlern, die

Jochen

User anreporten, quasi

Jochen

die Tests

Jochen

als Tests zu benutzen,

Jochen

ist wahrscheinlich eine ganz schlaue Idee.

Jochen

Aber wie gesagt, ich weiß nicht genau, was gemeint war.

Jochen

Insofern nochmal nachfragen. Wir machen auf jeden Fall

Jochen

eine Folge zu Testing

Jochen

mindestens noch jemanden finden, der

Jochen

irgendwie Lust hat, da mit uns drüber zu reden.

Dominik

Test ist nämlich immer das spannendste Thema von allen.

Dominik

Ja, was

Dominik

noch mal, das ist ja auch schon fast ein Monat her jetzt,

Dominik

wir haben ja schon Juli, ist gerade eine Folge

Dominik

Visual Studio Code und da auch über Test,

Dominik

da kam ich gerade drauf, glaube ich,

Dominik

die man mit Visual Studio Code machen kann und

Dominik

das Debugging-System auf

Dominik

TalkPython2Me.

Jochen

Ja, ja, ja, das war irgendwie der, glaube ich,

Jochen

der Chef von den Produkt-Ownern

Jochen

für Visual Studio Code irgendwie, der da

Jochen

interviewt wurde. Der hat eine Menge

Jochen

auch interessante Sachen erzählt.

Jochen

Ja, vor allen Dingen, dass Visual Studio

Jochen

Code halt auch irgendwie bei Python-Entwicklern

Jochen

so super populär

Jochen

ist irgendwie, womit sie gar nicht so

Jochen

berechnet hätten am Anfang, aber das hat sich irgendwie so

Jochen

rausgestellt. Offenbar gab es da irgendwie so

Jochen

eine Marktlücke.

Jochen

Ja, ich benutze ja jetzt auch schon eine Zeit lang

Jochen

Visual Studio Code.

Jochen

Hast mich angesteckt.

Jochen

Ja, war eine gute Idee.

Jochen

Es ist tatsächlich auch ein

Jochen

Editorialisierer. Ich meine, es ist so eine,

Jochen

viele Leute mögen ja dieses

Jochen

Elektronen, es ist auch eine elektronenbasierter

Jochen

Editorial insofern.

Jochen

Ja, viele mögen das nicht so, aber

Jochen

es funktioniert ziemlich. Also wenn ich das

Jochen

zum Beispiel vergleiche mit PyCharm, PyCharm

Jochen

habe ich ja auch irgendwie eine Zeit lang verwendet,

Jochen

oder fand ich auch ab und zu immer noch, aber

Jochen

tatsächlich fühlt sich das

Jochen

irgendwie deutlich

Jochen

softer an, so smoother. Ja, irgendwie

Jochen

snappier, ich weiß nicht, was

Jochen

kam da noch vor? Ja, es gibt da so ein paar Sachen, die funktionieren direkt,

Jochen

also irgendwie, ne? Es ist einfach viel schneller.

Jochen

es fühlt sich schneller an. Vielleicht ist es gar nicht schneller, aber es

Jochen

fühlt sich schneller an. Die Sachen reagieren einfach

Jochen

viel. Also die Latenz, wenn man auf irgendwas

Jochen

drückt oder so oder irgendeine Tastenkombination eingibt,

Jochen

die Latenz, bis dann was passiert, ist

Jochen

deutlich schneller. Vielleicht hast du ja noch ein Rechner

Jochen

gekauft inzwischen. Ne, ne.

Jochen

Daran

Jochen

liegt es nicht. Und ja,

Jochen

das ist halt, also, ja, ich weiß nicht,

Jochen

wie sie das, ich weiß auch nicht, vielleicht macht auch

Jochen

PyCharm irgendwas falsch, keine Ahnung. Ja, das ist echt cool. Also

Dominik

irgendwie, wenn man seinen Code damit verwalten will,

Dominik

irgendwie auf Git oder sonst irgendwo,

Dominik

das funktioniert super. Integration mit Azure ist

Dominik

toll. Man kann direkt automatisch CI

Dominik

irgendwie CD machen und

Dominik

das alles pushen. Man kann Live-Sharing

Dominik

machen und dann gemeinsam am Code arbeiten, was auch

Dominik

ziemlich gut funktioniert.

Dominik

Link und Multicursor und

Dominik

Übertragung und

Dominik

Terminal und mittlerweile, also in dem

Dominik

Nightly-Bild war das drin, ich glaube, das müsste mittlerweile

Dominik

sowas von im Stäbel sein, dass man jetzt auch über SSH

Dominik

einfach sich irgendwo auf eine Maschine legen kann

Dominik

und da im Verzeichnis entwickeln

Dominik

kann, dass das auch ziemlich praktisch

Dominik

kannst du auf deine VSL-Maschine gehen oder auf

Dominik

in Respy oder auf einen anderen Server, wenn du

Dominik

lustig bist und direkt da editieren.

Jochen

Das ist ja auch oft ein Argument, was man hört, dass

Jochen

Leute sagen, ja, ich nutze halt

Jochen

VI oder Vim, weil da habe ich überall die gleiche

Jochen

Entwicklungsumgebung und

Jochen

ja, auch wenn ich mich auf irgendwelchen Produktionsmaschinen

Jochen

einlogge, kann ich da auch mal

Jochen

meine Umgebung

Jochen

so wie ich da, aber genau,

Jochen

ist natürlich in gewisser Weise ein Argument, aber geht mit

Jochen

VS Code jetzt auch. Braucht man gar nicht mehr

Jochen

unbedingt Vim für verwenden.

Dominik

Also falls noch jemand herausbekommen hat, wie man

Dominik

sowas wie Foxdot verwendet mit VS Code,

Dominik

Das habe ich nämlich noch nicht hinbekommen.

Dominik

Das ist Live-Evaluation von Python-Code.

Dominik

Da hätte ich noch Lust drauf.

Dominik

Das würde ich gerne noch rausfinden.

Dominik

Das müsste irgendwie funktionieren.

Dominik

Dass man irgendwie, weiß nicht, Alt-Enter drückt oder sowas.

Dominik

Und dann spielt er direkt die eine Zeile.

Dominik

Dann kann man Musik machen mit Foxhut für Python.

Dominik

Das fände ich noch super.

Dominik

Sonst muss ich mich irgendwie dran basteln.

Dominik

Aber ja, so viel.

Dominik

Wenig Zeit für so viele Projekte, ja.

Jochen

Du hattest irgendwas noch reingeschrieben.

Jochen

PySimple?

Jochen

PySimple GUI.

Dominik

Ja, da gibt es jetzt noch einigermaßen fünffige Versionen.

Dominik

ist jetzt auch irgendwie vor, weiß nicht wann das

Dominik

rausgekommen ist, vor ein, zwei Wochen oder so,

Dominik

die man ganz gut nutzen kann. Das ist

Dominik

ein Wrapper für

Dominik

Tkinter, TK oder

Dominik

PyQ5. Kann man beides benutzen

Dominik

mit derselben Syntax. Man kann halt einfach angeben, welches

Dominik

der dann visualisieren soll und

Dominik

hat einen relativ einfachen GUI für die

Dominik

ja, Python ist ja nicht so besonders stark

Dominik

bei grafischer Programmierung und

Dominik

das kann man damit aber ganz gut und

Dominik

vor allen Dingen schnell und effektiv erledigen.

Dominik

Das lohnt sich vielleicht da auch mal kurz

Dominik

reinschauen. Wollen wir mal angucken.

Dominik

Genau, jetzt hast du mir meine Woche schon fast geklaut.

Dominik

Ach so, sorry.

Jochen

Oh, ein Podcast, den ich auch noch gerne

Jochen

erwähnen würde, ist auch einer

Jochen

der letzten Django-Chat-Folgen

Jochen

mit Simon Willison.

Jochen

Also einer der Leute, die auch Django

Jochen

quasi so mit aus der

Jochen

Taufe gehoben haben.

Jochen

Ziemlich,

Jochen

ist also mit vielleicht, also Audioqualität

Jochen

ist manchmal so ein bisschen, aber

Jochen

ansonsten inhaltlich fand ich das

Jochen

sehr, sehr gut. Das war sehr, sehr

Jochen

spannend, was er da so alles erzählt hat,

Jochen

also was die Geschichte von Django angeht, aber auch

Jochen

was so die aktuellen Entwicklungen sind,

Jochen

was er für spannend hält, ne, und das halt

Jochen

gerade irgendwie,

Jochen

ja,

Jochen

so momentan spielt,

Jochen

Async-Geschichten spielen da eine große Rolle, ne, die sind gerade

Jochen

sehr spannend oder

Jochen

sein Privat, oder sein

Jochen

Pet-Project, was aber jetzt auch

Jochen

mittlerweile so groß geworden ist, dass

Jochen

Pet oder Pet?

Jochen

Ja, ja, so ein Nebenprojekt halt, aber

Jochen

es ist nicht mehr wirklich so neben, sondern er hat ja irgendwie auch

Dominik

eine... Das Peißen-Halsband für die Katze, oder?

Jochen

Nee, ja, also

Jochen

er hat da irgendwie eine

Jochen

Fellowship gekriegt, ich weiß es nicht genau, wo er dann von

Jochen

irgendeiner Uni ein Jahr lang bezahlt wird, dafür

Jochen

das jetzt zu entwickeln, das schon mal...

Jochen

Also, daher geht auch die Entwicklung da

Jochen

relativ schnell voran. Das Projekt heißt

Jochen

Dataset. Ach so.

Jochen

Genau, das ist mir auch

Jochen

früher schon mal aufgefallen, hatte ich bestimmt auch schon mal ein paar Mal

Jochen

erwähnt oder so. Ich glaube schon, hast du schon mal drüber gestolpert.

Jochen

Ja, genau. Darüber

Jochen

können wir bestimmt auch noch mal eine eigene

Jochen

Sendung machen. Ich wollte mich

Jochen

damit auch noch intensiver beschäftigen. Das ist

Jochen

eigentlich eine sehr coole Idee,

Jochen

wie man

Jochen

mit einer SQLite-Datenbank

Jochen

halt Datensätze

Jochen

irgendwie verfügbar machen kann

Jochen

öffentlich, und zwar

Jochen

auf eine Art, wie man halt sehr, sehr gut das abfragen

Jochen

kann, aber ohne, also man kann eine SQL-State

Jochen

und es einfach verwenden und man kann auch so coole Sachen

Jochen

machen wie JavaScript benutzen,

Jochen

um SQL-Statements zu erzeugen, die man da verwenden kann,

Jochen

um die Daten noch zu fragen, voll gut.

Jochen

Und normalerweise ist das alles puri bär, weil

Jochen

schrecklich, schrecklich SQL-Injection

Jochen

droht und so, aber

Jochen

man kann SQL

Jochen

SQLite

Jochen

so starten, dass man sagt,

Jochen

das ist dein Datenbankens Read-Only

Jochen

und dann ist das alles nicht mehr schlimm, weil es kann nichts

Jochen

passieren. Und

Jochen

da ist das, was man normalerweise nicht tun sollte,

Jochen

dann plötzlich alles erlaubt und cool.

Jochen

Das ist

Jochen

einfach, es ist nett.

Jochen

Es hat viele überraschende Wendungen, dieses Ding,

Jochen

wo man sich denkt, ach cool, das geht und das kann man

Dominik

so machen. Ja, die Datasette-Folge

Dominik

müssen wir uns da nochmal aufschreiben, die steht nämlich gar nicht noch.

Jochen

Ja, die muss da noch mit

Jochen

drauf. Genau, das war

Jochen

also diese Podcast-Episode kann ich

Jochen

Leuten durchaus, die sich für Django und so interessieren

Jochen

ins Herz legen, ist ja

Jochen

sehr nett. Ja, ich würde sagen, jetzt

Dominik

haben wir aber die News halt durch und machen den nächsten Chapter,

Dominik

Marc, weil so langsam löchere ich dich jetzt

Dominik

damit, wie das denn jetzt überhaupt funktioniert mit dem Server.

Dominik

Und wir fangen wirklich von ganz

Dominik

Basis-Bodensatz an, also so

Dominik

gar keine Ahnung, wie macht ihr das und so und wo

Dominik

und ja, ich möchte nämlich auch wissen,

Dominik

wie man das am besten macht, so Best Practice,

Dominik

was sagt denn Jochen dazu?

Dominik

Und ja, ich würde sagen, können wir starten

Dominik

jetzt mit unserem Hauptthema, Server. Dann starten wir da mal.

Dominik

Server, die Plattform für Anfänger, ja.

Dominik

Erstmal Server,

Dominik

was ist denn das? Also irgendwo so

Dominik

ein Rechner, der irgendwie bedienbar ist,

Dominik

das sollte ja irgendwie so klar sein, aber

Dominik

ja, wen nehme ich denn da?

Dominik

Also, was mache ich denn da für einen Server?

Dominik

Nämlich irgendeinen Hosting-Anbieter,

Dominik

Cloud-dedizierten Server, virtuellen

Dominik

Server, warum und so.

Dominik

Boah, ich brauche ja noch irgendwie

Dominik

jetzt eine Domain und so, ne?

Dominik

Wie würdest du das irgendwie so...

Jochen

Ja, also was man auf jeden Fall tun sollte,

Jochen

ist halt irgendwie eine Domain selber registrieren

Jochen

und was

Jochen

nicht so... Also, man sollte

Dominik

vielleicht... Da schreibst du einen Brief und schickst den an eine Stelle.

Dominik

Ja, nee, da gibt es ganz viele Anbieter.

Dominik

Ich weiß nicht, kann man... Ich bin das Universum, ich hätte gerne diese Domain.

Jochen

Ja, es gibt ja diverse Anbieter,

Jochen

da muss man halt ein bisschen Geld bezahlen,

Jochen

das kostet gar nicht so viel pro Jahr

Jochen

und dann hat man halt ein Domain.

Jochen

Du hast gesagt, selber registrieren,

Dominik

also es gibt ja verschiedenste Server,

Dominik

Hoster, die das alles mit einbieten.

Jochen

Ja, aber das ist vielleicht nicht so eine schlaue Idee,

Jochen

das zu machen, sondern besser.

Jochen

Aus welchem Grund?

Jochen

Weil man das ja ändern können will.

Jochen

Also bei vielen kann man das auch ändern,

Jochen

das ist kein Problem,

Jochen

aber ich kenne das auch,

Jochen

dass viele, also so gerade, weiß ich nicht,

Jochen

eben diese, ja,

Jochen

Welt, Wald und Wiesen

Jochen

Muster.

Jochen

Da hat man dann oft irgendwie so ein Formular, wo man

Jochen

irgendwie DNS-Geschichten eingeben kann,

Jochen

aber dann halt die Sachen, die man braucht,

Jochen

also weiß ich nicht, irgendwelche,

Jochen

wie heißen diese Dinge,

Jochen

Verified Domain,

Jochen

SPF Records oder, also es gibt

Jochen

diverse Records, die man unter Umständen einstellen

Jochen

können möchte. Was ist ein Record?

Jochen

Oh Gott, oh Gott, oh Gott.

Jochen

Erklären, wie das Domain Name System funktioniert.

Jochen

Also das ist im Grunde eine verteilte Datenbank,

Jochen

die

Jochen

Informationen darüber

Jochen

enthält, wie

Jochen

Namen auf

Jochen

IP-Adressen aufgelöst

Jochen

werden und umgekehrt.

Jochen

Das heißt, da steht irgendwo, wenn man irgendwie den

Dominik

Nameserver irgendwie fragt, keine Ahnung, der Einzige,

Dominik

der wahrscheinlich bekannt ist, der von Google mit den

Dominik

4.8 oder sowas oder 8.4.4

Dominik

oder was und dann gibt es ja auch noch einige unabhängigere,

Dominik

wenn man nicht alle seine Daten zu Google schicken möchte.

Dominik

Aber die fragt man dann und die wissen

Dominik

dann, wo, hinter welcher IP oder hinter

Dominik

welchem Namen, welcher IP steht.

Jochen

Ja, man kann auch einen eigenen Resolver betreiben. Also man kann das

Jochen

durchaus von Hand auch machen. Das ist vielleicht mal eine ganz interessante

Jochen

Geschichte, dass man halt irgendwie

Jochen

das mal einfach von Hand mit

Jochen

den S-Abfragen

Jochen

irgendwas resolft.

Jochen

Man resolft das halt so von hinten nach vorne. Also wenn man

Jochen

jetzt irgendwie

Jochen

pythonpodcast.de hätte, dann würde man

Jochen

erstmal gucken, okay, also was man wissen muss

Jochen

ist, man braucht

Jochen

irgendwie so einen Root-Nameserver, aber wenn

Jochen

man eine IP von dem hat,

Jochen

dann kann man den halt fragen, okay, was ist denn der

Jochen

Nameserver, der zuständig ist für die .de

Jochen

Zone. Und der Root-Nameserver, das sind

Jochen

die großen Knotenpunkte? Ja.

Dominik

Kriege ich das irgendwie raus, wenn ich so ein Trace-Root mache,

Dominik

wo die irgendwie hängen? Ja, die sind

Jochen

weltweit verteilt. Da gibt es ein paar von

Jochen

Rootservers.net, irgendwie

Jochen

a.rootservers.net oder ein paar,

Jochen

also ich weiß jetzt gar nicht mehr genau alles

Jochen

schon, altes Wissen, vielleicht ist auch

Jochen

mittlerweile alles anders, aber

Jochen

auf der ganzen Welt sind da ein paar von denen verteilt

Jochen

und

Jochen

normalerweise, also einige von denen

Jochen

sind halt einfach, die IP-Adressen sind halt eingebaut in

Jochen

diverse

Jochen

Resolver-Libraries daher.

Jochen

Aber das muss man irgendwie wissen, sonst kommt man halt

Jochen

auch nicht weiter. Und von denen

Jochen

kann man sich dann halt durchhangeln bis zu der

Jochen

Domain, die man eigentlich haben möchte. Und quasi

Jochen

für jeden Teil der Domain

Jochen

fragt man dann halt den entsprechenden Nameserver.

Jochen

Also über

Jochen

eben die Records, also NS-Records sind halt

Jochen

die Records, die zuständig sind, einem

Jochen

zu sagen, was denn der Nameserver

Jochen

zuständig Nameserver ist. Also ich frage halt quasi den

Jochen

NS-Record für .de

Jochen

den Root-Server und dann kriege ich halt

Jochen

irgendwie den Nameserver, der zuständig ist für die

Jochen

.de-Zone

Jochen

und das ist halt

Jochen

na, wie heißen sie noch?

Jochen

Hier

Jochen

DENIC, da habt ihr irgendwo

Jochen

Frankfurt steht, glaube ich

Jochen

und die haben

Jochen

dann das .de-Zone-File irgendwie

Jochen

drin und da steht dann halt

Jochen

drin, wer, also in dem File steht vor allen Dingen

Jochen

stehen die NS-Records für alle

Jochen

DE-Domains, sozusagen.

Jochen

Wenn ich jetzt wissen will, wer ist, welcher Name-Server

Jochen

ist dann zuständig für Python-Podcast.de,

Jochen

dann hole ich mir den NS-Record

Jochen

für Python-Podcast

Jochen

in dem

Jochen

Name-Server, der für .de zuständig ist

Jochen

und dann, genau,

Jochen

kriege ich das irgendwie zu.

Dominik

Könnte ich das auch irgendwie selber machen, dass ich irgendwie sage, so, hey, hier,

Dominik

ich heiße jetzt gerne

Dominik

DominikMeinPython

Dominik

kommen oder sowas, oder DE, wir wollen ja zu

Dominik

DIN-NIC und dann sage ich der DIN-NIC so,

Dominik

hey, wer scannet so, ist das noch frei

Dominik

und schick das dann irgendwie da bei

Jochen

DIN-NIC-Liste. Das geht nicht unbedingt so

Jochen

einfach. Das heißt, ich muss da ein Registrier

Dominik

Registrar für verwenden.

Dominik

Ja, also früher ging das auch.

Jochen

Ist man da vorbeigegangen beim DIN-NIC, hat er die Tür

Jochen

geklopft und gesagt, hallo. Ich hätte

Jochen

mal so gerne ein Domain.

Jochen

Aber das geht schon lange nicht mehr.

Jochen

Da kamen so viele Leute wahrscheinlich

Jochen

auf diese Idee.

Jochen

Ja, das

Jochen

geht schon lange nicht mehr. Aber

Jochen

genau, man braucht... Also bei Gandhi macht das dann zum Beispiel

Jochen

wenn ich jetzt bei dem... Ja, es gibt ganz viele

Jochen

unterschiedliche, also ich weiß gar nicht, ob es da

Jochen

ich weiß nicht, ob das, was ich da finde, gut ist oder

Jochen

nicht, keine Ahnung. Es spielt auch keine

Jochen

große Rolle, weil es ist, die können alle irgendwie

Jochen

mehr oder weniger das Gleiche.

Jochen

Ja, aber was wichtig ist,

Jochen

dass man selber das registriert hat und selber dann

Jochen

sozusagen die

Jochen

Sachen ändern kann und halt auch das umziehen kann,

Jochen

wenn man mag und so. Und das ist halt

Jochen

bei diesen, wenn man das beim Provider macht,

Jochen

oft ist es auch so, dass das geht, aber

Jochen

manchmal halt auch nicht und dann hat man ein Problem.

Jochen

wenn man zum Beispiel den Hoster wechseln möchte.

Jochen

Ja, und ja, genau.

Jochen

Aber ja, das ist so das Erste, was man braucht.

Jochen

Ja, okay.

Jochen

Einen eigenen Domain.

Jochen

Braucht man noch für viele andere Dinge.

Jochen

Wenn man Indie-Web machen will, braucht man auch einen eigenen Domain.

Dominik

Jetzt brauchen wir irgendwie so einen Computer, der irgendwie so läuft.

Dominik

Also die Frage ist, muss der schnell sein, muss der langsam sein?

Dominik

Was ist das denn?

Dominik

Also haben wir da tatsächlich einen eigenen Computer,

Dominik

der mit Kernfestlöse ...

Dominik

Oh, sorry, stopp, stopp, stopp.

Dominik

Ich war mit dem Auflösen noch nicht fertig.

Jochen

Also wenn man jetzt den NS-Rekord von einem Domain hat,

Jochen

das heißt noch nicht, dann muss man den nehmen.

Jochen

aber noch fragen, was ist denn jetzt zum Beispiel der

Jochen

A-Record? Das ist halt das, was halt die IP

Jochen

einem gibt für

Jochen

eine bestimmte Domain.

Jochen

Es gibt auch noch andere. Es gibt MX-Records,

Jochen

die halt einem sagen, wo die

Jochen

wer zuständig ist für Mail.

Jochen

Es gibt halt, ja, es gibt

Jochen

eine ganze Menge Zeugs. Es gibt

Jochen

doch Text-Records und weißer Teufel

Jochen

und manche von denen werden auch missbraucht,

Jochen

um andere Sachen zu signalisieren. Aber wenn man solche Sachen

Jochen

machen möchte, wie

Jochen

man möchte Mail irgendwie

Jochen

von einem Drittanbieter machen

Jochen

lassen, weil man keinen Bock hat, das irgendwie alles selber

Jochen

aufzusetzen und zu

Jochen

maintainen, dann muss man da

Jochen

eine ganze Menge Records

Jochen

setzen und so, oder auch für andere

Jochen

Geschichten, Services, die man da benutzen kann,

Jochen

damit halt sozusagen andere

Jochen

unter, mehr oder weniger

Jochen

unter der Domain auftreten können.

Dominik

Ja, das würde ich auf jeden Fall auch machen.

Dominik

Ich möchte ja gerne ganze Projekte unter unterschiedlichen

Dominik

Domains, die ich mir dann irgendwie buche,

Dominik

Vielleicht auf einen größeren Server legen

Dominik

und die dann irgendwie da reinrouten?

Jochen

Ja, das ist nochmal ein anderes Problem.

Jochen

Das geht natürlich auch, aber allein

Jochen

ist gut, DNS unter Kontrolle zu haben.

Jochen

Jedenfalls, also man muss nicht unbedingt

Jochen

einen eigenen Nameserver betreiben. Das mache ich

Jochen

teilweise noch, aber das ist auch irgendwie

Jochen

eher schmerzhaft.

Jochen

Weil man hat auch direkt so mit Security

Jochen

Geschichten oft, dann gibt es so diese

Jochen

komischen DNS-Amplification-Angriffe

Jochen

und blöde Geschichten

Jochen

und so Zeugs, mit denen man zu tun kriegt.

Jochen

Ja, aber

Jochen

man will das eigentlich, glaube ich, nicht unbedingt selber

Jochen

betreiben, wenn man da nicht Spaß dran hat, aber

Jochen

trotzdem möchte man

Jochen

die Rekords bestimmen können, weil das für

Jochen

viele Services, die man sonst so benutzen möchte,

Jochen

halt auch wichtig ist. Ich glaube, damit

Jochen

sind wir aber mit DNS im Grunde durch.

Dominik

Ja, jetzt kommen wir endlich auf den Server. Jetzt haben wir so einen Server, der hat dann

Dominik

irgendwie nur so eine IP und dann

Dominik

wissen wir noch gar nicht, ist das fest oder nicht, aber...

Jochen

Nee, noch nicht. Wir haben nur das DNS

Jochen

unter Kontrolle. Wir können das jetzt auf eine beliebige IP

Jochen

zeigen lassen, sozusagen. Zum Beispiel einfach, dass wenn man

Jochen

jetzt... Es gibt sowas wie DynDNS,

Dominik

Das heißt, wir könnten sogar zu Hause einfach einen Rechner ans Netz hängen

Dominik

oder so, wenn wir eine Dynamische haben.

Jochen

Dann musst du dann Games aber selber

Jochen

betreiben, irgendwie wahrscheinlich.

Dominik

Ich glaube, es gibt so einen Service, da muss man immer nur

Dominik

sagen, hey, ich bin jetzt hier, ich bin jetzt hier, ich bin jetzt hier.

Jochen

Ja, klar. Es gibt auch in vielen Routern

Jochen

ist das eingebaut, zum Beispiel eine Fritzbox

Jochen

macht das. Da kann man einfach

Jochen

sagen, das ist mein DNS-Anbieter

Jochen

und dann

Jochen

kriegt man halt immer eine entsprechende,

Jochen

dann macht die das automatisch.

Jochen

Wenn sich die IP-Adresse ändert, dann schickt die halt

Jochen

irgendwie ein Request dahin und sagt, okay,

Jochen

findest mich hier, hallo. Genau, und dann

Jochen

kann man auch sein Kram zu Hause immer

Jochen

erreichen, ja.

Jochen

Wobei man da wahrscheinlich eigentlich eher sowas

Jochen

wie ein VPN verwenden will, aber

Jochen

DynDNS geht auch, aber ist eigentlich heutzutage

Jochen

alles nicht mehr so richtig relevant, glaube ich.

Jochen

Ja,

Jochen

genau, also wenn man DynDNS unter Kontrolle hat,

Jochen

dann kann man halt jetzt, wenn man

Jochen

jetzt einen Server hätte,

Jochen

irgendwo, der unter der IP

Jochen

verfügbar ist, dann

Jochen

kann man sozusagen

Jochen

die Domänen darauf zeigen lassen.

Dominik

So, und jetzt ist die Frage, was für einen Rechner will ich denn da haben? Will ich irgendwie vom großen Rechenzentrum haben? Will ich einen bei mir zu Hause in die Ecke stellen? Möchte ich irgendwie so einen Cloud-Server mir mieten? Möchte ich so einen dedizierten Server haben? Das kann man ja skalieren von 2 bis, weiß nicht, wahrscheinlich 200, 2000 Euro im Monat.

Jochen

Ja, das kommt drauf an. Also was man damit vorhat, für die meisten Leute wird irgendwie da weniger, wahrscheinlich eher mehr sein. Also es wird wenig reichen, weil...

Dominik

Es gibt ja auch so WordPress-Hosting-Anbieter

Dominik

oder sowas, da kann man wahrscheinlich nichts anderes machen,

Dominik

außer ein WordPress-Blog

Dominik

drauf hosten, der auch schon

Dominik

ziemlich viel kann, wenn man jetzt nicht so viele

Dominik

Besucher hat.

Jochen

Ist aber nicht das, was man wahrscheinlich

Jochen

haben will, wenn man jetzt Python macht oder so.

Jochen

Da möchte man das vielleicht schon

Jochen

selber tun können. Also es gibt auch

Jochen

eben für Python-Hosting

Jochen

nicht so viele

Jochen

Anbieter, die da...

Dominik

Was ist denn jetzt Python-Hosting? Weil ich dachte, da läuft jetzt ein Computer.

Dominik

Genau, ja.

Jochen

Das ist halt, also bei WordPress ist halt klar,

Jochen

das ist halt die Software. So was gibt es natürlich

Jochen

für bestimmte

Jochen

Python-Geschichten auch. Also es gibt

Jochen

zum Beispiel, muss ich jetzt nochmal nachgucken,

Jochen

habe ich letztens irgendwie gesehen, wenn man jetzt einfach nur ein CMS

Jochen

haben will unter der Domain, da gibt es ja auch Anbieter,

Jochen

Diego, Diego, Diego,

Jochen

ich weiß es nicht mehr, muss ich mal nachgucken.

Jochen

Die bieten an, dass man

Jochen

irgendwie ein Wagtail CMS

Jochen

oder halt ein

Jochen

Django CMS

Jochen

bekommt, da gehostet

Jochen

und das ist dann so ähnlich wie WordPress-Hosting.

Dominik

Okay, das läuft dann auch im virtuellen Container irgendwo.

Jochen

Nee, das weiß ich nicht,

Jochen

ob die da einen extra Container pro Seite hochfahren.

Jochen

Ich denke nicht.

Jochen

Also wenn man sich zum Beispiel anguckt,

Jochen

was da die User sind,

Jochen

die man teilweise, wenn man in manchen Feldern

Jochen

versucht, irgendwas einzugeben,

Jochen

dann kommt eine Liste der User hoch oder so.

Jochen

Da kommt ziemlich wildes Zeug hoch.

Jochen

Das heißt, ich gehe mal davon aus,

Jochen

dass es nicht irgendwie pro Domain oder so gekapselt,

Jochen

sondern das ist halt eine Datenbank, auf der alle sind

Jochen

und dann gibt es halt unterschiedliche Sites

Jochen

und das ist ja auch durchaus

Jochen

vernünftig unter Umständen, also

Jochen

du brauchst nicht unbedingt einen Container

Jochen

für eine eigene Seite, da ist

Jochen

es gar nicht

Jochen

nötig, ist ja bei WordPress-Geschichten wahrscheinlich

Jochen

auch nicht so

Jochen

und

Jochen

genau, das gibt durchaus da auch Anbieter,

Jochen

aber das sind viel weniger als jetzt im PHP-Umfeld

Jochen

oder WordPress oder so, wo das halt

Jochen

eine große Geschichte ist,

Jochen

was eher

Jochen

eher eine Rolle spielt, wenn man

Jochen

jetzt Python-Applikationen irgendwo hosten will,

Jochen

ist halt sowas wie, also wenn man jetzt kommerzielle

Jochen

Anbieter, wir gehen einfach mal von einfach

Jochen

zu, es wird schwieriger oder komplizierter oder

Jochen

man kann mehr selber kontrollieren

Jochen

durch, wenn man

Jochen

so, die heißen alle so Platform-as-a-Service

Jochen

Anbieter

Jochen

sich anguckt. Also ganz oben wäre sowas

Jochen

wie eben, du kriegst halt

Jochen

irgendwie dein Backtail-CMS und hast dann

Jochen

halt ein fertiges CMS unter deiner Romain.

Jochen

Das wäre halt sozusagen alles

Jochen

Am besten

Dominik

nur noch mit Admin-Interface. Genau, das wäre

Jochen

dann auch irgendwie so quasi, ich weiß gar nicht, ob das das wäre,

Jochen

wahrscheinlich Software-as-a-Service, mehr oder weniger

Jochen

Modell. Dann Plattform-as-a-Service ist,

Jochen

naja, du

Jochen

sagst nicht, du kriegst

Jochen

jetzt nicht eine fertige Webseite,

Jochen

sozusagen, schlüsselfertig,

Jochen

sondern du kannst... Schlüsselfertige Webseite,

Jochen

ja. Sondern du kriegst halt

Jochen

irgendwie, du hast

Jochen

halt einen Account bei Heroku oder sowas,

Jochen

Ampeter wären das sowas wie Heroku oder Python Anywhere oder so

Jochen

und

Jochen

da

Jochen

Ich den Vergleich mit diesen Häusern

Dominik

unheimlich toll. Mit den Hochhaus-Hindställen

Dominik

und Gartenhütte.

Jochen

Ja, also sag mal so, das ist halt

Jochen

im Grunde, ja, da sind das

Jochen

dann oft wahrscheinlich Container, die da hochgefahren

Jochen

werden und du hast halt solche Dinge

Jochen

wie Datenbank ist halt schon einfach

Jochen

Du wohnst in einem Hotel und dann gehst du

Jochen

in die Lobby. Es ist quasi so eine Art Hotel.

Jochen

Ich weiß nicht, ob

Jochen

diese Analogie trägt, also wenn

Jochen

Software ist ein Service.

Dominik

Lieber Concierge, ich hätte gerne einen Kaffee.

Jochen

Ja, was wäre denn das fertige WordPress,

Jochen

was man sich nur noch einloggen braucht?

Dominik

Da ist der Pool schon vorgeheizt.

Jochen

Ich würde sagen, das ist doch eigentlich eher das Hotel, oder?

Jochen

Wo man sich um nichts kümmern muss.

Dominik

Und Heroku ist die Ferienwohnung, wo du selber kochst.

Jochen

Ja, und Heroku ist so ein bisschen die,

Jochen

es ist eher so, nicht mal das,

Jochen

ist es eher so der

Jochen

die

Jochen

Schuhkarton-Eigentumswohnung irgendwo

Jochen

der Container halt. Oder es ist wie der Container auf dem Schiff,

Jochen

ja, wo man irgendwie die ganze

Jochen

Inneneinrichtung und so, das muss man halt selber machen, weil es ist halt

Jochen

nicht drin. Und das kann man auch komplett austauschen.

Jochen

Das ist natürlich auch irgendwie ein Vorteil.

Jochen

Da kannst du halt sagen, okay, ich deploy da

Jochen

halt irgendwie ein Flask-Ding

Jochen

hin oder halt eben ein Django

Jochen

hin oder so.

Jochen

Aber du bist da halt nicht festgelegt, ja.

Jochen

Also auch nicht auf, ja.

Jochen

Und, ja, aber diverse andere Geschichten werden dann schon abgenommen.

Jochen

Also man kümmert sich sozusagen nur noch um den Teil,

Jochen

der halt, wenn man alles selber machen würde,

Jochen

im Applikationsserver, jetzt nenne ich das mal so, laufen würde.

Jochen

Um den Applikationsteil kümmert man sich.

Jochen

Aber sowas wie Datenbank, das macht man nicht selbst.

Jochen

Da gibt es dann halt, und es gibt auch endlos viele andere Plugins

Jochen

und Dinge, die man dazuklicken kann, Suchmaschinen oder irgendwas.

Jochen

irgendwelche anderen Sachen, die man halt auch

Jochen

verwenden kann und das muss man alles dann nicht selber machen

Jochen

bei Heroku jetzt beispielsweise, sondern das ist halt

Jochen

dann einfach da.

Jochen

Und man kümmert sich nur um die

Jochen

Applikationen, die man dahin deployt und

Jochen

natürlich definiert man irgendwie die Datenbank

Jochen

dadurch, dass man jetzt in Django beispielsweise die ganzen

Jochen

Modelle halt irgendwie

Jochen

definiert und die werden dann halt auch

Jochen

in der Postgres irgendwie

Jochen

eingelegt, aber man betreibt die Postgres-Datenbank

Jochen

nicht mehr selber, sondern das macht halt

Jochen

entweder Heroku oder einer von den

Jochen

Drittanbietern, die halt ein Postgres-Plugin

Jochen

für Heroku anbieten. Für einen.

Jochen

Was natürlich dazu führt, dass es

Jochen

wesentlich weniger

Jochen

aufwendig ist für einen Server.

Jochen

Aber man ist halt auch so ein bisschen

Jochen

eingeschränkt und

Jochen

diese Geschichten führen halt oft dazu,

Jochen

also ich habe das tatsächlich mal

Jochen

versucht, weil ich habe versucht für

Jochen

es ist ja auch sowas, wenn man

Dominik

Das klingt nicht nach einem gelungenen Experiment.

Jochen

Ja, für DjangoCast

Jochen

wollte ich einfach mal so, wie ist das denn,

Jochen

wenn man das jetzt auf Heroku mal deployen will zum Testen,

Jochen

damit man es halt draußen irgendwo

Jochen

laufen hat, aber

Jochen

ja,

Jochen

man möchte jetzt nicht vielleicht irgendwie so ein

Jochen

Commitment eingehen, da jeden Monat Geld zu

Jochen

bezahlen oder so, oder hat halt

Jochen

dann auch keinen Root-Server irgendwo rumstehen, den man

Jochen

benutzen könnte. Darauf kommen wir irgendwie später wieder.

Jochen

Ja, dann wäre es

Jochen

doch ganz praktisch, wenn man das einfach mal nach Heroku oder

Jochen

so deployt und dann mal guckt, wie das so funktioniert.

Jochen

Dachte ich, das wäre eigentlich ganz nett. Und

Jochen

zumal halt all diese Anbieter alle so

Jochen

freie Container anbieten,

Jochen

die also für Hobby-Benutzung

Jochen

oder so, die halt nichts kosten,

Jochen

die dann auch bestimmte Anforderungen

Jochen

nicht erfüllen, beziehungsweise keine garantierte,

Jochen

die sind beim ersten Laden oft langsam,

Jochen

weil das wahrscheinlich unten drunter irgendwie

Jochen

Docker-Container oder vielleicht

Jochen

benutzen die dann irgendwie Lambda-

Jochen

Funktionen bei AWS oder so,

Dominik

wer weiß. Genau, das ist das denn jetzt schon wieder?

Dominik

Nein, nein, nein.

Dominik

Ich bin mir noch auf.

Jochen

Also da kann es sein, dass der Container erst gestartet

Jochen

wird, wenn so ein Request reinkommt und dann ist

Jochen

das halt ein bisschen langsam und doof und

Jochen

aber es stört ja nicht, wenn man

Jochen

das eh nur so

Jochen

mal ausprobieren möchte

Jochen

und

Jochen

ja, und dann

Jochen

habe ich mich da gemacht, da so ein bisschen eine Anleitung

Jochen

für zu schreiben und dann ist mir relativ schnell

Jochen

aufgefallen, es ist nicht so einfach

Jochen

und ich war überrascht, wie knifflig

Jochen

das ist und ich bin immer noch ein bisschen überrascht,

Jochen

dass auch Heroku da keine gute Anleitung

Jochen

für hat, wie macht man das eigentlich,

Jochen

die machen auch Ruby on Rails und

Jochen

auch Node.js und weiß der Teufel, aber

Jochen

trotzdem, es ist schon

Jochen

irgendwie, es war schwerer als ich dachte und ich dachte

Jochen

mir so, ui, also

Dominik

wenn jemand daran knabbert, dann

Dominik

weiß ich jetzt nicht, ob ich jetzt anfänge, unbedingt

Dominik

mich da so reinstürzen möchte.

Jochen

Ich meine, auch dieses Jungle for Professionals

Jochen

Buch kann man sich auch mal angucken. Auch der,

Jochen

obwohl Vincent meinte es schon so, dass das alles

Jochen

irgendwie immer, also die Sachen so hinzukriegen, dass sie dann

Jochen

tatsächlich funktionieren, ist oft schwerer, als

Jochen

man so denkt. Und es war echt nicht mal

Jochen

ganz einfach. Das Containerschiff ist vielleicht überladen und

Jochen

hat irgendwie halbe Schlagseite. Man weiß es nicht genau.

Jochen

Ja, aber es ist halt, also ich fand

Jochen

jetzt überraschend, wie viel wenig

Jochen

einfacher das ist, als wenn man alles selber

Jochen

macht. Also der Schritt von, also ehrlich

Jochen

gesagt, ich finde es, das mag daran liegen,

Jochen

dass ich das häufiger selber mache

Jochen

irgendwie. Ich fand es einfacher, das selber

Jochen

zu machen als bei Heroku.

Jochen

Weil man stößt halt sofort auf so Probleme.

Jochen

Gut, kann auch sein, dass mir das,

Jochen

vielleicht ist das vielen Leuten egal, aber ich denke mir

Jochen

halt so, naja, heutzutage Webseite ohne

Jochen

SSL, das ist eigentlich eher kaputt. Also das

Jochen

muss eigentlich, SSL muss irgendwie gehen

Jochen

und eigentlich ist das ja auch kein Problem mehr mit Let's Encrypt

Jochen

und so. Aber

Jochen

für die Hobby-

Jochen

Seite bei Heroku, bei denen

Jochen

funktioniert das nicht.

Jochen

Und es hat mir

Jochen

nicht leicht gefallen, rauszukriegen,

Jochen

dass es wirklich nicht funktioniert.

Jochen

Und ich musste da tief graben.

Jochen

Und ich bin in irgendwelchen Issues gelandet, wo dann

Jochen

einer der Entwickler bei Heroku dann irgendwie

Jochen

schrieb, das sollten wir vielleicht mal in die Dokumentation schreiben,

Jochen

dass das wirklich nicht geht. Also auch mit diesem

Jochen

Weg geht das nicht. Und da dachte ich

Jochen

schon so, ja, solltet ihr vielleicht, weil

Jochen

ich habe jetzt gerade da irgendwie ganz schön

Jochen

Zeit reingesteckt, das rauszukriegen. Also weil

Jochen

es sah so aus, als würde es vielleicht doch funktionieren, wenn man dann

Jochen

irgendwie die Zertifikate von Hand hochlädt oder so.

Jochen

Nee, tut's nicht. Und dann habe ich mir erst

Jochen

lokal irgendwie Zartbord installiert

Jochen

und da irgendwie auch rumgeeiert.

Jochen

Aber es ging dann alles am Schluss nicht.

Jochen

Also SSL, HTTPS, Heroku

Jochen

nur, wenn man zahlt. Sonst geht's nicht.

Jochen

ja, auch die,

Jochen

wenn man jetzt irgendwie

Jochen

ein CDN verwendet oder so.

Jochen

Content Delivery Network, ja, da müssen wir auch nochmal

Dominik

gleich noch klauen. Ja, da kommt alles noch dazu.

Dominik

Ist alles... Anfängerfreundliche

Dominik

Folge, Jochen. Ja, ist alles nicht so

Jochen

einfach. Auf jeden Fall, also ich meine, man kann

Jochen

sich das mal angucken, wenn man

Jochen

jetzt auf HTTPS nicht so viel Wert liegt

Jochen

oder dann kriegt man auch

Jochen

mit Heroku wahrscheinlich schon halbwegs

Jochen

schnell da irgendwie zum Ziel.

Jochen

Es gibt glaube ich noch ein paar.

Jochen

Und

Jochen

das kann man auf jeden Fall auch verwenden.

Jochen

Also man hat auf jeden Fall diesen ganzen

Jochen

operativen Kram von der Backe, was natürlich auch

Jochen

schon mal ein großer Vorteil ist. Also man muss sich nicht dafür

Jochen

also man muss sich nicht

Jochen

selber dafür interessieren,

Jochen

wie das Zeug jetzt, ob das oben ist oder

Jochen

nicht. Also das macht halt

Jochen

jemand für einen und das

Jochen

ist ja auch schon mal nicht so schlecht.

Jochen

Ja,

Jochen

das wäre sozusagen eine

Jochen

Zwischenschicht zwischen irgendwie alles ist fertig

Dominik

und... Hört sich nicht so an, als würde ich das

Jochen

machen wollen, ehrlich gesagt. Doch, also ich kann mir

Jochen

durchaus vorstellen, dass es gute Gründe gibt, das zu machen.

Jochen

Nee, für mich nicht.

Jochen

Ja, finde ich jetzt nicht,

Jochen

aber... Nach der Dokumentation ausgeschlossen,

Jochen

ja. Finde ich jetzt nicht, aber

Jochen

ich denke schon, dass es für mich, aber

Jochen

oder es gibt, was auch oft eine Falle ist,

Jochen

wenn Startups irgendwie anfangen mit sowas,

Jochen

dass sie dann irgendwann doch viele

Jochen

Datenbank-Queries machen und da

Jochen

sind auch, das ist eine ganze

Jochen

Menge, ist irgendwie frei.

Jochen

Aber wenn man dann aus diesem Bereich, wo

Jochen

das frei ist, irgendwie rauskommt, dann wird es sehr, sehr schnell

Jochen

brutal teuer.

Jochen

Und das ist auch so etwas, was man vielleicht

Jochen

nicht unbedingt haben will. Aber das Problem

Jochen

ist, wenn man dann gerade wächst oder so, dann kann man nicht mehr so schnell

Jochen

irgendwie. Die Infrastruktur komplett umfassen.

Jochen

Ja, und dann gibt man halt ein

Jochen

Vermögen. Dann gibt man Arm und Bein

Jochen

an diese Anbieter.

Jochen

Was ja irgendwie so dein Geschäftsmodell

Jochen

ist. Ist auch nicht verwerflich, finde ich. Ist okay, aber

Jochen

man sollte sich halt bewusst sein, dass man da eventuell ein Problem

Jochen

bekommen kann.

Jochen

Ja, also das ist eine Möglichkeit,

Jochen

die man halt auch machen muss.

Dominik

Jetzt müssen wir aber nochmal ganz kurz, bevor wir das alles wieder vergessen haben,

Dominik

kurz eingehen auf Content-Division-Network.

Dominik

Du musst auf Division-Ocean nochmal kurz erklären und

Dominik

AWS-Lambda-Funktion.

Jochen

Ja, also wenn wir jetzt bei

Jochen

Software-as-a-Service,

Jochen

Plattform-as-a-Service. So, jetzt werden

Jochen

wäre quasi das Nächste, was nicht mehr

Jochen

das, wo man ein bisschen mehr Freiheit hat, aber

Jochen

sozusagen immer noch

Jochen

nicht so viel selber machen muss, wäre dann

Jochen

Infrastructure-as-a-Service, also das wäre dann

Jochen

halt sowas wie

Jochen

ja, Amazon

Jochen

EC2,

Jochen

Digital Ocean.

Jochen

Also da

Jochen

bekommt man im Grunde

Jochen

ja, einen Container,

Jochen

auf dem irgendein Linux oder so läuft, wo man

Jochen

sich einloggen kann als Root per SSH.

Jochen

und dann ist man auf sich alleine

Jochen

gestellt. Den Rest macht man dann halt selber.

Jochen

Das hört sich gar

Jochen

nicht so schlecht an. Ja, das hört sich gar nicht so schlecht an.

Jochen

Das ist auch, glaube ich, eine ganz

Jochen

nette Geschichte. Welches Linux

Dominik

nehme ich denn da? Fedora, Ubuntu,

Jochen

Debian? Spielt im Grunde

Jochen

keine große Rolle, würde ich jetzt mal so

Jochen

sagen.

Jochen

Vielleicht gibt es kein System,

Dominik

das besonders gut Python unterstützt oder so?

Jochen

Nee, das System Python kann man

Jochen

in keinem von den Fällen verwenden.

Jochen

Ist egal, muss man eh immer neu installieren.

Jochen

oder selber installieren.

Jochen

Hat Fedora jetzt nicht drei

Jochen

standardmäßig alles schon drin? Ja, trotzdem

Jochen

nee. Wie war das? Barry

Jochen

Warsaw hat das mal auch auf Twitter geschrieben,

Jochen

so, first rule of Python is you don't use

Jochen

system, don't use system Python.

Jochen

Du musst ja immer dein eigenes Python installieren,

Jochen

das ist kein Spaß.

Jochen

Ja,

Jochen

also genau, also insofern

Jochen

würde ich sagen, also der einzige Unterschied, den ich

Jochen

noch sehen würde, der relevant ist, ist einmal

Jochen

welches Paketmanagement-System einem

Jochen

irgendwie besser oder schlechter gefällt

Jochen

und ob man SystemD mag

Jochen

oder nicht, weil

Jochen

genau, wenn man das mag, dann kann man das ja benutzen

Jochen

und da gibt es halt Unterschiede, je nachdem, welche

Jochen

Distribution man verwendet.

Dominik

SystemD nutzt dann sowas wie LoggingUp oder sowas, das mag man

Jochen

vielleicht nicht, oder? Ja, aber auch vor allen Dingen

Jochen

sowas wie, wie sorgt man eigentlich dafür, dass

Jochen

der Kram, den man laufen haben möchte,

Jochen

eigentlich läuft und am Laufen bleibt und so.

Jochen

Das

Jochen

kann man über SystemD auch machen.

Jochen

Man kann auch irgendwas anderes nehmen.

Jochen

Ich nehme öfter

Jochen

Super-Vice-D,

Jochen

aber es ist auch, im Grunde ist es

Jochen

vorher Init-was?

Jochen

F-Init-System-5?

Jochen

Ich weiß nicht genau,

Jochen

Init-Files, es gibt da auch

Jochen

andere Konzepte, wie man, ja, also

Jochen

System-D hat schon nette Konzepte,

Jochen

aber es ist halt auch, es hat dann so manchmal so

Jochen

Vielleicht hat da irgendwie eine ganz

Dominik

spannende Folge dazu noch mal

Dominik

gehört, irgendwann

Dominik

die fahren irgendeinem Chaos-Radio-Express mit einem

Dominik

von den Developern da, das war schon ein bisschen

Dominik

ja, äh, na, wie heißt

Dominik

er noch, äh

Jochen

namensgerecht, keine Ahnung, ja, genau

Jochen

äh, ja

Dominik

okay, also völlig egal, welches System

Dominik

also ich baue mir dann Fedora und Ubuntu drauf, zum Beispiel

Dominik

weil ich das so ein bisschen schon kenne oder so

Dominik

dann irgendwie, dann mit den Repos

Dominik

schon ein bisschen weiß, wo ich meine Pakete finde und dann

Dominik

ist der To oder warum sollte ich

Dominik

das tun, warum nicht direkt einen eigenen Server

Jochen

also, ja genau, weil halt auch da dir das

Jochen

natürlich abgenommen wird, dass du dafür sorgen musst

Jochen

äh, dass das Ding ordentlich läuft

Jochen

oder so, ähm

Jochen

Ja, du musst dich um viele Dinge nicht kümmern,

Jochen

die du sonst tun müsstest.

Jochen

Die da wären?

Jochen

Ja, alles, was mit Netzwerk zu tun hat.

Jochen

Stecker reinstecken, Strom.

Jochen

Genau, dass das Ding immer oben bleibt.

Jochen

Betriebssystem-Updates, weiß ich gar nicht,

Jochen

das muss man wahrscheinlich selber machen.

Jochen

Ja, das finde ich genau.

Dominik

Managed-Server, glaube ich, heißt das oder so was.

Jochen

Ja, das will man alles, wahrscheinlich eher nicht.

Jochen

Aber genau.

Jochen

Ja, aber man muss sich,

Jochen

also schon um wesentliche Teile der Infrastruktur

Jochen

jetzt bei so einer Geschichte nicht kümmern.

Jochen

Also im Grunde ist halt der Container wie

Jochen

der andere und das funktioniert einfach so.

Jochen

Also das ist schon

Jochen

auch nett, aber man zahlt natürlich auch

Jochen

einen Preis, das ist halt schon teurer, als wenn man

Jochen

jetzt, und es gibt noch mal so super

Jochen

billige

Jochen

Geschichten, auch

Jochen

immer, also ich glaube die kleinsten

Jochen

Container, wenn die durchlaufen sollen, die kosten

Jochen

dann irgendwie

Jochen

ein paar Zehn Euro im Monat oder so was,

Jochen

ich weiß es nicht genau, aber

Jochen

es gibt auch so Dinge wie bei Amazon Light Sale

Jochen

heißt das glaube ich irgendwie, wo man dann für

Jochen

wenige Euro im Monat so ein Ding

Jochen

Container kriegt und bei

Jochen

DigitalOcean gibt es das auch

Jochen

und selbst bei sowas wie

Jochen

Hustler wie Hetzner oder so kriegt man

Jochen

irgendwie einen Container, der

Jochen

durchläuft für

Jochen

2,50 Euro oder 3 Euro oder so

Jochen

wenig Geld im Monat und hat dann

Jochen

ein richtiges Linux mit, wo man sich

Jochen

als Root einloggen kann, ist schon natürlich ganz nett.

Jochen

Und das will man wahrscheinlich sogar auch tun.

Jochen

Ja, hängt dann davon ab, was man dann

Jochen

Wenn man jetzt eine fette Datenbank braucht, dann geht das halt wahrscheinlich

Jochen

nicht mehr, dann braucht man halt Hauptspeicher

Jochen

und den hat man da nicht. Aber

Jochen

ja, so eine Testinstallation...

Dominik

Wann braucht man denn eine fette Datenbank?

Dominik

Also so jetzt als Datenmensch

Dominik

wirst du ja wissen, ab wie viel Traffic man da so irgendwie...

Jochen

Nee, das hat mit dem Traffic gar nicht so viel zu tun, sondern

Jochen

eher damit zu tun, wie viele Daten es sind.

Jochen

Weil du willst, dass dein

Jochen

Working Set im Hauptspeicher ist.

Jochen

Und das heißt, wenn du halt irgendwie ein paar Gigabyte

Jochen

Daten hast, dann willst du halt

Jochen

ein paar Gigabyte Hauptspeicher haben, mindestens mal.

Jochen

Wäre so viel zu viel oder so.

Dominik

Also ungefähr doppelt so groß wie mein Dataset sollte

Dominik

der Hauptspeicher dann sein. Ja, also

Jochen

später geht das dann irgendwann nicht mehr, aber

Jochen

ja, sollte schon

Jochen

da reinpassen.

Jochen

Und das,

Jochen

die haben alle wenig Hauptspeicher natürlich, weil

Jochen

die teilen sich, die sind halt auf großen Maschinen

Jochen

meistens, aber es sind viele kleine Container und

Jochen

dann muss es halt irgendwie, wenn die alle vier Hauptspeicher

Jochen

verbrauchen, ist halt natürlich irgendwie der Hauptspeicher weg.

Jochen

Wie kompliziert

Dominik

wäre es denn jetzt da, weiß nicht, wenn man jetzt

Dominik

mehrere kleine Services auf so einem Ding

Dominik

laufen lässt, einen von denen umzuziehen?

Dominik

auf eine größere Maschine.

Jochen

Oh, das ist, ja, da bist du

Jochen

dann schon, das ist alles nicht mehr so einfach.

Jochen

Ich würde auch das nicht so machen, dass ich

Jochen

die Sachen da direkt laufen lasse.

Jochen

Kann man auch tun, aber

Jochen

ich würde eher sowas wie Docker nehmen.

Jochen

Tatsächlich.

Dominik

Also das heißt, du würdest dann auf einen dieser

Dominik

Cloud-Dinger einen Docker

Dominik

bauen, installieren oder

Jochen

Docker installieren, Docker-Demon starten

Jochen

und dann halt

Jochen

mit so einem Docker-Compose-File das

Jochen

komplette System hochziehen.

Jochen

sodass dann halt für jeden Service, den man

Jochen

benutzen möchte im System,

Jochen

das man da hochfährt, dass man

Jochen

dafür einen Container hat, also einen Container für die Datenbank,

Jochen

man hat einen Container für Redis.

Dominik

Und man teilt sich dann genau die Dinge auf, also kann man

Dominik

Docker so einstellen, dass er für alle verschiedenen

Dominik

Systeme unterschiedliche Hardware nimmt?

Jochen

Ja, das kannst du natürlich auch tun,

Jochen

aber das würde ich

Jochen

am Anfang auch nicht machen.

Jochen

Und dann geht es eher so in den Bereich

Jochen

von Kubernetes und diesen

Jochen

Geschichten, das willst du nicht.

Jochen

Also das ist auch gar kein

Jochen

Problem, also

Jochen

das musst du nicht machen.

Dominik

Also Kubernetes ist eine Krake an Docker-Containern.

Dominik

Ja, das ist so

Jochen

ein bisschen, das Problem mit Docker ist halt,

Jochen

dass das zu betreiben ist

Jochen

halt fies, Netzwerk ist fies,

Jochen

das ist alles, das entwickelt sich

Jochen

auch alles noch, das ist alles nicht so richtig

Jochen

gefestigt,

Jochen

das ist nicht ganz so schlimm wie

Jochen

jetzt bei den JavaScript-Frontends

Jochen

bei React oder so,

Jochen

aber es ist schon,

Jochen

es ist nicht so, also man kann

Jochen

sich da nicht so gut drauf verlassen und vor allen Dingen fehlt die Unterstützung

Jochen

für viele Sachen und dann gibt es da eben

Jochen

dann, wenn man

Jochen

das im Großen, wenn man eine komplette Cloud irgendwo

Jochen

betreiben möchte oder so, dann macht man da

Jochen

andere Geschichten, Management-Geschichten für.

Jochen

Da wäre jetzt Kubernetes ein Beispiel für. Aber

Jochen

die Frage ist, ob man das braucht. Und wenn du das

Jochen

selber irgendwie nur ein System, das brauchst du

Jochen

nicht. Also würde ich jetzt mal einfach,

Jochen

würde ich jetzt einfach mal so sagen, brauchst du nicht.

Dominik

Ja, also ich habe eine bestimmte Voraussetzung tatsächlich,

Dominik

also ich möchte so verschiedene Webseiten

Dominik

betreiben irgendwie, ne, irgendwie private Sachen.

Dominik

Dann hatten wir mal über Indie-Web besprochen,

Dominik

dann irgendwie so die beiden Services da drauf

Dominik

und dann vielleicht noch irgendwie eine Firmen-Webseite

Dominik

mit einem kleinen Login und vielleicht noch für

Dominik

IoT so ein bisschen, so ein Server,

Dominik

der da irgendwie läuft und das irgendwie alles gerne parallel

Dominik

und ja. Das ist ja kein Problem.

Dominik

Wie baue ich das denn?

Dominik

Also wo fange ich denn da an? Also ich habe jetzt so einen Server

Dominik

dann Cloud am besten gemietet oder

Dominik

vielleicht doch irgendwie so einen dedizierten irgendwo

Dominik

hingestellt oder nur einen kleinen virtuellen

Jochen

genommen. Das hängt halt wieder davon ab. Also ich würde

Jochen

einfach mal, also nur um das

Jochen

halt auszuprobieren, würde ich mit so einer kleinen

Jochen

Geschichte anfangen.

Dominik

Ja, aber das ist meine Frage nach dem Umzug. Also wenn ich dann merke,

Dominik

oh, umziehen, muss ich alles normal machen?

Dominik

Nee, musst du nicht.

Jochen

Dafür hast du ja deine Domain registriert.

Jochen

Ja, aber den Server muss ich ja umziehen.

Dominik

Also die ganzen Sachen muss ich ja nochmal konfigurieren.

Jochen

Ja, aber dann nee. Dann musst du gar nichts machen.

Jochen

Wenn du Docker nimmst, hast du dieses

Jochen

Problem gelöst.

Dominik

Achso, ich baue den Container einfach neu auf

Dominik

einem anderen System. Ja, genau.

Dominik

Du sagst einfach auf dem anderen System

Jochen

docker-compose dein docker-yaml-File

Jochen

ab, fertig.

Jochen

Nicht mal das. Also gut, man würde

Jochen

das jetzt nicht von Hand ausführen, sondern man würde

Jochen

dann halt irgendwie das in SystemD anhängen oder

Jochen

in SuperViceD.

Jochen

Normalerweise die Konfiguration dafür legst du

Jochen

auch in dein Projektverzeichnis mit rein.

Jochen

Linkst das nur noch

Jochen

nach etc.superviceD.conf

Jochen

oder weiß ich wo die Config-Files

Jochen

dafür liegen. Startest das Ding einmal

Jochen

neu und dann startet er deinen kompletten Kram,

Jochen

ohne dass du noch irgendwas machst. Also wie gesagt, wenn ich

Jochen

auf einem Server das deploye, da

Jochen

muss ich einen Link ziehen.

Jochen

Ich muss etwas

Jochen

an der Caddy-Config

Jochen

ändern, das machst du, dann schreib ich neu.

Dominik

Caddy, es ist dieses Config,

Dominik

also ich muss da irgendwas rein, ist die Reihenfolge entscheidend,

Dominik

wie das da drin hängt, weil die dann nacheinander gelaufen,

Dominik

wie verteilt er die Ressourcen,

Dominik

also wie viele er hat.

Jochen

Ja, also gut, das ist nochmal ein anderes Thema.

Jochen

Caddy ist ein Loadbalancer, was?

Jochen

Wir sind zu weit, wir müssen nochmal zurück.

Jochen

Ja, okay. Ja, also es ging nur darum,

Jochen

wie kriegst du das Zeugs irgendwie

Jochen

auf einer Maschine zum Laufen

Jochen

und da würde ich

Jochen

empfehlen, heutzutage Docker zu nehmen. Man kann auch

Jochen

andere Sachen benutzen, aber...

Jochen

Vagrant. Ja, man könnte auch Vagrant

Jochen

benutzen, aber das braucht auch mehr Ressourcen.

Jochen

Also das würde ich jetzt zum Beispiel, wenn du

Jochen

irgendwie so in dem Container, vor allen Dingen

Jochen

Container ist ja, also es ist natürlich auch irgendwie

Jochen

performancetechnisch sehr fies, also in dem Container

Jochen

nochmal Container-Geschichte zu starten, ist vielleicht

Jochen

auch nicht so die schlauste Idee

Jochen

performancetechnisch, aber es ist halt zum Entwickeln.

Jochen

Es ist halt so, würde ich

Jochen

sagen, state of the art eigentlich.

Jochen

Oder es ist halt am wenigsten

Jochen

schmerzhaft von allem, was es so

Jochen

momentan gibt. Vagrant kann man

Jochen

lokal ganz gut verwenden oder halt, wenn man einen dicken

Jochen

Server hat, aber du kannst

Jochen

es nicht gut verwenden in einem kleinen Container.

Jochen

Weil das

Jochen

braucht halt, das fährt halt wirklich ein komplettes

Jochen

Linux hoch pro.

Jochen

Und du kannst natürlich da drin alles wieder

Jochen

betreiben, du musst dann nicht das in einzelne

Jochen

Container aufteilen.

Jochen

Ja, aber das ist,

Jochen

wenn du wenig Hauptspeicher hast, ist das vielleicht

Jochen

einfach keine gute Idee.

Jochen

Na, und Docker passt da eigentlich

Jochen

ganz gut zu, da hast du dann zwar auch

Jochen

Container in Container, aber es ist

Jochen

nicht so, du fährst nicht jedes Mal ein komplettes

Jochen

Betriebssystem hoch und so, eine komplette Maschine.

Jochen

Ja,

Jochen

du kannst natürlich das auch irgendwie

Jochen

komplett einfach in diesem Container

Jochen

alle deine Services, die du so haben willst,

Jochen

starten, ja, du kannst halt zum Beispiel

Jochen

kann man da irgendwie so, auch das benutzt man

Jochen

eher für größere Infrastrukturen,

Jochen

um da halt ein komplettes

Jochen

System auszurollen, ja, das ist eigentlich so

Jochen

Automatisierung

Jochen

deiner

Jochen

Automatisierung deiner

Jochen

Infrastruktur hochziehend,

Jochen

so was wie Ansible oder so,

Jochen

es gibt auch noch diverse andere, es gibt Holstack, es gibt

Jochen

irgendwie Puppet Chef,

Jochen

aber Ansible wäre jetzt auch Python

Jochen

und damit

Jochen

verwaltest du

Jochen

quasi ein ganzes Inventory an Rechnern

Jochen

irgendwie und sagst dann,

Jochen

roll mein System aus und dann, das Ding braucht auch nur

Jochen

SSH, dann connectet es sich auf all die Systeme

Jochen

per SSH und

Jochen

macht dann magische Dinge, sodass dann da

Jochen

wie die Services laufen, die da laufen sollen

Jochen

und so. Irgendwie sowas braucht man auch,

Jochen

wenn man einen Vagrant verwenden wollte, weil du musst ja die Services

Jochen

dann irgendwie in deinem Vagrant, in deiner

Jochen

virtuellen Maschine halt auch zum Laufen kriegen. Das heißt, du musst

Jochen

da irgendwie die entsprechenden Pakete installieren,

Jochen

musst du die Services hochfahren, du musst die Config-Files

Jochen

irgendwie mit Templates so

Jochen

irgendwie, also

Jochen

du hast Templates für deine Config-Files, dann musst du die so mit den

Jochen

echten IP-Adressen und so ersetzen, dass dann die

Jochen

richtigen Config-Files da sind, dann muss das Ganze hochgefahren

Jochen

werden und so weiter und so weiter.

Jochen

Und für so ein komplettes System

Jochen

irgendwie Ansible

Jochen

Rollen, nennt man das, zu schreiben. Das geht

Jochen

alles, habe ich auch schon gemacht und so.

Jochen

Aber das ist eine Menge Arbeit.

Jochen

Also das ist nicht so ohne. Und das dann

Jochen

auszurollen dauert auch ziemlich lange.

Jochen

Das ist halt auch

Jochen

so ein Nachteil gegenüber Docker. Also das ist halt

Jochen

irgendwie so ein komplettes

Jochen

Ding mit Vagrant hochzuziehen. Kann sein,

Jochen

dass das selbst, wenn du einen schnellen Rechner hast, lokal,

Jochen

kann sein, dass das 20 Minuten dauert, wenn du so viele

Jochen

Maschinen hochfährst oder so. Kannst natürlich

Jochen

auch alles in einer Maschine haben, aber dann hast du wieder das Problem, du kannst

Jochen

es nicht mehr aufteilen.

Jochen

Wenn du es jetzt auf andere Maschinen aufteilen wolltest,

Jochen

Und das ist halt einfach oft zu langsam.

Jochen

Wenn du zum Beispiel irgendwas,

Jochen

du versuchst, irgendeine Funktion hinzukriegen,

Jochen

musst dafür irgendeine Bibliothek installieren,

Jochen

die das halt kann,

Jochen

ein Python-Wrapper drumherum,

Jochen

der da irgendwas mitmacht.

Jochen

Und du willst halt so schnell iterieren können.

Jochen

Du willst halt schnell irgendwas ausprobieren.

Jochen

Ah, geht nicht, nochmal.

Jochen

Und bei Docker dauert so ein Build für,

Jochen

weiß ich jetzt nicht,

Jochen

je nachdem wie viel CPU-Power

Jochen

und Platten und Netz man hat.

Jochen

Aber so bei mir dauert das, ich habe so ein Standard-Django-Projekt, hat bei mir irgendwie die Datenbank, Redis, irgendwie Applikationszauber-Django, vielleicht noch Celery oder so, also fünf, sechs Container, irgendwie sowas, die alle neu zu bauen, wenn man jetzt zum Beispiel eine Abhängigkeit im Betriebssystem, also sagen wir mal, wenn man jetzt irgendwie auf Betriebssystem-Level irgendeine Bibliothek braucht oder so, die vorher nicht da war, dann muss man die Container neu bauen.

Jochen

Und das dauert bei mir so

Jochen

zwei bis drei Minuten

Jochen

lokal.

Jochen

Ja, je nach Größe der Anwendung natürlich.

Jochen

Ja, je nach Größe der Anwendung, aber das ist

Jochen

die Anwendung

Jochen

selber, die Genre-Anwendung hat damit gar nichts mehr zu tun.

Jochen

Der Hauptteil, der da dauert, ist halt

Jochen

tatsächlich

Jochen

die Installation

Jochen

und das Bauen der Container.

Jochen

Und dann halt hinterher müssen nochmal die ganzen

Jochen

PIP-Abhängigkeiten per PIP

Jochen

installiert werden. Das dauert auch.

Jochen

Ja, aber das ist halt

Jochen

viel, viel schneller, als wenn man

Jochen

das jetzt bei Ansible und Vagrant machen

Jochen

wollte. Und

Jochen

das Problem ist halt, drei Minuten ist auch schon lang,

Jochen

aber das macht

Jochen

einem so gerade vielleicht den Flow noch

Jochen

nicht kaputt. Aber wenn man jetzt irgendwie da

Jochen

dann jedes Mal 20 Minuten warten muss, dann

Jochen

geht man Kaffee trinken und macht irgendwas anderes.

Jochen

Und man muss aber möglicherweise

Jochen

zehnmal was anderes ausprobieren,

Jochen

weil oft bleibt einem nichts übrig, als

Jochen

Sachen auszuprobieren, ob es jetzt so geht.

Jochen

Der Python-Rapper funktioniert nicht, muss einen anderen nehmen,

Jochen

mit dir nochmal aus.

Jochen

Wenn du da zehnmal irgendwas ausprobieren möchtest

Jochen

und du hast immer eine

Jochen

20 Minuten Latenz dazwischen ist,

Jochen

das macht einen langsam.

Dominik

Du hast gerade gesagt, von dir gehört

Dominik

noch eine Redis, das ist ein Cache,

Dominik

da man die Sachen von der Datenbank direkt verfügbar hat.

Dominik

Ja, einfach nur

Dominik

zum Cachen von beliebigen Dingen.

Jochen

Nicht nur Datenbank, also es gibt ja auch vielleicht

Jochen

andere Sachen, die länger laufen oder wo man halt

Jochen

Statische Files oder sowas.

Jochen

Nee, nee, nee, das machen wir nicht.

Jochen

Nein, nein, okay.

Jochen

Ne, also es gibt noch, wenn du jetzt

Jochen

statische Files cachen möchtest, das würde man

Jochen

auf der anderen Seite machen. Also Redis ist etwas,

Jochen

die Applikation, also

Jochen

wenn ich jetzt zum Beispiel in Django

Jochen

eine Funktion habe, die irgendwas lange

Jochen

berechnet

Jochen

oder so, dann ist fertig ist, dann

Jochen

schreibe ich darüber irgendwie

Jochen

CacheProperty oder so zum Beispiel in Django

Jochen

um Django zu sagen, cache das hier

Jochen

mal bitte, weil ich will das nicht

Jochen

jedes Mal, wenn dieses

Jochen

Property

Jochen

jemand, wenn jemand darauf zugreift,

Jochen

möchte ich nicht, dass es jedes Mal neu berechnet wird.

Jochen

Es soll nur einmal berechnet werden.

Jochen

und dann im Cache landen. Und dann verwende ich diesen

Jochen

Dekorator und dann landet

Jochen

das im Redis. Also wenn ich jetzt Redis

Jochen

konfiguriert habe, als das ist der Cache

Jochen

für meine Django-Applikation.

Jochen

Für sowas ist es gut. Man kann Redis auch noch

Jochen

für diverse andere Geschichten verwenden.

Jochen

Und

Jochen

wenn ich jetzt sozusagen

Jochen

die statischen Files cachen wollte

Jochen

in Memory, das kann auch durchaus Sinn machen, aber das

Jochen

würde ich an einer anderen Stelle machen. Und zwar

Jochen

vorne dran, vor dem Django.

Jochen

Vor dem Applikationsfang.

Jochen

Da würde ich

Jochen

einen Varnish nehmen oder so.

Jochen

Das ist so ein In-Memory-Cache,

Jochen

den man

Jochen

davor hängt und

Jochen

der würde halt

Jochen

sozusagen alles, was so an statischen Files geht

Jochen

oder so, die da durchgehen, halt

Jochen

In-Memory-Cachen.

Jochen

Oder überhaupt alles, was an statischen Assets drin ist

Jochen

oder auch andere Sachen.

Jochen

Überhaupt alle

Jochen

Dinge, die identifizierbar

Jochen

sind als cachebar über die Cache-Header.

Jochen

Und das wäre dann

Jochen

viel, viel schneller. Also das macht man

Jochen

dann an der Stelle.

Jochen

Ist jetzt aber in meinen Projekten meistens gar nicht mit drin,

Jochen

weil

Jochen

brauche ich eigentlich meistens nicht, weil ich

Jochen

habe nicht so viel Traffic. Wenn ich jetzt irgendwo viel Traffic

Jochen

hätte, ja, dann macht das

Jochen

wahrscheinlich durchaus Sinn, sowas zu verwenden.

Jochen

Aber

Jochen

ansonsten werden die statischen Assets

Jochen

halt ausgeliefert entweder von

Jochen

in meinem Fall meistens

Jochen

vom Caddy.

Jochen

Das ist der, ja,

Jochen

ich mache diesen Stack nochmal komplett durch.

Jochen

Also das, was davor ist, und das ist auch etwas, was

Jochen

leider nicht in dem

Jochen

Docker-Geschichten selber

Jochen

mit, also sagen wir mal so, wenn man jetzt Cookie-Cutter

Jochen

verwendet, um ein Django-Projekt

Jochen

zu erzeugen, dann ist der Caddy schon

Jochen

mit drin, aber

Jochen

man kann das oft nicht verwenden,

Jochen

wenn man das jetzt auf irgendeine Maschine da draußen

Jochen

deployt oder in einen Container,

Jochen

auf den man sich per Route einloggt,

Jochen

weil, wenn man da jetzt zum Beispiel mehrere Domains

Jochen

hat,

Jochen

die man

Jochen

da ausliefern will,

Jochen

dann muss der Caddy

Jochen

halt unabhängig von den

Jochen

einzelnen Systemen sein, sonst geht das halt nicht.

Jochen

Und was macht der Caddy denn jetzt?

Dominik

Im Celery hattest du noch eventuell, musst du auch noch mal kurz.

Jochen

Ja, also Caddy ist

Jochen

ein grob geschriebener

Jochen

Web-Server,

Jochen

der

Jochen

besonders schön integriert ist mit halt

Jochen

Let's Encrypt, sodass halt HTTPS,

Jochen

also SLL, TLS kann

Jochen

halt ohne, dass man da irgendwie viel konfigurieren muss,

Jochen

ohne dass man irgendwie Startboard selber

Jochen

irgendwie verändern muss.

Jochen

es ist so,

Jochen

ja, HTTPS

Jochen

funktioniert einfach magisch und man muss sich nicht mehr

Jochen

kümmern. Das ist halt so der Effekt.

Jochen

Was ja ganz nett ist.

Jochen

Und

Jochen

der ist auch sonst relativ

Jochen

schnell. Der ist nicht ganz so schnell wie Nginx oder so.

Jochen

Aber ich meine, ob das Ding jetzt,

Jochen

weiß ich nicht, 10.000 Requests pro Sekunde kann oder

Jochen

nur 5.000, macht für die allermeisten Leute überhaupt keinen

Jochen

Unterschied, weil sie haben nicht mal

Jochen

ein Request pro Sekunde da. Ja, ist egal.

Jochen

3, 3, 4, ja.

Jochen

Ja, aber selbst bei 100 ist es völlig wurscht.

Jochen

Und, ähm, ja,

Jochen

und dass sein Google geschrieben ist, macht vielleicht das Ganze auch noch

Jochen

ein bisschen vertrauenswürdiger, als wenn ich meine Nginx

Jochen

C und so, hm,

Jochen

wer weiß.

Jochen

Aber, naja, eigentlich ist es wurscht.

Jochen

Also was für mich den Ausschlag gibt, den zu verwenden, ist halt

Jochen

die schöne Let's Encrypt-Integration.

Jochen

Und, ähm,

Jochen

ja, der ist sozusagen vor den,

Jochen

vor Django davor, halt eben um

Jochen

sowas wie Statisch Falls auszuliefern, weil das kann halt

Jochen

Django nicht so gut selber. Wobei, muss man

Jochen

auch einschränken, sagen, äh,

Jochen

Mit White Noise ist das vielleicht nicht mehr so ganz aktuell, aber...

Jochen

Was ist White Noise?

Jochen

Oh Gott.

Jochen

Das ist ein, ja, ich weiß nicht, innerhalb von Django kann man das als Party-App installieren

Jochen

und das liefert dann Files, also wenn man normalerweise einfach so ein File ausliefern würde in Django,

Jochen

dann zieht man das halt in den Hauptspeicher, also von der Platte in den Hauptspeicher

Jochen

und dann von dem Hauptspeicher schickt man es

Jochen

wieder durch

Jochen

den Kernel-Space

Jochen

irgendwie wieder raus über die Netzwerkkarte

Jochen

und da wird

Jochen

viele Daten werden da kopiert und

Jochen

das ist alles scheußlich und man blockiert

Jochen

einen

Jochen

Worker-Prozess. Hängt auch wieder davon ab,

Jochen

welchen Applikations-Server verwendet

Jochen

Unicorn,

Jochen

Micro-Whisky oder My-Whisky oder

Jochen

WSGI oder so, also das ist alles

Jochen

der gleiche, weil es nur nicht wieder ausgesprochen wird.

Jochen

Man muss ja

Jochen

irgendeinen Applikations-Server

Jochen

verwenden, der sozusagen dieses

Jochen

WSGI-Protokoll spricht

Jochen

mit der Applikation.

Jochen

Und

Jochen

naja,

Jochen

also wenn man

Jochen

das File tatsächlich einfach so selbst ausliefert,

Jochen

dann ist das extrem langsam

Jochen

und dann ist halt bei wenigen Files

Jochen

schon direkt Schluss.

Jochen

Und das ist natürlich etwas, was man

Jochen

nicht haben will.

Jochen

Und wenn der Caddy

Jochen

oder auch ein Nginx

Jochen

kann halt problemlos viele

Jochen

Files irgendwie ausliefern

Jochen

und macht das halt nicht

Jochen

so, dass er erst die Files in den Hauptspeicher kopiert,

Jochen

dann durch den User, also vom

Jochen

Kernel zu den User-Files und dann wieder zurück schiebt,

Jochen

um das auszuliefern, sondern der

Jochen

verwendet halt einen Kernel

Jochen

und ein syscall

Jochen

send-File, um die Files halt raus zu

Jochen

sagt halt diesem Kernel

Jochen

nur irgendwie hier, dieses File,

Jochen

diese Verbindung bitte sehr, liefere aus.

Jochen

Sodass das halt

Jochen

ja, viel, viel schneller ist.

Jochen

Also der Kernel liefert im Grunde mehr oder weniger die Files aus

Jochen

und kann da

Jochen

irgendwelche Tricks machen. Teilweise werden die

Jochen

Sachen nicht mehr durch den Hauptspeicher, sondern

Jochen

gehen direkt per Serial Copy TCP

Jochen

irgendwie in den Netzwerkwaffer der

Jochen

Karte oder so von den Platten aus und so.

Jochen

Also da gibt es crazy

Jochen

Shit-Optimierungskrams,

Jochen

der da gemacht wird. Bin ich jetzt auch nicht mehr so auf der

Jochen

Höhe der Zeit, was da momentan aktuell ist, aber es geht

Jochen

irgendwie eine Menge.

Jochen

Und White Noise verwendet

Jochen

auch Sendfile. Insofern ist das da nicht mehr so

Jochen

schlimm.

Jochen

Aber eigentlich

Jochen

will man jetzt auch nicht große Mengen darüber ausliefern,

Jochen

weil der Request ja dann immer noch aufschlägt

Jochen

im Django.

Jochen

Oder jeder, der Request nach einem

Jochen

File, und das kann halt viel sein. Also wenn man viele kleine

Jochen

Bilder hat auf einer Webseite zum Beispiel,

Jochen

wenn man eine Liste von irgendwelchen

Jochen

Dingen, wo halt immer Bilder dabei sind, dann

Jochen

ist halt jedes Bild, macht halt ein Request.

Jochen

Und

Jochen

in moderner Browser machen die ganzen Requests ja auch ein Parallel.

Jochen

Das heißt, die prügeln halt dann auf

Jochen

deine Applikations-Server ein und das ist halt

Jochen

Und das finde ich nicht so gut.

Jochen

Und da, ich mache es nicht so, aber was wohl gut ist,

Jochen

ist halt, man verwendet White Noise und dann da vorne irgendwie Varnish oder sowas

Jochen

oder halt ein CDN, sodass halt beim ersten Mal werden die Sachen dann tatsächlich von White Noise ausgeliefert

Jochen

und danach sind sie halt gecached irgendwo im Content Delivery Network oder halt Varnish oder so.

Jochen

Und dann ist es schnell.

Jochen

Was ich mache,

Jochen

ich verwende

Jochen

meistens den Webserver

Jochen

in Caddy oder Nginx vorne dran zum

Jochen

Aussehen meiner statischen Assets.

Jochen

Da gibt es halt einen Unterschied in Django.

Jochen

Statische Geschichten, das ist sowas wie JavaScript,

Jochen

CSS,

Jochen

Fav-Icon,

Jochen

dieser ganze Kram halt sozusagen, der

Jochen

ja,

Jochen

zum Projekt halt dazugehört, aber jetzt sich

Jochen

im Grunde nicht ändert.

Dominik

Das Firmenlogo, was du immer schon eingebaut hast.

Jochen

Genau, also wenn man, die Sachen werden

Jochen

dann auch generiert, diese High-Namen

Jochen

und dann sobald man

Jochen

da was

Jochen

dran ändert und dann noch Collect Static aufruft,

Jochen

um das halt alles in ein Verzeichnis zu kopieren, das dann halt

Jochen

von einem Webserver ausgeliefert werden kann, dann kriegen die

Jochen

halt unike Namen, sodass das halt

Jochen

man auch sagen kann, die werden für immer gecached, weil

Jochen

wenn es was Neues gibt, dann wird der eh einen anderen Namen verwenden.

Jochen

Ja,

Jochen

das ist halt, dieses

Jochen

Headlink der Static-Files ist halt ein bisschen anders, als

Jochen

wenn jetzt User Bilder hochladen oder so.

Jochen

Dann ist das Media-Root in Django

Jochen

und es wird halt so ein bisschen anders

Jochen

gehandelt und statische Files

Jochen

werden ausgeliefert vom

Jochen

Caddy und

Jochen

alles, was User

Jochen

an Content hochladen, landet

Jochen

in einem CDN, also landet in

Jochen

S3, in einem Bucket

Jochen

und der wiederum wird dann

Jochen

ausgeliefert über, ich glaube, das ist

Jochen

CloudFront, das ist

Jochen

auch das CDN von

Jochen

Amazon, sodass

Jochen

ich halt auch damit keinen Stress mehr habe,

Jochen

sondern das

Jochen

ja, dann

Jochen

das ist dann halt auch schnell.

Jochen

Ist halt ein bisschen,

Jochen

ja, muss man vielleicht gar nicht machen,

Jochen

weiß ich jetzt gar nicht so genau.

Jochen

Aber das ist halt auch eine Lösung.

Jochen

Das ist natürlich auch eine, ja genau, das ist dann auch

Jochen

quasi beliebig.

Jochen

Ja, Traffic

Jochen

wird halt irgendwann teuer.

Jochen

Ja, da muss man sich...

Jochen

Ja, aber man muss halt dann pro,

Jochen

ja, weiß ich nicht,

Jochen

weiß ich gar nicht, pro Gigabyte

Jochen

oder weiß ich nicht, irgendwann bezahlt man halt pro

Jochen

irgendwas. Man hat irgendwie 100 Gigabyte

Jochen

frei oder so, dann fängt man irgendwann an zu bezahlen.

Jochen

Zwei Euro pro Request.

Jochen

Ist nicht ganz so schlimm, aber es ist

Jochen

ja, und wenn man das selber macht

Jochen

mit White Noise und so, kann man

Jochen

wirklicherweise sich da auch den Traffic sparen, was

Jochen

auch schnell ist.

Jochen

Wenn man CDN vorne ran findet, auch nicht.

Jochen

Wie auch immer, also genau.

Jochen

Jetzt haben wir auf jeden Fall den Dango

Dominik

Applikations-Server, da hast du gesagt, Junicorn, irgendwas laufen.

Jochen

Junicorn, ja, also ich würde sagen, wenn man

Jochen

eben nicht mehrere Seiten

Jochen

hostet, dann

Jochen

sondern, dass er so ein eigenes Projekt

Jochen

hat, was irgendwie und der

Jochen

Applikationsserver nur das für eine

Jochen

Geschichte macht, für eine Domain oder so,

Jochen

dann ist GeoNikon, denke ich, die bessere Wahl.

Jochen

Ansonsten, wenn es

Jochen

komplizierter ist, dann, gut, muss man

Jochen

vielleicht dieses

Jochen

WSGI-Ding nehmen,

Jochen

das hat

Jochen

einen Haufen

Jochen

Einstellungen, die ja darauf optimiert sind, dass man,

Jochen

wenn man HOSA ist selber,

Jochen

kann man halt auch eine Menge andere Dinge

Jochen

noch einstellen, ist aber komplizierter,

Jochen

Daher würde ich das jetzt nicht direkt empfehlen.

Jochen

Auch wenn man Cookie-Cutter nimmt, ist Unicorn dabei.

Jochen

Ich würde sowieso empfehlen, das Cookie-Cutter-Django-Template

Jochen

zu verwenden, weil das macht eigentlich an der Stelle

Jochen

schon viel richtig.

Jochen

Ja, da

Jochen

muss man sich selber

Dominik

um diese... Also Cookie-Cutter ist was, das deine

Dominik

Projekte automatisch vorkonfiguriert,

Dominik

deployed oder voranstellt.

Jochen

Nee, das erzeugt das Projekt.

Jochen

Es ist ein Projekt-Template

Jochen

und es fragt einen, wenn man

Jochen

es ausführt, am Anfang

Jochen

so ein paar Sachen und da antwortet man

Jochen

halt so zum Beispiel, wie das Projekt heißt oder

Jochen

keine Ahnung, ob man jetzt Celery verwenden möchte oder nicht

Jochen

oder so oder welche Datenbank. Celery hast du

Jochen

jetzt auch noch nicht. Genau, das ist auch

Dominik

Arbeiten, Bienen oder

Jochen

Celery, genau, man hat oft

Jochen

die Geschichte, dass man

Jochen

nicht, dass man langlaufende

Jochen

Jobs hat, die

Jochen

ausgelöst werden von einem

Jochen

Web-Request und man möchte jetzt den User am Ende

Jochen

aber nicht warten lassen. Also sowas

Jochen

wie, keine Ahnung,

Jochen

ja,

Jochen

User lädt ein Video hoch und man muss das jetzt in alle

Jochen

Formate rendern,

Jochen

die halt so gebraucht werden für unterschiedliche,

Jochen

fürs iPhone, für Android.

Jochen

Ja, da nimmt man dann

Jochen

halt auch irgendwie anderen Codec oder so

Jochen

und in unterschiedliche Auflösungen,

Jochen

je nachdem, wo man das irgendwie anzeigen will.

Jochen

Da möchte man nicht, und diese Renderjobs

Jochen

dauern halt, je nachdem, wie lang das Video ist, sehr, sehr

Jochen

lang. Jetzt lädt hier jemand ein Video,

Jochen

das eine Stunde lang ist, hoch. Dann möchte

Jochen

er nicht, dass der Request, wenn das im Request

Jochen

selber lauft, dass es nochmal zwei Stunden dauert,

Jochen

das wäre irgendwie komisch, sondern

Jochen

dann nimmt man das Video her, sagt, okay, man macht

Jochen

jetzt einen Task, man erzeugt einen Task,

Jochen

der irgendwie

Jochen

dann unabhängig vom Web-Server läuft

Jochen

und der rendert dann halt

Jochen

irgendwie das Video in die unterschiedlichen

Jochen

Formate und so

Jochen

und sagt dem User schon mal,

Jochen

alles okay, dann

Jochen

upload es durch. Für solche Sachen

Jochen

braucht man das. Video ist ein

Jochen

extremes Beispiel, es gibt sicherlich eine Menge

Jochen

Beispiele, bei denen das nicht ganz so schlimm wäre,

Jochen

aber auch schon so nervig, dass man das vielleicht nicht

Dominik

haben will. Also es hätte doch nicht einfach

Dominik

so Arbeitsbienen loszuschicken, die dann halt die einzelnen Tasks

Jochen

abarbeiten. Ja, also die Tasks selber, genau,

Jochen

da kann man sich auch suchen, welches Backend

Jochen

man verwenden möchte und Redis ist halt auch ein Backend

Jochen

sozusagen über das, damit

Jochen

Redis als Queue verwendet. Also

Jochen

es gibt, also Celery ist

Jochen

im Grunde eine Task,

Jochen

ja, es

Jochen

besteht aus

Jochen

einem Ding, was irgendwie die Worker koordiniert,

Jochen

dann eine Menge von Workern

Jochen

und halt einer Queue, in die die

Jochen

Tasks halt reinlaufen, also

Jochen

wenn man so einen Task erzeugt, dann landet

Jochen

der halt in so einer Warteschlange

Jochen

und die Worker greifen sich aus dieser Warteschlange halt

Jochen

ihre Jobs raus, sozusagen, das sind Prozesse, die

Jochen

laufen einfach irgendwie. Also wer am lautesten schreit, der wird dann

Jochen

als erstes bedient oder was? Genau, ja, das erste

Jochen

ja,

Jochen

der erste Worker nimmt sich halt irgendwie den ersten Job

Jochen

aus der Queue und rechnet dann halt,

Jochen

bis er irgendwie fertig ist, der nächste Worker nimmt sich

Jochen

den nächsten und so weiter, bis halt keine Worker mehr da sind,

Jochen

die nichts zu tun haben und dann warten die Sachen

Jochen

in der Queue halt einfach und die werden dann halt so

Jochen

mit der Zeit abgearbeitet und

Jochen

ja, dann hat das Ding auch noch so ein Webfrontend-Flower

Jochen

heißt das irgendwie mit dabei, da kann man sich angucken,

Jochen

was ist denn jetzt mal so ein Task geworden, haben die

Jochen

irgendwelche Exceptions geworfen, gibt's da

Jochen

Tracebacks, sind die alle gut durchgelaufen, wie lang

Jochen

laufen die denn so, so Basis-Statistiken,

Jochen

wie lang laufen die denn durchschnittlich,

Jochen

ja, und all solche

Jochen

Sachen, und

Jochen

also, das, wenn's funktioniert,

Jochen

ist es eigentlich ganz gut, ja, kann man

Jochen

nix sagen, ist eigentlich solide Geschichte,

Jochen

es ist aber so manchmal, also

Jochen

im Salary ist es manchmal so ein bisschen scharfkantig,

Jochen

muss man, ich hatte auch schon,

Jochen

also wenn es nicht funktioniert, ist es nicht so geil,

Jochen

muss man sagen.

Dominik

Dann geht das nicht für fast alle Dinge bei der Software.

Jochen

Ja, aber es gibt manche Sachen, bei denen passiert

Jochen

einem das nicht, dass die dann nicht funktionieren.

Jochen

Also zum Beispiel Redis ist dann so ein Stück von Software,

Jochen

das funktioniert eigentlich fast immer super.

Jochen

Es gibt selten den Fall,

Jochen

oder habe ich noch nie erlebt,

Jochen

habe ich noch nie erlebt, dass Redis irgendwie

Jochen

etwas gemacht hat

Jochen

und ich habe es nicht wieder hingekriegt.

Jochen

Ich habe es noch nicht kaputt gekriegt,

Jochen

sozusagen, oder auch Postgres ist so ein Ding,

Jochen

das kriegst du nicht kaputt.

Jochen

äh, Celery, äh,

Jochen

hingegen, da installiert

Jochen

man irgendwie, da wechselt man

Jochen

irgendwie die Python-Miner-Version

Jochen

und dann geht gar nichts mehr.

Jochen

Und, äh, alles

Jochen

kaputt, ja, also,

Jochen

und das ist, äh,

Jochen

ja, oder man wechselt die Django-Version und nichts

Jochen

geht mehr, ne, also es ist halt, äh,

Jochen

also es ist halt deutlich fragiler, es ist nicht so, dass

Jochen

man da, das, also bei Celery

Jochen

hab ich das schon häufig erlebt, dass es kaputt gegangen ist und zwar

Jochen

auch dann so kaputt gegangen ist, dass man es im Grunde

Jochen

nicht mehr fixen kann und das ist immer ärgerlich, wenn man

Jochen

dann zum Beispiel eben Python nicht upgraden

Jochen

kann oder halt auch Django nicht upgraden kann,

Jochen

weil halt ein Celery daran hindert.

Jochen

Das ist, und das ist schon öfter passiert.

Jochen

Also, ähm,

Jochen

ja.

Jochen

Wenn man's,

Jochen

man kann's halt oft nicht vermeiden,

Jochen

dann braucht man's halt und dann,

Jochen

es gibt noch diverse andere Task-Queue

Jochen

Geschichten. Celery ist halt

Jochen

die verbreitetste für Django.

Jochen

Ähm, ja.

Jochen

Äh, vielleicht lohnt es sich

Jochen

auch, die sich die anzugucken.

Jochen

Ich weiß es nicht genau, aber ja, also wenn man es nicht braucht, dann war es nicht unbedingt, also es ist nicht unbedingt eine Geschichte, die man aufgrund von reiner Freude, weil es so viel Spaß macht, das zu benutzen, verwenden sollte, weil das macht einfach nicht so wahnsinnig viel Freude.

Jochen

Und wenn man die Abhängigkeit nicht braucht, sollte man sie weglassen.

Jochen

Ja, aber oft braucht man sowas tatsächlich.

Jochen

Ja, was haben wir noch?

Dominik

Ja, ich würde jetzt nochmal so ein bisschen auf die ganz basic Sachen zurückkommen.

Dominik

wie weiß ich denn jetzt, auf welche

Dominik

Route ich jetzt meinen Nameserver zum Beispiel

Dominik

schicke, auf welches Verzeichnis ich

Dominik

den verweise oder

Dominik

ich habe jetzt verschiedene Django-Apps

Dominik

laufen oder du hast ja gesagt,

Dominik

Junicorn ist nur eine, dann habe ich sonst ein Whiskey

Dominik

und Whiskey weiß dann, wo was liegt.

Jochen

Junicorn ist eine Applikations-Server, jetzt sagen wir mal,

Jochen

wenn du jetzt Cookie-Cutter verwendet hast und so,

Jochen

dann läuft

Jochen

dein System, läuft halt

Jochen

irgendwo intern in einen

Jochen

Worker-Container und

Jochen

sozusagen kann angesprochen werden,

Jochen

aus dem Container heraus,

Jochen

oder aus der Maschine heraus, auf der du dich angelockt hast,

Jochen

auf irgendeinem Port 5000 oder sowas,

Jochen

da läuft das Ding halt. Nimmt aber nur Requests an

Jochen

von innen. Also sollte nicht von außen

Dominik

erreichbar sein. Das heißt also, ich muss aber dann

Dominik

den Port kämpfe ich natürlich an und dann, die Ports muss ich

Dominik

irgendwie auf meiner Maschine routen dann?

Dominik

Nee. Zu den Docker-Containern? Nee.

Dominik

Nein? Wie? Wo funktioniert das denn? Die sind nur lokal.

Dominik

Da.

Jochen

Kannst du lokal drauf connecten, sonst nicht.

Jochen

Und

Jochen

wie dann die Requests sozusagen aus dem Web

Jochen

da reinkommen ist, du hast halt den Caddy vorne

Jochen

dran, da gehen die Sachen per

Jochen

Report 443 kommen die rein.

Jochen

Und den Caddy muss ich konfigurieren?

Jochen

Den musst du konfigurieren, da brauchst du einen Config für,

Jochen

die ist aber relativ einfach und da steht

Jochen

mehr oder weniger nur drin,

Jochen

irgendwie, wenn es an die Domain gehen soll,

Jochen

dann alles an den Applikationsserver.

Jochen

Okay, aber das heißt, der Caddy

Dominik

ist derjenige, der ist alles verwaltet. Das heißt, in der Caddy-Konfiguration

Dominik

stelle ich das ein, Name-Server, HTML-Routing.

Dominik

Nein, nein, nein.

Dominik

Nein, HTML-Routing im Dung?

Dominik

Nein.

Jochen

Nein, da steht nur drin, auf welche Domain

Jochen

geht, also

Jochen

je nachdem, auf welche

Jochen

Domain der Request geht, auf welchen

Jochen

Applikationsserver soll das gehen.

Jochen

Insofern kann man auch sagen, das ist in gewisser Weise

Jochen

Routing, aber es ist sehr, sehr

Jochen

einig.

Dominik

Und HTML-Routing ist das selbe,

Dominik

aber das ist damit verknüpft, weil halt das

Dominik

Name-Routing...

Jochen

Es gibt noch das, es gibt etwas, was sich

Jochen

URL-Routing nennt bei Django.

Dominik

Ja, aber das ist aber innerhalb von Django.

Dominik

Das ist innerhalb von Django. Aber ich kann ja verschiedene Projekte nehmen.

Dominik

Ich könnte jetzt auch sagen, ich möchte jetzt einfach ein Verzeichnis

Dominik

serven. Weiß nicht, war www irgendwas,

Dominik

was da früher gab oder so?

Dominik

Einfach ein Verzeichnis mit einer Index, irgendwas

Dominik

noch bereitstellen.

Dominik

Das kannst du mit dem Caddy auch machen, klar. Kann ich mit dem Caddy auch sagen,

Dominik

das Verzeichnis kommt auch dann unter dem

Dominik

Namen, wie so oft,

Dominik

geroutet rein.

Dominik

Okay, das ist

Dominik

spannend. Also das sind halt verschiedene Optionen,

Dominik

die kann ich alle gleichzeitig mit dem einen Caddy bauen.

Dominik

Das heißt, das Einzige, um das zu machen, muss ich

Dominik

meinen Caddy konfigurieren. Was ist mit E-Mail, wenn ich

Dominik

jetzt irgendwie E-Mail schicken will über den Server? Auch Caddy?

Jochen

Ne, das ist wirklich nur ein Webserver.

Jochen

Das würdest du in einer Django-Applikation halt irgendwie machen

Jochen

und da kannst du es entweder selber tun,

Jochen

wenn du halt lokal einen Mail-Server laufen hast.

Dominik

Oh, nein, ich meine, wenn ich jetzt meine Domain-E-Mail,

Dominik

da gibt es sowas, wie nennt man das, C-Names oder sowas,

Dominik

wo man dann die E-Mails direkt weggeroutet werden vom Server

Dominik

auf, weiß nicht, Gmail oder sowas.

Jochen

G-Name ist eine Art von Rekord

Jochen

für DNS, wo

Jochen

dran steht, also dieser Name ist eigentlich

Jochen

nur ein Alias für den Namen.

Dominik

Ja, aber die Alias muss ich

Dominik

ja irgendwie auf meinem Server auch eintragen.

Dominik

Wie passiert das denn? Also wenn ich

Dominik

beispielsweise eine G-Suite habe, mit der

Dominik

ich meine Firmen-E-Mail-Adressen

Dominik

verwalten möchte, dann

Dominik

trotzdem die Domain auf

Dominik

meinen Server ankommt.

Dominik

Wo muss ich dann einstellen, dass dann die

Dominik

E-Mail-Adressen zur G-Suite weitergehen? Was ist das,

Jochen

was da liegt? Im Name-Server.

Jochen

Also da sagst du halt, der zuständige

Jochen

MX, das ist wieder ein anderer Rekord, MX-Rekord,

Jochen

der ist für Mail zuständig,

Jochen

der Mail-Server für meine

Jochen

Domain ist Google.

Dominik

Aber das ist dann am Mail-Server, also an meinem

Dominik

Provider, an meinem Name?

Jochen

Nein, da, wo du

Dominik

deine Domain registrierst. Ja, das mache ich an meinem Registrar, sage ich

Jochen

dann. Registrar, der hat

Jochen

eigentlich eine andere Aufgabe, das ist halt, der Name-Server

Jochen

macht das. Aber der, wo du deine

Jochen

Domain registriert hast, der betreibt wahrscheinlich den Name-Server,

Jochen

wo dann deine Domain liegt. Ja, okay.

Jochen

Ja, genau. Da machst du das.

Jochen

Und genau, dann geht

Jochen

halt alle Mail, die an deine Domain

Jochen

geschickt wird, halt

Jochen

dem Mail-Client

Jochen

beziehungsweise Mail-Server, den halt irgendjemand

Jochen

verwendet hat, macht dann

Jochen

ein MX-Lookup

Jochen

auf deine Domain, sieht halt, ah, die Mail soll

Jochen

zu Google gehen und schickt dann die Mail direkt zu Google.

Jochen

Und dann landet sie halt bei dir irgendwo

Jochen

bei Gmail oder wo auch immer.

Dominik

Und wenn ich jetzt einen File-Tab machen will,

Dominik

dann muss ich das einfach wieder über den Kettich ruten, ob irgendein

Jochen

Verzeichnis... Was ist ein File-Server?

Jochen

Oder was meinst du damit?

Dominik

Vielleicht einfach ein File, ein Verzeichnis, das ich freigebe,

Dominik

wo ich dann hoch- und runterladen kann.

Dominik

Einfach so schreibe

Dominik

und lese Zugriff. Brauche ich dafür

Dominik

sowas wie altes USFDP?

Dominik

Nee, das hängt

Jochen

halt sehr davon ab, was du da machen möchtest.

Jochen

Ich würde sagen, ja, sowas gibt es

Jochen

außerhalb der Windows-Welt eigentlich so nicht.

Jochen

Also da ist es halt irgendwie Samba

Jochen

oder ich weiß nicht, wie das Protokoll Microsoft

Jochen

intern heißt.

Jochen

Wahrscheinlich

Jochen

heißt es irgendwie anders. Keine Ahnung. Ich kenne es nur, wie man es

Jochen

jetzt Linux, wenn man Linux

Jochen

als Server betreiben will, dann heißt das irgendwie Samba ist

Jochen

dein Server. Aber das, was du betreibst, ist halt nicht am Internet.

Jochen

Also, warum?

Jochen

Viel zu gefährlich.

Jochen

Das ist, äh,

Jochen

ne. Und es macht auch so komische Sachen

Jochen

mit irgendwie Broadcast-Geschichten

Jochen

und so. Das geht alles im Internet nicht. Also,

Dominik

äh. Also, zu gefährlich ist das.

Dominik

Aber es würde gehen. Ne, geht auch nicht.

Jochen

Ich glaube, es geht gar nicht.

Dominik

Also, was war denn? FTP-Server, den hätte man

Jochen

aber einfach. FTP-Server, ja, aber FTP ist

Jochen

auch irgendwie, also. Out.

Jochen

Ja, so die, wie würde man sagen,

Jochen

die 70er haben angerufen und die 80er

Jochen

haben dann

Jochen

ihre

Jochen

Wares zurück.

Jochen

Also das ist... Das war ja damals ziemlich cool,

Dominik

da konnte man irgendwie so einen FTP-Server connecten

Dominik

und hat dann da alles rumgeschoben,

Dominik

hinterhergeschoben, was man so brauchte.

Jochen

Ja, da konnte man lustige

Jochen

Dinge machen, also das ist uralt.

Dominik

Da gab es ja irgendwann die File-Sharing-Plattform,

Dominik

Hoster, was gibt es denn heute? Also einfach dann Cloud?

Dominik

Ja, das macht man einfach

Dominik

nicht mehr, würde ich sagen.

Dominik

Es ist einfach komplett weg. Man hat das einfach sowieso

Dominik

scheiße, da ist alles zur Verfügung.

Jochen

Also, wenn du

Jochen

Sachen hoch und runterladen, das ist heute alles HTTP.

Jochen

Und auch da gab es

Jochen

dann irgendwie früher so

Jochen

Geschichten, vielleicht gibt es das auch immer noch,

Jochen

ich weiß nicht so genau, WebDAV oder so,

Jochen

wo man das dann auch

Jochen

mounten kann, dass es dann halt aussieht, als hätte man

Jochen

das lokal im Dateisystem oder so.

Jochen

Aber es ist alles

Jochen

heutzutage ist es eigentlich eher

Dominik

Also wenn ich jetzt irgendwie nicht sowas machen will

Dominik

für mich, irgendwie mit meinem kleinen Login oder sowas,

Dominik

dass ich sage, hey, ich hätte gerne 10 Dateien, die ich immer runterziehe,

Dominik

die nicht wichtig sind, wo man nicht besonders

Dominik

viel kaputt machen kann, wenn da irgendwas auseinanderfließt.

Jochen

Die Frage ist, was möchtest du machen? Was möchtest du eigentlich haben?

Dominik

Nur einfach so eine Feilablage, so eine Teilablage

Dominik

für, weiß ich nicht, 5 Fotos oder

Dominik

irgendwas. Ich meine,

Dominik

Fotos, weiß ich, gibt es ja auch andere Möglichkeiten, aber

Dominik

nur so. Du willst

Jochen

irgendwie verzeichnete Synchronen halten.

Dominik

Ja, so ein kleines Dropbox. Ja, oder so ein kleines

Dominik

Store für irgendwas, so mein virtueller USB-Stick.

Dominik

Da gibt's, also würde ich

Jochen

eher sagen, also da gibt's, als fertig

Jochen

würde mir jetzt eigentlich nur einfallen, sowas wie

Jochen

OnCloud oder UnCloud.

Jochen

Aber intern,

Jochen

was die wahrscheinlich alle machen, das machen wahrscheinlich solche

Jochen

selbst wie, oder wenn man

Jochen

jetzt Apple verwendet, würde ich sagen, dann nimmt man halt einfach iCloud.

Jochen

Also UnCloud oder iDrive.

Jochen

Wenn du selber hosten willst,

Jochen

OnCloud wahrscheinlich, aber intern wird das auch

Jochen

nichts anderes machen.

Jochen

Ja, das wird nichts anderes machen, das machen auch Dropbox und die ganzen anderen wahrscheinlich, die sprechen alle HTTP oder HTTPS mit zu Hause sozusagen und dann haben sie irgendwie Client-Software, die halt auf deinem Rechner läuft, die halt sich per iNotify oder sonst irgendwie oder wie auch immer sich benachrichtigen lässt, wenn halt irgendwie sich was an ein Verzeichnis erinnert und dann synkt die das halt rüber und umgekehrt halt genauso.

Jochen

deswegen brauchst du auch einen Client, weil

Jochen

das ja dann sozusagen eine stehende

Jochen

Verbindung irgendwie braucht und du halt

Jochen

auch vom Server aus den Client

Jochen

benachrichtigen können willst und

Jochen

ja, ich weiß nicht, ob es

Jochen

irgendeine gute, freie,

Jochen

selbstgehostete Geschichte dafür gibt, aber

Jochen

warum nicht irgendwie Dropbox oder sonst

Dominik

irgendwie? Ja, ne, also ich meinte einfach nur jetzt so der private

Dominik

USB-Stick, ne, wo man kurz was hinterschieben

Dominik

kann, so von

Dominik

Gerät zu Gerät

Dominik

oder sowas, wo man einfach dann eine URL eingibt und dann

Dominik

kurz seinen Login und dann hat man das

Dominik

das wäre irgendwie schon nett

Jochen

ja, ich weiß es nicht

Jochen

ich glaube, also ich meine, was geräteübergreifend

Jochen

funktioniert, ist wahrscheinlich dann Google

Jochen

der Boot muss ja dann auch irgendwie auf die Telefone kommen

Jochen

wäre ja dann praktisch

Jochen

ja, und dann bist du eh

Jochen

entweder bei Apple oder bei Google

Jochen

da kommst du ja selber gar nicht mehr drauf

Jochen

ja, dann fangen wir doch an

Jochen

mit dem nächsten Thema an

Jochen

ja, es ist ein bisschen

Jochen

traurig alles, aber leider

Jochen

ja, also

Dominik

SSL-Zertifikate, hast du gesagt,

Dominik

sind alles im Caddy mit drin. Das heißt, da funktioniert

Dominik

das HTTPS mit, unterstützt

Dominik

also, kannst du nochmal vielleicht einen Unterschied kurz, SSL,

Dominik

HTTPS, ist das dasselbe?

Dominik

Naja, SSL ist

Jochen

eigentlich, glaube ich, veraltet. Das gibt es

Jochen

eigentlich gar nicht mehr. Es ist immer nur so, dass man halt

Jochen

davon redet, weil man das irgendwie gewohnt ist. Also mittlerweile

Jochen

ist, was man eigentlich verwendet, TLS.

Jochen

Und

Jochen

naja, so genau weiß ich das

Jochen

jetzt auch alles nicht.

Jochen

Das zu konfigurieren ist ein Schmerz. Also ich

Jochen

weiß, dass ich das, ich habe das mal ein paar Mal gemacht

Jochen

für NGINX und das hat

Jochen

das war auch, das hat länger gedauert, als ich

Jochen

dachte. Es gibt da so ein

Jochen

Test von

Jochen

SSL Labs, wo man dann überprüfen kann, ob die

Jochen

eigene Seite irgendwie den aktuellen

Jochen

Sicherheitsanforderungen irgendwie genügt. Muss man da irgendwie ein Zertifikat

Jochen

sich irgendwo generieren? Kann man das selber

Dominik

erzeugen? Muss man das kaufen? Da gibt es ja irgendwie

Jochen

so kostenlose Angebote.

Dominik

Warum nimmt man die? Warum nimmt man freies?

Dominik

Geht das auch frei?

Jochen

Also ich würde da gar nicht so super in Detail drauf

Jochen

eingehen. Also wenn man kann das kaufen, dann hat man

Jochen

unter Umständen so Vorteile wie,

Jochen

es wird in der Browser-Leiste grün angezeigt oder so,

Jochen

weil es irgendwie so Spezial-Deals zwischen den Browser-Herstellern

Jochen

gibt und

Jochen

ich meine, das sieht auch komisch aus.

Jochen

Ich weiß nicht mal, ob das jetzt vertrauenserweckender ist oder

Jochen

nicht vielleicht, dass die Leute denken, das ist lieber seltsam.

Jochen

Oh, Kapitalisten, weg da!

Jochen

Nein, ich weiß nicht. Also, dann ist es so,

Jochen

die ganzen

Jochen

Certificate Authorities

Jochen

sind halt dadurch

Jochen

aufgefallen, also von denen

Jochen

kaufst du sozusagen die Dienstleistung, dass sie

Jochen

dein Key

Jochen

unterschreiben und damit

Jochen

der Browser halt, weil er die

Jochen

Certification Authority kennt, halt sagen kann,

Jochen

okay, ich glaube, dass das jetzt die Seite

Jochen

ist, mit der ich tatsächlich rede.

Jochen

Die haben, sind

Jochen

halt schon ganz oft dadurch aufgefallen, dass

Jochen

irgendwie, dass

Jochen

sie Sachen unterschrieben haben, also das

Jochen

eine Ding, was sie eigentlich nicht machen dürfen, Dinge

Jochen

unterschreiben und damit authentifizieren, dass

Jochen

jemand, der ist, der vorgibt zu sein,

Jochen

der halt nicht, der ist,

Jochen

der halt ein anderer war, so für Microsoft

Jochen

das ist schon ein paar Mal passiert, dass jemand

Jochen

sich dann als Microsoft ausgegeben konnte,

Jochen

der es nicht war. Da kannst du natürlich den ganzen Leuten

Jochen

halt per Windows Update

Jochen

Sachen reinschieben.

Jochen

Nicht so geil.

Jochen

Und solche Sachen.

Jochen

Das passiert halt dauernd. Daher ist diese

Jochen

ganze Certificate Authority

Jochen

Geschichte, das ist alles, das

Jochen

funktioniert nicht so richtig gut. Und dann hast du

Jochen

auch Probleme mit, was passiert, wenn du jetzt Sachen

Jochen

revoken willst. Das geht alles nicht richtig.

Jochen

Das ist schrecklich.

Jochen

Also insofern würde ich sagen, man muss auch heutzutage eigentlich kein Geld mehr bezahlen. Es gibt eine freie CA, Let's Encrypt, die in allen Browsern die Keys drin hat, sodass man halt überprüfen kann, ob die korrekt signiert sind.

Jochen

Das heißt, wo es früher gar nicht möglich war, wo man halt keine verschlüsselte Verbindung bekommen hat, ohne dass einer der Browser irgendwie schreckliche Warngeschichten angezeigt hat, ohne dass man bezahlt hat, das geht heute. Insofern, es ist, ja. Und ja, ich mache das so. Es gibt auch Gründe, das nicht so zu machen.

Dominik

Oh, wir haben gerade eine Live, eine E-Mail

Dominik

bekommen zu einem Podcast. Die ist aber leider so lange, dass ich

Dominik

sie nicht lange vorlesen kann.

Dominik

Von Topit.

Dominik

Ja, bin gespannt. Ja, ich werde mir gleich mal

Dominik

durchlesen. Ich freu mich schon.

Dominik

Also, Thorsten. Ja. Hi, Thorsten.

Dominik

Jetzt war eine Live-Interaktion.

Dominik

Finde ich super.

Dominik

Ja.

Jochen

Engagement heute sehr hoch.

Jochen

Also, wir möchten gerne tatsächlich

Dominik

diesen Server, den wir jetzt ja irgendwie stehen haben,

Dominik

mit dem ganzen SSL-Zertifikate und was.

Dominik

Kann man denn irgendwie was, also wahrscheinlich

Dominik

ich erzähle jetzt wieder irgendwelchen Unsinn, irgendwie mit

Dominik

als Proxy benutzen, irgendwie über den

Dominik

ins Netz connecten und Anfragen stellen auch,

Dominik

dass ich irgendwie den anderen Weg gehen kann,

Dominik

dass nicht jeder sieht, wovon ich komme, dass ich dann von meinem Server

Jochen

ausgehe. Na, das willst du aber

Jochen

nicht, weil dann weiß doch jeder, woher du

Dominik

Ja, aber das ist doch okay, aber dann ist das

Jochen

Das willst du ja gerade nicht.

Dominik

Nein, aber vielleicht habe ich ja einen anderen Standort und ich connecte immer meinen

Dominik

Server und dann wissen die vielleicht, dass ich immer mein Server bin

Dominik

oder sowas, aber die wissen

Dominik

meinen eigentlichen Standort jetzt nicht, weil ich nicht

Dominik

immer über meinen Provider gehe. Ja, aber da sind die

Dominik

Also mein Provider weiß zum Beispiel dann nicht mehr, wo ich hingehe, weil

Dominik

ich über meinen Server gehe. Ja, okay, gut,

Jochen

gut, aber der Nachteil ist,

Jochen

dass jeder Web-Server-Betreiber

Jochen

weiß, wer du bist.

Jochen

Was vielleicht auch nicht so cool ist.

Jochen

Das sind alles Dinge,

Jochen

das will man wahrscheinlich nicht so machen.

Jochen

Ja, aber vielleicht,

Dominik

wenn die ganze Zeit mein Provider sonst immer

Dominik

alles mitbekommt, vielleicht kann man...

Jochen

Es ist halt die Frage, vor wem du Angst hast.

Jochen

Vielleicht vor dem Provider.

Jochen

Wenn du vor dem Provider Angst hast, ja.

Dominik

Dann könnte man da raus und das könnte man als Tunnel benutzen.

Jochen

Würde ich nicht so machen.

Jochen

Dann nimm lieber was ordentliches, nimm lieber Tor.

Jochen

Ja, okay.

Jochen

Oder nimm halt einen von den VPN-Dienstleistern,

Jochen

aber die sind auch, ich meine, da muss man sich auch bewusst sein,

Jochen

dass die auch gecaptured werden.

Jochen

Und vor allem, dass die möglicherweise zweimal verdienen.

Jochen

Die verdienen halt einmal, weil sie Geld von dir bekommen

Jochen

und dann verdienen sie halt nochmal,

Jochen

weil sie Geld von Facebook oder sonst wem bekommen

Jochen

für die Nutzungsdaten.

Dominik

Also ich hatte mich jetzt gar nicht für anonyme Surfen interessiert,

Dominik

sondern ich einfach nur, ob die technischen Möglichkeiten,

Dominik

wie das funktioniert, wenn ich jetzt da meine Connection über

Dominik

so einen Server schicken will, was ich da einrichten

Jochen

würde. Das hat aber nichts

Jochen

mit Web zu tun. Das ist dann, da würde

Jochen

es dann irgendwie sowas wie OpenVPN nehmen oder so.

Dominik

Das heißt, ich würde einen VPN-Server starten,

Dominik

dahin connecten und dann von dem dann weiterlaufen.

Dominik

Ja.

Dominik

Okay. Das OpenVPN

Dominik

Das ist tatsächlich

Jochen

ein Anwendungsfall, für den ich das

Jochen

tatsächlich auch benutze und auch

Jochen

einen OpenVPN-Server laufen habe.

Jochen

Bei iPhone geht das

Jochen

sehr, sehr easy. Da kannst du halt

Jochen

OpenVPN-Server auch einfach eintragen

Jochen

als, das ist jetzt VPN. Du kannst ja dann

Jochen

VPN irgendwie auswählen und kannst sagen, ich nehme jetzt einfach den.

Jochen

Ist halt

Jochen

für

Jochen

Netflix und die ganzen

Jochen

Streaming-Geschichten, Spotify-Sachen,

Jochen

die funktionieren ja sonst im Urlaub halt nicht mehr.

Jochen

die sind ja quasi, und wenn man dann

Jochen

VPN anmacht, dann gehen die halt trotzdem.

Jochen

Und dafür habe ich es halt benutzt

Jochen

bisher.

Dominik

Ja genau, den musst du dann

Dominik

auch über den Caddy routen?

Dominik

Nein, das ist kein HTTP.

Dominik

Das läuft einfach

Dominik

auf einem anderen Ort, als Service auf dem Rechner.

Dominik

Das ist ein ganz anderes Protokoll.

Jochen

OpenVPN, ein eigenes Protokoll,

Jochen

läuft üblicherweise, du kannst auch

Jochen

bei TCP, normalerweise bei UDP,

Jochen

irgendwo auf einem Port, ich weiß nicht,

Dominik

irgendwas. Das heißt, ich starte einfach dann auf dem

Dominik

Rechner, dann die verschiedenen Services am Anfang,

Dominik

die dann halt hochgefahren sind und die dann nebenbei als

Dominik

Demons dann laufen. Dazu gehört dann der OpenVPN,

Dominik

der auf einem anderen Port dann läuft, als der

Dominik

Caddy, der auf dem 443er läuft.

Dominik

Und dadurch kann ich dann, indem ich auf die verschiedenen Ports

Dominik

zugreife, dann auf die verschiedenen einzelnen

Dominik

Applikationen geroutet werden. Ja, so wie das im Internet halt so üblich ist.

Dominik

Ja. Was halt quasi

Jochen

die unterschiedlichen Services haben halt unterschiedliche Ports.

Jochen

So, Dapp ist halt 80

Jochen

und 443. Ja, Mail ist

Jochen

25, DNS ist

Jochen

53,

Jochen

je nachdem.

Dominik

ja, und so weiter. SSH ist 22?

Dominik

Genau,

Jochen

FTP 21, ja.

Jochen

Ja, also SSH will ich wahrscheinlich auch

Jochen

haben. Ja.

Jochen

Weil ich halt da irgendwie connecten will. Der muss ja irgendwie auf die Maschine drauf, genau.

Dominik

Aber dann ist halt auch die Frage, dann, also

Dominik

als Route auf die Maschine draufgehen, ist das nicht ein bisschen riskant,

Dominik

das irgendwie zu exponieren? Oder sage ich dem,

Dominik

der darf sich gar nicht einloggen? Oder wie mache ich das? Mache ich das per

Dominik

Passwort oder muss ich da irgendwie ein authorized key

Dominik

irgendwie am besten hinterlegen in irgendeinem

Jochen

SSH-Konto? Genau, also Authentifizierung

Jochen

immer per Key und dann

Jochen

sozusagen legst du den Public Key

Jochen

in ein File namens

Jochen

authorize-keys in dem

Jochen

.ssh-Verzeichnis auf deinem Server

Jochen

und dann kannst du dich da einloggen.

Dominik

Und man kann, glaube ich, sogar dann Login

Dominik

per Passwort abschalten oder sowas? Kann man machen, ja.

Dominik

Sollte man vielleicht auch. Ja, aber dann kann man

Dominik

tatsächlich nur noch mit seinem Private Key connecten.

Dominik

Was macht man denn dann, wenn der kaputt geht?

Dominik

Dann kann man sich nicht mehr connecten.

Dominik

Dann ist er am Arsch.

Jochen

Kannst aber mehrere zum Beispiel nehmen.

Dominik

Ja, okay, aber dann ist man normalerweise am Arsch, dann muss man

Dominik

den Server komplett abhauen, weil das alles dann

Dominik

nicht mehr geht. Dann muss man den Server

Dominik

hart, wie kommt man da wieder dran?

Dominik

Also kann man nur die Presse...

Jochen

Also das hängt halt davon ab,

Jochen

was das ist.

Jochen

Du kannst

Jochen

auch zum Beispiel, wenn du jetzt einen eigenen Server hast,

Jochen

den Fall hatten wir noch gar nicht, der ist aber auch vielleicht gar nicht so uninteressant,

Jochen

jetzt bei Hetzner oder so,

Jochen

wo du wirklich physikalisch eine Maschine gemietet hast,

Jochen

die irgendwo im Rack steht,

Jochen

da kriegst du auch eine Konsole drauf.

Jochen

Ein paar serielle Konsole kannst du dich

Jochen

auf das Ding, was halt auch interessant ist, wenn du

Jochen

irgendwelche Dinge machen möchtest, während das Ding bootet oder so.

Jochen

wo du halt per SSH nichts

Jochen

machen kannst, weil es gibt keinen SSH, der da läuft,

Jochen

weil der Kernel noch gar nicht hochgefahren ist.

Jochen

Da willst du halt was anderes haben, mit dem

Jochen

du drauf connectest und das geht da.

Jochen

Oft. So, dass du halt wirklich das Ding

Jochen

booten sehen kannst und halt kannst du auch Dinge tun

Jochen

bei booten.

Jochen

Genau, also das geht alles. Insofern

Jochen

gibt es da noch andere Wege rein, aber

Jochen

bei so einem Container, der halt

Jochen

einfach da...

Jochen

Da geht das natürlich so nicht, aber

Jochen

das ist ja so Wegwerf-Kram.

Jochen

Den schmeißt du halt einfach weg.

Jochen

Wenn ich den Server irgendwie

Dominik

abgeschossen habe oder so

Dominik

und der bootet nicht mehr,

Dominik

dann kann ich ja nicht anders.

Jochen

Dann schmeißt du den Container weg und machst einen neuen.

Jochen

Es dauert ja nicht lange, das dann wieder hochzuziehen.

Jochen

Ja gut, aber wenn das im Container läuft, dann ist das kein Problem.

Jochen

Also ich würde sagen, wenn das ordentlich

Jochen

gemacht ist, dann dauert das von

Jochen

irgendwie, du kopierst dein Projektverzeichnis dahin

Jochen

oder checkst es halt aus,

Jochen

was du auch machen kannst.

Jochen

Wenn du SSH anhast mit irgendwie

Jochen

Forward Agent, dann kannst du halt auch

Jochen

private Repositories, beispielsweise GitHub

Jochen

oder irgendwelchen Gridlab auschecken.

Jochen

Du connectest die einfach hin, checkst es aus,

Jochen

sagst Docker Compose

Jochen

irgendwie Build und dann linkst du halt

Jochen

das noch einmal in deinen Super-Wise-D-Config

Jochen

Dings da nach etc.

Jochen

Sagst Super-Wise-Control

Jochen

Restart dein, was auch immer

Jochen

wie das heißt. Und das

Jochen

dauert dann drei, vier Minuten und dann ist das Ding

Jochen

wieder oben.

Jochen

Selbst das könntest du noch automatisieren.

Jochen

Das kannst du per Script machen.

Jochen

Kannst du auch per Python

Jochen

SSH bedienen, per Paramiko

Jochen

oder so.

Jochen

Paramiko heißt das?

Jochen

Das ist die Library, mit der man in SSA sprechen kann.

Jochen

Ja, okay.

Jochen

Ja, also Ports haben wir jetzt einmal so kurz

Jochen

drauf eingegangen. Also ich könnte auch irgendwie

Dominik

irgendwelche Ports hinten aufmachen oder irgendwas hinterstecken.

Dominik

Macht man dann auch sowas wie

Dominik

so einen Honigtopf auf, dass man einfach irgendwie so eine Reaktion

Dominik

hat, falls die Leute irgendwie sagen, hey, klassischer

Dominik

Angriff. Würde ich jetzt nicht machen.

Jochen

Aber gut, kann man natürlich, wenn man Spaß daran hat.

Jochen

Also, ja.

Jochen

Fliegen fangen. Es gibt für

Jochen

Danglund zum Beispiel auch so ein Honeypot-Modul

Jochen

irgendwie, dass es so

Jochen

ein Admin-Interface gäbe

Jochen

und dann, wo sich Leute dann einloggen können mit

Jochen

Standard-Passwörtern und dann können sie da irgendwie Dinge machen,

Jochen

aber das ist alles nur Fake und dann kann man sich hinterher angucken, was sie gemacht haben.

Jochen

Aber ja,

Jochen

ich meine, wenn...

Dominik

Ja, wenn man ein bisschen rumspielt in der Hobbygruppe und mal so guckt, was man so

Dominik

alles rausfinden kann und wie man das alles so macht und so.

Jochen

Aber ich würde sagen, ich würde es deswegen nicht machen,

Jochen

weil das ist gefährlich.

Jochen

Das ist halt viel Code, der mit außen redet.

Jochen

Das ist viel Angriffsfläche.

Dominik

Ja gut, ich sag mal, wenn man auf dem Server jetzt nichts zu verstecken hat,

Dominik

sondern es eh nur so zum Rumspielen ist, dann ist das ja vielleicht gar nicht so schlimm.

Dominik

Kannst du auch einfach offen lassen.

Dominik

Dann gucken wir uns die Leute, vielleicht ist es hinterher besser.

Dominik

Vielleicht ist das ja auch ein bisschen Honig ausliegen.

Dominik

Schokolade.

Dominik

Firewall?

Dominik

Ist das auf Router-Ebene

Dominik

dann im Serverzentrum?

Jochen

Nein, also Firewall ist halt die Frage,

Jochen

was die Leute darunter verstehen.

Jochen

Das sind auch unterschiedliche Dinge.

Jochen

Ich kenne es halt eher so aus der Internet-Admin-Welt.

Jochen

Und da nennt man

Jochen

ein Firewall ist ein System

Jochen

zur Durchsetzung einer Policy

Jochen

am Übergang zwischen Netzwerken.

Jochen

Das ist eine Firewall.

Jochen

Ich weiß, dass es so im Heimcomputer-Bereich

Jochen

gibt es da irgendwie andere Definitionen von.

Jochen

Da gibt es auch so Personal Firewalls oder sowas.

Jochen

Aber das ist alles Quatsch.

Jochen

Aus meiner Perspektive, weil die machen genau

Jochen

das eben nicht.

Dominik

Was heißt denn eine Policy-Restriktion? Also wann darf

Dominik

denn welches Protokoll mit welchem ich reden? Oder darf ein bestimmtes

Dominik

Protokoll nicht auf einem bestimmten Port?

Jochen

Du guckst dir halt,

Jochen

was ich normalerweise, also Firewall ist

Jochen

ein Konzept, das ist nicht unbedingt eine

Jochen

Implementation. Das, was die meisten Leute

Jochen

vielleicht darunter verstehen, ist sowas wie ein Paketfilter.

Jochen

Paketfilter, da guckt sich immer vier Sachen an.

Jochen

Quell-IP,

Jochen

Ziel-IP, Quellport, Zielport.

Jochen

Du kannst jetzt natürlich auf beliebige

Jochen

Kombinationen davon Policies definieren.

Jochen

Kannst du sagen, okay, das lasse ich durch, das lasse ich nicht

Jochen

durch. Und jetzt ein Paketfilter guckt

Jochen

sich immer diese Quadruple an

Jochen

und entscheidet dann, ob er das

Jochen

Paket durchlässt oder nicht. Und sowas kann man dann

Dominik

mit Paketeinlösung, mit

Dominik

Pyshark machen und das dann selber bauen?

Jochen

Da gibt es Software, die das

Jochen

macht, aber das macht nur dann Sinn.

Jochen

Also einmal willst du

Jochen

solche Sachen niemals verwenden, um

Jochen

dich

Jochen

darauf zu verlassen, sondern das ist immer

Jochen

nur ein zusätzliches Sicherheitsnetz.

Jochen

Also die Sachen sollten sicher sein von sich aus.

Jochen

Das kann ja auch sein, dass

Jochen

Paketfilter ausfallen oder nicht ordentlich funktionieren

Jochen

oder so. Das sollte deine Sicherheit nicht beeinträchtigen.

Jochen

Sondern das ist einfach nur,

Jochen

damit du sagen kannst, ich habe hier ein Stück Hardware,

Jochen

das ist sonst mit nichts verbunden.

Jochen

Ja, das ist nicht

Jochen

irgendwie auf der gleichen Maschine, da kann ich

Jochen

irgendwie, wenn jemand meine Maschine aufgemacht hat

Jochen

oder eine Applikation aufgemacht hat, kann er

Jochen

diese Policy nicht ändern. Das heißt,

Jochen

dafür muss es dann halt

Jochen

physikalisch getrennte Maschine im Grunde sein,

Jochen

auf der nur der Paketfilter läuft, sonst nichts.

Jochen

Sonst macht das keinen Sinn. So, und den hast du

Jochen

halt am Übergang zwischen unterschiedlichen Netzen, weil

Jochen

da kannst du halt genau auf

Jochen

Basis dieser vier

Jochen

Attribute irgendwie

Jochen

dann deine Policy irgendwie durchsetzen.

Dominik

Falls ich doch meinen offenen File-Dings da betreiben will,

Dominik

dann sollte ich dann eine Firewall zwischen dem Netz und ...

Jochen

Aber das kannst du überhaupt nicht.

Jochen

Du hast ja nicht Kontrolle über das Netz.

Jochen

Ich würde sagen, das macht ja nur dann Sinn,

Jochen

wenn du auch das Netz da unter Kontrolle hast.

Dominik

Dann muss ich das lokale Netz unter Kontrolle haben.

Jochen

Du müsstest das Netz, in dem du diese Policy durchsetzen willst,

Jochen

musst du unter Kontrolle haben.

Jochen

Aber meine eigene Server-Farm zu Hause.

Jochen

Du kannst es zu Hause machen, ja.

Dominik

Für zwei verschiedene Router-Netze oder so was,

Dominik

die ich voneinander trennen will.

Dominik

Vielleicht habe ich irgendwie ein kleines offenes Netz da.

Dominik

Da gibt es ja so ein paar Optionen, wo man frei sich

Dominik

verbinden kann an einem Funk.

Dominik

Und dann könnte man das mit seinem Heimnetzwerk machen und da sollte man

Dominik

sowas dazwischen hängen, weil die Geräte zwar im gleichen

Dominik

Laden... Das ist viel zu viel Aufwand.

Jochen

Das ist viel zu viel Aufwand, um sowas selber zu machen.

Jochen

Oder ich wüsste jetzt nicht, dass das irgendein...

Jochen

Also ich

Jochen

finde, diese Zeiten sind vorbei. Also das ist...

Jochen

Das macht man nicht mehr.

Jochen

Ja, also ich meine, eben diese

Jochen

die Hoster und

Jochen

vielleicht auch Amazon, die werden solche Sachen betreiben.

Jochen

Die machen das so.

Jochen

Aber

Jochen

für zu Hause macht das doch kein...

Jochen

Ich meine, du musst wirklich ein eigenes

Jochen

Gerät dafür haben, dass das nur das tut.

Jochen

Und dann brauchst du mehrere davon, weil

Jochen

du willst ja

Jochen

nicht nur einen, du brauchst ja dann irgendwie

Jochen

unterschiedliche Zonen

Jochen

und

Jochen

da gibt es ja unterschiedliche Konzepte, wie du

Jochen

das realisierst und du kommst ja

Jochen

mit einem Ding auch gar nicht aus, da brauchst du mehrere davon.

Jochen

Das heißt, du betreibst mehrere Rechner zu Hause nur, um

Jochen

diese Policy da durchzusetzen.

Jochen

Welchen Gewinn erzielst du dadurch?

Jochen

Und vor allen Dingen im Verhältnis zu dem Aufwand.

Jochen

Als Rechenzentrumsbetreiber kann man

Jochen

das irgendwie rechtfertigen, dass man zu jedem Switch dann noch

Jochen

irgendwie einen Paketfilter stellt.

Jochen

Oder alle zwei, drei

Jochen

Racks stellt man da halt irgendwie noch einen Paketfilter

Jochen

dazu.

Jochen

Aber zu Hause...

Jochen

Da bin ich aber

Dominik

ganz sicher, da bin ich nicht mehr so Glaskörper-mäßig.

Dominik

Ja, aber das Ding

Jochen

hilft dir ja für die meisten Sachen, die dich

Jochen

sozusagen, wenn du...

Jochen

Mist, nicht.

Jochen

Genau, es hängt halt

Jochen

davon ab, wovor du Angst hast.

Jochen

Wenn du Angst davor hast, dass die

Jochen

Applikationen, die bei dir laufen, was Böses tun, dann

Jochen

schützt dich das alles überhaupt gar nicht.

Jochen

Das schützt dich halt bloß davor, dass jemand

Jochen

Verbindungen irgendwie, die du

Jochen

laut Policy nicht zulässt,

Jochen

macht. Aber das passiert heute eh fast

Jochen

nicht mehr.

Jochen

Oder das passiert ja auch nur dann, wenn

Jochen

überhaupt eine Verbindung möglich wäre. Die meisten

Jochen

sitzen hinter irgendeinem komischen, dynamischen

Jochen

IP oder irgendeinem seltsamen NAT.

Jochen

das ist mit den Verbindungen sowieso nicht so toll.

Jochen

Und da müssen

Jochen

sich, müssen ja diejenigen,

Jochen

die das,

Jochen

wenn du da irgendwie, wenn jemand

Jochen

dich kompromittiert hat, dann muss er ja irgendwie nach Hause

Jochen

telefonieren und dann muss er das eh auf eine relativ

Jochen

schlaue Art tun, sonst kommt er ja gar nicht mehr durch.

Jochen

Aber wenn er das auf eine relativ schlaue Art tut, dann nützt dir der ganze

Jochen

Paketfilterkram nichts, weil

Jochen

der sieht ja nichts Schlaues, der macht ja nichts Schlaues,

Jochen

sondern der macht ja was sehr, sehr Einfaches eigentlich.

Jochen

Also

Dominik

schwer. Also Firewalls sind auch quasi

Dominik

aus den Relikten, aus der Pakete.

Jochen

Naja, also Firewall ist ja unter Umständen noch viel mehr.

Jochen

Es ist ja nicht nur Paketfilter, sondern das ist halt,

Jochen

man kann ja auch noch andere Dinge tun.

Jochen

Man könnte auch solche Sachen machen wie,

Jochen

na, du hast da einen Rechner,

Jochen

auf dem läuft nur

Jochen

ein,

Jochen

wie heißt das, VLC oder so,

Jochen

nee, dieses Ding ist VNC.

Jochen

VNC ist das, ja.

Jochen

Du connectest dich darauf, du hast selber,

Jochen

bist du abgeschnitten von,

Jochen

Du kannst halt bloß über so eine grafische Schnittstelle

Jochen

irgendwie mit außen kommunizieren.

Jochen

Das macht man auch manchmal. Das ist auch, würde ich sagen,

Jochen

eine Firewall, um halt

Jochen

zu verhindern, dass du

Jochen

Netzwerke miteinander überhaupt verbinden musst. Dann kannst du halt da

Jochen

sagen, okay, da ist

Jochen

gar keine Verbindung in dem Sinne.

Jochen

Es würde

Jochen

für mich auch irgendwie unter Firewall fallen.

Jochen

Oder es kann diverse

Jochen

andere Geschichten geben, die

Jochen

halt auch darunter fallen. Also ich würde eher sagen,

Jochen

das ist eher ein Konzept,

Jochen

ja, aber das ist alles

Jochen

Sachen, das ist heute, ich würde

Jochen

sagen, ich weiß es natürlich nicht so genau,

Jochen

das ist heutzutage eher ein Ding für Experten.

Jochen

Weil

Jochen

wer hat...

Jochen

Also ich meine,

Jochen

wenn einem das Spaß macht, kann man sich ja damit beschäftigen, aber

Jochen

so,

Jochen

das,

Jochen

ja,

Jochen

die meisten Firmen

Jochen

machen ja auch ihr Rechenzentrumskram nicht mehr selber.

Jochen

Auch das macht natürlich Spaß, irgendwie selber Racks zu

Jochen

bauen und Kabel zu ziehen und die zu labeln

Jochen

und so, voll gut, aber das macht auch

Jochen

heute kaum noch jemand, weil alle gehen halt

Jochen

in die Cloud und

Jochen

es ist halt so ein bisschen

Jochen

das wird halt eher, das rutscht halt alles so

Jochen

in die Richtung

Jochen

Commodity, also früher hat es halt

Jochen

vielleicht noch einen Unterschied gemacht, wenn man jetzt in einer Firma war

Jochen

und hat halt irgendwie sein eigenes

Jochen

Rechenzentrum im Keller betrieben, ob man

Jochen

jetzt die Kabel ordentlich

Jochen

gelabelt hat und irgendwie da

Jochen

die Paketfelder ordentlich hingestellt hat und so

Jochen

und heutzutage ist das halt so, darüber kann man

Jochen

sich schwer differenzieren, weil

Jochen

also außer man macht es halt scheiße,

Jochen

aber ansonsten kann man es, wenn man es gut

Jochen

macht, besser als Amazon wird man es nicht

Jochen

machen können, daher, oder nur

Jochen

mit einem Aufwand, der

Jochen

das ist halt nicht mehr gerechtfertigt. Nicht mehr bezahlbar

Jochen

natürlich. Nicht bezahlbar, ja, es lohnt sich einfach

Jochen

nicht. Also Amazon ist

Jochen

so gut, die anderen auch,

Jochen

dass sich das nicht mehr lohnt,

Jochen

das selber zu machen, um sich da noch irgendwie

Jochen

was rauszuholen.

Dominik

Das musst du mir nochmal genauer erklären.

Jochen

Das ist so ein bisschen schade irgendwie, weil

Jochen

natürlich viele coole Sachen, die früher irgendwie

Jochen

interessant waren, heute halt nicht mehr so.

Jochen

Aber

Jochen

ich fürchte, das ist halt so der Gang der Dinge.

Jochen

Zeiten sind vorbei.

Jochen

Na gut.

Jochen

Aber ja, ich meine, das ist natürlich schon alles interessant.

Jochen

Also ich würde vielleicht gerne noch mal

Jochen

kurz das mit dem Server abschließen.

Dominik

So ein bisschen, was ich noch machen würde, also für mich

Dominik

jetzt persönlich, ich würde gerne so ein paar IoT-Geräte

Dominik

da ranschicken. Also ich habe jetzt irgendwo

Dominik

ein paar Respi-Sensoren oder sowas,

Dominik

die ich dann da

Dominik

Broadcast oder sowas mit MQTT

Dominik

habe ich gelernt, das würde ganz gut funktionieren.

Dominik

Und dann lade ich irgendwie so ein REST

Dominik

oder ein GraphQL am besten.

Dominik

Was würdest du sagen, API

Dominik

laufen über so ein Caddy

Dominik

dann ein Django ansteuern?

Dominik

Also in Django selber rein geht das

Jochen

dann wahrscheinlich, wenn du es direkt in Django rein

Jochen

schreiben willst, über wahrscheinlich

Jochen

sowas wie Django REST Framework oder halt eben über

Jochen

GraphQL oder so. Das sind halt so die typischen

Jochen

Sachen, mit denen man halt APIs bereitstellt.

Jochen

Aber

Jochen

was du auch machen könntest,

Jochen

das ist halt die Frage. Also MQTT ist halt

Jochen

insofern schicker, als dass es halt genau für solche

Jochen

Anwendungsfälle gedacht ist.

Jochen

Und du dir halt

Jochen

über viele Sachen nicht mehr selber Gedanken

Jochen

machen musst, was du müsstest, wenn du es

Jochen

halt, also wenn du

Jochen

jetzt zum Beispiel irgendwie, keine Ahnung,

Jochen

du hast einen Sensor,

Jochen

ist halt die Frage, ob das jetzt wichtig ist, die Daten,

Jochen

die dabei rausfallen, oder ob man die ignorieren kann. Also wenn

Jochen

jetzt da ein wichtiger,

Jochen

nehmen wir an, du hast einen Geigerzeller in deinen Raspberry Pi

Jochen

eingeschlossen, ja, und irgendwie

Jochen

die Fallout-Wolke ist überzieht

Jochen

über dein Wohngebiet.

Jochen

Aber dummerweise ist irgendwie

Jochen

dein Server nicht erreichbar. Dann ist es natürlich blöd,

Jochen

wenn jetzt diese Information,

Jochen

dass dein Garten verseucht ist,

Jochen

nicht bei dir ankommt,

Jochen

weil der Raspberry Pi, der die Sensordaten

Jochen

bekommen hat, versucht dir halt irgendwie

Jochen

an deinen Server zu schicken und der ist halt gerade nicht da.

Jochen

Und was macht...

Jochen

Schmeißt dir einfach weg.

Jochen

Schmeißt dir einfach weg und dann kriegst du die Daten

Jochen

nicht. Hängt davon ab, hängt von

Jochen

deine Anforderungen ab, ob das jetzt

Jochen

schlimm ist oder nicht. Kann auch sein, dass es nicht schlimm ist.

Jochen

Aber wenn du

Jochen

möchtest, dass die dann halt

Jochen

noch irgendwann dahin geschickt werden, wenn der Server wieder da ist,

Jochen

dann brauchst du ja selber irgendwie eine Art von

Jochen

Queue, dann brauchst du irgendwie eine Warteschlange,

Jochen

wo halt die Sensordaten erstmal

Jochen

auflaufen und dann halt irgendwie, dann wenn dein Server

Jochen

wieder verfügbar ist, dahin geschickt werden.

Jochen

Und ja,

Jochen

dann kannst du noch Features dazu bauen und dann

Jochen

implementierst du

Jochen

MQTT oder halt beliebiges anderes

Jochen

Queuing-System,

Jochen

Message-Queue-System halt nach.

Jochen

Und das muss man nicht tun, man kann einfach eins

Jochen

nehmen, das schon fertig ist und das macht das dann

Jochen

für einen. Dann schmeißt man halt

Jochen

in die Queue halt irgendwie dieses Sensor

Jochen

Datum halt rein.

Dominik

Und der überlebt ja nicht so lange, bis er eine

Dominik

201. Genau, man muss sich

Jochen

nicht mehr selber kümmern, dass das irgendwie

Jochen

zugestellt wird und so, das passiert dann automatisch.

Dominik

Der macht dann einfach Post-Requests auf die API.

Jochen

Nee, nee, nee, nee. Das Ding macht, nein, nein,

Jochen

das hat ein eigenes Protokoll, das macht

Jochen

auch kein HTTP.

Jochen

Das ist ein eigenes Protokoll. Es gibt ein

Jochen

MQTT-Broker, der irgendwie

Jochen

weiß, welche

Jochen

Ja. Dann spricht der dann REST.

Jochen

Nein. Was bekommt der denn dann?

Jochen

Kein HTTP. Aber wie bekomme ich denn

Jochen

auf meinem Django

Dominik

Backend, auf meinem Django-Server?

Jochen

Du könntest natürlich, ja, du kannst halt intern

Jochen

irgendwo bei dir zu Hause MQTT sprechen

Jochen

und dann halt irgendwie den ganzen Kram halt periodisch

Jochen

zu deinem Server schicken, aber du könntest

Jochen

natürlich auch, und das ist fast wahrscheinlich dein geiler,

Jochen

zum Beispiel

Jochen

ein VPN aufmachen.

Jochen

Ja. Und

Jochen

hast halt auch

Jochen

quasi ein

Jochen

ja, Ding, was halt

Jochen

an der Queue hängt, sozusagen

Jochen

die konsumiert,

Jochen

die Ereignisse,

Jochen

die da rausfallen, die Events, die da rausfallen

Jochen

und das dann halt irgendwo zum Beispiel in deine

Jochen

Datenbank direkt reinschreiben.

Jochen

Dann geh ich aber gar nicht mehr über die API.

Dominik

Aber dann hab ich noch einen eigenen Service laufen, der

Dominik

hängt aber nicht mehr am Caddy, sondern

Dominik

der hängt als Daemon wieder auf einem eigenen Port.

Dominik

genau. Aha, und dann muss ich dann einfach

Dominik

dann, wie kann der denn dann mit

Dominik

der, das ist mein Problem, mit der Datenbank,

Dominik

die im Docker liegt, reden?

Jochen

Ja, auf dem lokalen Host geht das

Jochen

ja alles, da kannst du auch mit der

Jochen

Datenbank reden, das geht.

Jochen

Ah, das heißt, ich muss dann aber den

Dominik

Container mit reinschreiben, den

Dominik

MQTT

Dominik

Broadcaster, damit er auf die

Dominik

Datenbank zugreifen kann?

Jochen

Nö, das musst du halt bloß irgendwie da

Jochen

einkommen, das Ding kann in dem Container

Jochen

irgendwie als Prozess laufen, es kann aber auch wieder in einem eigenen

Jochen

Container laufen.

Dominik

Ich bin jetzt gerade ein bisschen ausgestiegen an der Stelle

Dominik

dieser Verzahnung. Also ich habe jetzt

Dominik

meinen Dango in einem Docker-Container

Dominik

laufen, der vom

Dominik

Caddy angesteuert wird.

Dominik

Das läuft

Jochen

selber in einem eigenen Container.

Jochen

Angesteuert, das gibt zu viel.

Dominik

Also der Caddy, der schießt das doch zum

Dominik

App-Server. Nein, wenn Requests

Jochen

von außen kommen, die landen auf dem Caddy.

Jochen

Und der schickt sie dann halt weiter an den Applikations-Server,

Jochen

wenn sie bestimmte Container entsprechen.

Jochen

Der läuft aber als Docker.

Jochen

Ja, aber der Caddy kann auch als Docker-Ding

Jochen

laufen. Das ist, bei der

Jochen

Default-Installation mit Cookiecutter ist das auch

Jochen

so. Da läuft auch der Caddy in einem eigenen

Dominik

Container. Und dann ist das egal, dann kann der MQTT

Dominik

Broadcaster auch in einem Container laufen, der kann

Dominik

aber dann mit den anderen Postgres-Containern zum Beispiel

Dominik

reden oder sowas. Ja. Ja, okay.

Dominik

Dann kann er das dann reinschreiben und dann kann Django darauf zugreifen.

Dominik

Ja. Der Zugriff, den mache ich jetzt, weiß ich

Dominik

nicht, Django kann man Plotly,

Dominik

Seaborn, Matplotlib oder halt tatsächlich so

Dominik

ein bisschen Dash sogar, habe ich gesehen,

Dominik

um das dann irgendwie für sich darzustellen.

Dominik

Wie kommunizieren die denn dann mit der Datenbank,

Dominik

damit das dann live abgerufen werden kann,

Dominik

wenn ich die Daten jetzt live auslesen möchte?

Dominik

Weiß ich, ehrlich gesagt.

Dominik

Bin ich mir so ein bisschen überfragt, keine Ahnung.

Dominik

Also man kann das halt so machen, dass man,

Jochen

also du möchtest, dass sich live irgendwie dein Graph ändert.

Jochen

Ja.

Jochen

Wenn ich auf den Knopf drücke, dann soll das,

Jochen

also auf dem Raspi, auf dem Knopf drücke,

Jochen

dann soll das direkt sichtbar sein.

Jochen

Ja, dann, also das Einfachste ist wahrscheinlich in JavaScript

Jochen

einfach zu pollen, irgendwie alle paar hundert Millisekunden

Jochen

oder so einfach nochmal die API zu fragen,

Jochen

Da gibt es neue Daten.

Jochen

Mit einem Get-Request und einfach.

Jochen

Ja.

Jochen

Oder, aber das ist halt die Frage,

Jochen

ob man das machen möchte.

Jochen

Du nimmst halt Web-Sockets

Jochen

und dann sowas auf Django-Seite,

Jochen

sowas wie Django-Channels oder so.

Jochen

Aber dann musst du halt einen anderen,

Jochen

musst du auch bestimmt einen anderen.

Jochen

Was sind denn Web-Sockets jetzt schon wieder?

Jochen

Ui, ja.

Jochen

Das ist halt so eine Erweiterung.

Jochen

Das ist halt dann auch schon nicht mehr HTTP.

Jochen

Das ist halt was anderes.

Jochen

Bei HTTP, da hast du das Problem,

Jochen

du hast keine bidirektionale Verbindung,

Jochen

sondern du hast halt immer nur Request-Response.

Jochen

Und Request-Response

Jochen

geht das nicht, weil du kannst halt

Jochen

vom Server aus nichts zum Client schicken, weil du

Jochen

weißt ja nicht mal, wer deine Clients sind. Du hast ja keine

Jochen

Verbindung zu denen. Socket hört sich so an wie so ein Port

Dominik

oder sowas, der irgendwie im Internet rumschwebt.

Dominik

Socket. Ja, Socket ist

Jochen

quasi sozusagen das eine

Jochen

Ende der Hörer bei einem Telefon. Wenn du dir vorstellst,

Jochen

das ist wie so eine Verbindung, so eine

Jochen

Internet-TCP-Verbindung ist halt wie so

Jochen

eine Telefonverbindung, dann wäre Socket

Jochen

irgendwie der Hörer, wo man irgendwie was reinwerfen kann,

Jochen

was dann auf der anderen Seite rauskommt. Und dann kannst du

Jochen

in beide Richtungen auch was reinwerfen.

Jochen

Bei HTTP ist halt nicht so, sondern

Jochen

HTTP ist eher so wie

Jochen

Rohrpost. Da wirfst du halt

Jochen

was rein und das...

Jochen

Quatsch, das ist auch Unsinn. Das wäre auch

Jochen

bidirektional.

Jochen

HTTP ist eher so wie...

Jochen

Wie so ein Katapult.

Jochen

Katapult in eine

Jochen

Richtung, fliegt immer was vor die Stippmauer.

Jochen

Du hast

Jochen

eine Telefonverbindung, aber

Jochen

auf der Serverseite hast du nur...

Jochen

Oder du bist in so einem Bandiseil

Jochen

und versuchst mit der Hand immer ins Wasser.

Jochen

Ach, diese ganzen Vergleiche sind nicht gut.

Jochen

Das stimmt alles nicht.

Jochen

Ja, mir fällt jetzt kein guter Vergleich ein.

Jochen

Das ist aber auf jeden Fall so.

Jochen

Du hast halt eben keine Verbindung zu deinen Clients.

Jochen

Du kannst die nicht benachrichtigen,

Jochen

dass sich irgendwas geändert hat.

Jochen

Du kannst immer nur darauf warten,

Jochen

dass sie dich fragen.

Jochen

Du kannst ein Fax hin und her schicken oder sowas.

Jochen

Ja, du kannst halt nichts dahin schicken.

Jochen

Du kannst halt nur darauf warten,

Jochen

dass dich jemand fragt.

Jochen

Und das ist halt,

Jochen

du bist halt so wie

Jochen

beim Bahnhof,

Jochen

die Informationen.

Jochen

Die Leute können zu dir kommen und dich irgendwas fragen,

Jochen

aber wenn jetzt der Zug

Jochen

ausfällt, die Wagenreihung

Jochen

sich ändert oder Godzilla drüber gelaufen ist,

Jochen

dann kannst du das

Jochen

den ganzen Reisenden nicht

Jochen

sagen, sondern die müssen kommen

Jochen

und dich fragen, quasi.

Jochen

Ja, man könnte ja so eine Durchsage haben,

Dominik

aber so weit sind wir jetzt noch nicht, das ist viel zu modern.

Jochen

Ja, genau, da geht es dann

Jochen

natürlich schon wieder kaputt mit der Metapher.

Jochen

ja, also

Jochen

eben, wenn du dann

Jochen

WebSockets hast, dann geht es halt doch. Dann hast du eben eine Verbindung

Jochen

zu einem Client und den kannst du dann in Echtzeit direkt

Dominik

sagen. Wie mache ich WebSockets an?

Dominik

Also bei Django hast du gesagt Channels. Ja, Django

Jochen

Channels ist eine, das Problem ist aber, du brauchst

Jochen

halt einen anderen Server,

Jochen

einen Applikationsserver, der das kann.

Dominik

Und welcher Applikationsserver kann WebSockets?

Dominik

Der kommt

Jochen

dann da mit Django Channel Strike mit, der heißt irgendwie

Jochen

Daphne.

Jochen

Und ja,

Jochen

es gibt auch, glaube ich, einen, der

Jochen

so ähnlich ist wie Unicorn, der heißt bloß ein bisschen

Jochen

anders, der das dann auch kann.

Jochen

Aber

Jochen

genau, also das ist alles

Jochen

nicht mehr so einfach dann.

Dominik

Ja, aber jetzt habe ich schon wieder eine Menge gelernt,

Dominik

ich bin viel weiter gekommen. Was mir jetzt

Dominik

das Einzige, was mir noch fehlt tatsächlich, wäre jetzt das

Dominik

Indie-Web, was ich jetzt da irgendwie bauen wollte.

Jochen

Achso, Indie-Web-Geschichten, genau, dafür brauchst

Jochen

du, also wenn du eine eigene Domain hast, ist schon mal sehr gut,

Jochen

dann kannst du schon mal eine Menge machen

Jochen

und das auch

Jochen

und vor allen Dingen kannst du eine Menge nachrüsten.

Jochen

Ansonsten bei Django sieht es da momentan noch nicht so richtig

Jochen

doll aus, also

Jochen

da muss man noch ein bisschen was basteln.

Jochen

Ja, ich habe jetzt tatsächlich

Dominik

irgendwie geguckt, wir haben jetzt die ganze Zeit über Django geredet, aber du kannst

Dominik

einfach auch irgendwie jetzt ein Flasho und Pyramid einfach

Dominik

da nehmen, ist eigentlich relativ egal. Ja, da gibt es auch nichts.

Dominik

Aber dann gibt es halt immer die

Dominik

anderen Module, die man dann irgendwie sich herausfinden muss,

Dominik

welche das dann sind und das funktioniert aber dann quasi

Dominik

relativ ähnlich.

Jochen

Genau. Also Indie-Web-Geschichten

Jochen

ist momentan eher noch alles so in der PHP-Welt

Jochen

zu Hause.

Jochen

Ja, so ist es halt.

Jochen

Das heißt, ich muss dann einfach den

Dominik

Ketti auf ein PHP-Verzeichnis schicken?

Dominik

Wenn du jetzt...

Dominik

Nee,

Jochen

du könntest... Also ich weiß nicht,

Jochen

wie man das heutzutage so macht mit PHP.

Jochen

Ich hoffe, dass auch mal da die Zeiten,

Jochen

wo man da irgendwie so eine Web-Route

Jochen

hatte und da irgendwie PHP-Dateien,

Jochen

die dann irgendwie magisch ausgeführt werden über Mod.php

Jochen

oder so. Und Apache, ich hoffe ja mal,

Jochen

dass das nicht mehr so ist.

Jochen

Sondern dass man da auch das inzwischen so macht,

Jochen

dass man da halt irgendwie Caddy davor hat

Jochen

oder irgendwie Nginx und dann hast du halt

Jochen

Applikationsserver, die halt PHP...

Dominik

Aber im Worst Case könntest du sagen, dass ich neben dem Caddy

Dominik

dann einfach ein Apache mit einem Mod.php laufen

Dominik

habe und der dann Ansprüche hat auf den nächsten Port.

Dominik

Ja, könntest du ja natürlich auch machen.

Jochen

Du kannst ja einfach ein Caddy sagen, so das bitte

Jochen

diese Domain oder

Jochen

diese Subdomain oder was auch immer an den Apache

Jochen

weiterreichen geht natürlich auch und den in einen eigenen Container packen.

Dominik

Klar. Und dann für das Indie-Werb,

Dominik

was brauche ich denn da noch? Also eigentlich auch, sagen wir mal.

Dominik

Ja, kommt halt darauf an, was du machen möchtest.

Jochen

Aber da müssen wir noch mal, also weiß ich jetzt ehrlich gesagt,

Dominik

aber das ist nicht so genau. Okay, das machen wir dann noch mal

Dominik

von extern. Da haben wir ja schon mal ein bisschen kurz eingerichtet.

Dominik

Aber das könnt ihr euch bestimmt auch einlegen, da gibt es ja Dokus zu.

Dominik

Aber das geht alles mit dem selben Server.

Dominik

Also ja, GitLab haben wir gesagt,

Dominik

kannst du auch selber drauf bauen, wenn du deine eigene Versionskontrolle

Dominik

bauen willst, dann ein GitLab-Server.

Dominik

Das wird wahrscheinlich auch einfach ein

Dominik

Dienst sein, oder? Demon?

Dominik

Was ist das?

Jochen

Ja, das ist einfach auch wieder eine Webgeschichte.

Jochen

GitLab ist einfach auch nur so ein Webfrontend.

Jochen

Ruby und Rails ist halt, ich weiß nicht genau,

Jochen

wie aufwendig das zu hosten ist.

Jochen

Also irgendwann wird es dann natürlich schwerer.

Jochen

Also wenn du 10 Container hast oder 20,

Jochen

irgendwann wird es dann mit dem Hauptspeicher ein bisschen eng.

Jochen

Keine Ahnung.

Jochen

Brauchen wir möglicherweise auch eine eigene Datenbank?

Jochen

Ja.

Dominik

Also Datenbanken sollte man nicht so viele nehmen.

Dominik

Man sollte die meisten Sachen in dieselbe Datenbank packen,

Dominik

weil Datenbanken viel Dinge brauchen.

Dominik

Nein?

Jochen

Ich würde das tatsächlich so machen.

Dominik

Ganz viele kleine Container, ganz viele kleine Datenbanken.

Jochen

Nee, ich würde das nach Systemen auftrennen.

Jochen

Nach Projekten.

Jochen

Und dann immer einen eigenen Container

Jochen

für die Datenbanken machen und das nicht alles

Jochen

auf eine Datenbank packen, weil

Jochen

auch da wiederum, wenn du das halt irgendwie

Jochen

updatest oder so, du möchtest ja eigentlich, oder du bist halt

Jochen

dann, du begibst dich dann in das Gebiet.

Jochen

Du musst die Datenbank löschen für ein Projekt und dann

Jochen

sind alle Projekte blutsch.

Jochen

Du upgradest die Datenbank und dann sind alle Projekte down.

Jochen

Das willst du ja nicht eigentlich.

Jochen

Sondern du willst halt auch vielleicht mit

Jochen

einem Projekt auf einer bestimmten Datenbank-Version

Jochen

bleiben können und so.

Jochen

Und du willst halt die ganzen Systeme voneinander isolieren.

Jochen

Es ist natürlich effizienter, wenn du irgendwo einen Datenbank-Server

Jochen

hast, wo alle

Jochen

deine Datenbanken liegen. Wäre viel effizienter,

Jochen

aber ist halt viel schwerer,

Jochen

was die,

Jochen

was den Betrieb angeht.

Dominik

Das heißt, ich muss dann von meinem Web-Server auf den Datenbank-Server

Dominik

immer hin und her connecten oder sowas.

Dominik

Naja, es ist halt einfach,

Dominik

du musst dann

Jochen

plötzlich Dinge tun. Du musst dann

Jochen

irgendwie, da musst du Backups haben,

Jochen

musst du auch so haben, aber das kriegst du alles

Jochen

in deinem Projekt unter. Aber wenn du jetzt

Jochen

einen eigenen Datenbank-Server hast, dann ist das

Jochen

mit dem Backup immer alles nicht mehr so einfach.

Jochen

Also wenn du das machst, dann bist du halt schon im Profibereich

Jochen

irgendwie unterwegs, dann machst du sonst nichts mehr.

Jochen

Dann machst du genau das nur noch. Und die Frage ist,

Jochen

ja, für Hobbygeschichten lohnt sich das ja

Jochen

überhaupt gar nicht.

Jochen

Ja, dann sind wir wieder,

Dominik

ich glaube, den Kreis können wir jetzt schließen. Wir sind ja

Dominik

nämlich bei der Taiga angekommen, weil

Dominik

die möchte ich jetzt vielleicht auch noch laufen lassen. Ich hätte gerne

Dominik

ein paar Kanban-Boards irgendwie für mich persönlich, die ich dann

Dominik

selber hoste. Genau dasselbe, ich muss da wieder

Dominik

was hochfahren, was Routen über da in Keddy

Dominik

und Abdeckung laufen und läuft.

Dominik

Ja, super, also ja,

Dominik

wenn ich das irgendwie, ich bin gespannt, wie lange ich dafür brauche,

Dominik

bis das alles rennt. Ich gebe euch

Dominik

die Zeit. Ja, wenn,

Dominik

am Ball bleiben.

Jochen

Das ist auch, aber ich meine, wenn du,

Jochen

also ich höre, du willst eine ganze Menge Zeug betreiben,

Jochen

da brauchst du wahrscheinlich dann schon

Jochen

eher so eigene Hardware oder sagen wir so, dann wird es mit

Jochen

eigener Hardware deutlich günstiger, als wenn du

Jochen

jetzt da irgendwie

Jochen

eine virtuelle

Jochen

Container irgendwie dir mietest, der dick genug ist,

Jochen

dass du das alles damit machen kannst, das wird dann relativ schnell teuer.

Jochen

Ja, ja, also der RAM ist glaube ich das

Jochen

größte Problem. Ja, RAM ist irgendwie das, ja, würde ich auch

Jochen

sagen. Ja, ich habe noch so einen kleinen Eck,

Dominik

aber mit dem ist es auch irgendwie doof und

Dominik

ja, ich muss überlegen, was da irgendwie

Dominik

am besten in Frage kommt. Aber damit

Jochen

kannst du ja vielleicht starten, du kannst ja zu Hause anfangen.

Dominik

Ja, ja, der ist schon, der läuft schon eine ganze Weile, aber das

Dominik

macht keinen Spaß.

Dominik

Ja, aber ich muss ja

Dominik

immer so ein ganzes System bauen und so, aber ich möchte die ganze

Dominik

nachher dann einfach wieder umbauen können, dass das

Dominik

nicht jedes Mal dieser ganze Konfigurationsaufwand ist.

Dominik

Ich habe jetzt irgendwie im Fedora-Server dann irgendwie

Dominik

hingestellt, dass ich irgendwie einige Sachen auch konnte,

Dominik

der auch in den Postgres auch lief und irgendwie

Dominik

auch dann Dango konnte, aber dass das alles nicht so

Dominik

gewesen ist wollte.

Dominik

Aber wir haben jetzt auf jeden Fall, das finde ich total super,

Dominik

ich habe da keinen Candy, kein Redux und nichts

Dominik

da gebaut, das war mir bisher völlig unbekannt

Dominik

und ja, finde ich super, dass man das

Dominik

alles so machen kann. Also bis jetzt geht es ja immer nur

Dominik

so, Docker-Containers bauen, dann läuft das

Dominik

alles irgendwie magisch, aber wenn man nicht so wirklich versteht, was dann

Dominik

dahinter steckt, ist das nochmal

Dominik

mal eine ganz andere Hürde, glaube ich, auch zu verstehen, warum

Dominik

was gerade nicht geht oder so.

Dominik

Vielen Dank, dass du mir das alles wieder heute hier erklärt hast.

Jochen

Ja, ich meine, jetzt weiß ich nicht,

Jochen

ob das alles irgendwie klarer geworden ist oder nur noch

Jochen

viel verwirrender. Nein, nein, nein, das war richtig, richtig,

Jochen

richtig super. Eine große Erleuchtung

Dominik

und man kann sich das ja alles auch mal

Dominik

zurückspulen oder nochmal langsam abspulen.

Dominik

Ja.

Jochen

Ich fand's echt cool. Ja, also auf jeden Fall

Jochen

eine tolle Folge für mich mal heute hier.

Jochen

Ich mag die natürlich immer.

Jochen

Das ist ganz persönlich auch gut.

Jochen

Ja, und genau, also

Jochen

ja, also

Jochen

macht auch Spaß und

Jochen

ich denke, dass man zumindest, also

Jochen

wenn man so ein paar Anregungen

Jochen

hat, wie man selber eine

Jochen

Webseite irgendwie oder Django

Jochen

Python-Kram im Web betreiben

Jochen

kann und wenn man das eigentlich vielleicht

Jochen

heutzutage so macht, dann ist das ja auch schon mal nicht so

Jochen

schlecht, weil man muss eh viel recherchieren

Jochen

und bei Django würde ich sagen, irgendwie

Jochen

Buch kaufen, Cookie-Cutter-Template

Jochen

verwenden.

Jochen

Ja, also ich

Dominik

Ich lese jetzt gleich erstmal die Mail von Thorsten durch

Dominik

und freue mich, dass ihr heute alle wieder zugehört habt.

Dominik

Fand ich richtig super.

Dominik

Pics machen wir nicht.

Jochen

Ich habe ja sowieso auch keine...

Jochen

Ja, mit Pics der Woche habt ihr es ja heute Morgen.

Jochen

Habe ich schon verbrannt, wie gesagt, am Anfang.

Jochen

Machen wir dann diesmal nicht.

Jochen

Ja, das machen wir nächstes Mal.

Jochen

Gut.

Jochen

Okay.

Jochen

Ja, dann super, dass ihr wieder reingeschaltet habt.

Jochen

Bleibt uns gewogen.

Jochen

Immer dann, wann ihr auch hört,

Dominik

ob gerade die Sterne scheinen oder die Sonne brüht.

Dominik

Ja, wir hören uns.

Dominik

Jo.

Dominik

Bis später.

Dominik

Jo, tschüss.

Dominik

Tschüss.