Transkript: Deployment von Webapplikationen

· Zurück zur Episode

Vollständiges Transkript der Episode. Zeitstempel beziehen sich auf die Audiowiedergabe.

Ja.

Dominik

Hallo liebe Hörerinnen und Hörer.

Dominik

Hier sind wir wieder.

Dominik

Diesmal bei der zwölften Episode vom Python Podcast.

Dominik

Was machen wir heute?

Dominik

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.

Dominik

Jochen ist wieder da, wir sind im Wintergarten.

Dominik

Sommergarten ist wieder viel zu heiß.

Wir hoffen euch geht's gut.

Dominik

Hört uns gerne zu.

Dominik

Schreibt uns gerne alles, was ihr wollt, alles, was ihr möchtet.

Dominik

An hallo.pythonpodcast.de Ja, schöne Grüße.

Jochen

Ja, genau, jetzt haben auch tatsächlich Leute inzwischen so ein bisschen angefangen, die Kommentarfunktion zu benutzen, da war ich ja irgendwie.

Dominik

Ja, unser Pocketcast-Schepter-Marsch funktioniert nicht so wirklich.

Dominik

Wir wollen irgendwann nochmal ein bisschen daran basteln, dass das dann mal geht.

Jochen

Ja, unter den Kommentaren müssen wir wahrscheinlich auch noch so ein bisschen was tun.

Jochen

Da wäre es vielleicht nicht so schlecht, wenn man eine E-Mail-Benachrichtigung kriegen könnte.

Jochen

Oder vielleicht zumindest ein Kommentar-Feed oder sowas.

Muss ich mal gucken.

Jochen

Geht bestimmt.

Jochen

Habe ich mir schon mal auf die To-Do-Liste geschrieben, aber muss auch irgendwie, es ist nicht nur sehr warm, es ist auch irgendwie sehr wenig Zeit unterhand für alle möglichen Dinge.

Ja, ja, alles auf einmal.

Jochen

So ist das halt.

Jochen

Ja.

Jochen

Aber genau, so ein bisschen haben wir ja schon.

Jochen

Insofern brauchen wir uns nicht die ganze Zeit nur zu beschweren, sondern auch ein bisschen was erzählen.

Dominik

Ja, die sind durchherrichtlich ja ganz viel mit lustigen Dingen, wie man, wieso man, warum man den ganzen Unsinn

Jochen

überhaupt macht.

Jochen

Ja, ja.

Jochen

Ich finde es ein interessantes Thema.

Jochen

Und naja, das ist ehrlich gesagt, ich meine, so Inspirationen aus anderen Podcasts, die ich so höre, zu nehmen, ist momentan auch so ziemlich das Einzige, wo ich Inspirationen nie hernehmen kann.

Jochen

Daher dachte ich, nehme ich mal irgendwie die Veröffentlichung von Jungle for Professionals von Will Vincent, die jetzt gerade irgendwie dieses Wochenende passiert ist, zum Anlass, da auch so ein bisschen was zu zu sagen, weil ich hatte so beim Durchschnitt, ich habe es noch nicht komplett durchgelesen, aber ich habe es so ein bisschen reingeguckt.

Dominik

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

News Szene.

Jochen

Ja, Moment, genau, genau, Moment.

News.

Jochen

Ja, alles klar, habe ich gesetzt.

Jochen

Ja, so beim Durchblättern habe ich schon gedacht, so, okay, das sind genau die Sachen, mit denen ich auch schon irgendwie lange rumgeplagt habe und das ist wirklich sehr schön gemacht.

Jochen

Und ja, das ist eine Menge, eine Menge Zeug.

Jochen

Also wie betreibt man eigentlich überhaupt irgendwie so eine Webseite da draußen im Netz und was macht man da alles?

Jochen

Und gerade jetzt speziell irgendwie was Django angeht, was muss man da alles tun.

Jochen

Und insofern, wenn einen das interessiert oder man das Problem irgendwie hat, dann kann ich dieses Buch auch durchaus empfehlen.

Jochen

Das ist eine sehr schöne Zusammenfassung von all den Dingen, die man da so beachten sollte.

Jochen

Ja, aber eben, genau.

Jochen

Also ich fand immer, das kam immer zu kurz, also auch wenn man sich so andere Bücher anguckt.

Jochen

Dieser Teil, da wird dann immer gesagt, so, naja, Hände wedeln, das ist alles kompliziert, das ist nicht so einfach, fragt einfach euer Obs-Team.

Jochen

Ja, und dann hat man das vielleicht gar nicht.

Das ist blöd.

Jochen

Ja.

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, 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 alle Synergien nutzen, die wir kriegen können.

Jochen

Ich glaube, du wolltest ja auch irgendwie so eine Webseite haben oder so.

Dominik

Ja, ja, genau.

Dominik

Ich würde so einen Server mal selber auch irgendwie aufsetzen und da brauche ich so ein bisschen Hilfe natürlich bei und gucken, was man mit Python alles machen kann und dadurch hätte ich gleich ein bisschen mit.

Dominik

Haben wir noch irgendwelche News aus der Szene, die wir vielleicht dann noch hier reinbekommen?

Jochen

Ja, ich würde einfach mal die Sachen, die so passiert sind, einfach nach und nach.

Jochen

Was haben wir denn da noch so?

Dominik

Du hast noch so einen Podcast gehört am Wochenende.

Dominik

Data Engineering.

Dominik

Da hast du irgendwas Spannendes zu erzählen.

Jochen

Ja, aber das weiß ich gar nicht, ob das jetzt so super dieses Format passt.

Jochen

Da ging es um eine Firma, die halt so Label Data Labeling macht.

Jochen

Also gut, ich mache ja auch viel Machine Learning Zeugs Data Science und da, also ich fand das deswegen gut, also weil, also da ging, ich glaube, wie hieß es die Firma normal?

Jochen

Cloudworker oder so, der Chef von denen, einer von Gründer, hat er halt irgendwie auf dem Data Engineering Podcast da was zu erzählt und das, was er so beschrieben hat, das sind die Probleme, die man normalerweise kriegt, wenn man irgendwie Firmen dabei helfen will, irgendwas in die Richtung zu machen, das kam mir schon alles sehr bekannt vor, weil das sind halt auch die Dinge, die ich immer beobachte, wenn ich da irgendwelche Projekte zu mache.

Jochen

Und ja, das sind halt so eben, wenn man die meisten denken, das ist kein Problem, woher kriegt man eigentlich Daten, dabei ist das ein Riesenproblem.

Jochen

Also das ist oft etwas, was nicht wirklich gelöst wird oder wo viel größere Schwierigkeiten dann tatsächlich lauern als sonst einfach.

Dominik

Das sind nicht alle Machine Learning, aber die haben gar keine Daten, um

Jochen

das zu tun.

Jochen

Genau, oder denken, sie haben die Daten, kommen aber irgendwie nicht ran oder brauchen die Daten aber in einem anderen Format und dann gibt es irgendwelche Abteilungen, die sich da querstellen.

Das ist immer furchtbar.

Jochen

Also das ist immer ganz schrecklich, an die Daten ranzukommen, ist meistens ein großes Problem.

Jochen

Und der hat ja auch so ein paar lustige Beispiele dafür, wie momentan da, also auch welche kuriose Ideen da Leute kommen, um Daten zu bekommen.

Jochen

Also momentan ist es zum Beispiel, also wenn man irgendwas mit Bilderkennung machen möchte oder so braucht man halt auch oft viele, viele Daten.

Jochen

Und in Las Vegas scheint es wohl mittlerweile üblich zu sein, dass da irgendwie die irgendwie.

Dominik

Hotelzimmer werden gefilmt.

Jochen

Ja, Hotelzimmer, oder man mietet auf Airbnb irgendwie diverse Geschichten und bezahlt mehr oder weniger oder gibt Leuten Goodies dafür, dass sie sich da reinstellen und dann darf man Fotos von ihnen machen oder so, weil man ja irgendwie unterschiedliche Leute in unterschiedlichen Situationen haben muss.

Jochen

Nicht, dass irgendwie das Modell dann nur lernt, irgendwie den gleichen Raum wieder zu erkennen.

Jochen

Das wäre ja doof, deswegen braucht man unterschiedlich.

Jochen

Und es ist nicht so einfach.

Jochen

Und dann ist es natürlich auch relativ schnell, relativ teuer, um die Datenversucht selber zu generieren.

Jochen

Oder muss irgendwie mit Drohnen rumfliegen und Sachen fotografieren und sowas.

Dominik

Klingt ja mit großem Spaß.

Jochen

Ja, es klingt nach großem Spaß, aber es ist auch so ein bisschen, das ist alles so Wilder Westen momentan so ein bisschen.

Jochen

Was ja auch, ja, das wäre durchaus Spaß machen.

Ja, ja, genau.

Brown Cookie Nein.

Jochen

Genau, genau, das habe ich gehört, das fand ich ganz cool.

Jochen

Kann man sich mal anhören, ich werde das einfach den Link dazu in die Shownotes packen.

Jochen

Das hat jetzt aber gar nicht so viel mit Python zu tun, sondern es war eher so, ja, wie kriege ich das eigentlich hin, wenn ich viele Daten zu annotieren habe und zu labeln?

Jochen

Eher so Data Science Machine Learning Geschichten.

Dominik

Dann hat die S-Kys was getwittert, zum nächsten Camp, glaube ich, war das.

Jochen

Ja, ah, okay.

Jochen

Genau, da ging es um Pre-Talks, glaube ich.

Jochen

Ja.

Meine ich.

Jochen

Nein, nein.

Jochen

Doch?

Jochen

Doch, ja, doch, genau, das ist es.

Jochen

Zwar ist das so ein Konferenz, ähm, ja, Organisationssoftware, die halt irgendwie viele Leute verwenden.

Jochen

Ist auch so eigentlich ganz cool, Django-basiert.

Jochen

Die wurde auch verwendet, um zum Beispiel die Subscribe, diese Podcast-Konferenz zu.

Ah, ja, da waren wir auch, ja.

Jochen

Auch waren.

Jochen

Deswegen kam mir das schon so bekannt vor.

Jochen

Es wurde auch damit organisiert und viele Events im CCC-Umfeld, vor allen Dingen wohl auch das Camp, wird halt damit geplant.

Jochen

Und denen fehlt irgendwie ein ordentliches Ticketsystem und irgendwie das auch Pre-Talks irgendwie mit E-Mails ordentlich umgehen kann und so.

Jochen

Und deswegen hat er auf Twitter mal gefragt, ob es da nicht Leute gibt, die ja Lust hätten, sich mit zu beschäftigen oder vielleicht im Rahmen von einem Sprint auf dem Camp irgendwie da was dran zu tun.

Jochen

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 Tango 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.

Jochen

Und ja, finde ich eine gute Gelegenheit.

Jochen

Ich würde da auch hingehen, wenn ich auf dem Camp wäre.

Jochen

Ich weiß es aber.

Jochen

Ich fürchte, ich werde nicht da sein.

Jochen

Ganz vielleicht doch, aber ja, wahrscheinlich nicht.

Jochen

Daher wird das leider nicht funktionieren, aber vielleicht kann ich nicht mehr.

Dominik

Wann ist das denn überhaupt vielleicht für irgendjemanden geneigten?

Jochen

Das Camp ist irgendwie Ende August.

Ich habe es schon ausverkauft, oder?

Schon lange jetzt.

Jochen

Ja, ja, schon lange.

Jochen

Moment, ich guck mal gerade das CCC-Camp, wann ist denn das?

Jochen

Also irgendwie 20.

Jochen

bis 25.8.

Dominik

Irgendwo in der Nähe.

So einem Monat.

Jochen

Genau.

Jochen

Ja, also, ist auf jeden Fall.

Jochen

Wenn da zufällig jemand hingeht oder so, dann ist das sicher eine gute Gelegenheit, um sich mal intensiver mit Django beschäftigen zu können und auch was Sinnvolles damit zu tun, was ja auch nicht so, dafür gibt es ja auch gar nicht so wahnsinnig viele Gelegenheiten oft.

Jochen

Cool.

Jochen

Ja.

Jochen

Und, ach, da hat eine Überleitung, die da vielleicht auch direkt Sinn macht, ist, habe ich auch gehört in einem Podcast.

Jochen

Ja, ich bin momentan viel auf Spielplätzen unterwegs und höre da Podcast.

Dominik

Kindertoben, ne?

Dominik

In der Sonne rumsteht.

Jochen

Und zwar ging es da um Tiger-IO.

Jochen

Halt nicht so wie das gefährliche Raubtier, sondern mehr so wie diese öte Weite Ödnis im Norden.

Dominik

Das Projektmanagement-Tool.

Dominik

Ja, das werden wir doch später besprechen.

Jochen

Nee, aber das passt jetzt super, das hier ran zu pflanschen, weil das ist nämlich, könnte man super auch mit den Peatalks eigentlich verbinden.

Jochen

Weil, naja, da fehlt halt vielleicht so ein bisschen ein Ticketsystem und das Tiger hat das auch schon eingebaut.

Jochen

Und das hat irgendwie ein ziemlich cooles Tickets-System eigentlich.

Jochen

Und das ist halt auch Django und das ist vor allen Dingen ein Django Rest-Framework und hat eine super API.

Jochen

Das heißt, man kann das alles toll auch irgendwie ansteuern.

Dominik

Jetzt müssen wir nochmal kurz erkennen, was denn Tiger jetzt überhaupt ist.

Dominik

Also Tiger ist halt ein Projektmanagement-Tool, wo man Boards bauen kann, Kanbuns bauen kann.

Dominik

So ein bisschen wie Trello, wenn ihr das vielleicht kennt oder so.

Jochen

Wobei, ich würde sagen, also wenn man irgendwie Jira hat sich das Beileid, wäre es kein Jahr.

Ja, tatsächlich.

Jochen

Ich war öfter mal das Missvergnügen, irgendwie da mich mit beschäftigen zu wissen.

Jochen

Und das war immer, es ist da immer meistens eher Schmerz.

Jochen

Es kann aber auch sein, dass es einfach, ich meine, es ist einfach viel Zeug und ich habe jetzt auch meistens nicht so viel Lust, mich wie ordentlich haben, mit Projektmanagement Software zu beschäftigen.

Jochen

Daher, vielleicht lag es auch einfach daran, dass ich da nie so wirklich durchgeschaut habe, wie das funktioniert und dann schnell was machen wollte.

Jochen

Und das ging dann halt nicht, weil es kompliziert ist und dann war ich irgendwie frustriert.

Mag es sein.

Jochen

Vielleicht ist es auch einfach ein furchtbares Tool.

Jochen

Kann sein.

Dominik

Also ich konnte es auch nie leiden.

Jochen

Ja, das haben wir so auf der komplexen Enterprise-Seite irgendwie möglicherweise und dann irgendwie sowas wie Trello.

Jochen

Also die Mutterfirma von Jira ist Atlassian, die auch mal so, ähm, wie hieß das, Bitwacket gemacht haben und so, die sich jetzt aber eher so in die Projektmanagement-Software begeben haben, was wahrscheinlich einen Schauerschacht super.

Jochen

Und auf der anderen Seite Trello, genau.

Jochen

Das eigentlich von den Leuten, die auch Stack Overflow gemacht haben, irgendwie mal gegründet worden, aber ja verkauft worden an Atlassian.

Jochen

Aber das ist eher so eine leichtgewichtige Geschichte und gefällt mir, der Ansatz gefällt mir irgendwie besser, aber auch wie man das bedient, gefällt mir besser.

Jochen

Kann natürlich nicht so viel wie Jira.

Jochen

Und das sind sozusagen vielleicht die beiden Pole, die so von super komplexen Enterprise bis zu, naja, relativ einfach und schlank und leicht zu bedienen.

Jochen

Auf der anderen Seite, dazwischen gibt es aber von Atlassian jetzt nichts.

Jochen

Und da ist, glaube ich, oder da positioniert sich Taiga selber, als ist ein bisschen, hat ein bisschen mehr Features als Trello, aber ist nicht ganz so kompliziert wie jetzt Jira.

Jochen

Aber, und es hat halt als Kernfeature halt eine API, sodass man quasi alles, man kann sogar mit der API mehr machen, als man jetzt mit dem Frontend machen könnte.

Jochen

Daher, ja, es gibt irgendwie mobile Apps, die man da verwenden kann, die jemand anders gebaut hat, aber der gesehen hat, dass man die API verwenden kann und dann hat er das einfach mal gebaut.

Dominik

Ja, also wir werden auch später noch erzählen, wie man sowas denn auf dem Server hostet.

Dominik

Das ist ja das, was wir damit tun.

Jochen

Genau, wenn man das installieren wollte, ist es auch komplett freie Software.

Jochen

Das heißt, man kann das irgendwie lokal sich installieren und da betreiben.

Jochen

Das ist ja auch für viele Leute wahrscheinlich ganz wichtig, dass man das tun kann.

Jochen

Und man kann halt auch reingucken und schauen, wie die da so Sachen implementiert haben.

Jochen

Ich habe so ein bisschen reingeguckt und war das eigentlich ganz gut.

Dominik

Seine eigenen Boards bauen, seine eigenen Trelleboards organisieren, kann man Boards auf seinem eigenen Server basteln.

Dominik

Und sowas habe ich auf jeden Fall vor.

Dominik

Finde ich ziemlich cool und ich bin schon ziemlich gespannt, wie das alles funktioniert.

Jochen

Ja, genau, genau.

Jochen

Also Scrum macht das Ding oder man macht halt, kann halt auch, irgendwie kann man damit machen.

Jochen

Ja, und kann man sich ja mal anschauen, ist eigentlich ganz nett.

Jochen

Ja, was hatten wir noch?

Dominik

Ja, wir wollten eigentlich noch ganz kurz auf die Frage von Arnim eingehen, der hat uns eine E-Mail geschickt hatte.

Jochen

Oh, das haben wir auch verschludert, irgendwie das Ding.

Dominik

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

Dominik

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

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

Dominik

Aber das wird noch ein bisschen dauern.

Dominik

Und deswegen, Sophie, ja, was meinst du denn überhaupt damit Arnim?

Dominik

Also vielleicht nochmal irgendwelche Fragen, es gibt irgendwie da nicht so ganz klar, welche Methode.

Jochen

Ich dachte, ich wüsste, was das gemeint wäre, aber dann habe ich nochmal gegoogelt und dachte so, oh nee, ich weiß doch nicht.

Jochen

Weil, also ich glaube, das kam als Reaktion auf einen Pick aus einer Folge von Anfang Mai, wo wir erwähnt hatten, dass es matt-matt gibt.

Jochen

Das Ding macht, sozusagen guckt halt, ob, das ist mehr so eine Geschichte, um zu schauen, ob deine Tests halbwegs abdecken, was dein Code so tut, indem es einfach deinen Code zufällig verändert und dann guck, ob die Tests brechen oder nicht.

Jochen

Und wenn dein Tod zufällig verändert werden kann, ohne dass dann Tests sprechen, dann weißt du halt, okay, hast du ein Problem.

Jochen

Und ja, sie nennen das Mutation-Testing, das ist eigentlich auch eine ganz nette Idee.

Jochen

Aber das würde ich jetzt Error-Driven Development, weiß ich nicht.

Jochen

Also ich habe dann noch, also Leute benutzen den Begriff gerne als sozusagen Gegenbegriff zu Test-driven Development, ja, sozusagen, also beziehungsweise schreiben dann halt, dass wenn du kein Test-Driven Development machst, dann machst du halt Error-Driven Development.

Jochen

Was vielleicht, wenn man sich das mal klar macht, also natürlich ist das irgendwie schon so, und wenn man sich das mal klar macht, dann kann man sich auch vielleicht vorstellen, dass es nicht so eine superschlaue Idee ist, sondern dass man das vielleicht dann gleich richtig machen kann.

Jochen

Wobei, naja, ich meine, ich würde auch dieses Test-Driven Development Cool Aid nicht irgendwie nicht einfach so schlucken, sondern da also man sollte Sachen vielleicht nicht so total übertreiben, was die Reinheit angeht, der Gedanken.

Jochen

Ich probiere auch oft lieber Dinge erstmal aus oder so, bevor ich dann Tests schreibe, weil man legt sich halt auch, was die Implementation angeht, ziemlich fest, wenn man Tests schreibt.

Jochen

Damit sollte man sich dann schon halbwicher sein, was das Ding eigentlich machen soll, bevor man das tut.

Jochen

