Strategien für Software-Deployment (Linux-Server)
Verfasst: Sonntag 23. Dezember 2018, 09:56
Ein Thema das bei mir seit längerem immer wieder für Herausforderungen sorgt ist, dass wir eine etwas größere Server-Landschaft mit unterschiedlichsten Distributionen haben. Das ganze reicht von Ubuntu 12.04 (fragt nicht...) bis 18.04, ein wenig CentOS und extrem selten noch antike Suse-Kisten.
Das Topic hier ist vermutlich viel zu generisch, aber mich würde interessieren wie ihr eure Applikationen (besonders für Linux) ausrollt. Ist es als Entwickler in eurer Hand, die Software nach Bereitstellung auch zu deployen? Wer ist dafür verantwortlich, die Infrastruktur bereitzustellen und wie geht (oder würdet ihr umgehen) wenn ein o.g. Mischmasch aus unterschiedlichen Serverklassen zur Verfügung steht?
Wir haben u.a. folgende Tools im Einsatz:
- Salt (zum automatisierten Ausrollen von Software auf mehreren Servern / Minions)
- Docker (in der Produktion nur auf einem Teil der Infrastruktur verfügbar)
- LXC (ich weiß nicht warum das parallel zu docker läuft)
- einfach auf Blech via dpkg (Debian-Pakete)
- ultra einfach hässlich händisch via Executable
Anmerkung: zusätzlich muss noch zwischen Upstart und Systemd unterschieden werden, immerhin gibt's keine Cronjobs mehr die alle X-Minuten checken ob die Applikation noch läuft und zur Not erneut startet
Am liebsten wäre mir persönlich, ich könnte meine Applikationen nur noch als Docker-Container bereitstellen, nicht weil Docker so toll ist, sondern ich mich dann nicht mehr darum scheren muss ob auf dieser oder jener Kiste ein Python3.4, 3.5, 3.7 oder was auch immer läuft. (Es wird Python aus dem Standard-Ubuntu-Repo verwendet)
Mich würde nun interessieren, wie ihr damit umgeht? Für welche Systeme stellt ihr eure Applikationen bereit, und wie "baut" ihr diese.
Das Topic hier ist vermutlich viel zu generisch, aber mich würde interessieren wie ihr eure Applikationen (besonders für Linux) ausrollt. Ist es als Entwickler in eurer Hand, die Software nach Bereitstellung auch zu deployen? Wer ist dafür verantwortlich, die Infrastruktur bereitzustellen und wie geht (oder würdet ihr umgehen) wenn ein o.g. Mischmasch aus unterschiedlichen Serverklassen zur Verfügung steht?
Wir haben u.a. folgende Tools im Einsatz:
- Salt (zum automatisierten Ausrollen von Software auf mehreren Servern / Minions)
- Docker (in der Produktion nur auf einem Teil der Infrastruktur verfügbar)
- LXC (ich weiß nicht warum das parallel zu docker läuft)
- einfach auf Blech via dpkg (Debian-Pakete)
- ultra einfach hässlich händisch via Executable
Anmerkung: zusätzlich muss noch zwischen Upstart und Systemd unterschieden werden, immerhin gibt's keine Cronjobs mehr die alle X-Minuten checken ob die Applikation noch läuft und zur Not erneut startet
Am liebsten wäre mir persönlich, ich könnte meine Applikationen nur noch als Docker-Container bereitstellen, nicht weil Docker so toll ist, sondern ich mich dann nicht mehr darum scheren muss ob auf dieser oder jener Kiste ein Python3.4, 3.5, 3.7 oder was auch immer läuft. (Es wird Python aus dem Standard-Ubuntu-Repo verwendet)
Mich würde nun interessieren, wie ihr damit umgeht? Für welche Systeme stellt ihr eure Applikationen bereit, und wie "baut" ihr diese.