Welkom bij Moderne landbouw !
home

Een efficiënt en schaalbaar cloud-native Agritech-platform bouwen met Kubernetes

AgriTech transformeert landbouw- en voedselsystemen in een sneller tempo dan eerder gedacht, en bij CropIn hebben we de gewoonte om innovatie te leiden. We blijven nieuwe, geavanceerde technologieën verkennen en stellen diverse actoren in het agro-ecosysteem digitaal in staat om hun respectieve doelstellingen te bereiken. Aangezien CropIn klanten in meer dan 70 landen in staat stelt om hun waarde per hectare te maximaliseren, is het van cruciaal belang voor ons om diensten te leveren die consistent zijn in verschillende geografische gebieden en een uitstekende gebruikerservaring bieden. Om dit te bereiken, hebben we onlangs containerisatie en een op microservices gebaseerde benadering aangenomen om onze applicaties te ontwerpen. Dus wat betekent dat?

Containertechnologie, een term die om voor de hand liggende redenen is geleend van de scheepvaartindustrie, heeft een revolutie teweeggebracht in de manier waarop landbouw-apps worden verpakt om snellere app-implementatie mogelijk te maken. Het maakte de servers ook efficiënter dan ooit tevoren en garandeerde dat de software betrouwbaar werkt, ongeacht het besturingssysteem (OS). Het elimineerde verschillende problemen waarmee systemen eerder werden geconfronteerd, zoals de hoge hoeveelheid CPU-overhead en middelen die nodig zijn om een ​​virtuele machine (VM) te bouwen en uit te voeren, de limiet op het aantal applicaties dat efficiënt kan worden uitgevoerd, de incompatibiliteit die ontstaat als gevolg van het besturingssysteem verschillen, opslagvereisten en de tijd die nodig is om het besturingssysteem op te starten, naast verschillende andere. Containerisatie bood een effectieve manier om deze problemen aan te pakken.

Hoe werkt containerisatie?

We zijn misschien op zijn minst afbeeldingen tegengekomen van vrachtschepen met containers van uniforme afmetingen die handig zijn voor kranen om ze overal ter wereld te laden en te lossen. Op dezelfde manier omvat een container in de digitale ruimte doorgaans niet alleen de software, maar ook alle andere afhankelijkheden, zoals de configuratiebestanden, en binaire bestanden en bibliotheken (bins/libs). Containerisatie verkleint ook de grootte van een enkele eenheid aanzienlijk, waardoor deze wordt teruggebracht van enkele gigabytes die VM's innemen tot slechts enkele tientallen megabytes. Met andere woorden, een enkele containereenheid met alle runtime-componenten wordt geabstraheerd van het host-besturingssysteem, waardoor het draagbaar is en klaar om op elk platform of elke cloud te draaien.

Containerisatie maakt het ook mogelijk om een ​​full-size (monoliet) applicatie op te splitsen in kleinere modules, microservices genaamd, die met elkaar communiceren via application programming interfaces of API's. De modulariteit van de microservices-benadering maakt het ook gemakkelijk om ze onafhankelijk te ontwikkelen, te implementeren en te schalen en om geïsoleerde wijzigingen aan te brengen in slechts enkele delen van de applicatie in plaats van het geheel opnieuw op te bouwen. Hierdoor kunnen ontwikkelaars een kortere doorlooptijd en verbeterde procesefficiëntie realiseren. Het andere voordeel van microservices is dat ze licht van gewicht zijn, waardoor ze vrijwel onmiddellijk beschikbaar en gebruiksklaar zijn. Bovendien zijn microservices platform- en apparaatonafhankelijk, wat zich vertaalt in apps die een consistente gebruikerservaring bieden, ongeacht de onderliggende infrastructuur.