Aber ja, es ist auf jeden Fall Tests schreiben ist eine gute Idee und sozusagen sich nicht von den Fehlern, die User an Reporten, die quasi die Tests als Tests zu benutzen, ist wahrscheinlich eine ganz, ganz schlaue Idee.

Jochen

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

Jochen

Insofern nochmal nachpacken.

Jochen

Und wir machen auf jeden Fall nochmal eine Folge zu Testing.

Jochen

Wir müssen uns nur noch jemanden finden, der irgendwie Lust hat, damit uns zu überzureden und so.

Dominik

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

Dominik

Ja, was nochmal, es ist natürlich auch schon fast ein Monat her jetzt.

Wir haben ja schon Juli.

Dominik

Es gab eine Folge über Visual Studio Code und da auch über Test, da kam ich gerade drauf, glaube ich, die man mit Visual Studio Code machen kann und das Debugging-System auf TalkPython to me.

Jochen

Ja, ja, ja.

Jochen

Das war irgendwie der, glaube ich, der Chef von den Produktownern für Visual Studio Code, irgendwie, der da interviewt wurde.

Jochen

Der hat eine Menge auch interessante Sachen erzählt.

Jochen

Ja, vor allen Dingen, dass Visual Studio Code halt auch irgendwie bei Python-Entwicklern so super populär ist, irgendwie, was sie, wobei sie gar nicht so gerechnet hätten am Anfang, aber das hat sich irgendwie so rausgestellt.

Jochen

Offenbar gab es da irgendwie so eine Marktlücke.

Jochen

Ja, ich benutze ja jetzt auch schon eine Zeit lang Visual Studio Code.

Jochen

Hast du mich angesteckt?

Ja.

Jochen

War eine gute Idee.

Jochen

Es ist tatsächlich auch ein Editoralisier.

Jochen

Ich meine, es ist so eine.

Jochen

Viele Leute mögen ja dieses Elektronen, diese, ist auch ein elektronbasierter Editor, insofern.

Jochen

Ja, viele mögen das nicht so, aber es funktioniert ziemlich.

Jochen

Also wenn ich das zum Beispiel vergleiche mit Pychar, Python verwende ich, habe ich auch irgendwie eine Zeit lang verwendet.

Jochen

Oder fand ich auch ab und zu immer noch, aber tatsächlich fühlt sich das irgendwie deutlich.

Softer an, so smoother irgendwie.

Jochen

Ja, irgendwie snappier.

Jochen

Ich weiß nicht, was kommt man noch für andere.

Es gibt auch

Dominik

ein paar Sachen, die funktionieren direkt.

Jochen

Es ist einfach viel schneller.

Jochen

Es fühlt sich schneller an.

Jochen

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

Jochen

Die Sachen reagieren einfach viel.

Jochen

Also die Latenz, wenn man auf irgendwas drückt oder so oder irgendeine Tastenkombination angibt, die Latenz, bis dann was passiert, ist deutlich schneller als.

Dominik

Vielleicht hast du ja noch ein Rechner gekauft inzwischen.

Jochen

Nee, nee, daran liegt es nicht.

Jochen

Und ja, das ist halt, also ja, ich weiß nicht, wie sie das, ich weiß auch nicht, vielleicht macht auch Python da irgendwas falsch, ich keine Ahnung.

Dominik

Ja, das ist echt cool.

Dominik

Also irgendwie, wenn man seinen Code damit verwalten will, irgendwie auf Git oder sonst irgendwo, das funktioniert super, Integration mit Azure ist toll.

Dominik

Man kann direkt automatisch CI irgendwie CD machen und das alles pushen.

Dominik

Man kann Live-Sharing machen und dann gemeinsam am Code arbeiten, weil es auch zum Beispiel funktioniert.

Jochen

Mehr Link

Dominik

und Multicursor und Übertragung und Gemeinden Terminal und mittlerweile, also in einem Nightly-Bild war das drin, ich glaube, das müsste mittlerweile so etwas von einem Stable sein, dass man jetzt auch über SSH einfach sich irgendwo auf eine Maschine legen kann und da im Verzeichnis entwickeln kann.

Dominik

Das ist auch ziemlich praktisch.

Dominik

Kannst du auf deine VSL-Maschine gehen oder auf den RESP-P oder auf eine anderen Serverfindung

Jochen

lustig bist und direkt da editieren?

Jochen

Das ist ja auch oft ein Argument, was man hört, dass Leute sagen, ja, ich nutze halt VI oder Wim, weil da habe ich überall die gleiche Entwicklungsumgebung und ja, auch wenn ich mich auf irgendwelchen Produktionsmaschinen einlogge, kann ich da auch mal meine Umgebung, so wie ich sage.

Jochen

Aber genau, es ist natürlich ein gewisser Argument, aber geht mit VS-Code jetzt auch.

Jochen

Braucht man gar nicht mehr unbedingt Wim verwenden.

Dominik

Also falls noch jemand rausbekommen hat, wie man sowas wie Foxdot verwendet mit VS Code, das habe ich nämlich noch nicht hinbekommen, aber das ist Live-Evaluation von Python-Code, da hätte ich noch Lust drauf, 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 und dann spielt ja direkt die eine Teile, dann kann man Musik machen mit Foxdot für Python.

Dominik

Das finde ich noch super, sonst muss ich dann mich irgendwie dran basteln, aber ja, so viel.

Dominik

Ja, wenig Zeit für so viele Projekte, ja.

Jochen

Du hattest irgendwas noch reingeschrieben.

Jochen

PySimple.

Dominik

PySimple GUI, ja, da gibt es jetzt irgendwie eine einigermaßen vernünftige Version, die ist jetzt auch irgendwie vor, weiß nicht, wann das rausgekommen ist, vor ein, zwei Wochen oder so.

Dominik

Die man ganz gut nutzen kann.

Dominik

Das ist ein Wrapper für T Kinta, TK, oder PyQ5.

Dominik

Kann man beides benutzen mit derselben Syntax.

Dominik

Man kann halt einfach angeben, welches der dann visualisieren soll und hat einen relativ einfachen GUI für die, ja, Python ist ja nicht so besonders stark bei grafischer Programmierung und das kann man damit aber ganz gut und vor allen Dingen schnell und effektiv erledigen.

Dominik

Das lohnt sich vielleicht auch mal kurz rauszuschauen.

Dominik

Genau, jetzt hast du mir meinen Woche schon fast geknaut.

Achso, sorry.

Jochen

Ja, ja, ich will einfach dann nehmen.

Jochen

Oh, ein Podcast, den ich da auch noch gerne noch erwähnen würde, ist auch eine der letzten Django-Chat-Folgen mit Simon Willison.

Jochen

Also einem der Leute, die auch Django quasi so mit außer Taufe gehoben haben.

Jochen

Ziemlich etwas ist also mit, vielleicht, das war Audioqualität manchmal so ein bisschen, aber ansonsten inhaltlich fand ich das sehr, sehr gut.

Jochen

Das war das war sehr, sehr spannend, was er da so alles erzählt hat, also was die Geschichte von Django angeht, aber auch was so die aktuellen Entwicklungen sind, was er für spannend hält, das halt gerade irgendwie, ja, so momentan spielt, Async-Geschichten spielen dann eine große Rolle.

Jochen

Die sind gerade ja sehr spannend oder sein Privat- oder sein Pet-Projekt, was aber jetzt auch mittlerweile so groß geworden ist, dass

Pet oder Pad, was Tiere.

Jochen

Ja, ja, so ein Nebenprojekt halt, aber es ist nicht mehr wirklich so neben, sondern er hat er irgendwie auch eine.

Dominik

Das Python Halsband für die Katze, oder?

Jochen

Nee, ja, also er hat da irgendwie eine, irgendeine Fellowship gekriegt, ich weiß es nicht genau, wo er dann von irgendeiner Uni ein Jahr lang bezahlt wird, dafür das jetzt zu entwickeln.

Jochen

Das ist schon mal, also daher geht auch die Entwicklung damit halt relativ schnell voran.

Jochen

Das Projekt heißt Dataset.

Jochen

Ach so.

Jochen

Genau, damit das ist mir auch früher schon mal aufgefallen, hatte ich bestimmt auch schon mal ein paar Mal erwähnt oder so.

Jochen

Darf ich

schon mal drüber gestolpert, ja?

Jochen

Ja, genau.

Jochen

Werde ich mich, darüber können wir bestimmt auch nochmal eine eigene Sendung machen.

Jochen

Ich wollte mich damit auch noch intensiver beschäftigen.

Jochen

Das ist eigentlich eine sehr coole Idee, irgendwie, wie man mit einer SQL-Lite-Datenbank halt Data, also Datensätze irgendwie verfügbar machen kann, öffentlich, ohne, und zwar auf eine Art, wie man halt sehr, sehr gut das abfragen kann, aber ohne, also man kann ja SQL-Stations einfach verwenden und man kann auch so coole Sachen machen wie JavaScript benutzen, um SQL-Statements zu erzeugen, die man da verwenden kann, um die Daten noch zu fragen, aber einfach gut.

Jochen

Und normalerweise ist alles Pui Bell, weil schrecklich, schrecklich SQL-Injection droht und so, aber mit, wenn man, man kann SQL SQLite so starten, dass man sagt, irgendwie, ja, das ist dann Datenbank-Read-Only.

Jochen

Und dann ist das alles nicht mehr schlimm, weil es kann nichts passieren.

Jochen

Und da ist das, was man normalerweise nicht tun sollte, dann plötzlich alles erlaubt und cool.

Okay.

Jochen

Das ist, ja, es ist einfach, es ist nett.

Jochen

Es hat viele überraschende Wendungen, dieses Ding, wo man sich denkt, so, ach cool, das geht und das kann man so machen.

Dominik

Ja, die Tastette-Folge müssen wir nochmal aufschreiben.

Dominik

Die steht nämlich kann ich noch.

Jochen

Ja, ja, die muss dann noch, die muss da mit drauf.

Jochen

Genau.

Jochen

Das war, also diese Podcast-Episode kann ich Leuten durchaus für Django zu interessieren, ins Herz legen, ist ja sehr nett.

Dominik

Ja, ich würde sagen, jetzt haben wir aber die News-Sail durch und machen den nächsten Chaptermarkt, weil so langsam löchere ich dich jetzt damit, wie das denn jetzt überhaupt funktioniert mit dem Server.

Dominik

Und wir fangen wirklich von ganz Basisbodensatz an.

Dominik

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

Dominik

Und ja, ich möchte mich auch wissen, wie man das am besten macht.

Dominik

So Best Practice, was sagt denn Jochen dazu?

Dominik

Und ja, würde ich sagen, können wir starten jetzt mit unserem Hauptthema, ne?

Server.

Dann starten wir da mal.

Dominik

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

Dominik

Erstmal Server, was ist denn das?

Dominik

Also irgendwo so ein Rechner, der irgendwie bedienbar ist, das sollte ja irgendwie so klar sein.

Dominik

Aber ja, wie nehme ich denn da?

Dominik

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

Dominik

Nämlich irgendeinen Hosting-Anbieter, Cloud, dedizierten Server, virtuellen Server, warum und so.

Dominik

Ich mache ja noch irgendwie jetzt eine Domain und so, ne?

Dominik

Wie wird es denn das irgendwie so?

Jochen

Ja, also was man auf jeden Fall tun sollte, ist halt irgendwie eine Domain selber registrieren und was nicht so, also man sollte vielleicht.

Da schreibst

Dominik

du einen Brief und schickst dir in eine Stelle.

Jochen

Ja, nee, da gibt es ganz viele Anbieter, ich weiß nicht ganz.

Jochen

Es gibt ja diverse Anbieter, da muss man halt ein bisschen Geld bezahlen.

Jochen

Das kostet gar nicht so viel pro Jahr und dann hat man halt ein Domain.

Dominik

Du hast gesagt, selber registrieren, aber es gibt ja verschiedenste Server-Oster, die das alles mit einbieten.

Jochen

Ja, aber das ist vielleicht nicht so eine schlaue Idee, das zu machen, sondern besser.

Aus welchem Grund?

Jochen

Weil man das ja ändern können will.

Jochen

Also bei vielen kann man das auch ändern, das ist kein Problem, aber also ich kenne das auch, dass viele, also so gerade, weiß ich nicht, eben diese Welt, Wald und Wiesen.

Jochen

Da hat man dann oft irgendwie so ein Formular, wo man irgendwie DNS-Geschichten eingeben kann, aber dann halt die Sachen, die man braucht.

Jochen

Also weiß ich nicht, irgendwelche wie heißen diese Dinge?

Jochen

Verified Domain, SPF Records oder es gibt diverse Records, die man unter Umständen einstellen können möchte.

Was ist ein Rekord?

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, die Informationen darüber enthält, wie Namen auf IP-Adressen aufgelöst werden und umgekehrt.

Dominik

Das heißt, da steht irgendwo zusammen, wenn man irgendwie den Name-Server irgendwie fragt, keine Ahnung, der einzige, der jetzt wahrscheinlich bekannt ist, ist irgendwie der von Google mit den vier Achten oder sowas.

Dominik

Oder 844 oder was und dann gibt es ja aber noch einige unabhängigere, wenn man nicht alle seine Daten zu Google schicken möchte.

Dominik

Aber die fragt man dann und die wissen dann, wo, hinter welcher IP oder hinter welchem Namen welcher IP.

Jochen

Ja, man kann auch einen eigenen Resolver betreiben.

Jochen

Also man kann das durchaus von Hand auch machen.

Jochen

Das ist vielleicht mal eine ganz interessante Geschichte, dass man halt irgendwie das mal einfach von Hand mit den S-Abfragen irgendwas resolft.

Jochen

Man resolft das halt so von hinten nach vorne.

Jochen

Also wenn man jetzt irgendwie Python-Podcast.de hätte, dann würde man erstmal gucken, okay, also was man wissen muss ist, man braucht irgendwie so einen Root-Names-Ever, aber wenn er eine IP von dem hat, dann kann man ihn halt fragen, okay, was ist denn der Name-Server, der zuständig ist für die .de-Zone.

Dominik

Der Root-Names-Ever, das sind die großen Knotenpunkte.

Dominik

Ja.

Dominik

Kriege ich das irgendwie raus, wenn ich so einen Trace-Route mache, wo die irgendwie hängen?

Jochen

Ja, die sind weltweit verteilt.

Jochen

Da gibt es ein paar von.

Jochen

Root-Servers.net, irgendwie A.rootServers.net und ein paar, also ich weiß es gar nicht mehr genau, alles schon altes Wissen, vielleicht ist es auch mittlerweile alles anders.

Jochen

Aber es ist, also auf der ganzen Welt sind halt so ein paar von denen verteilt und normalerweise, also einige von denen sind halt einfach, die IP-Adressen sind halt eingebaut in diverse Resolver-Libraries, daher ja, aber das muss man irgendwie wissen, sonst kommt man halt auch nicht weiter.

Jochen

Und von denen kann man sich dann halt durchhangeln bis zu der Domain, die man eigentlich haben möchte.

Jochen

Und quasi für jeden Teil der Domain fragt man dann halt den entsprechenden Name-Server, also über sogenannte eben die Records, also NS-Records sind halt die Records, die zuständig sind, einem zu sagen, was denn der Name-Server zuständige Name-Server ist.

Jochen

Also ich frage halt quasi den NS-Record für Punkt D, den Root-Server, und dann kriege ich halt irgendwie den Names-Server, der zuständig ist für die DE-Zone.

Jochen

Und das ist halt, na, wie heißen sie noch?

Jochen

Hier, äh, äh, Denik.

Jochen

Ah ja.

Jochen

Betracht irgendwo Frankfurt steht, glaube ich.

Jochen

Und die haben dann das DE-Sohn-File irgendwie drin und da steht dann halt drin, wer, also in dem File steht vor allen Dingen die NS-Rekords für alle DE-Domains.

Jochen

Wenn ich jetzt wissen will, wer ist welcher Nameserver ist dann zuständig für Python-Podcast.de, dann hole ich mir eben den NS-Rekord für Python-Podcast in dem Names-Server, der für .de zuständig ist und dann kriege ich das irgendwie zurück.

Dominik

Und ich dann auch irgendwie selber machen, dass ich sage so, hey, hier, ich heiße jetzt gerne Dominik meinPython.com oder sowas oder die, wir wollen jetzt nur Denik.

Dominik

Und dann sage ich der Denik so, hey, hier, ich wäre es gerne so, ist das noch frei?

Dominik

Und schicke das dann da irgendwie da bei den Liste.

Jochen

Das geht nicht unbedingt so einfach.

Dominik

Das heißt, ich musste ein Registrier, Registrar verwenden.

Jochen

Ja, also früher ging das auch, da hat man einfach, ist man da vorbeigegangen beim DNI, hat er die Tür gekopf und gesagt, hallo.

Jochen

Ich hatte mal sogar eine Domain.

Jochen

Das ging, aber das ging nicht schon lange nicht mehr.

Dominik

Kamen so viele Leute wahrscheinlich auf diese Idee, ja.

Jochen

Ja, das geht schon lange nicht mehr.

Jochen

Aber genau, man braucht.

Dominik

Aber Gandhi macht das dann zum Beispiel, wenn ich jetzt bei den Karte mache.

Jochen

Ja, aber es gibt ganz viele unterschiedliche.

Jochen

Also ich weiß gar nicht, ob es da, ich weiß nicht, ob das, was ich da für eine gut ist oder nicht, keine Ahnung.

Jochen

Es spielt auch keine große Rolle, weil es ist, die können alle irgendwie mehr oder weniger das gleiche.

Jochen

Ja, aber was wichtig ist, dass man selber das registriert hat und selber dann sozusagen die Sachen ändern kann und halt auch das umziehen kann, wenn man mag und so.

Jochen

Und das ist halt bei diesen, wenn man das beim Provider macht, oft ist es auch so, dass es geht, aber manchmal halt auch nicht.

Jochen

Und dann hat man ein Problem, wenn man zum Beispiel den Hoster wechseln möchte.

Ja.

Jochen

Und ja, genau.

Jochen

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

Jochen

Ja, okay.

Eigentlich braucht man noch für viele andere Dinge.

Jochen

Wenn man in die Web machen will, braucht man auch einen eigenen Domain.

Dominik

Das braucht man 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 jetzt tatsächlich einen Eigencomputer, der mit Kern festkommt.

Jochen

Oh, oh, das ist mein Job schon vergessen.

Jochen

Ich war mit dem Auflösung nicht fertig.

Jochen

Also wenn man jetzt den NS-Rekord von einer Domain hat, das heißt noch nicht, dann muss man den Names aber noch fragen, was ist denn jetzt zum Beispiel der A-Rekord?

Jochen

Das ist halt das, was halt die IP einem gibt für eine bestimmte Domain.

Jochen

Ja, es gibt auch noch andere, es gibt MX-Rekords, die halt einem sagen, wo die wer zuständig ist für Mail, oder es gibt halt, ja, es gibt ja eine ganze Menge Zeugs, es gibt Text, es gibt doch Textrecords und weißer Teufel.

Jochen

Und manche von denen werden auch missbraucht, um andere Sachen zu signalisieren, aber wenn man solche Sachen machen möchte wie man möchte Mail irgendwie von einem Drittanbieter machen lassen, weil man keinen Bock hat, das irgendwie alles selber aufzusetzen und zu maintain, dann muss man da eine ganze Menge Records setzen und so.

Jochen

Oder auch für andere Geschichten, Services, die man da benutzen kann, damit halt sozusagen andere mehr oder weniger unter der Domain auftreten können.

Dominik

Das würde ich auf jeden Fall auch machen.

Dominik

Ich möchte ja keine ganzen Projekte unter unterschiedlichen Domains, die ich mir dann irgendwie buche, vielleicht auf einen größeren Server legen und die dann irgendwie da reinrouten oder.

Jochen

Ja, das ist nochmal ein anderes Problem, das geht natürlich auch, aber allein ist gut, DNS unter Kontrolle zu haben.

Jochen

Jedenfalls, also man muss nicht unbedingt einen eigenen Nameserver betreiben.

Jochen

Das mache ich teilweise noch, aber das ist auch irgendwie eher schmerzhaft.

Jochen

Weil man hat auch direkt so mit Security-Geschichten oft und dann gibt es so diese komischen DNS-Amplification-Angriffe und blöde Geschichten und so Zeugs, mit denen man zu tun kriegt.

Jochen

Ja, aber also man will das eigentlich, glaube ich, nicht unbedingt selber betreiben, wenn man da nicht Spaß dran hat.

