FJAN Logo
Containers,  Virtualisatie,  Microservices,  DevOps

Containers, Go Of No-Go

Author

Funs Janssen

Date Published

Curving abstract shapes with an orange and blue gradient

Wanneer wel en niet kiezen voor containers?

Containers zijn een vorm van besturingssysteemvirtualisatie. Met één container kun je allerlei dingen uitvoeren, van een kleine microservice of een kleinschalig softwareproces tot een grotere applicatie. In de container bevinden zich alle benodigde uitvoerbare bestanden, binaire code, bibliotheken en configuratiebestanden. In vergelijking tot virtualisatiemethoden voor servers of machines bevatten containers echter geen besturingssysteemimages. Hierdoor zijn ze lichter en draagbaar, met aanzienlijk minder overhead.

Containers bieden veel voordelen voor het ontwikkelen, testen en implementeren van applicaties in meerdere omgevingen, van de lokale laptop van een ontwikkelaar tot een on-premises datacenter tot zelfs de cloud. Containers zorgen voor minder overhead, verbeterde portabiliteit, gelijkere werking, meer efficiëntie en betere applicatieontwikkeling.

Maar containers zijn niet altijd de beste oplossing voor elke situatie. Er zijn ook enkele nadelen of uitdagingen waar je rekening mee moet houden als je containers wilt gebruiken. Hier zijn enkele voorbeelden van wanneer je wel en niet zou moeten kiezen voor containers:

Wanneer wel kiezen voor containers?

  • Als je applicaties wilt moderniseren of herstructureren voor de cloud. Containers maken het mogelijk om bestaande applicaties naar modernere omgevingen te migreren of te herstructureren, waarbij je gebruik kunt maken van de volledige voordelen van een containerapplicatiearchitectuur.
  • Als je microservices wilt gebruiken. Containers bieden ondersteuning voor microservicearchitecturen, waarbij gedistribueerde applicaties en services gemakkelijk kunnen worden geïsoleerd, geïmplementeerd en geschaald op basis van afzonderlijke containerbouwstenen.
  • Als je DevOps wilt toepassen. Containers bieden ondersteuning voor Continuous Integration en Continuous Deployment (CI/CD), waardoor ontwikkelings-, test- en productiecycli kunnen worden versneld.

Wanneer niet kiezen voor containers?

  • Als je applicaties afhankelijk zijn van het besturingssysteem. Containers delen hetzelfde besturingssysteem als de hostmachine, dus als je applicaties specifieke besturingssysteemfuncties of -versies nodig hebben, kunnen containers problemen opleveren.
  • Als je applicaties veel resources nodig hebben. Containers hebben minder overhead dan virtuele machines, maar ze hebben nog steeds resources nodig om te draaien. Als je applicaties veel CPU, geheugen of schijfruimte nodig hebben, kunnen containers de prestaties beïnvloeden of conflicten veroorzaken met andere containers op dezelfde hostmachine.
  • Als je applicaties complex of monolithisch zijn. Containers zijn geschikt voor het verpakken en implementeren van kleine, onafhankelijke en modulaire applicaties of services. Als je applicaties complex of monolithisch zijn, kan het moeilijk zijn om ze op te splitsen in containers of om ze te beheren met een orkestratieplatform zoals Kubernetes.
Curving abstract shapes with an orange and blue gradient
Microservices

Hoe een health check voor je web API je kan helpen om betere software te leveren.