Voordelen van containerisatietechnologie:

  • Betrouwbaarheid: Een container is een op zichzelf staande eenheid die logisch alle softwareafhankelijkheden bundelt en niet afhankelijk is van het host-besturingssysteem. Het verplaatsen van de ene omgeving naar de andere wordt dus probleemloos omdat het ervoor zorgt dat de applicatie werkt zoals verwacht wanneer deze wordt overgebracht van bijvoorbeeld de laptop van de app-ontwikkelaar naar de productie, zelfs als ze allebei verschillende besturingssystemen gebruiken. Het geeft ook bijna geen ruimte voor compatibiliteitsproblemen.
  • Foutisolatie: Het onafhankelijke karakter van containers zorgt ervoor dat een storing in de ene unit de werking van de andere niet beïnvloedt. Het ontwikkelteam kan deze container ook isoleren en het probleem oplossen zonder dat er ongeplande downtime in de andere containers nodig is.
  • Productiviteit: Als gevolg van minder bugs die voortkomen uit compatibiliteitsproblemen, kunnen de app-ontwikkelaars en IT-teams nu meer tijd en middelen besteden aan het opnemen van extra functies of functionaliteiten voor de eindgebruikers. Bovendien stellen microservices de verschillende teams in staat om elke container afzonderlijk te isoleren en eraan te werken, waardoor de ontwikkeltijd voor software wordt verkort.
  • Efficiëntie: In tegenstelling tot VM's deelt elk van de containers de OS-kernel in plaats van het hele OS in zichzelf op te nemen, wat extra overhead toevoegt. Containers zijn daarom licht van gewicht en vereisen minder middelen voor hun activiteiten in vergelijking met VM's.
  • Winstgevendheid: Wat de kosten betreft, hoewel dit systeem de server- en licentiekosten verlaagt, vermindert het samenpakken van de verschillende componenten en het verplaatsen ervan over platforms ook de uitgaven aanzienlijk.
  • Flexibiliteit: Containers kunnen op aanvraag worden gestart en gestopt, aangezien het besturingssysteem al actief is op de server. Dit versnelt de starttijd tot slechts enkele seconden en maakt vrijwel onmiddellijk bronnen vrij wanneer bepaalde functies niet langer nodig zijn. Zelfs als een container crasht, kan deze onmiddellijk opnieuw worden gestart om zijn taak te hervatten.
  • Immuniteit: Omdat containers van elkaar zijn geïsoleerd, kan de verspreiding van invasieve en kwaadaardige code over containers, en het beïnvloedt het hostsysteem zelf, worden voorkomen. Bovendien kan door het instellen van specifieke beveiligingsmachtigingen automatisch worden voorkomen dat ongewenste componenten containers binnendringen.

Hoe worden containers beheerd?

Containertechnologieën, zoals Docker, CoreOS rkt, LXC, Mesos en verschillende andere, maken een nieuwe benadering mogelijk voor ontwikkelaars om applicatiesoftware te coderen en te implementeren. Voor het bouwen van complexe applicaties, die verschillende componenten bevatten die zijn verpakt in ontelbare containers, zijn echter containerorkestratieplatforms of clustermanagers nodig om deze afzonderlijke eenheden te begrijpen.

Een van die containergerichte beheersoftware is Kubernetes, een softwareproject dat voor het eerst werd bedacht door ingenieurs bij Google. Het wordt ook wel aangeduid met namen als K8s of Kube en automatiseert diverse handmatige processen die verband houden met het implementeren, beheren en schalen van gecontaineriseerde applicaties. Aangezien Kubernetes open source is, kent het weinig beperkingen voor het gebruik ervan, waardoor organisaties de vrijheid hebben om het ongehinderd en bijna overal te gebruiken, of het nu on-premise of openbare, private of hybride clouds zijn.

Kubernetes wordt beschouwd als het ideale platform voor het hosten van cloud-native applicaties, waaronder die van CropIn, om de eenvoudige reden dat het versnelde en elastische schaling, monitoring van resources, eenvoudigere roll-outs en roll-backs, het uitvoeren van gezondheidscontroles en zelfcontrole mogelijk maakt. genezing met functies zoals auto-plaatsing, auto-restart, auto-replicatie, auto-scaling. Het is een productieklaar, enterprise-grade platform dat kan worden gebruikt voor elke architectuurimplementatie.