Jochen

Aber trotzdem möchte man die Rekords bestimmen können.

Jochen

Weil das für viele Services, die man sonst so benutzen möchte, halt auch wichtig ist.

Jochen

So, ich glaube, damit sind wir aber mit DNS im Grunde durch.

Dominik

Ja, das können wir ja endlich auf einen Server.

Dominik

Jetzt haben wir so einen Server, der hat dann irgendwie so ein IP, ne?

Dominik

Dann wissen noch gar nicht, was wir nicht, aber.

Jochen

Nee, noch nicht.

Jochen

Wir haben nur das DNS unter Kontrolle.

Jochen

Wir können das jetzt auf eine beliebige IP zeigen lassen, sozusagen zum Beispiel einfach.

Dominik

Es gibt sogar was für die Dünn-DNS, das heißt, wir könnten sogar zu Hause einfach einen Rechner ans Netz hängen oder so, wenn wir einen

Namen haben und dann.

Jochen

Dann musst du dann den Name-Server selber betreiben, irgendwie wahrscheinlich.

Dominik

Ich glaube, es gibt so einen Service, da muss man immer nur den mal sagen, hey, ich bin jetzt hier, ich bin jetzt hier, ich bin jetzt hier irgendwie so.

Jochen

Ja, ja klar.

Jochen

Es gibt auch in vielen Routern ist das eingebaut, zum Beispiel eine Fritzbox macht das.

Jochen

Dem kann man einfach, da kann man einfach sagen, so, das ist mein Dünn DNS-Anbieter und dann kriegt man halt immer eine entsprechende, dann macht die das automatisch.

Jochen

Dass sie halt immer, wenn man sich die IP-Adresse ändert, dann schickt die halt irgendwie einen Request dahin und sagt, okay, äh.

Dominik

Findest du mich hier, hallo?

Jochen

Genau, und dann kann man auch seinen Kram zu Hause immer erreichen.

Jochen

Wobei man da wahrscheinlich eigentlich eher sowas wie ein VPN verwenden will, aber den DNS geht auch.

Jochen

Aber ist eigentlich heutzutage alles nicht mehr so richtig relevant, glaube ich.

Jochen

Ja, genau, also wenn man DNS unter Kontrolle hat, dann kann man halt jetzt, wenn man das.

Jochen

Wenn man jetzt einen Server hätte irgendwo, der unter einer IP verfügbar ist, dann kann man sozusagen die Domain darauf zeigen lassen.

Dominik

So, und jetzt ist die Frage, was für einen Rechner will ich denn da haben?

Dominik

Will ich irgendwie vom großen Rechenzentrum haben?

Dominik

Will ich einen bei mir zu Hause in die Ecke stellen?

Dominik

Möchte ich irgendwie so einen Cloud-Server mir mieten?

Dominik

Möchte ich so einen dedizierten Server haben?

Dominik

Das kann man ja skalieren von 200 bis, weiß ich nicht, wahrscheinlich 200, 2000 Euro im Jahr.

Jochen

Ja, das kommt darauf an.

Jochen

Also was man damit vorhat, für die meisten Leute wird irgendwie da weniger, wahrscheinlich eher mehr sein, also wird wenig reichen, weil.

Dominik

Ja, es gibt ja auch so WordPress-Hosting-Anbieter oder sowas, da kann man wahrscheinlich nichts anderes machen aus dem WordPress-Blog drauf hosten, der auch schon ziemlich viel kann, wenn man jetzt nicht so viele Besucher hat, aber.

Jochen

Ja, ist aber nicht das, was man wahrscheinlich haben will.

Jochen

Wenn man jetzt Python macht oder so, da möchte man das eigentlich schon selber tun können.

Jochen

Also es gibt auch eben für Python-Hosting nicht so viele Anbieter, die da.

Dominik

Macht das denn jetzt Python-Hosting, weil ich dachte, genau gibt es einen Computer.

Jochen

Genau, ja.

Jochen

Das ist halt, also bei WordPress ist ja klar, es ist halt die Software.

Jochen

So was gibt es natürlich für bestimmte Python-Geschichten auch.

Jochen

Also es gibt zum Beispiel, muss ich jetzt nochmal nachgucken, habe ich letztens irgendwie gesehen, wenn man jetzt einfach nur einen CMS haben will unter einer Domain, da gibt es da auch Anbieter.

Jochen

Die Ego, Diego, Diego, ich weiß es nicht mehr, wir müssen nachgucken.

Jochen

Die bieten an, dass man irgendwie einen Wagtail CMS oder halt einen Django CMS, CMS bekommt, da gehostet und das ist dann so ähnlich wie WordPress-Hosting.

Dominik

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

Jochen

Das, nee, das, ja, das weiß ich, das weiß ich nicht, ob die da extra Container pro Seite hochfahren.

Jochen

Ich denke nicht.

Jochen

Also wenn man sich zum Beispiel, also wenn man sich anguckt, was da die User sind, die man teilweise, wenn man manchen Feldern versucht, irgendwas einzugeben, dann kommt da eine Liste der User hoch oder so.

Jochen

Da kommt ein ziemlich wildes Zeug hoch.

Jochen

Das heißt, ich gehe mal davon aus, dass es nicht irgendwie pro Domain oder so gekapselt, sondern dass es halt eine Datenbank, auf der alle sind.

Jochen

Und dann gibt es halt unterschiedliche Sites.

Jochen

Und das ist ja auch durchaus vernünftig unter Umständen.

Jochen

Also du brauchst nicht unbedingt einen Container für eine eigene Seite da.

Jochen

Das ist gar nicht nötig.

Jochen

Ist ja bei WordPress-Geschichten wahrscheinlich auch nicht so.

Jochen

Und genau, das gibt durchaus da auch Anbieter, aber das sind viel weniger als jetzt ein PHP-Umfeld oder WordPress oder so, das ist halt, wo es eine große Geschichte ist.

Jochen

Was eher eine Rolle spielt, wenn man jetzt Python-Applikationen irgendwo hosten will, ist halt sowas wie, also wenn man jetzt kommerzielle Anbieter, wir gehen einfach mal von einfach zu, es wird schwieriger oder komplizierter oder man kann mehr selber kontrollieren durch.

Jochen

Wenn man so so, die heißen alle so Platform as a Service-Anbieter sich anguckt.

Jochen

Also ganz oben wäre sowas wie eben, du kriegst halt, du klickst halt irgendwie dein Wactail-CMS und hast dann halt ein fertiges CMS unter deiner Domain.

Jochen

Das wäre halt sozusagen alles

Dominik

am besten noch mit Admin-Interface und unten.

Jochen

Genau, das wäre dann auch irgendwie so quasi, ich weiß gar nicht, ob das das wäre, wahrscheinlich Software as a Service, mehr oder weniger Modell.

Jochen

Dann Plattform as a Service ist, naja, du sagst nicht, du kriegst jetzt nicht eine fertiges, äh fertige Webseite sozusagen, schlüsselfertig, sondern du kannst.

Dominik

Das ist eine fertige Webseite, schön, ja.

Jochen

Du kriegst halt irgendwie du hast halt einen Account bei Heroku oder sowas.

Jochen

Anbieter werden das sowas wie Heroku oder Python Anywhere oder so.

Jochen

Und da.

Dominik

Ich finde den Vergleich mit diesen Häusern habe ich toll.

Dominik

Wir müssen ein Hochhaus hinstellen und eine Gartenhütte.

Jochen

Ja, also sagen wir mal so, das ist halt im Grunde, ja, da sind das dann oft wahrscheinlich Container, die da hochgefahren werden.

Jochen

Und du hast halt solche Dinge wie Datenbank, ist halt schon einfach irgendwie mal einmal.

Du musst in das Lobby.

Jochen

Es ist quasi so eine Art Hotel.

Jochen

Obwohl ich weiß nicht, ob diese Analogie trägt.

Jochen

Also wenn Software as a Service, also wenn du diesen.

Dominik

Ich hätte gerne einen Kaffee.

Jochen

Ja, was wäre denn das fertige WordPress, was man sich nur noch einloggen braucht?

Dominik

Da ist der Pool schon vorgeheizt und.

Jochen

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

Jochen

Wo man halt sich um nichts kümmern muss.

Dominik

Und Heroku ist die Ferienwohnung, wo du selber kostet.

Jochen

Ja, und Heroku ist so ein bisschen die, es ist eher so nicht mal das, es ist eher so der Schuhkarton-Eigentumswohnung irgendwo, so ist ja der Container halt.

Jochen

Oder es ist halt wie der Container auf dem Schiff, ja, wo man irgendwie die ganze Inneneinrichtung und so das muss man halt selber machen, weil es ist halt nicht drin und das kann man auch komplett austauschen.

Jochen

Das ist natürlich auch irgendwie ein Vorteil.

Da kannst du halt sagen, okay, ich deploy da halt irgendwie ein Flask-Ding hin oder halt eben ein Django hin oder so.

Jochen

Aber du bist da halt nicht festgelegt, ja.

Jochen

Also auch nicht auf, ja.

Jochen

Und ja.

Jochen

Aber diverse andere Geschichten werden dann schon abgenommen.

Jochen

Also man kümmert sich sozusagen nur noch um den Teil, der halt, wenn man alles selber machen würde, im Applikationsserver jetzt nenne ich das mal so laufen würde.

Jochen

Um den Applikationsteil kümmert man sich, ja, aber sowas wie Datenbank, das macht man nicht selbst.

Jochen

Da gibt es dann halt, und es gibt auch endlos viele andere Plugins und Dinge, die man dazu klicken kann, Suchmaschinen oder irgendwelche anderen Sachen, die man halt auch verwenden kann.

Jochen

Und das muss man alles nicht selber machen, bei Heruku jetzt beispielsweise, sondern das ist halt dann einfach da.

Jochen

Und man kümmert sich nur um die Applikationen, die man dahin deployt und natürlich definiert man irgendwie die Datenbank, dadurch, dass man jetzt in Dumbo beispielsweise die ganzen Modelle halt irgendwie definiert und die werden dann halt auch in der Postgres irgendwie angelegt, aber man betreibt die Postgres-Datenbank nicht mehr selber, sondern das macht dann wieder Heroku oder einer von den Drittanbietern, die halt ein Postgres-Plugin für Heroku anbieten.

Jochen

Für einen.

Jochen

Was natürlich dazu führt, dass es wesentlich weniger aufwendig ist für einen Server.

Jochen

Aber man ist halt auch so ein bisschen eingeschränkt und diese Geschichten führen halt oft dazu, also ich habe das tatsächlich mal versucht, weil ich habe versucht, für das ist ja auch sowas, ne?

Jochen

Wenn man.

Dominik

Das klingt nicht nach einem gelungenen Experiment.

Jochen

Ja, für Django Cast jetzt diese, wollte ich einfach mal so, wie ist das denn, wenn man das jetzt auf Hiroku mal deployen will zum Testen, damit man es halt draußen irgendwo laufen hat, aber ja, man möchte jetzt nicht vielleicht irgendwie so ein Commitment eingehen, da jeden Wohnat Geld zu bezahlen oder so, oder hat halt dann auch keinen Root-Server irgendwo rumstehen, den man benutzen könnte.

Dominik

Darauf kommen wir irgendwie

Jochen

später, ja?

Jochen

Ja, dann wäre es doch ganz praktisch, wenn man das einfach nach Hiroku oder so deployt und dann mal guckt, wie das so funktioniert.

Jochen

Da ist das eigentlich ganz nett.

Jochen

Und zumal halt all diese Anbieter alle so freie Container anbieten, die so für Hobby-Benutzung oder so, die halt nichts kosten, die ja dann auch bestimmte Anforderungen nicht erfüllen, beziehungsweise sind keine garantierte, die sind beim ersten Laden oft langsam, weil das wahrscheinlich unten drunter irgendwie Docker-Container oder vielleicht benutzen die dann irgendwie Lambda-Funktionen bei ABS oder so, wer weiß.

Dominik

Ja, genau, aber das ist das dann ja schon wieder, aber bleiben wir weiter.

Jochen

Gleich noch auf.

Jochen

Also da kann es sein, dass der Container erst gestartet wird, wenn man, wenn ein Request reinkommt.

Jochen

Und dann ist das halt ein bisschen langsam und doof und aber es stört ja nicht, wenn man das eh nur so mal ausprobieren möchte.

Jochen

Und ja, und dann habe ich mich da mich dran gemacht, da so ein bisschen eine Anleitung für zu schreiben.

Jochen

Und dann ist mir relativ schnell aufgefallen.

Jochen

Es ist nicht so einfach.

Jochen

Und ich war überrascht, wie knifflig das ist.

Jochen

Und ich bin immer noch ein bisschen überrascht, dass auch Heruke da keine gute Anleitung für hat.

Jochen

Wie macht man das eigentlich?

Jochen

Nun machen die nicht nur Python, die machen auch Ruby und Rails und auch NoteJazz und weißer Teufel, aber trotzdem, es ist schon irgendwie, es war schwerer, als ich dachte.

Jochen

Und ich dachte mir so, ui, also hm.

Dominik

Wenn der Jemand nachhin knapp hat, dann weiß ich jetzt nicht, ob ich jetzt anfinge,

unbedingt mich da so reinstürzen müsste in diesem Weg.

Jochen

Ich meine, auch dieses Django for Professionals Buch, kann man sich auch mal angucken, auch der, auch wohl Vincent meinte schon so, das ist alles irgendwie mal, also die Sachen so hinzukriegen, dass sie dann tatsächlich funktionieren, ist oft schwerer als man so denkt und es war echt nicht mal ganz einfach.

Dominik

Das Containerschiff ist vielleicht überladen und hatte irgendwie halbe Schlagzeite, man weiß es nicht genau.

Jochen

Ja, also, aber es ist halt, also ich fand jetzt überraschend, wie viel wenig einfacher das ist, als wenn man alles selber macht.

Jochen

Also der Schritt von, also ehrlich gesagt, ich finde es, also es mag aber auch daran liegen, dass ich das häufiger selber mache irgendwie, ich fand es einfacher, das selber zu machen als bei Heroku.

Jochen

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

Jochen

Gut, kann auch sein, dass mir das, vielleicht ist das vielen Leuten egal, aber ich denke mir halt so, naja, heutzutage Webseite ohne SSL, das ist eigentlich eher kaputt.

Jochen

Also das muss eigentlich SSL, muss irgendwie gehen und eigentlich ist das ja auch keine Probleme mit Let's Encrypt und so.

Jochen

Aber für die Hobby-Seite bei Heroku, bei denen, funktioniert das nicht.

Jochen

Und das hat mich, es hat mir, es ist mir nicht leicht gefallen, rauszukriegen, dass es wirklich nicht funktioniert.

Jochen

Und ich musste da tiefgraben und ich bin in irgendwelchen Issues gelandet, wo dann einer der Entwickler bei Heroku dann irgendwie schrieben, sollten wir vielleicht mal in die Dokumentation schreiben, dass das wirklich nicht geht.

Jochen

Also auch mit diesem Weg geht es nicht.

Jochen

Und da dachte ich schon so, ja, solltet ihr vielleicht, weil irgendwie, ich habe jetzt gerade da irgendwie ganz schön Zeit reingesteckt, das rauszukommen, also weil es sah so aus, als würde es vielleicht doch funktionieren, wenn man dann irgendwie die Zertifikate von Hand hochlädt oder so.

Jochen

Nee, tut's nicht.

Jochen

Und dann habe ich mir erstmal lokal irgendwie Satbot installiert oder irgendwie auch rumgeeiert und ja, aber es ging dann alles am Schluss nicht.

Jochen

Also SSL HTTPS, Heroku nur, wenn man es hat, sonst geht's nicht.

Jochen

Und ja, auch die, wenn man jetzt irgendwie einen CDN verwendet oder so, äh, Content

Dominik

Elivery Network, ja, da müssen wir auch nochmal gleich noch Cloud bauen und ja, hat es und alles noch dazu.

Ist alles

Dominik

anfängerfreundliche Folgejochen.

Jochen

Ja, ist alles nicht so nicht so einfach.

Jochen

Auf jeden Fall, man, also ich meine, man kann sich das mal angucken, wenn man jetzt auf HTTPS nicht so viel Wert liegt oder dann kriegt man auch mit, kommt man mit Heroku wahrscheinlich schon halbwegs schnell da irgendwie zum Ziel, ob Python Annivers eine andere Alternative, es gibt, glaube ich, noch ein paar.

Jochen

Und das kann man auf jeden Fall auch verwenden.

Jochen

Also man hat auf jeden Fall diesen ganzen operativen Kram von der Backe, was natürlich auch schon mal ein großer Vorteil ist.

Jochen

Also man muss sich nicht dafür, also man muss sich nicht selber dafür interessieren, wie das Zeug jetzt, ob das oben ist oder nicht.

Jochen

Oder das macht halt jemand für einen und das ist ja auch schon mal nicht so schlecht.

Jochen

Ja, das wäre sozusagen eine Zwischenschicht zwischen irgendwie alles ist fertig und

Dominik

hört euch nicht so an, als würde ich das machen wollen,

Jochen

ehrlich gesagt.

Jochen

Doch, also ich kann mir durchaus vorstellen, dass es gute Gründe gibt, das zu machen.

Dominik

Nee, für mich nicht.

Jochen

Ja, finde ich jetzt nicht, aber

Dominik

nach der Gedückung, wir sind ausgeschlossen, ja.

Jochen

Für dich jetzt nicht, aber ich denke schon, dass es für viele, aber es gibt, was auch oft eine Falle ist, dann, wenn Startups irgendwie anfangen mit sowas, dass sie dann irgendwann doch viele Datenbank-Querys machen und da sind auch, das ist eine ganze Menge ist irgendwie frei.

Jochen

Aber wenn man dann aus diesem Bereich, wo das frei ist, irgendwie rauskommt, dann wird es sehr, sehr schnell brutal teuer.

Jochen

Und das ist auch so etwas, was man vielleicht nicht unbedingt haben will.

Jochen

Aber das Problem ist, wenn man dann gerade wächst oder so, dann kann man nicht mehr so schnell irgendwie um.

Dominik

Die Infrastruktur komplett umfassen.

Jochen

Ja, ja, und dann gibt man halt ein Vermögen.

Jochen

Dann gibt man Arm und ein Bein an diese Anbieter.

Jochen

Tja.

Jochen

Was ja irgendwie so dein Geschäftsmodell ist.

Jochen

Ist auch nicht verwerflich, finde ich.

Jochen

Ist okay, aber man sollte sich halt bewusst sein, dass man da eventuell ein Problem bekommen kann.

Jochen

Ja, also das ist eine Möglichkeit, die man halt auch machen.

Dominik

Jetzt müssen wir aber nochmal ganz kurz, bevor wir das alles wieder vergessen haben, kurz eingehend auf Content TV Network, du musst auf Dividual Ocean nochmal kurz erklären und AWS Lambda-Funktion, wo hast du gesagt?

Jochen

Also wenn wir jetzt bei S3, wir sind jetzt bei Stagunter Software as a Service, Platform as a Service.

Jochen

So jetzt wären wir quasi das nächste, was nicht mehr, das, wo man ein bisschen mehr Freiheit hat, aber sozusagen immer noch nicht so viel selber machen muss, wäre dann Infrastructure as a Service.

Jochen

Also das wäre dann halt sowas wie Amazon Easy2, DigitalOcean.

Jochen

Also da bekommt man im Grunde einen Container, auf dem irgendein Linux oder so läuft, wo man sich einloggen kann als Root per SSH.

Jochen

Und dann ist man auf sich alleine gestellt.

Jochen

Den Rest macht man halt halt selber.

Dominik

Das hört sich gar nicht so schlecht an.

Jochen

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

Jochen

Das ist auch, glaube ich, eine ganz nette Geschichte.

Dominik

Fedora, Ubuntu, Debian.

Jochen

Spielt im Grunde keine große Rolle, würde ich jetzt mal so sagen.

Jochen

Also ich.

Jochen

Ne.

Jochen

Nee, das System Python kann man in keinem von den Fällen verwenden.

Jochen

Daher.

Jochen

Ist egal.

Jochen

Muss man eh immer neu installieren oder selber installieren.

Dominik

Hat Fedora jetzt nicht drei standardmäßig alles schon drin

oder so.

Jochen

Ja, trotzdem, nee.

Jochen

Wie war das?

Jochen

Barry Warsaw hat das mal auch auf Twitter geschrieben, so First Rule of Python is you don't use system Python.

