Hinter den Kulissen. Wie entstehen Kurse?

Ein Teilnehmer kommt zum Kurs oder Intensiv. Er sieht die klaren Reihen des technischen Supports, ordentlich verlegte Stromkabel, die schachbrettartige Anordnung des Vorlesungsraums, lebendige Bilder und Diagramme auf den Folien. Die Referenten prĂ€sentieren Informationen mit Scherzen und LĂ€cheln, sodass man nur schnell verstehen kann. Die StĂ€nde sind eingerichtet, praxisnahe Aufgaben fliegen von den Fingern, manchmal ist jedoch UnterstĂŒtzung des technischen Supports nötig.

Und die Kaffeepausen mit Gleichgesinnten, eine lebhafte und dynamische AtmosphĂ€re, Erfahrungsaustausch, die unerwartetsten Fragen an die Referenten. Und Antworten sowie Informationen, die man nicht in HandbĂŒchern findet, sondern nur in der Praxis.

Wie viel Zeit, MĂŒhe und Nerven denkt ihr, hat es gebraucht, damit es genau so aussieht?

Hinter den Kulissen. Wie entstehen Kurse?

Danke an Wladimir Gurjanow, zertifizierten Kubernetes-Administrator und Ingenieur/Teamleiter bei Southbridge, der von Anfang an Zeuge und aktiver Teilnehmer bei der Erstellung vieler Kurse von Slurm war.

Er hat die HintergrĂŒnde der Kurserstellung gesehen – die Schwierigkeiten und spitzen Stolpersteine, Einsichten und unerwartete Lösungen. Und die bereits gewohnten Intensivkurse zu Kubernetes, wie Slurm Basic und Slurm Mega. Und den neuen, in vielerlei Hinsicht ĂŒberarbeiteten Kurs Slurm DevOps:Tools&Cheats, der unaufhaltsam nĂ€her rĂŒckt und am 19. August beginnen wird.

Hinter den Kulissen. Wie entstehen Kurse?

Aber wahrscheinlich genug von der Lyrik, kommen wir zur eigentlichen Geschichte. Wie aus ein paar Themen des Intensivs allmĂ€hlich ein ganz autarkes und vielseitiges Docker-Kurs. Ich beginne also mit der ErzĂ€hlung, wie Kurse entstehen und sich entwickeln – ganz nach dem Motto: "Vor langer Zeit in einer weit, weit entfernten Galaxie
"

Was passiert hinter den Kulissen?

Wenn ihr fragt, wie wir Kurse erstellen und womit alles anfÀngt, antworte ich einfach: "Alles beginnt mit einer Idee".

In der Regel kommt die Idee irgendwoher – wir sitzen nicht mit Handschellen im Keller, bis wir uns ĂŒberlegen: 'Über welches Thema sollen wir einen Kurs machen?'. Ideen kommen einfach aus externen Quellen zu uns. Manchmal fangen die Leute an zu fragen: 'Was wisst ihr ĂŒber diese bestimmte Technologie?'. Oder wie es mit Docker war, dass es nicht ins Timing des Intensivs passte – es musste offensichtlich nach außen getragen werden, um im Rahmen des Intensivs etwas erzĂ€hlen zu können.

Hinter den Kulissen. Wie entstehen Kurse?

Genau so entsteht die Idee.

Nachdem sie erschienen ist, beginnt meiner Meinung nach der schwierigste Moment – ĂŒberhaupt zu verstehen, was in diesen Kurs aufgenommen werden soll – das ist sehr vergleichbar damit, wie sich Referenten fĂŒr verschiedene Konferenzen vorbereiten.

Es gibt eine zentrale Schwierigkeit: Man hat das Thema scheinbar gewĂ€hlt und denkt dann: „Was soll ich darĂŒber erzĂ€hlen? Das ist zu einfach, das ist offensichtlich, das weiß jeder.“