Het werkt door de verschillende containers in groepen te plaatsen, ze als logische eenheden te benoemen en de lading over hen te verdelen. Dit zorgt nu voor omgevingsonafhankelijke draagbaarheid, eenvoudige en efficiënte schaalbaarheid en flexibele groei.

Enkele van de taken die Kubernetes een organisatie laat uitvoeren zijn:

  • Containers orchestreren over meerdere hosts
  • Het gebruik van resources optimaliseren om zakelijke apps uit te voeren door optimaal gebruik te maken van de hardware
  • App-implementaties en updates beheren en automatiseren
  • Gecontaineriseerde apps en hun bronnen in een oogwenk schalen
  • Declaratief microservices beheren om te garanderen dat de geïmplementeerde apps blijven werken zoals bedoeld

CropIn, nu mogelijk gemaakt door Kubernetes

Momenteel is de microservice-architectuur de beste keuze voor softwareontwikkeling vanwege de voordelen van snelle en frequente levering van complexe applicaties, en dat ook op een betrouwbare manier. Hoewel verschillende hypergroeiorganisaties zoals Amazon, Netflix, Uber, SoundCloud en eBay microservices hebben ingevoerd, staat deze aanpak nog in de kinderschoenen in de agritech-industrie en is CropIn een van de early adopters.

De verhuizing van ons vlaggenschipplatform naar Kubernetes heeft ons in staat gesteld om cloud-native te blijven en ook om workloads effectief uit te voeren. Het is nu voor ons mogelijk om:

  • Bewerkingen uitvoeren en bijwerken als code;
  • Automatiseer complexe implementaties en rollbacks;>
  • Plaats eenvoudig kleinere, frequente en omkeerbare wijzigingen;
  • Behaal een hogere veerkracht, fouttolerantie en isolatie in onze workloads;
  • Werklast en capaciteit op aanvraag schalen;
  • Zorg voor een grotere waarneembaarheid in de platformbronnen; en,
  • Onze cloudinfrastructuurkosten optimaliseren

Met microservices en containers, in plaats van een groot deel van de applicatie, hebben we nu kleinere functionele modules die zullen samenwerken om dezelfde resultaten effectiever te bereiken. Deze aanpak helpt ons om een ​​grotere schaal te bereiken dan voorheen mogelijk was in de agritech-ruimte. Bovendien stelt een geautomatiseerde CI/CD-pijplijn (Continuous Integration/Continuous Deployment) ons in staat om van een idee naar de productie van al onze opwindende functies in een veel sneller tempo te gaan en uitvaltijden te verminderen om ervoor te zorgen dat alle diensten die we aanbieden altijd zijn. beschikbaar.

Het gebruik van microservices zorgt ervoor dat onze eindgebruikers enorm zullen profiteren van een agritech-oplossing die niet alleen tegemoet komt aan hun doelstellingen, maar die ook eenvoudig te installeren is op elk besturingssysteem en regelmatig wordt geüpgraded met meer nieuwe functies. Onze applicaties zijn klaar om te voldoen aan de eisen van onze snelgroeiende klantenkring en zorgen ervoor dat de eindgebruikers alles hebben wat ze nodig hebben, op het juiste moment, om hun bedrijfsvoering soepel te laten verlopen.

AgriTech transformeert landbouw- en voedselsystemen in een sneller tempo dan gedacht en bij CropIn hebben we de gewoonte om voorop te lopen in innovatie. Aangezien CropIn klanten in meer dan 70 landen in staat stelt om hun waarde per hectare te maximaliseren met behulp van onze reeks producten, is het van cruciaal belang voor ons om diensten te leveren die consistent zijn in verschillende geografische gebieden en de beste gebruikerservaring bieden.

In de komende weken gaan sommige van onze geavanceerde apps over van een monolithische architectuur naar een met microservices die worden aangedreven door Kubernetes. Welke invloed heeft dit op het aanbod van CropIn?

Niet alleen dit, er gebeurt meer bij CropIn. Blijf op de hoogte voor updates!


Landbouwtechnologie
Moderne landbouw

Moderne landbouw