Jochen

Das ist keinen Spaß.

Jochen

Ja, also genau, also insofern würde ich sagen, also der einzige Unterschied, den ich noch sehen würde, der relevant ist, ist einmal, welches Paketmanagement-System einem irgendwie besser oder schlechter gefällt und ob man System D mag oder nicht.

Jochen

Weil, genau, wenn man das mag, dann kann man das ja benutzen und da gibt es halt Unterschiede, je nachdem, welche Disperson man verwendet.

Dominik

System D nimmt aber auch dann sowas wie Logging ab oder sowas, das mag man vielleicht nicht.

Jochen

Ja, aber auch vor allen Dingen sowas wie, wie sorgt man eigentlich dafür, dass der Kram, den man laufen haben möchte, eigentlich läuft und am Laufen bleibt und so.

Jochen

Das kann man über System D auch machen.

Jochen

Man kann auch irgendwas anderes nehmen.

Jochen

Ich nehme Supervised D, aber im Grunde ist das so.

Jochen

System 5, ich weiß nicht genau, Init Files, es gibt da auch andere Konzepte, wie man, ja, also System D hat schon nette Konzepte, aber es ist halt auch, es hat also manchmal so.

Dominik

Ja, ich hatte da irgendwie eine ganz spannende Folge dazu nochmal gehört, irgendwann die war in irgendeinem Chaos Radio Express mit einem von den Developern da.

Jochen

Das war schon ein bisschen hier.

Jochen

Ja, äh, na, ja, ist er noch?

Jochen

Namensgericht, keine Ahnung.

Ja, genau.

Jochen

Ja.

Dominik

Okay, also völlig egal, welches System, also ich haue mir da einen Fedora und Ubuntu drauf zum Beispiel, weil ich das so ein bisschen schon kenne oder so.

Dominik

Dann irgendwie mit den Repos schon ein bisschen weiß, wo ich meine Pakete finde und dann ist er to oder warum sollte ich das tun?

Dominik

Warum nicht direkt einen eigenen Server?

Jochen

Ja, genau, weil halt auch da dir das natürlich abgenommen wird, dass du dafür sorgen musst, dass das Ding ordentlich läuft oder so.

Jochen

Ja, du musst dich um viele Dinge nicht kümmern, die du sonst tun müsstest.

Titabieren?

Jochen

Ja, dieses ganze, also was alles, was mit irgendwie Netzwerk zu tun hat.

Dominik

Stecker reinstecken, Strom.

Jochen

Genau, dass das Ding immer oben bleibt, irgendwie Betriebssystemupdates, weiß ich gar nicht noch nicht, stimmt.

Jochen

Das muss man wahrscheinlich dann noch selber machen.

Dominik

Ja, das war ich genau.

Dominik

Die Frage.

Dominik

Managed Server, glaube ich, heißt das

Jochen

oder sowas.

Jochen

Ja, das will man alles wahrscheinlich ehrlich, aber genau.

Jochen

Ja, aber man muss sich also schon um wesentliche Teile der Infrastruktur jetzt bei so einer Geschichte nicht kümmern.

Jochen

Also im Grunde ist halt jeder Container wie der andere und es funktioniert einfach so, ne?

Jochen

Und dann, also das ist schon, das ist schon auch nett, aber man zahlt dafür natürlich auch einen Preis, es ist halt schon teurer, als wenn man jetzt und dann es gibt nochmal so super billige Geschichten auch immer, also die, ich glaube die kleinsten Container, wenn die durchlaufen sollen, die kosten dann irgendwie ein paar zehn Euro im Monat oder sowas, ich weiß es nicht genau.

Jochen

Aber es gibt auch so Dinge wie bei Amazon Light Sale heißt das glaube ich irgendwie, wo man dann für wenige Euro im Monat so ein Ding, einen Container kriegt und bei Digital Ocean gibt es das auch.

Jochen

Und selbst bei sowas wie so einem Hostelby Hetzner oder so kriegt man irgendwie einen Container, der durchläuft für 2,50 Euro oder 3 Euro oder so wenig Geld im Monat.

Jochen

Und hat dann ein richtiges Linux mit, wo man sich als Rout einloggen kann, ist schon natürlich ganz nett.

Dominik

Das will man wahrscheinlich sogar auch cool.

Jochen

Ja, hängt dann davon ab, was man dann, wenn man jetzt eine fette Datenbank braucht, dann geht das halt wahrscheinlich nicht mehr.

Jochen

Dann braucht man halt Hauptspeicher und den hat man da nicht.

Jochen

Aber ja, also so eine Testinstallation.

Dominik

Wann braucht man denn eine fette Datenbank?

Dominik

Also so jetzt als Datenmensch müsst ihr ja wissen, ab wie viel Traffic man ja so irgendwie.

Jochen

Nee, das hat mit dem Traffic gar nicht so viel zu tun, sondern eher viel damit zu tun, wie viele Daten es sind.

Jochen

Weil du willst, dass dein Working-Set im Hauptspeicher ist.

Jochen

Und das heißt, wenn du halt irgendwie ein paar Gigabyte Daten hast, dann willst du halt ein paar Gigabyte Hauptspeicher haben, mindestens mal.

Jochen

So doppelt so viel oder so.

Dominik

Also ungefähr doppelt so groß wie mein Data-Set, sollte der Hauptspeicher dann sein.

Jochen

Ja, also später geht das dann irgendwann nicht mehr, aber ja, sollte schon da reinpassen.

Jochen

Und das, die haben alle wenig Hauptspeicher natürlich, weil die teilen sich, die sind halt auf großen Maschinen meistens, aber es sind viele kleine Container und da muss es halt irgendwie, wenn die alle vier Hauptspeicher verbrauchen, ist halt natürlich irgendwie der Hauptspeicher weg.

Dominik

Und wie kompliziert wäre es denn jetzt da, weiß nicht, wenn man jetzt mehrere kleine Services auf so einem Ding laufen lässt, das einen von denen umzuziehen.

Dominik

Auf eine größere Maschine.

Jochen

Oh, das ist, ja, da bist du dann schon, das ist alles nicht mehr so einfach.

Jochen

Ich würde auch das nicht so machen, dass ich die Sachen da direkt laufen lasse.

Jochen

Kann man auch tun, aber ich würde eher sowas wie Docker nehmen.

Tatsächlich.

Dominik

Also das heißt, du würdest dann auf einem dieser Cloud-Dinger einen Docker bauen, installieren oder.

Jochen

Docker installieren, Docker-Niemen starten und dann halt mit so einem Docker-Compose-File das komplette System hochziehen.

Jochen

So dass dann halt für jeden Service, den man benutzen möchte im System, dass man da hochfährt, dass man dafür einen Container hat.

Jochen

Also man hat einen Container für die Datenbank, man hat einen Container in den Redersystem.

Dominik

Man hört sich dann genau die Dinger auf.

Dominik

Also kann man Docker so einstellen, dass der für alle verschiedene Systeme unterschiedliche Hardware nimmt?

Jochen

Ja, das kannst du natürlich auch tun, aber das würde ich am Anfang auch nicht machen.

Jochen

Nee, und dann geht es eher so in den Bereich von Kubernetes und diesen Geschichten, das willst du nicht.

Jochen

Also das ist auch gar kein Problem.

Jochen

Also das musst du nicht machen.

Dominik

Aber Kubernetes ist eine Krake an Docker-Containern.

Jochen

Ja, da das ist so ein bisschen das Problem mit Docker ist halt, dass der, das zu betreiben, ist halt fies, Netzwerk ist fies, das ist alles, das entwickelt sich auch alles noch, das ist alles nicht so richtig gefestigt, das ist nicht ganz so schlimm wie jetzt bei den JavaScript-Frontends, bei React oder so.

Jochen

Aber es ist schon, es ist nicht so, also man kann sich da nicht so gut drauf verlassen und vor allen Dingen fehlt die Unterstützung für viele Sachen.

Jochen

Und dann gibt es da eben dann, wenn man das im großen, wenn man eine komplette Cloud irgendwo betreiben möchte oder so, dann macht man da andere Geschichten, Management-Geschichten für.

Jochen

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

Jochen

Aber die Frage ist, ob man das braucht.

Jochen

Und wenn du das selber irgendwie nur ein System, das brauchst du nicht.

Jochen

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

Dominik

Ja, also ich habe da bestimmte Voraussetzung tatsächlich, also ich möchte so verschiedene Webseiten betreiben, irgendwie, ne, irgendwie private Sachen.

Dominik

Dann hatten wir mal über Iniveb besprochen, dann irgendwie sind die beiden Service da drauf und dann vielleicht noch irgendwie eine Firmenwebseite mit einem Login und vielleicht noch für IoT so ein bisschen, so ein Server, der da irgendwie läuft und das da irgendwie alles gerne parallel und

Jochen

das ist ja kein Problem.

Dominik

Wie baue ich das denn?

Dominik

Also wo fange ich denn da an?

Dominik

Also ich habe jetzt so einen Server dann Cloud am besten gemietet oder vielleicht doch irgendwie so einen dedizierten irgendwo hingestellt oder einen kleinen Virtuellen genommen.

Jochen

Das hängt halt wieder davon ab.

Jochen

Also ich würde einfach mal, also nur um das halt auszuprobieren, würde ich mit so einer kleinen Geschichte anfangen.

Dominik

Ja, aber das ist meine Frage nach dem Umzug, also wenn ich ja mehr so umziehen, alles normal machen?

Jochen

Nee, musst du nicht.

Jochen

Das ist ja da, dafür hast du ja eine Domain-registriert.

Dominik

Ja, aber den Server muss ich ja umziehen, also die ganzen Sachen muss ich ja nochmal konfigurieren.

Jochen

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

Jochen

Wenn du Docker nimmst, hast du dieses Problem gelöst.

Dominik

Achso, ich baue den Container einfach neu auf einem anderen System.

Jochen

Ja, genau.

Jochen

Sagst du einfach auf dem anderen System, Docker Compose, deinen Docker-Yammel-File, ab, fertig.

Jochen

Nicht mal das, du, also gut, man würde das jetzt nicht von Hand ausführen, sondern man würde dann halt irgendwie das in Systemd anhängen oder in Supervise-D.

Jochen

Normalerweise die Konfiguration dafür legst du auch in dein Projektverzeichnis mit rein.

Jochen

Linkst das nur noch nach etc supervised.conf oder weiß ich, wo die Config-Files dafür liegen.

Jochen

Startest das Ding einmal neu und dann startet er deinen kompletten Kram, ohne dass du noch irgendwas machen.

Jochen

Also wie gesagt, wenn ich auf einem Server das deploye, da muss ich einen Link ziehen.

Jochen

Ich muss etwas an der Caddy Config ändern.

Jochen

Das war's.

Dominik

Stop shop.

Dominik

Ist es in dieses Config?

Dominik

Also ich muss da irgendwas rein, ist die Reihenfolge entscheidend, wie das da drin hängen, weil die dann nacheinander gelaufen?

Dominik

Wie verteilt er die Ressourcen und verteilt er einfach so wie viele er hat?

Jochen

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

Dominik

Ist ein Loadbalancer, was?

Jochen

Wir sind zu weit, wir sind zu weit.

Okay.

Wir müssen nochmal zurück.

Jochen

Ja, also es ging nur darum, wie kriegst du das Zeugs irgendwie auf einer Maschine zum Laufen?

Jochen

Und da würde ich empfehlen, heutzutage Docker zu nehmen.

Jochen

Man kann auch andere Sachen benutzen.

Dominik

Wagrant.

Jochen

Ja, man könnte auf Wagrand benutzen, aber das ist auch, das braucht auch mehr Ressourcen.

Jochen

Also das würde ich jetzt zum Beispiel, wenn du irgendwie so in dem Container, vor allen Dingen, Container ist ja, also es ist natürlich auch irgendwie performance-technisch sehr fies.

Jochen

Also in einem Container nochmal Containergeschichte zu starten, ist vielleicht auch nicht so die schlauste Idee performance-technisch, aber es ist halt zum Entwickeln.

Jochen

Es ist halt so, würde ich sagen, state of the art eigentlich.

Jochen

Oder es ist halt am wenigsten schmerzhaft von allem, was es so momentan gibt.

Jochen

Vagrant kann man lokal ganz gut verwenden.

Jochen

Oder halt, wenn man einen dicken Server hat, aber du kannst es nicht gut verwenden in einem kleinen Container.

Jochen

Weil das braucht halt, das fährt halt wirklich ein komplettes Linux hoch.

Jochen

Pro.

Jochen

Und du kannst natürlich da drin alles wieder betreiben.

Jochen

Du musst dann nicht das in einzelne Container aufbauen.

Jochen

Ja, aber das ist, wenn du wenig Hauptspeicher hast, ist das vielleicht einfach keine gute Idee.

Jochen

Na, und Docker passt da eigentlich ganz gut zu, da hast du dann zwar auch Container in Container, aber es ist nicht so, du fährst nicht jedes Mal ein komplettes Betriebssystem hoch und so.

Jochen

Eine komplette Maschine.

Ja.

Jochen

Du kannst natürlich das auch irgendwie komplett einfach in diesem Container alle deine Services, die du so haben willst, starten.

Jochen

Du kannst halt zum Beispiel so, auch das benutzt man eher für größere Infrastrukturen, um da halt ein komplettes System auszurollen.

Jochen

Das ist eigentlich so Automatisierung deiner Automatisierung deiner Infrastruktur hochziehens, so damit sowas wie Ensible oder so.

Jochen

Oder es gibt auch noch diverse andere, es gibt Solstack, es gibt irgendwie Puppet-Chef.

Jochen

Aber Ensibel wäre jetzt auch Python und damit verwaltest du quasi ein ganzes Inventory an Rechnern irgendwie und sagst dann, roll mein System aus und dann das Ding braucht auch nur SSH, dann connectest du sich auf all die Systeme per SSH und mach dann magisch Dinge, sodass dann da die Services laufen, die da laufen sollen und so.

Jochen

Irgendwie sowas braucht man auch, wenn man Vagrant verwenden wollte, weil du musst ja die Services dann irgendwie in deiner Vagrant, in deiner virtuellen Maschine halt auch zum Laufen kriegen.

Jochen

Das heißt, du musst da irgendwie die entsprechenden Pakete installieren, du musst ja die Services hochfahren, du musst die Config-Files irgendwie mit Templates so irgendwie, also du hast Templates für deine Config-Files, dann musst du die so mit den echten IP-Adressen und so ersetzen, dass dann die richtigen Config-Files da sind, dann muss das Ganze hochgefahren werden und so weiter und so weiter.

Jochen

Und für so ein komplettes System irgendwie Ansible-Rollen nennt man das zu schreiben, das geht alles, habe ich auch schon gemacht und so.

Jochen

Aber das ist eine Menge Arbeit.

Jochen

Also das ist nicht so ohne.

Jochen

Und das dann auszurollen, dauert auch ziemlich lange.

Jochen

Das ist halt auch so ein Nachteil gegenüber Docker.

Jochen

Also das ist halt irgendwie so ein komplettes Ding mit Wagrand hochzuziehen, kann sein, dass das, selbst wenn du einen schnellen Rechner hast, lokal, kann sein, dass das 20 Minuten dauert.

Jochen

Wenn du viele Maschinen hochfallen hast oder so.

Jochen

Kannst du natürlich auch alles in einer Maschine haben, aber dann hast du wieder das Problem, du kannst es nicht mehr aufteilen.

Jochen

Wenn du es jetzt auf andere Maschinen aufteilen wolltest und so und ach, ja.

Jochen

Also, und das ist halt einfach oft zu langsam.

Jochen

Wenn jetzt, wenn du zum Beispiel irgendwas, du versuchst, irgendeine Funktion hinzukriegen, musst dafür irgendeine Bibliothek installieren, die das halt kann, einen Python-Dreiber drumherum, der da irgendwas mit macht.

Jochen

Und du willst halt so schnell iterieren können.

Jochen

Du willst halt schnell irgendwas ausprobieren, geht nicht nochmal.

Jochen

So, und bei Docker dauert so ein Bild für, weiß ich jetzt ein.

Jochen

CPU-Power.

Jochen

Je nachdem, wie viel CPU-Power und Platten und Lets man hat, aber so bei mir dauert das, ich habe, also Standard-Django-Projekt hat bei mir irgendwie die Datenbank, Redis, irgendwie Applikations-Server-Django, vielleicht noch Salary oder so, also fünf, sechs Container, irgendwie sowas.

Jochen

Die alle neu zu bauen, wenn man jetzt zum Beispiel eine Abhängigkeit im Betriebssystem, also sozusagen, wenn man jetzt irgendwie auf Betriebssystemlevel irgendeine Bibliothek braucht oder so, die vorher nicht da war, dann muss man die Docker-File, muss man die Container neu bauen.

Jochen

Und das dauert bei mir so zwei bis drei Minuten.

Lokal.

Dominik

Ja, in der größer der Anwendung natürlich.

Jochen

Ja, in der größer der Anwendung, aber das ist die Anwendung selber, die Jungle-Anwendung hat damit gar nichts mehr zu tun.

Jochen

Der Hauptteil, der da dauert, ist halt tatsächlich die Installation und das Bauen der Container.

Jochen

Und dann halt hinterher müssen nochmal die ganzen Pip-Abhängigkeiten per Pip installiert werden, das dauert auch.

Jochen

Ja, aber das ist halt viel, viel schneller, als wenn man das jetzt per Ansible und Vagrant machen wollte.

Jochen

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

Jochen

Aber das macht einem so gerade vielleicht den Flow noch nicht kaputt.

Jochen

Aber wenn man jetzt irgendwie da dann jedes Mal 20 Minuten warten muss, dann geht man Kaffee trinken und man macht da irgendwas anderes.

Jochen

Und man muss aber möglicherweise zehnmal was anderes ausprobieren, weil oft muss man, bleibt einem nichts übrig, als Sachen auszuprobieren, ob es jetzt so geht und dann, ach scheiße, der Python-Rapper funktioniert nicht, muss einen anderen nehmen, guck mir den nochmal aus.

Jochen

So, und dann, wenn du da zehnmal irgendwas ausprobieren möchtest und du hast immer eine 20 Minuten Latenz dazwischen ist, das macht allen langsam.

Dominik

Du hast gerade gesagt, zu dem Stack von dir gehört noch eine Read, ist das ein Cache, ja, damit man irgendwie die Sachen von der Datenbank direkt verfügbar hat.

Jochen

Ja, einfach nur zum Cachen von beliebigen Dingen.

Jochen

Nicht nur Datenbank.

Jochen

Also es gibt ja auch vielleicht andere Sachen, die länger laufen oder wo man halt.

Dominik

Statische Files oder sowas?

Jochen

Nee, nee, nee, das machen wir nicht.

Nein, nein, nein.

Nein, nein, nein.

Nein.

Okay.

Jochen

Nee.

Jochen

Also es gibt noch, wenn du jetzt statische Files cachen möchtest, das würde man auf der anderen Seite machen.

Jochen

Also Redis ist etwas, die Applikation, also wenn ich jetzt zum Beispiel in Django eine Funktion habe, die irgendwas lange, die irgendwas lange berechnet oder so, dann ist es fertig ist, dann schreibe ich darüber irgendwie Cache-Property oder so zum Beispiel in Django, um zu sagen, um Django zu sagen, cache das hier mal bitte, weil das, ich will das nicht jedes Mal, wenn diese Property jemand, wenn jemand darauf zugreift, möchte ich nicht, dass es jedes Mal neu berechnet wird, weil es soll nur einmal berechnet werden und dann im Cache landen.

Jochen

Und dann verwende ich diesen Dekorator und dann landet das im Redis.

Jochen

Also wenn ich jetzt Redis konfiguriert habe, als der Cache von meiner Django-Applikation.

Für sowas ist es gut.

Jochen

Man kann Redis auch noch für diverse andere Geschichten verwenden.

Jochen

Und wenn ich jetzt sozusagen die statischen Files cachen wollte in Memory, das kann auch durchaus Sinn machen, aber das würde ich an einer anderen Stelle machen.

Jochen

Und zwar vorne dran.

Jochen

Vor dem Django.

Jochen

Vor dem Applikationswagen.

Jochen

Da würde ich einen Barnisch nehmen oder so.

Jochen

Das ist so ein In-Memory-Cache, den man davor hängt.

Jochen

Und der würde halt sozusagen alles, was so an statischen Files gehen oder so, die da durchgehen, halt in-Memory cachen.

Jochen