Aber in Wirklichkeit ist das ĂŒberhaupt nicht so. Ich persönlich sage an vielen Stellen, dass das, was dir offensichtlich erscheint, fĂŒr diejenigen, die dir zuhören oder den Kurs belegen, ĂŒberhaupt nicht offensichtlich ist. Und hier entsteht ein großer Arbeitsbereich und ein innerer Konflikt darĂŒber, was in den Kurs aufgenommen werden soll. Das Ergebnis ist eine Liste von Kapiteln, die eher grob umreißen, worum es in dem Kurs geht.

Dann beginnt die einfache Routinearbeit:

  • Materialauswahl
  • SorgfĂ€ltiges Lesen der aktuellen Dokumentation, denn die IT-Welt entwickelt sich momentan mit astronomischen Geschwindigkeiten. Selbst wenn du an etwas arbeitest und dazu einen Kurs machst, musst du in die Dokumentation schauen und sehen, was neu hinzugekommen ist, worĂŒber es interessant ist zu berichten und was vielleicht besonders erwĂ€hnenswert ist.
  • So entsteht ein gewisser Rahmen fĂŒr den Kurs, in dem bereits der Großteil der Themen im Großen und Ganzen ausgearbeitet ist und man denkt, jetzt muss man nur noch Videos aufnehmen und in die Produktion starten.
  • Aber in Wirklichkeit ist das nicht der Fall. Es beginnt die schwere Arbeit – allerdings nicht fĂŒr die Kursautoren, sondern fĂŒr die Tester. Normalerweise ĂŒbernehmen die technische UnterstĂŒtzung die alpha-Tester, die erstens die Kurse auf verschiedene syntaktische und grammatikalische Fehler ĂŒberprĂŒfen. Zweitens werden wir ziemlich heftig kritisiert, wenn es einige völlig unklare, unverstĂ€ndliche Stellen gibt. Wenn in den Texten komplizierte zusammengesetzte SĂ€tze ĂŒber mehrere Seiten oder offensichtlicher Unsinn auftaucht. Sie ĂŒberprĂŒfen das alles und achten darauf.
  • Dann beginnt die Phase der Praxistests, in der ebenfalls offensichtliche, nicht funktionierende Dinge erkannt werden und aufgezeigt wird, welche Punkte entweder komplizierter gestaltet werden sollten, weil es nicht sehr interessant ist, einfach nur zu kopieren – und es werden Stellen aufgedeckt, wo wir von den Leuten, die diesen Kurs belegen, viel verlangen. Dann kommen die Empfehlungen: „Macht es hier einfacher, Jungs, das wird leichter zu verstehen sein und bringt mehr Nutzen.“
  • Nachdem dieser Arbeitsaufwand geleistet wurde, ist der Teil, der sich auf das Video bezieht, gut gelungen. Wir können bereits mit der Veröffentlichung und der Werbung fĂŒr diesen Kurs beginnen. Aber erneut ist es zu frĂŒh – da wir in letzter Zeit ein wenig das Vertrauen in uns selbst verloren haben und generell mehr mit Feedback gearbeitet haben. Es gibt nun so etwas wie Beta-Tests – dabei werden externe Personen, die mit unserem Unternehmen ĂŒberhaupt nichts zu tun haben, eingeladen, um ihnen alle Teile des Kurses, Videos, Texte und praktische Aufgaben zu zeigen, damit sie die QualitĂ€t des Materials und die ZugĂ€nglichkeit bewerten und uns helfen, den Kurs so gut wie möglich zu gestalten.
  • Und wenn mehrere solcher Iterationen mit Speakern, Alpha-Tests in Form von technischer UnterstĂŒtzung, Beta-Tests und Überarbeitungen durchlaufen sind, beginnt alles wieder von vorne – technische UnterstĂŒtzung, Beta-Test, Überarbeitungen.
  • Und in einem bestimmten Moment kommt das VerstĂ€ndnis, dass wir entweder die Überarbeitungen einstellen, weil es völlig unrealistisch ist, es allen recht zu machen, oder es mĂŒssen radikale Entscheidungen getroffen werden. Wenn viele Anmerkungen zu bestimmten Punkten kritisch sind – mĂŒssen sie umfassend ĂŒberarbeitet werden, weil etwas nicht geklappt hat.
  • Dann kommt die Zeit fĂŒr kleinere Anpassungen – wo ein Satz nicht schön formuliert ist, wo jemand die SchriftgrĂ¶ĂŸe 14,5 nicht mag und stattdessen 15,7 möchte.
  • Wenn nur noch Anmerkungen dieser Art ĂŒbrig bleiben, wird der Kurs mehr oder weniger freigegeben und die offiziellen VerkĂ€ufe beginnen.

