Docker, Balena, en co. – Containerisatie in industriële automatisering

In de IT-sector, en met name in de softwareontwikkeling, is containerisatie een belangrijke trend. Het is een lichtgewicht alternatief of metgezel voor virtualisatie. Ontwikkelaars kunnen hun processen versnellen zonder dat ze de doelomgeving van de applicatie in de gaten hoeven te houden. Dit wordt gedaan door inkapseling van de software en al zijn afhankelijkheden. Daardoor draait de software uniform en consistent op elke IT-infrastructuur. Hierdoor wordt software gemakkelijk overdraagbaar, wat fouten vermindert en de kwaliteit verbetert. Bovendien zorgt inkapseling voor een quotabeheer van systeemresources per container. Bovendien is deze methode zeer veilig, omdat alle interfaces nauwkeurig moeten worden gedefinieerd. Deze voordelen kunnen niet alleen in de IT, maar ook in de industriële automatiseringswereld worden gebruikt.

Docker wordt vaak gebruikt als synoniem voor containerisatie, maar containerisatie en procesisolatie zelf zijn eigenlijk niet nieuw. De eerste volledig functionele implementatie van containerisatie werd geïntroduceerd met FreeBSD jails. Deze virtualisatiefuncties op besturingssysteemniveau maken deel uit van de Linux-kernel. Met Docker werd containerisatie vereenvoudigd en daarmee interessant voor de markt. Ze voorzagen in een eenvoudig te gebruiken API en gebruikersinterface en standaardiseerden het containerformaat. Dit wordt de OCI (Open Container Initiative) standaard genoemd en wordt vandaag geleid door de Linux Foundation®.

Containerisatie biedt veel interessante benaderingen die van pas kunnen komen in de Industrie 4.0 van vandaag, aangezien industriële programmeerbare logische controllers (PLC’s) intelligenter en krachtiger worden. Fabrikanten gebruiken Linux-besturingssystemen voor hun PLC’s, waarop open source-software kan draaien. Toch moet een op Linux gebaseerde PLC nog steeds de kenmerken hebben van een klassieke PLC (geen pc) en kritieke infrastructuur en toepassingen besturen. Deze openheid zorgt voor waardecreatie in de industriële automatisering en lijkt in contrast te staan met de behoefte aan veiligheid, betrouwbaarheid en determinisme. Daarom hier een nadere blik op containerisatie, wat het biedt en hoe het uw bedrijf kan helpen.

Beveiliging

Beveiliging is een belangrijk punt van zorg in de huidige industriële automatisering en met elke nieuwe component wordt het moeilijker te controleren. Dit wordt nog lastiger wanneer gebruik wordt gemaakt van software van derden en van open source software. Door software in een container te plaatsen, kunnen we het proces isoleren waar het gaat om netwerk, bestandssysteem en rootprivileges. Het is niet de verantwoordelijkheid van de ontwikkelaar om dat in te schakelen wat de applicatie nodig heeft, hij beveelt alleen opstartparameters aan. Het instellen van netwerkrouting, de mountpoints van het filesysteem en geprivilegieerde toegang tot de kernel is de verantwoordelijkheid van het inbedrijfstellingsteam bij het opstarten. Die zijn leesbaar voor mensen en kunnen zelfs later in de operationele situatie worden bekeken.

Daarnaast is er een wereldwijde online community rond containerisatie. Zij bieden bijvoorbeeld informatie over hoe u veilig gebruik kunt maken van  containers van derden en hoe u uw eigen veilige container kunt maken. Ook het gebruik van “secure images” van een publiek register, of zelfs het opzetten van een eigen “image register” kan als barrière werken waarmee je een applicatie veiliger maakt.

Systeemdeterminisme

De beheerder van de installatie beschikt niet alleen over een reeks beveiligingsopties, containerisatie biedt ook per-container-gebaseerde opties voor schijf- en CPU-quota’s zoals I/O-snelheid en geheugenlimieten. Dit kan handig zijn om de prestaties op peil te houden en problemen met het determinisme van het hele systeem op te lossen. Het staat ook toe dat een containerproces met specifieke realtimeprioriteit draait op een realtime Linux-systeem, dit om conflicten te vermijden.

Betrouwbaarheid

Met al deze bovengenoemde opties wordt de betrouwbaarheid van uw hostsysteem niet aangetast, mits voorzien van de juiste setup. Maar hoe zit het met de gecontaineriseerde applicatie zelf? In een applicatie met slechts één proces is het vrij eenvoudig. Alles wat dit proces nodig heeft zit in de container, zoals runtimes en bibliotheken. Als de applicatie afhankelijk is van externe bronnen, zoals een plek om te bewaren data op te slaan, controleert de applicatie deze zelf en bereidt zijn omgeving voor bij het opstarten. Als er nu een probleem is met de applicatie, hoeft alleen de container te worden gestopt en opnieuw te worden gestart met uitsluitend de bewaarde gegevens.

Er is een ongeschreven regel die zegt dat het beter is om slechts één proces per container te gebruiken. Maar vaak is een applicatie afhankelijk van meerdere processen of zogenaamde microservices. Een applicatie met een database kan bijvoorbeeld twee containers nodig hebben: een voor het programma en een voor de database. Om ze samen te draaien, helpt een tool genaamd “Compose”. Het is een andere manier om het opstarten van een of meerdere containers te configureren. Hiermee kan de beheerder van de installatie de opstartvolgorde, afhankelijkheden en gedeelde bronnen beheren en een beschikbaarheidscontrole uitvoeren met een gespecificeerde time-out en herstarts van de microservice. Dit zorgt voor de betrouwbaarheid die de beheerder van de installatie nodig heeft.