Oder überhaupt alles, was an statischen Assets drin ist, oder auch andere Sachen auch überhaupt alle Dinge, die identifizierbar sind als cachbar über die Cacheheader.

Jochen

Und das wäre dann viel, viel schneller.

Jochen

Also das macht man dann an der Stelle.

Jochen

Ist jetzt aber in meinen Projekten meistens gar nicht mit drin, weil brauche ich eigentlich meistens nicht, weil ich habe nicht so viel Traffic.

Jochen

Wenn ich jetzt irgendwo viel Traffic hätte, ja, dann macht das wahrscheinlich durchaus Sinn, sowas zu verwenden.

Jochen

Aber ansonsten werden die statischen Assets halt ausgeliefert, entweder von, in meinem Fall meistens vom Caddy.

Jochen

Das ist der, ja, da muss man diesen Stack nochmal komplett durch.

Jochen

Also das, was davor ist, und das ist auch etwas, was leider nicht in den Docker-Geschichten selber mit.

Jochen

Also sagen wir so, wenn man jetzt Cookie Cutter verwendet, um ein Django-Projekt zu erzeugen, dann ist der Caddy schon mit drin, als aber man kann das oft nicht verwenden, wenn man das jetzt auf irgendeine Maschine da draußen deployt oder in einen Container, auf den man sich per Root einloggt.

Jochen

Weil, wenn man da jetzt zum Beispiel mehrere Domains hat, die man beliefern will.

Jochen

Ja, die man da ausliefern will, dann muss der Caddy halt unabhängig von den einzelnen Systemen sein, sonst geht das halt nicht.

Dominik

Was macht der Caddy denn jetzt?

Dominik

Und wir hatten noch, im Salary hast du noch erwähnt, die musst du auch nochmal kurz.

Jochen

Ja, also Caddy ist ein Go-geschriebener Web-Server, der besonders schön integriert ist mit halt Let's Encrypt, sodass halt HTTPS, also SLL, TLS kann, halt ohne, dass man da irgendwie viel konfigurieren muss.

Jochen

Ohne dass man irgendwie Sartboard selber irgendwie verwenden muss.

Jochen

Und also es ist so, ja, HTTPS funktioniert einfach magisch und muss sich nicht mehr kümmern.

Jochen

Das ist halt so der Effekt.

Jochen

Was ja ganz nett ist.

Jochen

Und der ist auch sonst relativ schnell, der ist nicht ganz so schnell wie Nginx oder so, aber ich meine, ob das Ding jetzt, weiß ich nicht, 10.000 Requests pro Sekunde kann oder nur 5000, macht für die allermeisten Leute überhaupt keinen Unterschied, weil sie haben nicht mal einen Request pro Sekunde da, ja, ist egal.

Drei, drei, vier.

Jochen

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

Jochen

Und ja, und das sein Google geschrieben ist, macht vielleicht das Ganze auch noch ein bisschen vertrauenswürdiger, als wenn ich meine Nginx C und so.

Jochen

Wer weiß.

Jochen

Aber naja, eigentlich ist es wurscht.

Jochen

Also was für mich den Ausschlag gibt, den zu verwenden, ist halt die schöne Let's Encrypt Integration.

Jochen

Und ja, der ist sozusagen vor den, vor Django davor.

Jochen

Halt eben um sowas wie Statisch Files auszuliefern, weil das kann halt Django nicht so gut selber.

Jochen

Wobei muss man auch einschränken und sagen, ah, mit White Noise ist das vielleicht nicht mehr so ganz aktuell, aber.

Dominik

Was ist White Noise?

Jochen

Oh Gott.

Jochen

Das ist ein Django.

Jochen

Auf jeden Fall innerhalb von Django kann man das als Third-Party-App installieren.

Jochen

Und das liefert dann Files, also wenn man normalerweise einfach so einen File ausliefern würde in Django, dann zieht man das halt in den Hauptspeicher, also von der Platte in den Hauptspeicher und dann von dem Hauptspeicher schickt man es wieder durch den Kernel Space irgendwie wieder raus über die Netzwerkkarte.

Jochen

Und da wird viele Daten werden da kopiert und das ist alles scheußlich und man blockiert einen Worker-Prozess.

Jochen

Hängt auch wieder davon ab, welchen Applikationsserver verwendet.

Jochen

Unicorn, Micro-Whisky oder Mi-Wisky oder U-WSGI oder so, also das ist alles dergleiche, ich weiß nur nicht, wie er ausgesprochen wird.

Jochen

Man muss ja irgendeinen Applikationsserver verwenden, der sozusagen dieses WSGI-Protokoll spricht mit der Applikation.

Jochen

Und naja, also wenn man das File tatsächlich einfach so selbst ausliefert, dann ist das extrem langsam und dann ist halt bei wenigen Files schon direkt Schluss.

Jochen

Und das ist natürlich etwas, was man, was man nicht haben will.

Jochen

Und wenn man, wenn der Caddy oder auch ein Nginx kann halt problemlos viele Files irgendwie ausliefern und macht das halt nicht so, dass er erst die Files in Hauptspeicher kopiert, dann durch den User, also vom Kernel-Space in den User-Space dann wieder zurückgeschiebt, um das auszuliefern, sondern der verwendet halt einen Kernel, einen syscall-Send-File, um die Files halt rauszu, sagt halt dem Kernel nur irgendwie hier, dieses File, diese Verbindung bitte sehr, liefere

Jochen

aus.

Jochen

So dass das halt ja viel, viel schneller ist.

Jochen

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

Jochen

Und kann da irgendwelche Tricks machen.

Jochen

Teilweise werden die Sachen nicht mehr durch den Hautspeicher, sondern gehen direkt per Zero-Copy TCP irgendwie in den Netzwerkwaffer der Karte oder so von den Platten aus und so.

Jochen

Also gibt es crazy Shit-Optimierungskrams, der da gemacht wird.

Jochen

Bin ich jetzt auch nicht mehr so auf der Höhe, der ist halt wasser als momentan aktuell ist, aber es geht irgendwie eine Menge.

Jochen

Und White Noise macht das, macht auch, verwendet auch Send-File.

Jochen

Insofern ist das da nicht mehr so schlimm.

Jochen

Aber eigentlich will man jetzt auch nicht große Mengen darüber ausliefern, weil der Request ja dann immer noch aufschlägt im Django.

Jochen

Oder jeder, der Request nach einem File und das kann halt viel sein.

Jochen

Wenn man viele kleine Bilder hat auf einer Webseite zum Beispiel, in einer Liste von irgendwelchen Dingen, wo halt immer Bilder dabei sind, dann ist halt jedes Bild macht halt einen Request.

Jochen

Und im moderner Browser machen die ganzen Requests ja auch in parallel.

Jochen

Das heißt, die prügeln halt dann auf deine Applikationsserver ein und das ist halt nicht so gut.

Jochen

Und da was, was, ich mache es nicht so, aber was wohl gut ist, ist halt, man verwendet White Noise und dann da vorne irgendwie Warnish oder sowas oder halt ein CDN, sodass halt beim ersten Mal werden die Sachen dann tatsächlich von White Noise ausgeliefert und danach sind sie halt gecached irgendwo im Contentable Delivery Network oder halt Varnish oder so und dann ist es schnell.

Jochen

Was ich mache, ich verwende meistens den Web-Server eben Caddy oder Nginx vorne dran zum Ausleben der statischen Assets.

Jochen

Da gibt es halt einen Unterschied in Django, sondern so statische Geschichten, das ist sowas wie JavaScript, CSS.

Jochen

Wir faffen dieser ganze Kram halt sozusagen, der zum Projekt halt dazugehört, aber jetzt sich im Grunde nicht ändert.

Dominik

Das für ein Logo, was du immer schon eingebaut hast.

Jochen

Ja, genau.

Jochen

Also wenn man, die Sachen werden dann auch generiert, die Dateinamen, und dann, sobald man da was dran ändert und dann noch Collect Static aufruft, um das halt alles in ein Verzeichnis zu kopieren, das dann halt von einem Webserver ausgeliefert werden kann, dann kriegen die halt unique Namen, sodass es halt man auch sagen kann, die werden für immer gecached, weil wenn es was Neues gibt, dann wird er eh ein anderer Name verwendet.

Jochen

Ja, das ist halt, dieses Settling dieser Static-Files ist halt ein bisschen anders, als wenn jetzt User-Bilder hochladen oder so.

Jochen

Dann ist das Media Root in Django und es wird halt also ein bisschen anders gehandelt und statische Files sind bei mir, werden ausgeliefert vom Caddy.

Jochen

Und alles, was User irgendwie an Content hochladen, landet in einem CDN, also landet in S3, in einem Bucket.

Jochen

Und der wiederum wird dann ausgeliefert über, ich glaube, es ist CloudFront, das ist auch das CDN von Amazon.

Jochen

So dass ich halt auch damit keinen Stress mehr habe, sondern das ist dann halt auch schnell.

Jochen

Ist halt ein bisschen, ja, muss man vielleicht gar nicht machen, weiß ich jetzt gar nicht so genau.

Jochen

Aber das ist halt auch eine Lösung mit.

Jochen

Das ist natürlich auch eine, ja genau, das skaliert dann auch quasi beliebig.

Jochen

Traffic wird halt irgendwann teuer, da muss man nicht sagen.

Nee, das ist komische Behörde, die man ja auch versucht.

Jochen

Ja, aber man muss halt dann pro, ja, weiß ich nicht, weiß ich gar nicht, pro Gigabyte oder weiß ich nicht, irgendwann bezahlt man halt pro irgendwas.

Jochen

Man hat irgendwie 100 Gigabyte frei oder so und dann fängt man irgendwann an zu bezahlen.

Dominik

2 Euro pro Request.

Jochen

Das ist nicht ganz so schlimm, aber es ist ja und wenn man das selber macht mit White Noise und so, kann man sich wirklicherweise sich da auch den Traffic sparen, das auch schnell ist.

Jochen

Ja, gut, nee, wenn man CDN vorne ranfindet, auch nicht.

Wie auch immer.

Jochen

Also genau, das ist ja.

Dominik

Ja, das haben wir auf jeden Fall den Dango-Applikationsserver, der hast du gesagt, Unicorn, irgendwas laufen.

Jochen

Geunicorn, ja, also ich würde sagen, wenn man eben nicht mehrere Seiten hostet, sondern dass eher so ein eigenes Projekt hat, was irgendwie und der Applikationsserver nur das für eine Geschichte macht, für eine Domain oder so, dann ist Geunicorn, denke ich, die bessere Wahl.

Jochen

Ansonsten, wenn es komplizierter ist, dann gut, muss man vielleicht dieses Mi-WSGI-Ding nehmen.

Jochen

UWSGI.

Jochen

Das hat einen Haufen Einstellungen, die ja darauf optimiert sind, dass man, wenn man Hoser ist, selber und dann, ja, kann man halt auch eine Menge andere Dinge noch einstellen.

Jochen

Ist aber komplizierter, daher würde ich das jetzt nicht direkt empfehlen.

Jochen

Auch wenn man ein Cookie-Cutter nimmt, ist JuniCorn dabei.

Jochen

Ich würde sowieso empfehlen, das Cookie-Cutter Django Template zu verwenden, weil das macht eigentlich an der Stelle schon viel richtig.

Jochen

Und ja, da kriegt man, da kommt man da, da muss man sich selber um diese.

Dominik

Also Cookie Cutter ist sowas, das seine Projekte automatisch vorkonfiguriert deployt oder so.

Jochen

Ne, das erzeugt das Projekt.

Jochen

Das erzeugt das Projekt.

Jochen

Also es hat halt quasi ein Projekt-Template und es fragt einen, wenn man es ausführt am Anfang so ein paar Sachen und da antwortet man halt so, zum Beispiel wie das Projekt heißt oder keine Ahnung, ob man jetzt Salary verwenden möchte oder nicht oder so oder welche Datenbank.

Dominik

Salary hast du jetzt auch noch nicht, aber

Dominik

arbeitende Bienen oder so.

Jochen

Man hat oft die Geschichte, dass man nicht, dass man langlaufende Request, dass man langlaufende Jobs hat, die ausgelöst werden von einem Web-Request und man möchte jetzt den User am Ende aber nicht warten lassen.

Jochen

Also sowas wie, keine Ahnung.

Jochen

Ja, User lädt ein Video hoch und man muss das jetzt in alle Formate rendern, die halt so gebraucht werden für unterschiedliche, fürs iPhone, für Android, ja, oft nimmt man dann halt auch irgendwie anderen Codec oder so und in unterschiedliche Auflösungen, je nachdem, wo man das irgendwie anzeigen will.

Jochen

Dann möchte man nicht, und diese Render-Jobs dauern halt, je nachdem, wie lang das Video ist, sehr, sehr lang.

Jochen

Es lädt jemand ein Video, das eine Stunde lang ist, hoch, dann möchte er nicht, dass der Request, wenn das im Request selber läuft, dass es nochmal zwei Stunden dauert.

Jochen

Das wäre irgendwie komisch.

Jochen

Sondern dann nimmt man das Video her, sagt, okay, man macht jetzt einen Task, man erzeugt einen Task, der irgendwie dann unabhängig vom Webserver läuft.

Jochen

Und der rendert dann halt irgendwie das Video in die unterschiedlichen Formate und so.

Jochen

Und sagt dem User schon mal, alles okay, dann upload es durch.

Jochen

Für solche Sachen braucht man das jetzt.

Jochen

Jetzt Video ist ein extremes Beispiel.

Jochen

Es gibt sicherlich eine Menge Beispiele, bei denen das nicht ganz so schlimm wäre.

Jochen

Aber auch schon so nervig, dass man das vielleicht nicht haben will.

Dominik

Also Cedoc macht es einfach zu Arbeitsbienen loszuschicken, die dann halt die anderen Tasks an abarbeiten.

Jochen

Ja, also die Tasks selber, genau, da kann man sich auch suchen, welches Backend man verwenden möchte.

Jochen

Und Redis ist halt auch ein Backend sozusagen über das, damit Redis als Queue verwendet.

Jochen

Also diese, es gibt, also Salary ist im Grunde eine Task, ja, besteht aus einem Ding, was irgendwie die Worker koordiniert, dann eine Menge von Workern und halt einer Que, in die die Tasks halt reinlaufen.

Jochen

Also wenn man so einen Task erzeugt, dann landet der halt in so einer Warteschlange und die Worker greifen sich aus dieser Warteschlange halt ihre Jobs raus.

Jochen

Das sind Prozesse, die laufen einfach irgendwie.

Dominik

Wer am lautesten schreit, der wird dann halt als erstes bedient

Jochen

oder was?

Jochen

Ja, das erste, ja, der erste Worker nimmt sich halt irgendwie den ersten Job aus der Queue und rechnet dann halt, bis er irgendwie fertig ist.

Jochen

Der nächste Worker nimmt sich die nächsten und so weiter, bis halt keine Worker mehr da sind, die nichts zu tun haben.

Jochen

Und dann warten die Sachen in der Que halt einfach.

Jochen

Und die werden dann halt so in Mitterzeit abgearbeitet.

Jochen

Und ja, dann hat das Ding auch noch so ein Webfront <unk> Flower, heißt das irgendwie mit dabei.

Jochen

Da kann man sich angucken, was ist denn jetzt aus meinen Tasks geworden?

Jochen

Haben die irgendwie Exceptions geworfen?

Jochen

Gibt es da Tracebacks?

Jochen

Sind die alle gut durchgelaufen?

Jochen

Wie lange laufen die denn so zur Basisstatistiken?

Jochen

Wie lange laufen die denn durchschnittlich?

Jochen

Ja, und all solche Sachen.

Jochen

Und also das, wenn es funktioniert, ist es eigentlich ganz gut.

Jochen

Ja, kann man nichts sagen.

Jochen

Es ist eigentlich eine solide Geschichte, es ist aber so manchmal, also Settery ist manchmal so ein bisschen scharfkantig, muss man.

Jochen

Ich hatte auch schon, also wenn es nicht funktioniert, ist es nicht so geil, muss man sagen.

Dominik

Geht das nicht für fast alle Dinge bei der Software?

Jochen

Ja, aber es gibt manche Sachen, bei denen passiert einem das nicht, dass die dann nicht funktionieren.

Jochen

Also die, also zum Beispiel Redis ist dann so ein Stück Software, das funktioniert eigentlich fast immer super.

Jochen

Es gibt selten den Fall, oder habe ich noch nie erlebt, habe ich noch nie erlebt, dass Redis irgendwie etwas gemacht hat und ich habe es nicht wieder hingekriegt.

Jochen

Ich hab's noch nicht kaputt gekriegt, sozusagen.

Jochen

Oder auch Postgres ist so ein Ding, das kriegst du nicht kaputt.

Jochen

Salary hingegen, da installiert man irgendwie, da wechselt man irgendwie die Python Miner Version und dann geht gar nichts mehr.

Jochen

Und alles kaputt.

Jochen

Und das ist ja, oder man wechselt die Django-Version und nichts geht mehr.

Jochen

Also es ist halt deutlich fragiler.

Jochen

Es ist nicht so, dass man da, dass, also bei Salary habe ich das schon häufig erlebt, dass es kaputt gegangen ist und zwar auch dann so kaputt gegangen ist, dass man es im Grunde nicht mehr fixen kann.

Jochen

Und das ist immer ärgerlich, wenn man dann zum Beispiel eben Python nicht upgraden kann oder halt auch Django nicht upgraden kann, weil halt ein Salary daran hindert, das ist und das ist schon öfter passiert.

Jochen

Also ja.

Jochen

Man kann es halt oft nicht vermeiden, dann braucht man es halt und dann es gibt noch diverse andere Task-Queue-Geschichten.

Jochen

Salary ist halt die verbreitetste für Django.

Jochen

Vielleicht lohnt es sich auch die CD anzugucken.

Jochen

Ich weiß es nicht genau.

Jochen

Aber ja, also wenn man es nicht braucht, soll man es nicht unbedingt, also es ist nicht unbedingt eine Geschichte, die man aufgrund von reiner Freude, weil 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 tatsächlich jetzt nochmal so ein bisschen auf die ganz Basic-Sachen zurückkommen.

Dominik

Also wie weiß ich denn jetzt, auf welche Route ich jetzt meinen Nebenserver zum Beispiel schicke, auf welches Verzeichnis ich denen verweise oder mache ich das überhaupt über Verzeichnis oder ich habe jetzt verschiedene Django-Apps laufen oder du hast ja gesagt, Unicorn ist nur eine, dann habe ich sonst ein Whisky und Whisky weiß dann, wo was liegt.

Jochen

Junicon ist ein Applikationsserver, jetzt sagen wir mal, wenn du jetzt Cookie-Cutter verwendet hast und so, dann läuft dein System, läuft halt irgendwo intern in einem Docker-Container und sozusagen kann angesprochen werden aus dem Container heraus, den du da oder aus der Maschine heraus, auf der du dich angelockt hast, auf irgendeinem Port 5000 oder sowas, da läuft das Ding halt.

Jochen

Nimm aber nur Requests an von innen.

Jochen

Also sollte nicht von außen erreichbar sein.

Dominik

Das heißt also, ich muss aber dann den Portcamp natürlich an und dann die Ports muss ich ja irgendwie auf meiner Maschine routen dann.

Dominik

Nee.

Dominik

Zu den Docker-Containern.

Nee.

Nein?

Dominik

Wie?

Dominik

Wo funktioniert

das denn?

Jochen

Die sind nur lokal da.

Jochen

Also kannst du lokal drauf connecten, sonst nicht.

Jochen

Und wie dann die Requests sozusagen aus dem Web da reinkommen, ist, du hast halt den Caddy vorne dran.

Jochen

Da gehen die Sachen per, über Port 443 kommen die rein.

Dominik

Und den Caddy muss ich konfigurieren.

Jochen

Den musst du konfigurieren, du brauchst einen Config für, die ist aber relativ einfach.

Jochen

Und da steht mehr oder weniger drin.

Jochen

Irgendwie, wenn es an die Domain gehen soll, dann alles an den Applikations-Server.

Okay, aber dann.

Dominik

Der Caddy ist derjenige, der ist alles verwaltet.

Dominik

Das heißt, in der Caddy-Konfiguration stelle ich das ein, Name-Server, HTML-Routing.

Nein, nein, nein, nein.

Dominik

Nein, HTML-Routing im Tanken, nein?

Dominik

Nein.

Dominik

Nein.

Nein, da steht nur drin, auf welche Domain geht, also wahrscheinlich wieder vor.