Auf den ersten Blick scheint die kurze und einfache Aufgabe, einen Kurs zu erstellen, jedoch ĂŒberhaupt nicht einfach zu sein und nimmt unglaublich viel Zeit in Anspruch.

Und es gibt noch einen wichtigen Punkt: die Arbeit am Kurs endet nicht, wenn der Kurs veröffentlicht wird. ZunĂ€chst lesen wir aufmerksam die Kommentare, die zu den verschiedenen Teilen hinterlassen werden. Trotz all der Anstrengungen, die wir unternommen haben, treten dennoch einige MĂ€ngel und Fehler auf, die wĂ€hrenddessen in Echtzeit korrigiert und ĂŒberarbeitet werden, damit jeder nachfolgende Benutzer einen qualitativ hochwertigeren Service erhĂ€lt.

Hinter den Kulissen. Wie entstehen Kurse?

Jeder Kurs hat seinen eigenen Product Owner, der neben der Definition des Gesamtkonzepts auch die ZeitplĂ€ne ĂŒberprĂŒft. Er macht sich Notizen am Rand, damit er, wenn es Zeit ist, den Kurs vollstĂ€ndig neu zu schreiben – und das wird definitiv kommen, denn in ein oder zwei Jahren wird ein Teil dessen, was wir lehren, irrelevant sein, einfach weil es moralisch veraltet ist. Der Product Owner notiert sich, was die Leute am hĂ€ufigsten fragen, welche Punkte unklar waren, welche Aufgaben sehr schwierig und welche sehr einfach erschienen. All dies wird bei der Wiederaufnahme des Kurses und bei irgendetwas wie Refactoring berĂŒcksichtigt, damit jede globale Iteration des Kurses besser, benutzerfreundlicher und angenehmer wird.

So entstehen Kurse.

Wie der Kurs zu Docker entstand

Das ist ein separates und sogar ungewöhnliches Thema fĂŒr uns. Denn einerseits hatten wir nicht geplant, ihn zu machen, da viele Online-Schulen ihn anbieten. Andererseits wollte es sich von selbst entfalten und fand einen logischen Platz in unserem Konzept zur Ausbildung von IT-Spezialisten in Kubernetes.

Wenn man es ganz allgemein betrachtet, begann alles ursprĂŒnglich mit dem Kurs zu Kubernetes, als dieser gerade gestartet wurde, glaube ich, nach dem ersten Slurm. Wir sammelten Feedback und stellten fest, dass viele noch zusĂ€tzlich ĂŒber Docker lesen wollten, und viele kommen zum Basiskurs zu Kubernetes, ohne zu wissen, was es ist. Docker.

Deshalb haben wir zum zweiten Slurm einen Kurs erstellt – eigentlich nicht einmal einen Kurs, sondern ein paar Kapitel ĂŒber Docker. Dort erklĂ€rten wir die grundlegendsten Dinge, damit die Leute, die zum Intensivkurs kommen, sich nicht benachteiligt fĂŒhlen und verstehen, was passiert.

Hinter den Kulissen. Wie entstehen Kurse?

Und dann entwickelte sich die Situation ungefĂ€hr so: Die Menge an Material wuchs und passte nicht mehr in 3 Tage. Es kam die logische und offensichtliche Idee auf: Warum nicht aus dem, was wir im Slurm Basisprogramm vermitteln, einen kleinen Kurs machen, auf den wir Leute schicken können, die vor dem Intensivkurs in Kubernetes etwas ĂŒber Docker sehen möchten.