Schaalbaarheid

Een ander groot voordeel van containerisatie is schaalbaarheid. Hier komt container-orkestratie in de wereld van industriële automatisering. Een container-orkestratie tool zoals Kubernetes of Docker Swarm handelt containers af in verschillende nodes en neemt de complexiteit weg van het afhandelen van gedistribueerde verwerking. Deze nodes kunnen computers, servers of edge devices en zelfs PLC’s zijn. Het kan beschikbaarheid, prestaties en implementaties van gecontaineriseerde applicaties over een hele cluster van nodes afhandelen.

Bruikbaarheid

Containerisatie maakt het gebruik van software een stuk eenvoudiger. In staat zijn om software altijd in exact dezelfde, gecontroleerde omgeving te draaien op elk platform, is een grote verandering in softwareontwikkeling. En zelfs na het uitrollen van software is het veel eenvoudiger om configuraties te veranderen en services te monitoren. Natuurlijk brengt het complexiteit met zich mee wanneer u leert wat containerisatie nu eigenlijk is en hoe het u en uw applicatie kan helpen. Maar als u dit eenmaal onder de knie hebt, zijn alle andere processen veel sneller en controleerbaar. Bovendien opent het gebruik van het al beschikbare brede scala aan diensten, een andere wereld voor de ontwikkeling van industriële automatisering.

Conclusie

Concluderend kan worden gesteld dat fabrikanten zich bewust moeten zijn van softwarecomponenten die zij aan hun systemen toevoegen, deze grondig op betrouwbaarheid moeten testen en zelfs als gebruiksklaar pakket moeten laten certificeren. Wanneer deze open systemen de productieketen verlaten, krijgt de gebruiker een heleboel extra mogelijkheden. Maar ook de fabrikanten zijn er verantwoordelijk voor en dat is nieuw in de industriële automatisering. Moderne PLC’s (zoals de PLCnext Controllers van Phoenix Contact) bevatten veel tools en maatregelen om applicaties veilig en betrouwbaar te houden. Containerisatie in de industriële automatisering is dus opnieuw een enorme kans. Zorg dat u er als eerste mee in aanraking komt en gebruik het in uw voordeel.

Ook interessant voor u

Data pushen naar en PLC variabelen visualiseren in de cloud

PLC variabelen eenvoudig en veilig naar de cloud pushen, om deze vervolgens via ons dashboardsysteem in de Proficloud te visualiseren. De PLC programmeur hoeft hiervoor zelf niets te programmeren....

Data van het internet gebruiken in een PLC-applicatie

Op een eenvoudige wijze vanuit een PLCnext-applicatie, data van het internet opvragen. Afhankelijk van de geïnstalleerde app heeft de PLC-programmeur dan in zijn klassieke PLC-programma toegang tot actuele of voorspellende data van het internet....

Applicaties real-time schedulen

Voor het juist aansturen van industriële machines en installaties is het erg belangrijk dat de besturing zijn deterministische gedrag behoudt. Daarom moeten ook die (deel)applicaties real-time kunnen worden gemanaged, die niet zijn ontwikkeld in de klassieke PLC-programmeertalen en met de klassieke PLC-programmeertools....

Hoe blijft de PLC hét besturingssysteem van de toekomst?

Nieuwe marktvragen en -ontwikkelingen vragen om een nieuwe generatie besturingssystemen. Toekomstgerichte besturingssystemen dienen daarvoor flexibel, open en met het internet verbonden te zijn – eigenschappen waar de “klassieke PLC” niet voldoende op is ingericht....

Open Source Software gebruiken in een PLC-applicatie

Een beperking van de “klassieke” PLC is dat deze alleen draait op de door de fabrikant of gebruiker zelf ontwikkelde software. Vaak ontbreekt het bij de gebruikers aan tijd en/of kennis om allerlei nieuwe functionaliteiten te kunnen ontwikkelen, terwijl er veel goede algoritmes gratis op internet beschikbaar zijn....

Apps uit de online store in een PLC-applicatie gebruiken

Het inkopen van de juiste functionaliteit is vaak efficiënter en goedkoper dan het zelf ontwikkelen en biedt toegang tot applicaties die de gebruiker mogelijk helemaal niet zelf had kunnen ontwikkelen....

Docker, Balena, en co. - Containerisatie in industriële automatisering

In de IT-sector, en met name in de softwareontwikkeling, is containerisatie een belangrijke trend. Het is een lichtgewicht alternatief of metgezel voor virtualisatie. Ontwikkelaars kunnen hun processen versnellen zonder dat ze de doelomgeving van de applicatie in de gaten hoeven te houden. Dit wordt gedaan door inkapseling van de software en al zijn afhankelijkheden....

Fabriek bedienen met de HoloLens

In industriële omgevingen zijn er diverse nieuwe toepassingen mogelijk met augmented reality (AR). Een goed voorbeeld daarvan is de demo-fabriek...

Andere functionaliteit programmeren? Dat kan!

De klassieke PLC is al jarenlang de standaard voor de besturing van een industriële machine of installatie. Het nadeel hiervan...

Phoenix Contact

Adresgegevens:
Hengelder 56
6902 PA Zevenaar
Postbus 246
6900 AE Zevenaar

Contactgegevens:
Tel: (0316) 59 17 20
E-mail: sales@phoenixcontact.nl

Neem contact met mij op

    Deze website is beschermd door reCAPTCHA en de Google Privacy Policy en Terms of Service zijn van toepassing.