Jochen

Je nachdem, auf welche Domain der Request geht, auf welchen Applikations-Server soll das gehen.

Okay, also.

Jochen

Insofern kann man auch sagen, das ist gewisserweise Routing, aber es ist Name-Routing.

Es ist sehr, sehr an.

Dominik

Und HTML-Routing ist dasselbe verknüpft, weil halt das Name-Router ist.

Jochen

Also es gibt, es gibt noch etwas, was sich URL-Routing nennt bei Django.

Dominik

Ja, aber das ist aber innerhalb von Django da.

Aber ich kann ja verschiedene Projekte nehmen.

Dominik

Ich könnte jetzt auch sagen, ich möchte jetzt einfach ein Verzeichnis serven, weiß ich nicht, war, www, irgendwas, was da früher gab oder so.

Dominik

Einfach ein Verzeichnis mit einer Index, irgendwas noch bereits.

Jochen

Das kannst du mit dem Caddy auch machen, klar.

Dominik

Kann ich mit dem Caddy auch sagen, das Verzeichnis kommt auch dann unter dem Namen resolved, geroutet, rein.

Dominik

Okay, das ist, also genau, das ist halt spannend.

Dominik

Also das sind halt verschiedene Optionen, die kann ich alle gleichzeitig mit dem einen Caddy bauen.

Dominik

Das heißt, das Einzige, um das zu machen, muss ich mein Caddy konfigurieren.

Dominik

Was mit E-Mail, wenn ich jetzt irgendwie E-Mail schicken will, auch Caddy?

Jochen

Nee.

Jochen

Da, äh.

Jochen

Nee, nee, das ist wirklich nur ein Webserver.

Jochen

Das würdest du in der Django-Applikation halt irgendwie machen und da kannst du es entweder selber tun, wenn du halt lokal einen Mail-Server laufen hast.

Dominik

Nein, nein, was ich jetzt zum Beispiel meine, wenn ich jetzt meine Domain-E-Mail, da gibt es sowas, wie nennt man das?

Dominik

C-Names oder sowas, wo man dann die E-Mails direkt weggeroutet werden vom Server auf, weiß nicht, Gmail oder sowas?

Jochen

Das ist eine Art von Rekord für DNS.

Jochen

Ja.

Jochen

Woran steht also, also dieser Name ist eigentlich nur ein Alias für den Namen.

Dominik

Ja.

Dominik

Aber die Alias muss ich ja irgendwie auf meinem Server auch eintragen.

Wie passiert das denn?

Dominik

Also wenn ich jetzt beispielsweise eine G-Suite habe, ja, mit der ich meine Firmen-E-Mail-Adressen verwalten möchte, dann trotzdem die Domain auf meinen Server ankommt.

Dominik

Wo muss ich dann einstellen, dass dann die E-Mail-Adressen zur G Suite weitergehen?

Dominik

Was ist das, was

da liegt?

Jochen

Im Name-Server.

Jochen

Also da sagst du halt, der zuständige MX, das ist wieder ein anderer Rekord, MX-Rekord, der ist für Mail zuständig.

Jochen

Der Mail-Server für meine Domain ist Google.

Dominik

Aber das ist dann am Provider, bei meinem Name.

Jochen

Nein, dann da, wo du deine Domain registrierst.

Dominik

Ne, das mache ich.

Dominik

An meinem Registrar sage ich dann.

Jochen

Registrar ist, der hat eigentlich eine andere Aufgabe, es ist halt, der Name-Server macht das.

Jochen

Aber der, wo du deine Domain registriert hast, der betreibt wahrscheinlich den Name-Server, wo dann dein Domain liegt.

Ja, okay.

Jochen

Ja, genau, da machst du das.

Jochen

Und genau, dann geht halt alle Mail, die an deine Domain geschickt wird, halt dem Mail-Client bzw.

Jochen

Mail-Server, den halt irgendjemand verwendet halt, um Mail hinzusetzen.

Jochen

Der macht dann ein MX-Lookup auf deine Domain, sieht halt A, die Mail so zu Google gehen und schickt dann die Mail direkt zu Google.

Jochen

Und dann landet sie halt bei dir irgendwo bei Gmail oder wo auch immer.

Dominik

Okay.

Dominik

Und wenn ich jetzt einen File-Server machen will, dann muss ich jetzt einfach wieder bei den Caddy routen, ob irgendein Verzeichnis ist.

Jochen

Was ist ein File-Server?

Jochen

Oder was meinst

Dominik

du damit?

Dominik

Vielleicht einfach ein File, ein Verzeichnis, das ich freigebe, wo ich dann herunterladen kann.

Dominik

Einfach so Schreibe und Lese Zugriff.

Dominik

Brauche ich dafür sowas wie altes FDP.

Jochen

Nee, das hängt halt sehr davon ab, was du da machen möchtest.

Jochen

Ich würde sagen, ja, sowas gibt es außerhalb der Windows-Welt eigentlich so nicht.

Jochen

Also da ist es halt irgendwie Samba oder ich weiß nicht, wie das Protokoll Microsoft intern heißt.

Jochen

Wahrscheinlich heißt es irgendwie anders.

Jochen

Keine Ahnung, ich kenn es nur, wie man es jetzt Linux, wenn man Linux als Server betreiben will, dann heißt es irgendwie Samba ist seiner Server.

Jochen

Aber sowas betreibst du halt nicht im Internet.

Warum?

Jochen

Viel zu gefährlich.

Jochen

Das ist und es macht auch so komische Sachen mit irgendwie Broadcast-Geschichten und so, das geht alles im Internet nicht.

Dominik

Also zu gefährlichst du, aber es würde gehen.

Nee, geht auch nicht.

Jochen

Ich glaube, das geht, ich glaube, es geht gar nicht.

Dominik

Also was war denn ein FTP-Server, den hätte man aber einfach gemacht?

Jochen

FTP-Server ja, aber FTP ist auch irgendwie.

Jochen

Ja, also die, wie würde man sagen, die 70er haben angerufen und die 80er haben ihre Ware zurück.

Jochen

Also das ist.

Dominik

Das war ja damals ziemlich cool, da konnte man irgendwie so einen FTP-Server connecten und hat dann da alles rumgeschoben, hin- und hergeschoben, was man so brauchte.

Jochen

Ja, da konnte man lustige Dinge machen.

Jochen

Also das ist uralt.

Dominik

Da gab es ja irgendwann die File-Shaming-Plattformen, Hoster, was gibt es denn heute?

Dominik

Also einfach dann Cloud.

Jochen

Ja, das macht man einfach nicht mehr, würde ich sagen.

Dominik

Also es ist komplett weg, hat das einfach sowieso schon alles verfügbar.

Jochen

Nee, das war, also wenn du Sachen hoch runterladen, das ist heute alles HTTP.

Jochen

Und auch da gab es dann irgendwie früher so Geschichten, vielleicht gibt es das auch immer noch, ich weiß nicht so genau, WebDAV oder so, wo man das dann auch mounten kann, irgendwie so, dass es dann halt aussieht, als hätte man das lokal im Dateisystem oder so.

Jochen

Aber es ist alles heutzutage ist es eigentlich eher benutzt.

Dominik

Aber wenn ich jetzt irgendwie nicht sowas machen will für mich, irgendwie mit meinem kleinen Login oder sowas, dass ich sage, hey, ich hätte gerne zehn Dateien, die ich immer runterziehe, die nicht wichtig sind, wo man nicht besonders viel kaputt machen kann, wenn da irgendwas auseinanderflächt.

Jochen

Die Frage ist, was möchtest du machen?

Jochen

Was möchtest du eigentlich haben?

Dominik

Nur einfach so eine Pfeilablage, so eine Teilablage für, weiß ich nicht, fünf Fotos oder irgendwas.

Dominik

Ich meine, Fotos weiß ich, gibt es auch andere Möglichkeiten, aber nur so.

Jochen

Du willst irgendwie Verzeichnisse synchronen halt

Dominik

eine Dropbox.

Dominik

Ja, oder so einen kleinen Store für irgendwas, so mein virtueller USB-Stick.

Jochen

Da gibt es, also würde ich eher sagen, also da gibt es, als fertig würde mir jetzt eigentlich nur einfallen, sowas wie OwnCloud oder OnCloud, oder ich weiß nicht.

Jochen

Aber intern, was die wahrscheinlich alle machen, das machen wahrscheinlich solche, selbst wie, äh, oder wenn man jetzt Apple verwendet, würde ich sagen, ja, nimm halt einfach iCloud.

Also OwnCloud, was wir tun.

Jochen

Oder iDrive.

Jochen

Wenn du selber hosten willst, OnCloud wahrscheinlich.

Jochen

Aber intern wird das auch nichts anderes machen.

Jochen

Was macht das?

Jochen

Es wird nichts anderes machen.

Jochen

Das machen auch Dropbox und die ganzen anderen wahrscheinlich, die sprechen alle HTTP oder HTTPS mit zu Hause sozusagen.

Jochen

Und dann haben sie irgendwie Client-Software, die halt auf deinem Rechter läuft, die halt sich per iNotify oder sonst irgendwie oder die Notify, wie auch immer, sich benachrichtigen lässt, wenn halt irgendwie sich was an Verzeichnis ändert und dann synkt die das halt rüber.

Jochen

Und umgekehrt halt genauso.

Jochen

Deswegen brauchst du auch ein Client, weil das ja dann sozusagen eine stehende Verbindung irgendwie braucht.

Jochen

Und du halt auch vom Server aus den Client benachrichtigen können willst.

Jochen

Und ja, ich weiß nicht, ob es irgendeine gute, freie, selbst gehostete Geschichte dafür gibt.

Jochen

Aber warum nicht irgendwie Dropbox oder sonst irgendwie?

Dominik

Ja, nee, also ich weiter einfach nur jetzt so der private USB-Stick, den man kurz was hinterschieben kann, so von Gerät zu Gerät oder sowas, wo man einfach dann eine URL eingibt und dann kurz deinen Login und dann hat man das.

Dominik

Das wäre irgendwie schon nett.

Jochen

Ja.

Jochen

Ich weiß es nicht.

Jochen

Ich glaube, also ich meine, das Geräteübergreifend funktioniert, ist wahrscheinlich dann Google.

Jochen

Du musst ja dann auch irgendwie auf die Telefone kommen, ne?

Jochen

Wäre ja dann praktisch.

Jochen

Und dann bist du eh entweder bei Apple oder bei Google.

Jochen

Da kommst du ja selber gar nicht mit rauf.

Dominik

Fangen wir doch an mit dem nächsten Thema an.

Jochen

Ja, es ist ein bisschen traurig alles, aber leider.

Dominik

Ja, also SSL-Zertifikate, hast du gesagt, sind alles im Caddy mit drin.

Dominik

Das heißt, das funktioniert als HTTPS mit Unterstützer, also kannst du nochmal vielleicht Unterschied kurz SSL, HTTPS, ist das dasselbe?

Jochen

Naja, SSL ist eigentlich, glaube ich, veraltet.

Jochen

Das eigentlich gar nicht mehr.

Jochen

Es ist nur nur so, dass man halt davon redet, weil sonst irgendwie gewohnt ist.

Jochen

Also mittlerweile ist, was man eigentlich verwendet, TLS.

Jochen

Und ja, so genau weiß ich das jetzt auch alles nicht.

Jochen

Das zu konfigurieren, ist ein Schmerz.

Jochen

Also ich weiß, dass ich das, ich habe das mal ein paar Mal gemacht für Nginx und das hat, das war auch, das hat länger gedauert, als ich dachte.

Jochen

Es gibt da so einen Test von SSL-Labs, wo man dann überprüfen kann, ob die eigene Seite irgendwie den aktuellen Sicherheitsanforderungen irgendwie...

Dominik

Muss man sich irgendwie ein Zertifikat sich irgendwo generieren?

Dominik

Kann man das selber erzeugen?

Dominik

Muss man das kaufen?

Da gibt es ja irgendwie so diverse Angebote.

Warum nimmt man die?

Dominik

Warum nimmt man freies?

Dominik

Geht das auch frei?

Jochen

Also ich würde da gar nicht so super en detail drauf eingehen.

Also wenn man kann das kaufen, dann hat man unter Umständen so Vorteile wie, es wird in der Browserleiste grün angezeigt oder so, weil es irgendwie so ein Spezialdeal zwischen den Browserherstellern gibt.

Jochen

Ich meine, das sieht auch komisch aus.

Jochen

Ich weiß nicht mal, ob das jetzt vertrautenserweckender ist oder nicht, vielleicht der Leute denken, das ist übersaltsam aus.

Dominik

Oh, Kapitalisten weg da.

Nein, ich weiß nicht.

Jochen

Also dann ist es so, die ganzen Certificate Authorities sind halt dadurch aufgefallen.

Jochen

Also von denen kaufst du sozusagen die Dienstleistung, dass sie dein Key unterschreiben und damit der Browser halt, weil er die Certification Authority kennt, halt sagen kann, okay, ich glaube, dass das jetzt die Seite ist, mit der ich tatsächlich rede.

Jochen

Die sind halt schon ganz oft dadurch aufgefallen.

Jochen

Dass es irgendwie, dass sie Sachen unterschrieben haben.

Jochen

Also das eine Ding, was sie eigentlich nicht machen dürfen, Dinge unterschreiben und damit authentifizieren, dass jemand der ist, der vorgibt zu sein, der halt nicht der ist, der halt ein anderer war.

Jochen

So für Microsoft ist das schon ein paar Mal passiert, dass jemand sich dann als Microsoft ausgeben konnte, der es nicht war.

Jochen

Dann kannst du natürlich den ganzen Leuten halt per Windows-Update Sachen reinschieben.

Jochen

Ja, nicht so geil.

Jochen

Und solche Sachen.

Jochen

Also das passiert halt dauernd daher.

Jochen

Es ist diese ganze Certificate Authority Geschichte, das ist alles, das funktioniert nicht so richtig gut.

Jochen

Und dann hast du auch Probleme mit, wie was passiert, wenn du jetzt Sachen revoken willst, das geht alles nicht richtig.

Jochen

Und das ist schrecklich.

Jochen

Insofern würde ich sagen, tja.

Jochen

Also dieses Let's also man muss auch heutzutage eigentlich kein Geld mehr bezahlen.

Jochen

Es gibt eine freie CA, Let's Encrypt, die in allen Browsern die quasi 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 eine Browser irgendwie schreckliche Warnungswarnunggeschichten angezeigt hat, ohne dass man bezahlt hat.

Jochen

Das geht heute.

Jochen

Insofern.

Jochen

Es ist ja.

Jochen

Und ja, ich mach das so.

Jochen

Es gibt auch Gründe, das nicht so zu machen, aber.

Dominik

Oh, wir haben gerade eine live, eine E-Mail bekommen zu einem Podcast, die ist aber leider so lange, dass ich sie nicht lange vorlesen kann.

Dominik

Von Topit.

Dominik

Ja, bin gespannt.

Dominik

Ja, ich werde mir gleich mal durchstehen.

Ich freue mich schon.

Dominik

Thorsten.

Dominik

Hi, Thorsten.

Dominik

Zwar eine Live-Interaktion, finde ich super.

Jochen

Okay.

Jochen

Ja, also Engagement heute sehr hoch.

Dominik

Also wir möchten gerne tatsächlich diesen Server, den wir jetzt ja irgendwie stehen haben, mit dem ganzen SSL, Zertifikat oder Quatsch.

Kann man denn irgendwie was?

Dominik

Also wahrscheinlich erzähle ich jetzt wieder irgendwelchen Unsinn, irgendwie als Proxy benutzen, irgendwie über den ins Netz connecten und Anfragen stellen auch, dass ich irgendwie den anderen Weg gehen kann, dass nicht jeder sieht, wovon ich komme, sondern dass ich dann von meinem Server ausgehe.

Jochen

Nein, das willst du aber nicht, aber dann weiß doch jeder, woher, woher du woher du bist.

Dominik

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

Jochen

Das willst du

gerade nicht.

Dominik

Nein, aber vielleicht habe ich einen anderen Standort und ich connecte bei meinen Server und dann wissen die vielleicht, dass ich immer mein Server bin oder sowas.

Dominik

Aber die wissen meinen eigentlichen Standort jetzt nicht, weil ich nicht immer über meinen Provider gehen will.

Dominik

Also mein Provider weiß zum Beispiel dann nicht mehr, wo ich hingehe, weil ich ja bei meinen Server gehe.

Jochen

Ja, okay, gut, aber gut, aber der Nachteil ist, dass halt jeder, den du konnten, dass du, dass jeder Webserverbetreiber weiß, wer du bist.

Jochen

Was vielleicht auch nicht so cool ist.

Jochen

Also, das ist alles sind alles Dinge, das will man wahrscheinlich nicht so machen.

Dominik

Ja, aber vielleicht, also dann zumindest, wenn die ganze Zeit mein Provider sonst immer alles mitbekommt,

vielleicht kann man das machen.

Jochen

Ist halt die Frage, vor wem du Angst hast.

Dominik

Vielleicht vom Provider.

Jochen

Wenn du vor dem Provider Angst hast, ja.

Dominik

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

Jochen

Das würde ich nicht so machen.

Jochen

Würde ich nicht so machen.

Jochen

Dann nimm lieber was ordentlich, ne?

Jochen

Lieber Tor.

Dominik

Ja, okay.

Jochen

Oder nimm halt so einen von den VPN-Dienstleistern, aber die sind auch, ich meine, da muss man sich auch bewusst sein, dass die auch

Dominik

gecaptured werden.

Nein, weil das so unabhängig.

Jochen

Die verdienen halt einmal, weil sie Geld von dir bekommen und dann verdienen sie halt nochmal, weil sie Geld von Facebook oder sonst wem bekommen für die Nutzungsdaten.

Dominik

Also ich habe mich jetzt gar nicht für anonyme Surfen interessiert, sondern ich einfach nur, ob die technischen Möglichkeiten irgendwie, wie das funktioniert, wenn ich jetzt da meine Connection über so einen Server schicken will, wenn ich da das einrichten würde.

Jochen

Das hat aber nichts mit Web zu tun, dass es dann, da würdest du dann irgendwie sowas wie OpenVPN nehmen oder so.

Dominik

Das heißt, ich würde einen VPN-Server starten, dahin connecten und dann von dem dann weiterlaufen.

Ja.

Dominik

Okay.

Dominik

Das OpenVPN und dann einfach einrichten auf dem Sinn.

Jochen

Genau, also das ist tatsächlich ein Anwendungsfall, für den ich das tatsächlich auch benutze und auch einen OpenVPN-Server laufen habe.

Jochen

Man kann auch bei allen, also bei iPhone geht das sehr, sehr easy, da kannst du halt Open VPN-Server auch einfach eintragen, als das ist jetzt VPN, du kannst ja dann VPN irgendwie auswählen und kannst sagen, ich nehme jetzt einfach den.

Jochen

Ist halt für Netflix und die ganzen Streaming-Geschichten, Spotify-Sachen, die funktionieren ja sonst im Urlaub halt nicht mehr.

Jochen

Die sind ja quasi, und dann, wenn man dann VPN anmacht, dann gehen die halt trotzdem.

Jochen

Und dafür habe ich es halt benutzt bisher.

Jochen

Aber ja.

Dominik

Ja genau, aber das war von.

Dominik

Also OpenVPN, den musst du dann auch über den Caddy routen oder weil wie ist das dann mit dem Fall?

Nein, nein, nein, nein, nein, dann können wir hier Ports dann.

Dominik

Das läuft einfach auf einem Service auf dem Rechner.

Jochen

Das ist ein ganz anderes Protokoll.

Jochen

Das ist OpenVPN ein eigenes Protokoll, läuft üblicherweise, du kannst auch bei TCP und normalerweise bei UDP irgendwo auf einem Port, ich weiß nicht, irgendwas.

Dominik

Das heißt, ich starte einfach dann auf dem Rechner, dann die verschiedenen Services am Anfang, die dann halt hochgefahren sind und die dann nebenbei als Demons dann laufen.

Dominik

Und dazu gehört dann der OpenVPN, der auf einem anderen Port dann läuft als der Caddy, der auf dem 443 läuft.

Dominik

Und dadurch kann ich dann, indem ich auf die verschiedenen Ports zugreife, dann auf die verschiedenen einzelnen Applikationen.

Jochen

So wie das im Internet halt so üblich ist.

Jochen

Die unterschiedlichen Services haben halt unterschiedliche Ports.

Jochen