Slurm Junior ist im Grunde genommen die ZusammenfĂŒhrung mehrerer solcher grundlegenden Kurse. Am Ende wurde der Kurs zu Docker ein Teil von Slurm Junior. Das heißt, es ist eine nullte Stufe vor Basis und Mega. Und dann gab es dort wirklich ganz grundlegende Abstraktionen.

Hinter den Kulissen. Wie entstehen Kurse?

Irgendwann begannen die Leute zu fragen: „Hey, das ist alles großartig, das reicht aus, um zu verstehen, was ihr in den Intensivkursen erzĂ€hlt. Wo kann man denn ausfĂŒhrlicher nachlesen, was Docker kann, wie man damit arbeitet und was es insgesamt darstellt?“. So entstand die Idee, daraus einen kompletten Kurs ĂŒber Docker, um erstens alle Personen, die zum Slurm fĂŒr Kubernetes kommen, weiterhin dorthin zu schicken, und andererseits fĂŒr diejenigen, die sich zurzeit nicht fĂŒr Kubernetes interessieren. Damit IT-Spezialisten kommen können, um unseren Kurs ĂŒber Docker zu sehen und ihren evolutiven Weg einfach mit reinem Docker zu beginnen. Damit wir so einen vollendeten Kurs haben — und viele, die diesen Kurs angesehen haben, einige Zeit mit reinem Docker gearbeitet haben, wuchsen auf das Niveau, wo sie bereits Kubernetes oder ein anderes Orchestrierungssystem benötigten. Und sie kamen insbesondere zu uns.

Manchmal wird die Frage gestellt: „Welche Leute brauchen zurzeit kein Kubernetes?“ Aber diese Frage betrifft nicht die Menschen, sie ist eher eine Frage an die Unternehmen. Man muss verstehen, dass Kubernetes bestimmte AnwendungsfĂ€lle hat, in denen es gut passt und Aufgaben, die es gut löst, aber auch Szenarien, in denen Kubernetes zusĂ€tzliche Schmerzen und Leiden verursachen kann. Daher hĂ€ngt es nicht von den Menschen ab, sondern davon, was und wie lange die Unternehmen entwickeln.

Zum Beispiel, wenn es ein schrecklicher Legacy-Monolith ist — dann sollte man ihn wahrscheinlich nicht in Kubernetes bringen, denn das wĂŒrde mehr Probleme als Vorteile bringen. Oder, wenn es sich um ein kleines Projekt handelt — es hat geringe Lasten oder einfach nicht viel Geld und Ressourcen. Dann macht es keinen Sinn, es in Kubernetes zu bringen.

Und ĂŒberhaupt, wahrscheinlich, wie schon viele gesagt haben, wenn Sie sich fragen: „Brauche ich Kubernetes?“, dann benötigen Sie es wahrscheinlich nicht. Ich weiß nicht mehr, wer das zuerst gesagt hat, ich glaube, es war Pasha Selivanov. Ich stimme dem zu 100 % zu. Man muss zuerst zu Kubernetes heranwachsen — und wenn man dann versteht, dass man Kubernetes wirklich braucht und dass es unserer Firma helfen kann, bestimmte Fragen zu lösen, dann macht es wahrscheinlich Sinn, zu lernen und zu verstehen, wie man es gut konfiguriert, damit der Übergang zu Kubernetes nicht sehr schmerzhaft ist.

Einige der gĂ€ngigen Probleme und auch einige sehr einfache Dinge, die man insbesondere bei uns erfahren kann, anstatt ĂŒber eigene HĂŒrden und Schmerzen zu stolpern.

