Zijn Containers moeite Waard de Hoofdpijn?

0
179

Containers zijn een Unix-concept, waarmee de toepassingen worden geleverd met alle vereiste afhankelijkheden in een easy-to-run beeld. Dit is een klinkende voordelen voor een DevOps workflow, maar is het de moeite waard de extra moeite?

Containers Synchroniseren Dev en Prod Omgevingen

Met containers, het hele idee is dat ze het pakket alles wat u nodig heeft om uw code in een gemakkelijk te verspreiden beeld. Dit betekent dat alle voor het uitvoeren van de afbeelding is te downloaden en uit te voeren docker uitvoeren.

Voorbij zijn de dagen van “het werkt niet op mijn computer.” Met containers—mits iedereen heeft Docker geïnstalleerd en weet hoe het te gebruiken—de container moet draaien heel dicht bij precies het zelfde op uw machine als het niet iedereen elses.

Daarnaast is dit ook van toepassing is op uw productie omgeving. Je zou kunnen stellen een paar dev functies in ontwikkeling bouwt, maar voor het grootste deel, containers kunnen worden verzonden als-is aan uw productie servers. Je moet niet veel problemen met de hosting van containers.

Containers Zorgen Voor Een Efficiënte Schalen

De stoepen en het is zo makkelijk een container, er zijn tal van diensten die worden uitgevoerd voor u. Deze worden meestal aangeduid als de orkestratie-tools—tools die het beheren van meerdere exemplaren van containers in vele servers.

AWS heeft hun Elastische Container Service, die instaat voor het uitvoeren van uw containers op een vloot van EC2 gevallen, of op hun eigen Fargate service. Kubernetes is open source, en veel cloud providers bieden integraties gebruiken.

Elke orchestration service zal in staat zijn toezicht te houden op de gezondheid van de instanties en de spin-up-nieuwe berichten wanneer het verkeer is hoog. Dit maakt een efficiënte schalen, die kan bespaart u veel geld op de hosting-kosten (tot 90% op AWS met Automatische Schaling en Spot Exemplaren), en betekent dat je niet al te veel zorgen over het ontgroeien van uw infrastructuur.

Plus, containers niet dezelfde prestaties die geleverd wordt met draaiende virtuele machines, zoals het niet uitvoeren van een gast-OS voor elke app. Dit maakt container hosting goedkoper in het algemeen, en veel efficiënter.

En dit is ingeschakeld door de aard van containers, met geen extra werk nodig. U kunt hetzelfde doen op AWS gebruik van aangepaste AMIs, maar ze zijn veel moeilijker te beheren dan containers, en u zult het doen van veel van hetzelfde werk toch.

Containers Versie Controle Van Uw Systeembeheerder

Misschien wel de coolste gevolg van containers is dat ze alle van uw server de configuratie van uw Systeembeheerder hoofd en op git, waar het kan worden beheerd en bijgehouden. Omdat elke nieuwe pakket, configuratie bestand, installatie script, en de afhankelijkheid bevindt zich in de map met de build voor de container, het is triviaal om het aansluiten op bron controle.

Containers integreren bijzonder goed met de operationele kant van een DevOps workflow. Ze stellen u in staat gebruik te maken van dezelfde versie beheer en het testen van systemen voor het beheren van uw server architectuur. En omdat iedereen in sync met de dezelfde omgeving te ontwikkelen, bouwen en testen, het moet stromen heel soepel.

Plus, Koppelvenster werkt goed met continuous integration systems. Docker bouwt zijn gemakkelijk te automatiseren, vooral als je met Azure Pijpleidingen. Het duwen van een Dokwerker afbeelding om uw vloot van servers is zo eenvoudig als het bijwerken van de afbeelding in de gegevensopslagruimte. U kunt zelfs implementeren van een nieuwe container van een deel van de servers te controleren de gezondheid voor de implementatie van over de hele vloot, iets dat niet-triviaal te implementeren zonder containers.

Het Nadeel: De Hoofdpijn Is Echt

Laten we echte—containers zijn zeker de meest elegante oplossing, maar ze zijn veel moeilijker in te stellen en te werken met, in vergelijking met slechts afvuren van een nieuwe Linux-doos en een uur doorbrengen installeren van software. Iedereen heeft gedaan de laatste, maar de voormalige neemt veel meer tijd in investeringen in het algemeen. (Hoewel, als je een ton van de servers, Koppelvenster moet slechts één keer worden geconfigureerd.)

Als uw taak is niet bijzonder ingewikkeld, of je hebt niet veel van de vraag, de uitvoering van het met containers kunnen worden overkill. Er is geen echte reden om containerize nginx en knooppunt als je het op één exemplaar.

En terwijl containers maken het makkelijker voor het beheren van alle afhankelijkheden die kunnen komen met het runnen van uw app, het is ook veel meer pijn te lopen Docker en binden poorten wanneer je wilt om te testen uw app, vergeleken met slechts npm starten of iets dergelijks in je project map. Dit kan zeker worden verminderd met startup scripts, maar als je op macOS of Windows, je loopt nog een hele VM gewoon om te laden uw web app.

Aan het einde van de dag, als je een fan bent van de Docker en de concepten, niets houdt je van het gebruik voor uw eigen projecten. Maar de voordelen van het Koppelvenster pas echt beginnen op te wegen tegen de hoofdpijn als je eenmaal bent in een groter team. In een team omgeving, waardoor alles om je app in uw versie beheer systemen en DevOps workflow helpt de productie gestroomlijnd.