DAP ist halt 80 und 443.

Jochen

Mail ist 25, DNS ist 53, je nachdem.

Dominik

SSH 22?

Jochen

Genau, FTP 21.

Dominik

Ja, also SSH will ich wahrscheinlich auch haben.

Dominik

Ja.

Dominik

Weil ich halt da irgendwie das Connector habe.

Jochen

Ich muss irgendwie auf die Maschine drauf, genau.

Dominik

Aber dann ist halt auch die Frage, dann, also hat Rude auf die Maschine draufgehen, ist das nicht ein bisschen riskant, das irgendwie zu exponieren?

Dominik

Oder sage ich dem, da darf sich gar nicht einloggen und wie mache ich das?

Dominik

Mache ich das per Passwort oder muss ich da irgendwie ein Authorized Key irgendwie am besten hinterlegen in irgendeinem SSH-Konto?

Jochen

Genau, also Authentifizierung immer per Key und dann sozusagen legst du den Public Key in einen Pfeil namens Authorized Keys in dem.ssh-Verzeichnis auf deinem Server.

Jochen

Und dann kannst du dich da einloggen.

Dominik

Und man kann, glaube ich, sogar dann Login per Passwort abschalten oder sowas.

Jochen

Kann man machen, ja.

Sollte man vielleicht auch.

Dominik

Ja, aber dann kann man tatsächlich nur noch mit seinem Private Key connecten.

Dominik

Was macht man denn dann, wenn der kaputt geht?

Jochen

Da kann man sich nicht mehr connecten.

Dann ist er am Arsch.

Jochen

Du kannst ja aber mehrere zum Beispiel nehmen.

Dominik

Ja, okay, aber dann ist man normalerweise am 8, dann muss man den Server komplett aufbauen dann.

Dominik

Also weil das alles dann nicht mehr geht.

Dominik

Dann muss man den Server hart, äh, wie kommt man dann wieder dran?

Dominik

Also kann man nur die Fest.

Jochen

Nee, also das hängt halt davon ab, mit welchem, was das ist.

Jochen

Also du kannst, also du kannst auch zum Beispiel, weil wenn du jetzt einen eigenen Server hast, den Fall hat man noch gar nicht, der ist aber auch vielleicht gar nicht so uninteressant.

Jochen

Jetzt bei Hetzner oder so, wo du wirklich physikalisch eine Maschine gemietet hast, die irgendwo im Rack steht, da kriegst du auch eine Konsole drauf.

Jochen

Also einfach per serieller Konsole kannst du dich auf das Ding, was halt auch interessant ist, wenn du irgendwelche Dinge machen möchtest, während das Ding bootet oder so.

Jochen

Wo du halt per SSH nichts machen kannst, weil es gibt keinen SSH, die mit der läuft, weil der Kernel noch gar nicht hochgefahren ist.

Jochen

Da willst du halt was anderes haben, mit dem du dich drauf connectest und das geht da.

Oft.

Jochen

So dass du halt wirklich das Ding booten sehen kannst und halt kannst da Dinge tun bei Booten.

Jochen

Genau, also das geht alles.

Jochen

Insofern gibt es da noch andere Wege rein, aber ja, bei so einem Container, der halt einfach da.

Jochen

Da geht das natürlich so nicht.

Jochen

Aber das ist der so Wegwerfkram, ne?

Den schmeißen wir halt einfach weg.

Dominik

Wenn ich den Server irgendwie abgeschossen habe oder so und der bootet nicht mehr, dann kann ich ja nicht anders machen.

Jochen

Ja, du schmeißt den Container weg, machst du neuen.

Jochen

Es dauert ja nicht lange, das dann wieder hochzufüllen.

Dominik

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

Jochen

Also ich würde sagen, wenn das ordentlich gemacht ist, dann dauert das von irgendwie, du kopierst dein Projektverzeichnis dahin oder checkst es halt aus, was du auch machen kannst.

Jochen

Wenn du SSH an hast mit irgendwie Forward-Agent, dann kannst du halt auch private Repositories, beispielsweise GitHub oder irgendwelchen GitLab auschecken.

Jochen

Das heißt, du connectest sie einfach hin, checkst es aus, sagst Locker Compose irgendwie Bild und dann links du halt das noch einmal in dein Supervice D-Config-Dings da nach ETC, sagst Supervice Control, Restart, dein was auch immer wie das heißt.

Jochen

Und das dauert dann drei, vier Minuten und das Ding wieder oben.

Also, ja.

Jochen

Selbst das könntest du noch automatisieren, ja.

Jochen

Das kannst du per Script machen.

Jochen

Hast du auch per Python SSH bedienen, ne?

Jochen

Per Paramico oder so.

Dominik

Paramico heißt das.

Jochen

Library, mit der man SSH sprechen kann.

Dominik

Ja, okay.

Dominik

Ja, also Ports haben wir jetzt einmal so kurz drauf eingegangen.

Dominik

Also ich könnte auch irgendwelche Ports da hinten aufmachen und da irgendwas hinterstecken.

Dominik

Macht man dann auch sowas wie so ein Honitopf auf, dass man einfach irgendwie so eine Reaktion hat, falls die Leute irgendwie sagen, hey, klassischer Angriff und dann.

Jochen

Würde ich jetzt nicht machen, aber gut.

Jochen

Kann man natürlich, wenn man Spaß daran hat.

Also Fliegen fangen und dann.

Jochen

Es gibt für Danger zum Beispiel auch so ein Honeypot-Modul irgendwie, das einen, wenn das dann so vorgeholt, dass es ein Admin-Interface gäbe und dann, wo sich Leute dann einloggen können mit irgendwelchen Standardpasswörtern und dann können sie da irgendwie Dinge machen, aber das ist alles eine Fake und dann kann sich hinterher angucken, was sie gemacht haben.

Jochen

Aber ja, ich meine, wenn ein, wenn, aber.

Ja, wenn man so

Dominik

ein bisschen rumspielt in der Hobbygruppe und man so guckt, was man so 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, 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 nicht zu verstecken hat, sondern es eh noch so zum Rumspielen ist, dann ist das ja vielleicht gar nicht so schlimm.

Jochen

Du kannst ja auch einfach offen lassen.

Jochen

Vielleicht ist er hinterher besser.

Dominik

Vielleicht ist das ja auch ein bisschen Honig ausliegen.

Dominik

Schokolade.

Okay, ja.

Dominik

Ja, also Firewall?

Dominik

Ist das doch das?

Jochen

Braucht man sowas was?

Jochen

Nee, also Firewall.

Dominik

Ist das auf Router-Ebene dann im Serverzentrum?

Jochen

Nein, nein.

Jochen

Also Firewall ist halt die Frage, was die Leute drunter verstehen.

Jochen

Das sind auch unterschiedliche Dinge.

Jochen

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

Jochen

Und da ist, nennt man Firewall, ist ein System zur Durchsetzung einer Policy am Übergang zwischen Netzwerken.

Jochen

So, das ist eine Firewall.

Jochen

Ich weiß, dass es so im Heimcomputerbereich gibt es da irgendwie andere Definitionen von.

Jochen

Da gibt es halt so auch so Personal Firewalls oder sowas, ne?

Jochen

Aber das ist alles Quatsch.

Jochen

Aus meiner Perspektive, weil die machen genau das eben nicht.

Dominik

Was heißt denn eine Policy-Restriktion?

Dominik

Also wann darf denn welches Protokoll mit welchem mich reden oder darf ein bestimmtes Protokoll nicht auf einem bestimmten Port?

Jochen

Genau, du setzt, du guckst dir halt, also was ich normalerweise, also Firewall ist ein Konzept, ja.

Jochen

Das ist nicht unbedingt eine Implementation.

Jochen

Das, was die meisten Leute vielleicht darunter verstehen, ist sowas wie ein Paketfilter.

Jochen

Paketfilter guckt sich immer vier Sachen an.

Jochen

Quell-IP, Ziel-IP, Quellport, Zielport.

Jochen

Du kannst jetzt natürlich auf beliebige Kombinationen davon Policies definieren.

Jochen

Also sagen, okay, das lasse ich durch, das lasse ich nicht durch.

Jochen

Und jetzt ein Paketfilter guckt sich immer diese Quadruppel an und entscheidet dann, ob er das Paket durchlässt oder nicht.

Dominik

Und sowas kann man dann mit Paketanalyse, mit weiß ich, Py-Shark machen und das dann selber bauen auch.

Jochen

Da gibt es Software für dir, die das macht, aber das macht nur dann Sinn.

Jochen

Also einmal willst du das nicht, willst du solche Sachen niemals verwenden, um dich drauf zu verlassen, sondern das ist immer nur ein zusätzliches Sicherheitsnetz.

Jochen

Also die Sachen sollten sicher sein von sich aus.

Jochen

Sodass halt auch wenn deine, das kann ja auch sein, dass deine Paketfilter ausfallen oder nicht ordentlich funktionieren oder so, das sollte deine Sicherheit nicht beeinträchtigen.

Jochen

Sondern das ist einfach nur, damit du sagen kannst, ich habe hier ein Stück Hardware, das ist sonst mit nichts verbunden.

Jochen

Ja, das ist nicht irgendwie auf der gleichen Maschine, da kann ich irgendwie, wenn jemand meine Maschine aufgemacht hat oder eine Applikation aufgemacht hat, kann er diese Policy nicht ändern.

Jochen

Das heißt, aber dafür muss es dann halt eine physikalisch getrennte Maschine im Grunde sein, auf der nur der Paketfilter läuft, sonst nichts.

Jochen

Sonst macht es keinen Sinn.

Jochen

So, und den hast du halt am Übergang zwischen unterschiedlichen Netzen, weil da kannst du halt genau auf Basis dieser vier Attribute irgendwie dann deine Policy irgendwie durchsetzen.

Dominik

Also, falls ich doch meinen offenen File-Dings da betreiben will, dann sollte ich dann eine Firewall zwischen dem Netz und dem Netz.

Jochen

Aber das kannst du überhaupt nicht, du hast ja nicht Kontrolle über das Netz.

Jochen

Also das kann, ich würde sagen, das macht ja nur dann Sinn, wenn du auch das Netz unter Kontrolle hast.

Dominik

Und dann müsste das lokale Netz unter Kontrolle haben.

Jochen

Du müsstest das Netz, in dem du diese Policy durchsetzen willst, musst du unter Kontrolle haben.

Dominik

Aber meine eigenen Server zu Hause, wenn ich da für zwei verschiedene Routernetze oder sowas sich voneinander trennen will.

Dominik

Vielleicht habe ich irgendwie ein kleines offenes Netz da.

Dominik

Da gibt es ja so ein paar Optionen, wo man sich frei sich verbinden kann an einem Funk.

Dominik

Und dann könnte man das mit seinem Heimnetzwerk machen und da sollte man dann sowas dazwischen hängen, weil die Geräte zwar im gleichen Laden sind.

Jochen

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, äh, also ich, seit diesen Zeiten sind es vorbei.

Also das ist nicht.

Jochen

Ja, also ich meine, eben diese Infra, also die Hoster und vielleicht auch Amazon und die werden solche Sachen betreiben, ja, die machen das so.

Jochen

Aber für zu Hause macht das doch kein.

Jochen

Ich meine, du musst wirklich ein eigenes Gerät dafür haben, das nur das tut.

Jochen

Und dann brauchst du mehrere davon.

Jochen

Weil du willst den ja, du willst ja nicht nur einen, du brauchst ja dann irgendwie unterschiedliche Zonen und da gibt es ja unterschiedliche Konzepte, wie du das realisierst.

Jochen

Und du kommst ja mit einem Ding auch gar nicht aus, aber brauchst du mehrere davon.

Jochen

Das heißt, du betreibst mehrere Rechner zu Hause nur, um diese Policy da durchzusetzen.

Jochen

Welchen Gewinn erzielst du dadurch?

Jochen

Also, und vor allen Dingen im Verhältnis zu dem Aufwand.

Jochen

Also als Rechenzentrumsbetreiber kann man das irgendwie rechtfertigen, dass man zu jedem Switch dann noch irgendwie einen Paketfilter stellt.

Jochen

Oder so alle zwei, drei Racks stellt man da halt irgendwie noch einen Paketfilter dazu.

Jochen

Aber zu Hause.

Dominik

Und damit mich aber ganz sicher, damit nicht mehr so glaskörpermäßig.

Jochen

Ja, aber das Ding hilft dir ja für die meisten Sachen, die dich sozusagen, wenn du.

Dominik

Mäst nicht.

Jochen

Ja, das, das, genau, wenn du, wenn du, es hängt halt davon ab, wovor du Angst hast.

Jochen

Wenn du Angst davor hast, dass die Applikationen, die bei dir laufen, was Böses tun, dann kann, schützt dich das alles überhaupt gar nicht.

Jochen

Das schützt dich halt bloß davor, dass jemand Verbindungen irgendwie, die du laut Policy nicht zulässt, irgendwie macht.

Jochen

Aber das passiert heute eh fast nicht mehr.

Jochen

Weil, äh, oder das passiert ja auch nur dann, wenn es überhaupt eine Verbindung möglich wäre.

Jochen

Die meisten haben ja, sind ja, da sitzen hinter irgendeinem komischen, dynamischen IP oder irgendeinem seltsamen Natt.

Jochen

Ja, da ist es mit den Verbindungen sowieso nicht so toll.

Jochen

Und da müssen sich, müssen ja diejenigen, die das, die dich, also wenn du da irgendwie, wenn jemand dich kompromittiert hat, dann muss er ja irgendwie nach Hause telefonieren und dann muss er das eh auf eine relativ schlaue Art tun, sonst kommt er ja gar nicht mehr durch.

Jochen

Und wenn er das auf eine relativ schlaue Art tut, dann nützt der ganze Paketfilter kam nichts.

Jochen

Weil der sieht ja nichts schlau aus, der macht ja nichts Schlaues, sondern der macht ja was sehr, sehr Einfaches eigentlich.

Jochen

Okay.

Jochen

Also schade.

Dominik

Also Firewalls sind auch quasi aus den Relikte aus

der Faktorfelder.

Jochen

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

Jochen

Also es ist ja nicht nur Paketfilter, sondern das ist ja halt, man kann ja auch noch andere Dinge tun.

Jochen

Man könnte auch solche Sachen machen wie du hast einen Rechner, auf dem läuft nur ein VLC oder sowas?

Jochen

Dieses Ding ist VNC.

VNCC.

Jochen

Sozusagen, genau, du konntest dich darauf.

Jochen

Du hast selber, bist du abgeschnitten von und kannst halt bloß über so eine grafische Schnittstelle irgendwie mit außen kommunizieren.

Jochen

Also das macht man auch manchmal.

Jochen

Das ist auch, würde ich sagen, ja, eine Firewall, um halt zu verhindern, dass du Netzwerke miteinander überhaupt verbinden musst.

Jochen

Dann kannst du halt da sagen, okay, da ist eine, da ist gar keine Verbindung in dem Sinne.

Ja.

Okay.

Jochen

Es würde für mich auch irgendwie unter Firewall fallen.

Jochen

Oder es kann diverse andere Geschichten geben, die halt auch da drunter fallen.

Jochen

Also ich würde eher sagen, das ist halt eher ein Konzept.

Jochen

Und ja, aber das ist alles Sachen, das ist heute, ich würde sagen, ich weiß es natürlich nicht so genau, vielleicht, das ist heutzutage eher ein Ding für Experten.

Jochen

Weil wer hat.

Dominik

Mist.

Jochen

Also ich meine, wenn man einem Spaß macht, man sich ja damit beschäftigen, aber so.

Jochen

Das, ja, die meisten Firmen machen ja auch ihre Rechenzentrumskram nicht mehr selber.

Jochen

Auch das macht natürlich Spaß, irgendwie selber Rex zu bauen und Kabel zu ziehen und die zu labeln und so.

Jochen

Voll gut, aber das macht auch heute kaum noch jemand, weil alle gehen halt in die Cloud und pfff.

Okay.

Jochen

Es ist halt so ein bisschen, das wird halt eher, das rutscht halt alles so in die Richtung Commodity.

Jochen

Also früher hat es halt, man hat es vielleicht noch einen Unterschied gemacht, wenn man jetzt eine Firma war und hat halt irgendwie sein eigenes Rechenzentrum im Keller betrieben, ob man jetzt die Kabel ordentlich gelabelt hat und irgendwie da die Paketfelder ordentlich hingestellt hat und so.

Jochen

Und heutzutage ist das halt so, darüber kann man sich schwer differenzieren, weil also außerhalb man macht es halt scheiße, aber ansonsten kann man es, wenn man es gut macht, besser als Amazon wird man es nicht machen können.

Jochen

Daher, oder nur, also mit einem Aufwand, der das ist halt nicht mehr gerechtfertigt.

Jochen

Nicht bezahlbar, ja.

Jochen

Es lohnt sich einfach nicht.

Jochen

Also Amazon ist so gut, die anderen auch, dass sich das nicht mehr lohnt, das selber zu machen, um sich da noch irgendwie sowas rauszuholen.

Dominik

Das ist ein PC, das mussten wir nochmal irgendwann genauer erkennen.

Jochen

Das ist so ein bisschen schade irgendwie, weil natürlich viele coole Sachen, die wir früher irgendwie interessant waren, heute halt nicht mehr nicht mehr so.

Jochen

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

Dominik

Zeiten sind vorbei.

Na gut.

Jochen

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

Dominik

Also ich würde vielleicht gerne nochmal kurz das mit dem Server abschließen.

Dominik

Ja.

Dominik

So ein bisschen, was ich noch machen würde, also für mich jetzt persönlich, ich würde gerne so ein paar IoT-Geräte daran schicken.

Dominik

Also ich habe jetzt irgendwo ein paar RESPI-Sensoren oder sowas, die ich dann da broadcasten oder sowas mit MQTT habe ich gelernt, das würde ganz gut funktionieren.

Dominik

Und dann darf ich irgendwie so ein Rest oder ein GraphQL am besten, was würdest du sagen, API laufen über so ein Caddy dann ein Django ansteuern, da das dann.

Jochen

In Django selber rein geht das dann wahrscheinlich, wenn du es direkt in Django reinschreiben willst, über wahrscheinlich sowas wie Django REST Framework oder halt eben über GraphQL oder so, das sind halt so die typischen Sachen, mit denen man halt APIs bereitstellt.

Jochen

Aber was du auch machen könntest, ist es halt die Frage.

Jochen

Also MQTT ist halt insofern schicker, als dass es halt genau für solche Anwendungsfälle gedacht ist.

Jochen

Und du dir halt über viele Sachen nicht mehr selber Gedanken machen musst, was du müsstest, wenn du es halt, also wenn wir jetzt zum Beispiel irgendwie, keine Ahnung, eben, du hast einen Sensor, es ist halt die Frage, ob es jetzt wichtig ist, die Daten, die dabei rausfallen oder ob man die ignorieren kann.

Jochen

Also wenn jetzt da eine wichtige, nehme an, du hast einen Geigerzeller in einen Raspberry Pi eingeschlossen, ja, und irgendwie der Fallout, die Fallout-Wolke ist überzieht über dein Wohngebiet.

Jochen

Und aber dummerweise ist irgendwie gerade dein Server nicht erreichbar.

Jochen

Dann ist es natürlich blöd, wenn jetzt diese Information, dass dein Garten verseucht ist, nicht bei dir ankommt, weil der Raspberry Pi, der die Sensordaten bekommen hat, versucht sie halt irgendwie an deinen Server zu schicken und der ist halt gerade nicht da.

Jochen

Und was macht dein Dann.

Dominik

Dann schmeißt sie einfach weg.

Schmeißt sie einfach weg, ja.

Jochen

So, dann schmeißt sie einfach weg und dann kriegst du die Daten nicht.

Jochen

Hängt davon ab, hängt von deinen Anforderungen ab, ob das jetzt schlimm ist oder nicht.

Jochen

Kann auch sein, dass es nicht schlimm ist.

Jochen

Aber wenn es, wenn du möchtest, dass die dann halt noch irgendwann dahingeschickt werden, wenn der Server wieder da ist, dann brauchst du ja selber irgendwie eine Art von Queue, dann brauchst du irgendwie eine Warteschlange, wo halt die Sensordaten erstmal auflaufen und dann halt irgendwie, dann, wenn dein Server wieder verfügbar ist, da hingeschickt werden.

Jochen

Und ja, das kannst du dann, kannst du noch Features dazu bauen und dann implementierst du MQTD oder halt beliebiges anderes Queuing-Systemen, Message-Queue-System halt nach.