Viele Unternehmen haben den Weg beschritten, dass zunĂ€chst eine einfache Infrastruktur ohne Containerisierung bestand. Dann sind sie zu dem Punkt gekommen, dass es schwierig wurde, all das zu verwalten, und sind auf Docker umgestiegen. Irgendwann haben sie den Punkt erreicht, an dem es in Docker und dem, was es bietet, eng wurde. Sie begannen zu schauen, was es in der Umgebung gibt, welche Systeme diese Probleme lösen, und Kubernetes ist eines dieser Systeme, das Probleme löst, wenn es in reinem Docker eng wird und Funktionen fehlen. Das ist ein gutes Beispiel, wenn Menschen Schritt fĂŒr Schritt von unten nach oben gehen, verstehen, dass diese Technologie nicht ausreicht, und auf die nĂ€chste Ebene ĂŒbergehen. Sie haben etwas genutzt, es wurde wieder zu wenig – und sie gehen weiter.

Das ist eine bewusste Entscheidung – und das ist wirklich großartig.

Ich sehe grundsĂ€tzlich, dass unser System sehr schön aufgebaut ist, zum Beispiel, ein Kurs zu Docker, sogar zu Videokursen. Nach Docker kommt dann Basis Kubernetes, dann Mega Kubernetes, dann Ceph. Alles fĂŒgt sich logisch zusammen – der Mensch durchlĂ€uft es, und es entsteht ein vollstĂ€ndiger Beruf.

Das Kursangebot deckt viele moderne AnwendungsfÀlle ab. Es gibt noch Bereiche, die ein grauer Fleck bleiben, und ich hoffe, dass wir bald einige Kurse entwickeln, die diese grauen Bereiche abdecken, insbesondere im Bereich Sicherheit. Denn das wird zunehmend relevant.

Kurz gesagt, wir haben einige graue Bereiche, die es wert wĂ€ren, geschlossen zu werden, damit es ein wirklich vollstĂ€ndiges Bild gibt – sodass Menschen kommen können, und wie bei Kubernetes, das wie ein Lego-Baukasten funktioniert, kann man verschiedene Dinge zusammensetzen, und wenn etwas fehlt, ergĂ€nzt man es. So soll es auch mit unseren Kursen sein, sodass die Menschen verstehen können, was sie brauchen, um ein Puzzle, einen Kasten aus unseren Kursen zusammenzustellen.

Hinter den Kulissen. Wie entstehen Kurse?

Wenn man sich selbst die richtige und ehrliche Frage stellt: "Wer braucht jetzt einen aktiven Docker-Kurs?", dann:

  • Studierende, die gerade anfangen, sich einzuarbeiten.
  • Mitarbeiter der Testabteilung.
  • TatsĂ€chlich gibt es viele Unternehmen, in denen immer noch nicht nur keine Docker verwendet wird, sondern in denen niemand jemals von dieser Technologie gehört hat und im Prinzip nicht weiß, wie man sie anwendet. Ich kenne direkt einige große Unternehmen in St. Petersburg, die schon seit vielen Jahren in der Entwicklung tĂ€tig sind und die weiterhin alte Technologien verwenden und in diese Richtung gehen. Insbesondere fĂŒr solche Unternehmen und ihre Ingenieure könnte dieser Kurs sehr interessant sein, da er es ihnen erstens ermöglicht, schnell in diese Technologie einzutauchen, und zweitens, sobald mehrere Ingenieure verstehen, wie alles funktioniert, können sie dies ins Unternehmen bringen und innerhalb des Unternehmens diese Kultur und diese Bereiche weiterentwickeln.
  • Meiner Meinung nach könnte dieser Kurs auch fĂŒr diejenigen nĂŒtzlich sein, die bereits mit Docker gearbeitet haben, allerdings nur sehr wenig und mehr im Stil von "mach eins, mach zwei". Nun planen sie irgendwie, mit Kubernetes zu interagieren, was sie gewisse Verpflichtungen mit sich bringt. Wenn man ganz oberflĂ€chliche Kenntnisse darĂŒber hat, was Docker ist, wie man es startet, aber nicht weiß, wie es intern funktioniert oder was man besser damit machen sollte oder was man besser lassen sollte, dann ist dieser Kurs gut geeignet, um das Wissen zu systematisieren und zu vertiefen.

