Wie ich die Bereitstellung von Linux-Anwendungen auf dem Knie mithilfe von Bash-Skripten und Java automatisiert habe

Sobald Sie Ihre Serveranwendung geschrieben haben, müssen Sie sie irgendwo bereitstellen. In unserem Unternehmen wird dies jetzt mit einem VPS unter Linux, Bash-Skripten und einem kleinen Java-Programm implementiert. Dies ist ein evolutionärer Prozess, und meiner Meinung nach ist er ziemlich gut gelaufen.



In dem Artikel möchte ich die Entwicklung dieses Ansatzes beschreiben, warum es passiert ist, die Vor- und Nachteile des Ansatzes. Wenn Sie ein ähnliches Problem haben, lesen Sie es, vielleicht fallen Ihnen nützliche Gedanken ein.



KDPV - Systemarchitektur, fĂĽr die wir zum Teil die Bereitstellung automatisieren:





Ein bisschen Hintergrund



Derzeit bin ich Leiter der Entwicklungsabteilung des Unternehmens, in dem ich arbeite. Wir haben ein kleines, aber ausgewogenes Team - wir haben Back-End-, Front-End-Entwickler, QS, Designer, Layout-Designer.



Unser Unternehmen beschäftigt sich mit Bildungsaktivitäten in der IT und wir schreiben Software für uns. Dies führt zu gewissen Einschränkungen - wir haben keine großen Entwicklungsbudgets, es gibt vage Anforderungen, da nicht ganz klar ist, was die Menschen brauchen.



Gleichzeitig gibt es Pluspunkte: Wir schreiben über das, was wir wollen, und können den Entwicklungszeitplan selbst festlegen und vereinbaren. Da wir keine hunderttausend Zielseiten oder Online-Shops sägen, ist es auch interessant zu arbeiten. Wir entwickeln verschiedene Produkte, sammeln Benutzerfeedback und korrigieren / fügen Funktionen hinzu.



, , .





:





— . ( ). , -.



, . :



  • . , , ;
  • , . , — .
  • . java, node.js, python.


— , ( markdown ). .



, , . . .



Level 1



. SSH VPS, git, mvn build, npm i, java -jar .



, . — .



Level 2



- , . ..



, gihub SSH VPS. git pull, . , .



Level 3



. , .



, bash . :



  • git pull,
  • mvn package — fatjar ( Java)
  • pkill yourserverprocessname —
  • java -jar yourfatjar.jar


VPS, cd ~/git/repository_name, — ./deploy.sh



Level 4



, ?



, VPS. - . C — . , — . C , , , , .



, Java. . HttpServer. GET POST , token, — bash .



.



VPS . . — , .



— - , URL, bash , .



Level 5



.



github, webhook . , (push, etc) — github URL. — POST .



webhook push. URL, .



, git push, .



Level 6 (bonus)



, . . , node.js .



, .



, . UptimeRobot. :



  • — ( POST/GET , ..).


! , — , URL . , .



- . , UptimeRobot . , - , .



— . Spring Boot , UptimeRobot, . , — / , .



, , :



Bild



, .





— . bash .



, , . , .





— .



, push github ?



, push, ?



, . , . , .



CI/CD . , — production.



, , MVP. , , . , , — . , .



?



, . Java, Maven , , jar. , — .



bash , ( .jar mvn package) . - node.js — , .



github , (, , ).



CI/CD , Jenkins, Gitlab, Ansible. , .



, — . , - , . , — , .





, . , . , , , . , .



Zeitliche und finanzielle Einschränkungen müssen berücksichtigt werden. Berücksichtigen Sie die Besonderheiten jedes Entwicklers. Jetzt lese ich viel thematische Literatur aus den letzten Büchern, die ich in einem Monat gelesen habe - "Wie man Katzen weidet", "Ich, Nerds und Geeks", "Programmatischer Programmierer", "Ein Roman über Projektmanagement".



Dies ist ein interessanter und neuer Weg für mich. Ich gehe es durch und beschreibe meine Fortschritte in meinem Telegrammkanal - Programmierer und Geschäft .



Ich schreibe über das Geschäft aus der Sicht eines Entwicklers. Dort poste ich kurze Notizen, die im Format nicht zum Habr passen.




All Articles