Jochen

Und das muss man nicht tun, man kann einfach eins nehmen, das schon fertig ist und das macht das dann für einen.

Jochen

Eben sagt man, dann schmeißt man halt in die Queue halt irgendwie dieses Sensordatum halt rein.

Dominik

Und der überlegt die so lange bisher eine 2001.

Genau, aber

Jochen

man muss sich nicht mehr selber kümmern, dass das irgendwie zugestellt wird und so, das passiert dann automatisch.

Dominik

Also der macht dann einfach Post-Requests auf die API.

Nee, nee, nee, nee.

Jochen

Das Ding macht.

Jochen

Nein, nein, nein.

Jochen

Das war ein eigenes Protokoll.

Jochen

Das macht auch kein HTTP.

Jochen

Das ist ein eigenes Protokoll.

Jochen

Es gibt einen MQTT-Broker, der irgendwie weiß, welche.

Dominik

Wie spricht der dann REST?

Was bekommt der denn da?

Dominik

Kein HTTP.

Dominik

Aber was bekomme ich denn auf meinem Django-Backend, auf meinem Dango-Server?

Jochen

Du könntest natürlich, ja, wenn du kannst halt intern irgendwo bei dir zu Hause MQTT sprechen und dann halt irgendwie den ganzen Kram halt periodisch zu deinem Server schicken, aber du könntest natürlich auch, und das ist fast wahrscheinlich dann geiler, zum Beispiel ein VPN aufmachen.

Ja.

Jochen

Und hast halt auch quasi ein Ding, was halt die an der Que hängt, sozusagen die, die konsumiert, die Ereignisse, die da rausfallen, die Events, die herausfallen, und das dann halt irgendwo zum Beispiel in deine Datenbank direkt reinschreibst.

Dominik

Oder gehe ich aber gar nicht mehr über die API?

Jochen

Dann gehst du gar nicht über die API, genau.

Dominik

Aber dann habe ich noch einen eigenen Service laufen, der hängt aber nicht mehr im Caddy, sondern der hängt als Demon wieder auf einem eigenen Port.

Ja, genau.

Dominik

Aha, und dann muss ich dann einfach dann, der.

Dominik

Wie kann der denn dann mit der, das ist mein Problem, mit der Datenbank, die im Docker liegt, reden.

Jochen

Ja, auf dem lokalen Host geht das ja alles, da kannst du auch mit der Datenbank reden, das geht.

Dominik

Ah, das heißt, ich muss dann aber den in den Container mit reinschreiben.

Dominik

Den im QGT-Broadcaster, damit er auf die Datenbank zugreifen kann.

Jochen

Nö, das musst du halt bloß irgendwie auf da reinkommen.

Jochen

Das Ding kann in dem Container irgendwie als Prozess laufen, das kann aber auch wieder in einem eigenen Container laufen.

Aber das

Dominik

kann halt, ich bin jetzt gerade ein bisschen ausgestiegen an der Stelle dieser Verzahnung.

Dominik

Also ich habe jetzt meinen Django in einem Docker-Container laufen, der vom Caddy angesteuert wird.

Jochen

Den läuft selber in einem eigenen Container.

Jochen

Angesteuert ist.

Dominik

Also der Caddy, der schießt das doch zum App-Server.

Dominik

Der App, der hat.

Jochen

Nein, wenn Requests von außen kommen, die landen auf dem Caddy und der schickt sie dann halt weiter an den Applikationsserver, wenn sie bestimmt entsprechen.

Dominik

Der läuft aber als Docker.

Jochen

Ja, aber der Caddy kann auch als Docker-Ding laufen.

Jochen

Bei der Default-Installation mit Cookie Cutter ist das auch so.

Jochen

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

Dominik

Und dann ist das egal, dann kann der MQTT-Bloadcaster auch im Container laufen.

Dominik

Der kann aber dann mit den anderen Ausglash-Containern zum Beispiel reden oder sowas.

Dominik

Ja.

Dominik

Ja, okay.

Dominik

Dann kann er das dann reinschreiben und kann da gut drauf zugreifen.

Dominik

Der Zugriff, den mache ich jetzt, weiß ich nicht, Django kann man Plotly, C-Born, Matwot Blip oder halt tatsächlich so ein bisschen Dash sogar, habe ich gesehen, Dumbo-Modul, um das dann irgendwie vernünftig darzustellen.

Dominik

Wie kommunizieren die denn dann mit der Datenbank, damit das dann live abgerufen werden kann, wenn ich die Daten jetzt live auslesen möchte?

Jochen

Weiß ich ehrlich gesagt, bin ich mir so ein bisschen überfragt, keine Ahnung.

Jochen

Also man kann das halt so machen, dass man, also du möchtest, dass sich live irgendwie dein Graph ändert.

Dominik

Ja.

Dominik

Wenn ich auf den Knopf drücke, dann soll das, also auf dem Raspi auf den Knopf drücke, dann soll das direkt umpassen.

Sichtbar sein, ja.

Jochen

Das Einfachste ist wahrscheinlich in JavaScript einfach zu pollen, irgendwie alle ein paar hundert Millisekunden oder so einfach nochmal die API zu fragen, gibt es neue Daten.

Dominik

Get Request und einfach.

Jochen

Oder aber das ist halt die Frage, ob man das machen möchte, du machst halt Websockets und dann sowas auf Django-Seite, was wie Django Channels oder so, aber dann musst du halt einen, da musst du einen anderen, musst du noch ein bisschen anderer.

Dominik

Was sind denn Websockets jetzt schon wieder?

Jochen

Oh je, ja, das ist halt so eine Erweiterung.

Jochen

Das ist halt dann auch schon nicht mehr HTTP, dann ist dann halt was anderes.

Jochen

Weil HTTP ja, da hast du das Problem, du hast keine bidirektionale Verbindung, sondern du hast halt immer nur Request-Response.

Jochen

Request-Response geht das nicht, weil du kannst halt vom Server aus nichts zum Client schicken, weil du weißt ja nicht mal, wer deine Clients sind.

Jochen

Du hast ja keine Verbindung zu denen.

Dominik

Socket hört sich so an wie so ein Port oder sowas, der irgendwie im Internet rumschwebt.

Jochen

Socket, ja.

Jochen

Ja, Socket ist quasi sozusagen das eine Ende der Hörer bei dem Telefon.

Jochen

Wenn sich vorstellt, das ist wie so eine Verbindung, so eine Internet-TCP-Verbindung ist halt wie so eine Telefonverbindung, dann wäre Socket irgendwie der Hörer, wo man irgendwie was reinwerfen kann, was halt auf der anderen Seite rauskommt.

Dominik

Der kannst in beide Richtungen, aber was reinwerft, das hat er nicht so ein bisschen.

Jochen

Ja, genau, es hat in beiden Sachen.

Jochen

So, aber HTTP ist halt nicht so, sondern HTTP ist eher so wie hoher Post.

Jochen

Da wirfst du halt was rein und das.

Jochen

Ruhe Post.

Jochen

Ne, Quatsch, ach, das ist auch Unsinn.

Jochen

Das wäre ja auch bidirektional.

Jochen

HTTP ist eher so wie.

Dominik

Wie so ein Katapult.

Dominik

Katapult in eine Richtung fliegt immer was für die Stadtmauer und dann, wenn du was.

Jochen

Du hast eine Telefonverbindung, aber auf der Serverseite hast du nur.

Dominik

Oder du bist dann in so einem Bunge-Seil und versuchst mit der Hand immer ins Wasser.

Jochen

Ach, diese ganzen Vergleiche sind nicht gut.

Jochen

Das stimmt alles nicht.

Ja.

Jochen

Mir fällt kein guter Vergleich ein.

Jochen

Das ist aber auf jeden Fall so, du hast halt eben keine Verbindung zu deinen Clients.

Jochen

Du kannst die nicht benachrichtigen, dass sich irgendwas geändert hat.

Jochen

Du kannst immer nur darauf warten, dass sie dich fragen.

Dominik

Du kannst einen Fax hin und her schicken, sowas.

Jochen

Ja, du kannst halt nichts dahin schicken.

Jochen

Du kannst halt nur darauf warten, dass dich jemand fragt.

Jochen

Und das ist halt, also jetzt halt mein Vergleich ein.

Jochen

Du bist halt so wie die, äh, wie die, äh, wie beim Bahnhof die Information.

Jochen

So, die Leute können zu dir kommen und dich irgendwas fragen, aber wenn jetzt der Zug irgendwie, keine Ahnung, ausfällt, die Wagenreihung sich ändert oder Godzilla drüber gelaufen ist, dann kannst du das den ganzen Reisenden nicht sagen.

Jochen

Sondern die müssen kommen und dich fragen.

Jochen

Quasi.

Ja, ja.

Dominik

Ja, also man könnte ja so durchsagen, aber so weit sind wir jetzt noch nicht, das ist viel zu modern.

Jochen

Da geht es dann natürlich schon wieder kaputt mit der Metapher.

Jochen

Aber ja, also eben, wenn du dann Websockets hast, dann geht es halt doch.

Jochen

Dann hast du eben eine Verbindung zu allen Clients und denen kannst du dann echtzeit direkt sagen.

Dominik

Wie mache ich Websockets an?

Dominik

Also über Django hast du gesagt Channels.

Jochen

Ja, Django Channels ist eine.

Jochen

Das Problem ist aber, du brauchst halt einen anderen Server, dann Applikationsserver, der das kann.

Dominik

Und welcher Applikationsserver kann Selbstsockets von Duncan?

Jochen

Der kommt dann da mit Django Channels mit, der heißt irgendwie Daphne.

Jochen

Und ja, es gibt auch, glaube ich, einen, der so ähnlich ist wie Unicorn, der heißt bloß ein bisschen anders, der das dann auch kann.

Jochen

Aber genau, also das ist halt alles nicht mehr so einfach dann.

Jochen

Und ja.

Dominik

Ja, aber jetzt habe ich schon wieder jede Menge gelernt und ich bin viel weitergekommen.

Dominik

Was mir jetzt das Einzige, was mir noch fehlt, tatsächlich, wäre jetzt das Indie-Web, was ich jetzt da irgendwie bauen wollte.

Jochen

Achso, in die Web-Geschichten, genau, dafür brauchst du, also wenn du eine eigenen Domain hast, ist schon mal sehr gut, dann kannst du schon mal eine Menge machen.

Jochen

Und das auch vor allen Dingen kannst du eine Menge nachrüsten.

Jochen

Ansonsten bei Django sieht es da momentan noch nicht so richtig doll aus.

Jochen

Also muss man noch ein bisschen was basteln.

Dominik

Ja, ich habe jetzt tatsächlich irgendwie geguckt, wir haben jetzt die ganze Überschreit, aber du kannst halt einfach auch irgendwie jetzt ein Flashroom Pyramid einfach da nehmen, ist eigentlich relativ egal.

Jochen

Ja, da gibt es auch nichts.

Dominik

Aber dann gibt es halt jeweils die andere Module, die man dann irgendwie sich herausfinden muss, welche das dann sind und das funktioniert aber dann quasi relativ ähnlich.

Jochen

Genau.

Jochen

Also in die Webgeschichten ist momentan eher noch alles so in der PHP-Welt zu Hause.

Ja, okay.

Jochen

Ja, so ist es halt.

Dominik

Das heißt, ich muss dann einfach so ein Caddy auf ein PHP-Verzeichnis schicken, oder?

Jochen

Wenn du jetzt nee, du könntest, also ich weiß nicht, wie man das heutzutage so macht mit PHP.

Jochen

Also diese, ich hoffe, dass auch mal da die Zeiten, wo man da irgendwie so eine Webroute hatte und da irgendwie PHP-Dateien, die dann irgendwie magisch ausgeführt werden über Modelbot PHP oder so.

Jochen

Und Apache, ich hoffe ja mal, dass das nicht mehr so ist, sondern dass man da auch das inzwischen so macht, dass man da halt irgendwie Caddy davor hat oder irgendwie Nginx und dann hast du halt Applikationsserver, die halt PHP.

Dominik

Aber im Worst Case könntest du sein, dass ich neben dem Caddy dann einfach ein Apache mit einem Mod PHP laufen habe und der dann Anspreche aus auf dem nächsten Port.

Jochen

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

Jochen

Du kannst ja einfach einen Caddy sagen, so das bitte an diese Domain oder diese Subdomain oder was auch immer, an den Apache weiterreichen, geht natürlich auch und den eigenen Container packen, klar.

Dominik

Und dann fürs Indie-Web, was baue ich denn da noch?

Dominik

Also eigentlich auch sagen wir.

Jochen

Da kommt mal drauf an, was du machen möchtest, aber da müssen wir nochmal, also weiß ich jetzt ehrlich gesagt, das ist nicht so genau.

Dominik

Okay, das machen wir dann nochmal an externe, haben wir jetzt mal ein bisschen kurz eingerichtet, aber das könnt ihr euch bestimmt auch einlegen, da gibt es ja Dokus zu, aber das geht alles mit demselben Server.

Dominik

Also ja, GitLab haben wir gesagt, kannst du auch selber drauf bauen, wenn du deine eigene Versionskontrolle bauen willst, dann halt einen GitLab-Server.

Dominik

Das würdest wahrscheinlich auch einfach ein Dienst sein, oder?

Dominik

Daemon?

Was ist das?

Jochen

Ja, ja, ja, ja, ja.

Jochen

Das ist einfach auch wieder eine Webgeschichte, ne?

Jochen

Also GitLab ist einfach auch nur so ein Webfrontend.

Jochen

Auch nicht.

Jochen

Ruby und Rails ist halt, ich weiß nicht genau, wie aufwendig das ist, das zu hosten.

Jochen

Also irgendwann wird es dann natürlich schwerer.

Jochen

Also wenn du einen 10-Container hast oder 20 oder irgendwann wird es dann mit dem Hauptspeicher ein bisschen eng.

Jochen

Keine Ahnung.

Jochen

Braucht man möglicherweise auch eine eigene Datenbank?

Jochen

Ja.

Dominik

Also Datenbanken sollte man nicht so viele nehmen.

Dominik

Man sollte die meisten nach in dieselbe Datenbank packen, weil Datenbanken viel Dinge brauchen.

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.

Nach Projekten.

Jochen

Also und dann immer eine eigenen Container für die Datenbanken machen.

Jochen

Und das nicht alles auf eine Datenbank packen, weil auch da wiederum, wenn du das halt irgendwie updatest oder so, du möchtest ja eigentlich, oder du bist halt dann, du begibst dich dann in das Gebiet.

Dominik

Du musst die Datenbank löschen für einen Projekt und dann sind alle Projekte rutscht.

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 einem Projekt auf einer bestimmten Datenbankversion 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 hast, wo du, wo alle deine Datenbanken liegen.

Jochen

Wäre viel effizienter, aber ist halt viel schwerer, was die, was die, was den Betrieb angeht.

Dominik

Das heißt, ich muss dann von meinem Web-Server auf den Datenbank-Server immer hin und her connecten oder irgendwas, ja.

Jochen

Naja, das ist halt einfach, du musst dann, du musst dann plötzlich Dinge tun.

Jochen

Du musst dann, wie da musst du Backups haben, du musst auch so haben, aber das kriegst du alles in einem Projekt unter.

Jochen

Aber wenn du jetzt einen eigenen Datenbank-Server hast, dann ist das mit den Backuppen alles nicht mehr so einfach.

Jochen

Dann ist du das machst, dann bist du halt schon im Profibereich irgendwie unterwegs, dann machst du sonst nichts mehr.

Jochen

Dann machst du genau das nur noch.

Jochen

Und die Frage ist, ja, für Hobbygeschichten nutzt sich das ja überhaupt nicht.

Dominik

Ja, dann sind wir wieder, ich glaube, den Kreis können wir jetzt schließen.

Dominik

Wir sind ja nämlich bei der Tiger angekommen, weil die möchte ich jetzt vielleicht auch noch laufen lassen.

Dominik

Ich hätte gerne ein paar Kanban-Boards irgendwie für mich persönlich, die ich dann da selber hoste.

Dominik

Genau dasselbe, ich muss da wieder was hochfahren, was routen über dein Keddy und ab der Applikation laufen und läuft.

Dominik

Ja, super.

Dominik

Also ja, wenn ich das irgendwie mache, ich bin gespannt, wie lange ich dafür brauche, bis das alles rennt.

Ich gebe

Jochen

euch die Feucht.

Jochen

Das ist auch, aber ich meine, wenn du, also ich höre, dass du wirst eine ganze Menge Zeug betreiben, da brauchst du wahrscheinlich dann schon eher so eigene Hardware oder sagen wir so, dann wird es mit eigener Hardware deutlich günstiger, als wenn du jetzt da irgendwie eine virtuelle Container dir mietest, der dick genug ist, dass du das alles damit machen kannst.

Jochen

Das wird dann relativ schnell teuer.

Dominik

Ja, ja, also der RAM ist, glaube ich, das größte Problem.

Jochen

Ja, RAM ist irgendwie das, ja, würde ich auch sagen.

Dominik

Ja, ich habe noch so einen kleinen Technik gesehen, aber dann mit Dünden ist auch irgendwie doof und ja.

Dominik

Ja, ich muss überlegen, was da irgendwie am besten in Frage findet.

Jochen

Aber damit kannst du ja vielleicht starten.

Jochen

Du kannst ja zu Hause anfangen.

Dominik

Ja, ja, der ist schon in der Luft schon eine ganze Weile, aber der macht keinen Spaß.

Dominik

Ja, aber ich muss ja eh immer so ein ganzes System bauen und so.

Dominik

Aber ich möchte die ganze Nacht halt dann einfach wieder umbauen können, dass das nicht irgendwie das mal dieser ganze Konfigurationsaufwand ist.

Dominik

Ich habe jetzt irgendwie im Fedora-Server dann irgendwie hingestellt, dass es irgendwie einige Sachen auch konnte, der auf den Postgres auch lief und irgendwie auch dann Dankbo konnte, aber das ist alles nicht so gewesen wollte.

Dominik

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

Dominik

Ich habe da kein Candy, kein Rius und Nix da gebaut.

Dominik

Das war mir bisher völlig unbekannt.

Dominik

Und ja, finde ich super, dass man das alles so machen kann.

Dominik

Also bis jetzt geht es ja immer nur so.

Dominik

Docker-Containers brauchen doch das alles irgendwie magisch, aber wenn man nicht so wirklich versteht, was dann dahinter steckt, ist das nochmal eine ganz andere Hürde, glaube ich.

Dominik

Auch zu verstehen, warum was gerade nicht geht oder so.

Dominik

Und ja.

Dominik

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

Jochen

Jetzt weiß ich nicht, ob das alles irgendwie klarer geworden ist, sondern nur noch viel verwirrender.

Nein, nein, nein, das war richtig wahr.

Dominik

Also eine große Erleuchtung.

Dominik

Man kann sich das alles auch mal zurückspulen oder nochmal langsam abspulen.

Dominik

Ich fand es echt cool.

Jochen

Ja, also auf jeden Fall.

Jochen

Eine tolle

Dominik

Folge für mich mal heute hier.

Okay, ja.

Dominik

Mag sie natürlich immer an.

Jochen

Ja, und genau, also ja, also es macht auch Spaß und ich denke, dass man zumindest, also wenn man so ein paar Anregungen hat, wie man selber eine Webseite irgendwie oder Django Python-Kram im Web betreiben kann.

Jochen

Und wenn man das eigentlich vielleicht heutzutage so macht, dann ist das ja auch schon mal nicht so schlecht, weil man muss eh viel recherchieren und bei Django würde ich sagen, irgendwie Buch kaufen, Cookie Putter Template verwenden.

Dominik

Ja, also ich schließe jetzt gleich erstmal die Mail von Thorsten durch und freue mich, dass ihr heute alle wieder zugehört habt.

Fand ich richtig super.

Jochen

Ich habe ja sowieso auch keine.

Dominik

Ja, Pick der Woche habt ihr heute Morgen.

Habe ich schon verbannt.

Jochen

Machen wir dann diesmal nicht.

Machen wir diesmal wieder.

Dominik

Ja, dann gut, dass ihr wieder eingeschaltet habt.

Bleibt uns gewogen.

Dominik

Immer dann, wann wie ihr hört, irgendwie, ob gerade die Sterne scheinen oder die Sonne brüht.

Dominik

Ja, wir hören uns.

Dominik

Bis wieder.

Jo, tschüss.