Aber wenn Ihr Wissen auf dem Niveau ist: "Ich weiß nicht, wie ich Docker-Dateien richtig schreibe, ich habe eine Vorstellung davon, was Namespaces sind, wie Container funktionieren, wie sie auf Betriebssystemebene wirklich implementiert sind" — dann macht es keinen Sinn, zu uns zu kommen. Sie werden nichts Neues erfahren und es wird ein wenig traurig um das ausgegebene Geld und die Zeit sein.

Wenn man die Vorteile unseres Kurses zusammenfassen möchte, dann:

  • haben wir versucht, diesen Kurs mit einer ausreichenden Anzahl an praktischen FĂ€llen zu gestalten, die Ihnen nicht nur helfen, den theoretischen Teil zu verstehen, sondern auch zu erkennen, warum dies fĂŒr Sie wichtig ist und wie Sie es in Zukunft verwenden werden;
  • Es gibt einige Abschnitte, die sehr selten anderswo zu finden sind – und insgesamt gibt es nicht so viele Materialien dazu. Sie beziehen sich auf die Interaktion von Docker mit dem Betriebssystem, sogar ein wenig anders. Welche Mechanismen hat Docker vom Betriebssystem ĂŒbernommen, um ein Containermanagementsystem zu realisieren – und das bietet ein tieferes VerstĂ€ndnis fĂŒr die gesamte Frage der AusfĂŒhrung von Containern im Rahmen des Linux-Betriebssystems. Wie das funktioniert, wie es innerhalb des Betriebssystems und nach außen zusammenarbeitet usw.

Das ist ein wirklich tiefer Einblick, der relativ selten vorkommt, und meiner Meinung nach ist das sehr wichtig. Wenn Sie wirklich gut mit einer Technologie zurechtkommen und verstehen wollen, was Sie davon erwarten können, mĂŒssen Sie zumindest einen allgemeinen Überblick darĂŒber haben, wie sie auf niedriger Ebene funktioniert.

Unser Kurs zeigt und erklĂ€rt, wie das aus der Perspektive des Betriebssystems funktioniert. Einerseits verwenden alle Containermanagementsysteme die gleichen Mechanismen des Betriebssystems. Andererseits ĂŒbernehmen sie das, was im Linux-Betriebssystem vorhanden ist, wie Docker. Andere Containermanagementsysteme haben nichts Neues erfunden – sie haben das, was bereits in Linux ist, ĂŒbernommen und einfach eine bequeme HĂŒlle geschaffen, die es ermöglicht, schnell darauf zuzugreifen, es zu starten oder damit zu interagieren. Docker selbst ist eine nicht besonders große Schicht zwischen dem Betriebssystem und der Kommandozeile, es ist ein Werkzeug, das es ermöglicht, nicht Tonnen von Befehlen oder C-Code zu schreiben, um ein Container zu erstellen, sondern dies mit der Eingabe von ein paar Zeilen im Terminal zu tun.

Und zusĂ€tzlich, wenn wir speziell ĂŒber Docker sprechen, was Docker in die IT-Welt gebracht hat – das sind Standards. Wie eine Anwendung gestartet werden sollte, wie sie funktionieren soll, welche Anforderungen es an die Protokolle gibt, welche Anforderungen an die Skalierung und Konfiguration der Anwendung bestehen.

In vielerlei Hinsicht dreht sich Docker um Standards.

Diese Standards finden sich auch in Kubernetes – dort gelten genau die gleichen Standards. Wenn Sie Ihre Anwendung gut in Docker starten können, wird sie zu 99 % auch in Kubernetes genau so gut funktionieren.

Wenn Sie nicht nur interessiert sind, wie der Docker-Kurs erstellt wurde, sondern auch an anderen Kursen, und wenn Sie sich auch fĂŒr den Kurs aus praktischer Sicht interessieren, dann Es gibt noch Zeit, ihn zum Vorbestellerpreis von 5000 Rubel bis zum 30. Juli zu erwerben.

Wir freuen uns, Sie zu sehen!

Quelle: habr.com

60GB SSD 8Gb DDR4