

In mijn vorige blogpost benadrukte ik het belang van het verzamelen van gegevens. In sommige gevallen heb je echter geen geschikte gegevens beschikbaar. Misschien heb je wel ruwe gegevens, maar zijn deze niet gelabeld en niet geschikt voor machine learning. Als je niet over de financiële middelen beschikt om deze gegevens te labelen, of je hebt geen product zoals reCAPTCHA om dit gratis te doen, dan is er nog een andere optie.
Sinds Amazon meer dan tien jaar geledenzijn Amazon Web Services cloud platformlanceerde als een nevenactiviteit, is het in een enorm tempo gegroeid. AWS biedt nu meer dan 165 services, waardoor iedereen, van startups tot multinationals, toegang heeft tot een betrouwbare en schaalbare technische infrastructuur. Sommige van deze services bieden wat we noemen voorgetrainde modellen voor machinaal leren.

Amazons voorgetrainde modellen voor machinaal leren kunnen afbeeldingen of objecten herkennen, tekst verwerken, aanbevelingen doen en nog veel meer. Het mooiste van dit alles is dat je diensten gebaseerd op Deep Learningkunt gebruiken zonder dat je ook maar iets hoeft te weten over machine learning. Deze diensten worden getraind door Amazon, met behulp van gegevens van zijn websites, zijn enorme productcatalogus en zijn magazijnen.
De informatie op de AWS websites kan in het begin een beetje overweldigend zijn. Daarom wil ik in deze blogpost een overzicht geven van een paar diensten die gebruik maken van Amazon's machine learning modellen, waarvan ik denk dat ze gemakkelijk in je applicaties kunnen worden geïntroduceerd.
Computer vision met Rekognition
Amazon Rekognition is een dienst die afbeeldingen en video's analyseert. Je kunt deze dienst gebruiken om gezichten van mensen, alledaagse voorwerpen of zelfs verschillende beroemdheden te identificeren. Praktische toepassingen zijn het toevoegen van labels aan video's, bijvoorbeeld het volgen van de bal tijdens een voetbalwedstrijd, of het uitzoeken van beroemdheden in een publiek.

Omdat Rekognition ook een API heeft om overeenkomsten tussen personen in meerdere afbeeldingen te vergelijken, kun je het gebruiken om iemands identiteit te verifiëren of automatisch vrienden te taggen op sociale media. Over sociale media gesproken: afhankelijk van de context van een platform kunnen sommige bijdragen van gebruikers niet acceptabel worden geacht. Met behulp van Rekognition kan een sociaal mediaplatform semi-automatisch suggestieve of expliciete inhoud controleren, waarbij de mogelijkheid wordt geboden om geüploade media te vervagen of te weigeren wanneer er bepaalde labels aan worden gekoppeld.
Digitaliseer archieven met Textract
Met Amazon Textract kun je tekst uit een gescand document halen. Het gebruikt optische tekenherkenning (OCR) en gaat een stap verder door rekening te houden met de context.
Als je bedrijf veel geprinte formulieren ontvangt in plaats van hun digitale tegenhanger, heb je misschien een paar duizend papieren die je handmatig moet digitaliseren. Met gewone OCR is het een uitdaging om te detecteren waar een formulierlabel eindigt en een formulierveld begint. Op dezelfde manier zou het moeilijk zijn voor OCR om kranten te lezen, wanneer tekst in twee of meer kolommen is geplaatst. Textract is in staat om te identificeren welke groep woorden bij elkaar hoort, of het nu gaat om een alinea, een formulierveld of een gegevenstabel, waardoor u de tijd en moeite die nodig zijn om deze archieven te digitaliseren kunt beperken.
Tekst analyseren met Comprehend
Amazon Comprehend is een NLP-service (Natural Language Processing). Het helpt je om het onderwerp van een document, sleutelzinnen, belangrijke locaties, genoemde personen en meer te ontdekken.
Een van de functies is het analyseren van het sentiment in een tekst. Dit kan je snel inzicht geven in interacties met klanten: zijn ze blij, boos, tevreden? Amazon Comprehend kan zelfs gelijkaardige frustraties rond een bepaald onderwerp uitlichten. Als reviews over een bepaald product automatisch overwegend positief blijken te zijn, kun je dit gemakkelijk verwerken in een promotiecampagne. Ook als de reviews overwegend negatief zijn, kan dat iets zijn om door te sturen naar de fabrikant.

Een subservice van Comprehend, Comprehend Medical genaamd, wordt gebruikt om patiëntendossiers te doorzoeken en patiëntgegevens en behandelingsinformatie te extraheren. Het doel is om zorgverleners te helpen snel een overzicht te krijgen van eerdere interacties met een patiënt. Door het identificeren van belangrijke informatie uit medische notities en er structuur aan toe te voegen, helpt Comprehend Medical medische klanten om een ton aan documenten in een korte tijd te verwerken.
Maak notities met Transcribe

Amazon Transcribe is een algemene dienst om spraak om te zetten naar tekst, met ondersteuning voor 14 talen. Het voegt automatisch interpunctie en opmaak toe, waardoor de tekst makkelijker te lezen en te doorzoeken is.
Een geweldige toepassing hiervoor is het maken van een transcript van een audiobestand en dit naar Comprehend sturen voor verdere analyse. Een callcenter zou real-time streaming transcriptie kunnen gebruiken om de naam van een klant te detecteren en zijn informatie aan de operator te presenteren. Ook kan het callcenter gesprekken labelen met trefwoorden om te analyseren welke problemen zich vaak voordoen.
Een van de functies van Transcribe is het identificeren van meerdere sprekers. Dit is handig voor het transcriberen van interviews of het maken van notulen van vergaderingen zonder dat een van de deelnemers aan de vergadering extra tijd moet besteden aan het noteren van alles.
Meertalig met Translate

Wanneer je reacties krijgt van klanten op je producten, kun je deze vertalen naar de taal van je voorkeur, zodat je subtiele implicaties van bepaalde woorden kunt begrijpen. Of je kunt je bereik vergroten door je social media posts te vertalen. Je kunt zelfs Transcribe en Translate combineren om automatisch ondertitels te genereren voor live evenementen in meerdere talen.
Druk jezelf uit met Polly
De Polly dienst kan worden beschouwd als het omgekeerde van Transcribe. Met Polly kun je tekst omzetten naar spraak, waardoor de stem zo natuurlijk mogelijk klinkt. Met ondersteuning voor meer dan 30 talen en nog veel meer levensechte stemmen, staat niets je meer in de weg om je applicaties tegen je te laten praten.
Polly heeft ondersteuning voor Speech Synthesis Markup Language (SSML), waarmee je meer controle hebt over hoe bepaalde delen van de tekst worden uitgesproken. Naast het toevoegen van pauzes, kun je nadruk leggen op woorden, acroniemen uitwisselen met hun afgekorte vorm en zelfs ademhalingsgeluiden toevoegen. Deze hoeveelheid aanpassingsmogelijkheden maakt het mogelijk om stemvoorbeelden te synthetiseren die heel natuurlijk klinken.
Het genereren van realistische spraak is een belangrijke factor geweest voor het succes van apps als Duolingo, waar uitspraak van groot belang is. Je kunt meer lezen over deze specifieke use case in deze blogpost. Bonus: als je geen zin hebt om te lezen, kun je het laten voorlezen door Polly!
Doe suggesties met Personalize

Als je een product zoekt op de website van Amazon, krijg je meteen suggesties voor vergelijkbare producten of producten die andere klanten in combinatie hebben gekocht. Het is verbazingwekkend dat je uit de miljoenen items die Amazon aanbiedt een nauwkeurige lijst met gerelateerde producten krijgt op het moment dat de pagina wordt geladen. Dit krachtige hulpmiddel is beschikbaar via Amazon Personalize. Je moet een iteminventaris aanleveren (producten, documenten, video's, ...), wat demografische informatie over je gebruikers en Personalize combineert dit met een activiteitenstroom uit je applicatie om aanbevelingen te genereren, in real-time of in bulk.
Dit kan eenvoudig worden toegepast op een groot aantal applicaties. Je kunt klanten van een webshop een lijst met vergelijkbare artikelen laten zien. Een cursusaanbieder zou cursussen kunnen voorstellen die vergelijkbaar zijn met een interessant onderwerp. Heb je een restaurant gevonden dat je leuk vond? Hier is een lijst met vergelijkbare restaurants bij jou in de buurt. Als jij de gegevens kunt leveren, kan Personalize de aanbevelingen doen.
Creëer conversaties met Lex

Amazon Lex is een dienst die conversationele AI biedt. Het gebruikt dezelfde Natural Language Understanding-technologie als Amazons virtuele assistent Alexa. Gebruikers kunnen met je applicatie chatten in plaats van er doorheen te klikken. Alles begint met een intentie. Dit definieert de intentie van de gebruiker, het doel dat we willen bereiken voor onze gebruiker. Het kan zo simpel zijn als het plannen van een afspraak, het geven van een routebeschrijving naar een locatie of het verkrijgen van een recept dat overeenkomt met een ingrediëntenlijst. Intenties worden getriggerd door uitingen. Een uiting is iets dat je zegt en dat een betekenis heeft. "Ik wil een afspraak met Dr. Smith", "Wanneer kan ik Dr. Smith zien?", "Is Dr. Smith volgende week woensdag beschikbaar?" zijn allemaal uitingen met dezelfde bedoeling: een afspraak maken. Lex is krachtig genoeg om deze uitingen te generaliseren zodat kleine variaties ook de juiste intentie kunnen oproepen. Ten slotte, in het geval van het registreren van een afspraak, moet je een paar "slots" specificeren , stukjes data die de gebruiker moet opgeven om aan de intentie te voldoen. In het geval van het bovenstaande voorbeeld, de naam van de persoon die u wilt zien, de tijdsperiode en misschien de reden van uw bezoek.
Hoewel de vereisten vrij eenvoudig zijn, hangt alles af van de kwaliteit van de uitingen en de aaneenschakeling van intenties. Als je niet genoeg voorbeeldzinnen hebt of de conversatie informatie blijft vragen die de gebruiker al heeft gegeven, zal je gebruiker gefrustreerd en overweldigd raken.
Voorspel de vraag met Forecast

Een vrij nieuwe dienst van AWS heet Forecast. Deze dienst is ook voortgekomen uit Amazons eigen noodzaak om de vraag naar hun immense productvoorraad in te schatten. Met Forecast kun je inzicht krijgen in historische tijdreeksgegevens. Je kunt bijvoorbeeld het energieverbruik van een regio analyseren om het te projecteren op de nabije toekomst. Dit geeft je een waarschijnlijkheid van wat de vraag naar elektriciteit morgen zou zijn. Op dezelfde manier kun je misschien voorspellen dat een onderdeel van je productiefaciliteit onderhoud nodig heeft voordat het versleten raakt.
Voorspellingen kunnen gebruik maken van Automated Machine Learning (AutoML) om de optimale leerparameters te vinden voor jouw use case. De kwaliteit van deze service hangt af van de hoeveelheid en kwaliteit van de gegevens die je kunt leveren.
Deze service was tot voor kort alleen beschikbaar voor een selecte groep, maar is nu beschikbaar voor iedereen. Jekunt je hieraanmelden voor Forecast.
Meenemen
Als je machine learning naar je klanten wilt brengen, maar je wordt tegengehouden door een gebrek aan inzicht, dan biedt Amazon kant-en-klare diensten om intelligentie toe te voegen aan je applicaties. Deze diensten, getraind en gebruikt door Amazon, kunnen je bedrijf helpen groeien en je klanten een persoonlijke ervaring geven, zonder enige voorkennis over machine learning.

What others have also read


Zoals elk jaar hield Amazon zijn AWS re:Invent 2021 in Las Vegas. Hoewel we vanwege de pandemie niet persoonlijk aanwezig konden zijn, wilden we als AWS-partner het digitale evenement graag volgen. Hieronder volgt een kort overzicht van onze hoogtepunten van het evenement voor het geval je het gemist hebt! AWS dichter bij huis AWS zal in 2022 30 nieuwe ' Local Zones' bouwen, waaronder één in onze thuisbasis: België. AWS Local Zones zijn een soort infrastructuuroplossingen die compute-, opslag-, database- en andere geselecteerde AWS-diensten in de buurt van grote bevolkings- en industriecentra plaatsen. De Belgische Local Zone zou in 2023 operationeel moeten zijn. Daarnaast zijn de mogelijkheden van AWS Outposts toegenomen . De belangrijkste verandering is dat je nu veel meer diensten op je eigen server kunt draaien die door AWS worden geleverd. Korte samenvatting: AWS Outposts is een familie van volledig beheerde oplossingen die AWS-infrastructuur en -services leveren aan vrijwel elke on-premise of edge locatie voor een consistente hybride ervaring. Outposts was voorheen alleen beschikbaar in een 42U Outposts rack-configuratie. Vanaf nu biedt AWS verschillende vormfactoren, waaronder Outposts-servers van 1U en 2U voor als er minder ruimte beschikbaar is. De verleiding is groot om er eentje voor op kantoor aan te schaffen... AWS EKS Anywhere was al eerder aangekondigd, maar is nu werkelijkheid! Met deze dienst is het mogelijk om een Kubernetes cluster op te zetten op je eigen infrastructuur of infrastructuur van je favoriete cloud provider, terwijl je het toch beheert via AWS EKS. Alle voordelen van keuzevrijheid gecombineerd met het uniforme overzicht en dashboard van AWS EKS. Wie zei dat je niet ook je cake kunt eten? Low-code om primaire focus terug te krijgen Met Amplify Studio zet AWS de volgende stap in low-code ontwikkeling. Amplify Studio is een volwaardig low-code generatorplatform dat voortbouwt op het bestaande Amplify-framework. Het platform stelt gebruikers in staat om applicaties te bouwen door middel van slepen en neerzetten met de mogelijkheid om aangepaste code toe te voegen waar nodig. Zeker iets waar we naar zullen kijken op onze volgende Ship-IT Day! Machine Learning gaat sterk(er) Altijd al willen beginnen met machine learning, maar nog niet helemaal klaar om wat van je zuurverdiende geld te investeren? Met SageMaker Studio Lab kondigde AWS een gratis platform aan waarmee gebruikers AI/ML-tools kunnen verkennen zonder zich te registreren voor een AWS-account of creditcardgegevens achter te laten. Je kunt het zelf gratis uitproberen in je browser via Jupyter notebooks ! Daarnaast kondigde AWS SageMaker Canvas aan : een visuele, no-code machine learning mogelijkheid voor business analisten. Hiermee kunnen ze aan de slag met ML zonder uitgebreide ervaring te hebben en meer inzichten krijgen in data. Het derde hoofdstuk in de SageMaker saga bestaat uit SageMaker Ground Truth Plus . Met deze nieuwe dienst huur je een team van experts in om je data te trainen en labelen, een traditioneel zeer arbeidsintensief proces. Volgens Amazon kunnen klanten verwachten tot 40% te besparen met SageMaker Ground Truth Plus. Er waren nog twee kleine aankondigingen: het AI ML Scholarschip Program , een gratis programma voor studenten om kennis te maken met ML-tools, en Lex Automated Chatbot Designer , waarmee je snel een slimme chatbot kunt ontwikkelen met geavanceerde ondersteuning voor natuurlijke taalverwerking. Netwerken voor iedereen Heb je genoeg van minder dan optimale ontvangst of een trage verbinding? Waarom bouw je niet je eigen privé 5G-netwerk? Yep: met AWS Private 5G levert Amazon de hardware, het beheer en de simkaarten waarmee je je eigen 5G-netwerk kunt opzetten. Use cases (naast het feit dat je genoeg hebt van je huidige mobiele netwerk) zijn bijvoorbeeld magazijnen of grote locaties (zoals een voetbalstadion) die een lage latency, uitstekende dekking en een grote bandbreedte vereisen. Het beste deel? Klanten betalen alleen voor het gebruik van het netwerk door de eindgebruiker. Om het netwerkthema voort te zetten, is er nu AWS Cloud WAN . Met deze dienst kunnen gebruikers een beheerd WAN (Wide Area Network) bouwen om cloud- en on-premise omgevingen te verbinden met een centrale beheer-UI op netwerkcomponentniveau en serviceniveau. Tot slot is er ook AWS Workspaces Web . Via deze dienst kunnen klanten medewerkers veilig toegang geven tot interne websites en SaaS-toepassingen. Het grote voordeel hier is dat informatie die kritisch is voor het bedrijf nooit de omgeving verlaat en geen sporen achterlaat op werkstations, dankzij een niet-persistente webbrowser. Iemand Kubernetes? Geen AWS-evenement gaat zonder Kubernetes te vermelden, en AWS re:Invent 2021 is niet anders. Amazon kondigde twee nieuwe diensten aan op het gebied van Kubernetes: AWS Karpenter en AWS Marketplace for Containers Anywhere . Met AWS Karpenter wordt het beheren van autoscaling Kubernetes-infrastructuur zowel eenvoudiger als minder beperkend. Het zorgt voor het automatisch starten van compute wanneer de belasting van een applicatie verandert. Interessant is dat Karpenter volledig open-source is, een trend die we volgens Amazon steeds meer zullen zien. AwS Marketplace for Containers Anywhere is vooral nuttig voor klanten die zich al volledig hebben gecommitteerd aan container managed platforms. Gebruikers kunnen hiermee Kubernetes-apps van derden zoeken, abonneren en implementeren vanuit de AWS Marketplace in elk Kubernetes-cluster, ongeacht de omgeving. IoT-updates Er zijn tal van kleinere updates geweest voor AWS's IoT-diensten, met name voor: GreenGrass SSM , waarmee je nu je apparaten veilig kunt beheren met AWS Systems Manager Amazon Monitron om te voorspellen wanneer onderhoud nodig is voor draaiende onderdelen in machines AWS IoT TwinMaker , om eenvoudig Digital Twins van echte systemen te maken AWS IoT FleetWise , dat gebruikers helpt om voertuiggegevens in de cloud te verzamelen in bijna-realtime. De serverloze game verbeteren In het serverloze landschap kondigde AWS serverloze Redshift , EMR , MSK en Kinesis aan . Dit maakt het mogelijk om diensten op te zetten terwijl het juiste instance-type automatisch wordt gekoppeld. Als de dienst niet in gebruik is, stopt de instance automatisch. Op deze manier betalen klanten alleen wanneer een service daadwerkelijk wordt gebruikt. Dit is vooral interessant voor experimentele services en integraties in omgevingen die niet vaak worden gebruikt. Duurzaamheid Net als ACA Group's toewijding aan duurzaamheid , is AWS serieus bezig met hun ambitie om in 2040 klimaatneutraal te zijn. Ze hebben de AWS Customer Carbon Footprint tool ontwikkeld, waarmee gebruikers de CO2-uitstoot via hun website kunnen berekenen. Andere aankondigingen waren AWS Mainframe Modernization , een verzameling tools en gidsen om bestaande mainframes over te nemen met AWS, en AWS Well-Architected Framework , een verzameling ontwerpprincipes, richtlijnen, best practices en verbeteringen om duurzaamheidsdoelen te valideren en rapporten op te stellen. We kunnen niet wachten om te gaan experimenteren met alle nieuwe toevoegingen en verbeteringen die tijdens AWS re:Invent 2021 zijn aangekondigd. Bedankt voor het lezen! Ontdek onze cloudhostingdiensten
Lees verder

De wereld verandert snel, zowel vanuit technologisch als milieuoogpunt. Vaak gaan deze uitdagingen hand in hand. Bijvoorbeeld door de drang naar elektrische voertuigen, slimme huizen en duurzame energie. Maar terwijl er al lange tijd aandacht is voor de auto-, productie- en landbouwindustrie, is er geen weg naar een schoner milieu zonder het aanzienlijke energieverbruik van datacenters en cloud computing aan te pakken. De koolstofvoetafdruk van cloud computing Volgens het laatste rapport van het Internationaal Energieagentschap (IEA) verbruiken datacenters wereldwijd in 2021 220 tot 320 TWh elektriciteit, wat ongeveer 0,9 tot 1,3% van de wereldwijde vraag naar elektriciteit is. Daarnaast verbruiken wereldwijde datatransmissienetwerken 260-340 TWh, of 1,1 tot 1,4% van de elektriciteit. Samen dragen datacenters en transmissienetwerken bij aan 0,9% van de energiegerelateerde uitstoot. Hoewel dit vrij lage cijfers lijken, stijgt de vraag naar datadiensten exponentieel. Het wereldwijde internetverkeer is de afgelopen tien jaar sterk toegenomen , een ontwikkeling die tijdens de pandemie nog is versneld. Sinds 2010 is het aantal internetgebruikers wereldwijd meer dan verdubbeld en is het wereldwijde internetverkeer 15 keer zo groot geworden, oftewel 30% per jaar . Dit betekent dat de ecologische voetafdruk van cloud computing iets is waar alle bedrijven, groot of klein, rekening mee moeten houden. Maar wat kun je doen zonder de rekenkracht op te offeren die nodig is om innovatie te ondersteunen en goederen en diensten te leveren zoals beloofd? Amazon Web Services (AWS) Hoewel cloud computing ook een voetafdruk met zich meebrengt, is het een veel milieuvriendelijkere manier om uw IT-systemen te beheren dan lokale servers. Daarom geloven wij dat een cloud-first benadering de sleutel is tot een duurzamere bedrijfsvoering. Vooral wanneer cloudgebaseerde technologieën worden aangedreven door hernieuwbare energie. Daarom kiest ACA Group zorgvuldig zijn partnerschappen en evalueert de impact van deze partners op het milieu. In deze context hebben we gekozen voor AWS als cloudprovider. In combinatie met onze flexibele Kubernetes-opstellingen, stelt het ons in staat om te kiezen voor de minste CO2-uitstoot terwijl we toch voldoen aan de verwachtingen van onze klanten (en deze zelfs overtreffen). Het laat zien dat de behoefte aan cloud computing niet ten koste gaat van de planeet. Maar waarom AWS? Als 's werelds meest vooraanstaande cloudprovider richt Amazon Web Services zich op efficiëntie en voortdurende innovatie in zijn wereldwijde infrastructuur. Ze zijn zelfs hard op weg om in 2025 100% hernieuwbare energie te gebruiken voor hun activiteiten. Amazon is onlangs de grootste zakelijke inkoper van hernieuwbare energie ter wereld geworden; hun investeringen leveren genoeg elektriciteit om 3 miljoen Amerikaanse huishoudens een jaar lang van stroom te voorzien. Efficiënt computergebruik Het creëren van schone energiebronnen is essentieel, maar niet minder belangrijk is het heroverwegen van de manier waarop computermiddelen worden toegewezen. In een rapport over cloudefficiëntie toonde 451 Research aan dat de infrastructuur van AWS 3,6 keer energiezuiniger is dan de mediaan van de datacenters van Amerikaanse bedrijven die zij onderzochten. Amazon schrijft deze grotere efficiëntie onder andere toe aan het verwijderen van de centrale ononderbreekbare stroomvoorziening uit hun dataontwerp en het integreren van kleine batterijpakketten en aangepaste voedingen in de serverracks. Deze veranderingen samen verminderen het energieomzettingsverlies met ongeveer 35%. De servers zelf zijn ook efficiënter: hun Graviton2 CPU's zijn extreem energiezuinig en bieden betere prestaties per watt dan elke andere processor die momenteel in gebruik is in Amazon datacenters. AWS biedt onbeperkte toegang tot cloud computing en diensten. Hoewel hier een prijskaartje aan hangt, verlaagt efficiënt gebruik van bronnen niet alleen de kosten, maar indirect ook de CO2-uitstoot. Hoe kun je dit bereiken? Bouw applicaties die efficiënt gebruik maken van hulpbronnen. Verbruik resources met de laagst mogelijke voetafdruk. Maximaliseer de output van de gebruikte bronnen. Verminder de hoeveelheid gegevens en de afstand die over het netwerk wordt afgelegd. Gebruik bronnen just-in-time. ➡️ Benieuwd hoe we bij ACA Group onze cloudstacks opzetten voor maximale duurzaamheid zonder in te leveren op stroom, beschikbaarheid en flexibiliteit? Praat hier met ons !
Lees verder

In de snel veranderende wereld van IT neemt ACA Group voortdurend de tijd om innovatieve oplossingen en tools te onderzoeken om onze klanten de beste diensten te kunnen leveren. Onlangs deelden we onze ervaring met Flux, een CloudNative Continuous Deployment tool die GitOps implementeert. Wat is Harbor? Harbor is een CloudNative-tool die is ontworpen om gebruik te maken van de flexibiliteit, schaalbaarheid en veerkracht van de cloud. Het is een gecontaineriseerde oplossing die geavanceerde functies biedt zoals het scannen op kwetsbaarheden en een artefactregister. Harbor kan op elke Kubernetes-gebaseerde oplossing in de publieke/private cloud draaien, maar ook op je lokale Kubernetes-cluster. Het is een zelfbeheerde oplossing die moet worden uitgerold op je Kubernetes-cluster. U kunt de componenten kiezen die u wilt implementeren op basis van uw behoeften. Voor sommige functies, zoals het scannen op kwetsbaarheden, kan een keuze worden gemaakt tussen verschillende tools. De voordelen van Harbor Registry We zijn enthousiast om Harbor Registry de komende maanden voor onze projecten te gebruiken vanwege de volgende voordelen: Harbor is gemakkelijk schaalbaar : Alle componenten kunnen worden ingesteld met meerdere replica's, waardoor onverwachte downtime wordt voorkomen en fail-over wordt geboden. Dit zorgt ervoor dat uw container images altijd beschikbaar zijn wanneer u ze nodig heeft. Harbor is samenstelbaar : U kunt alleen de workloads inzetten voor de functies die u gebruikt. Harbor is niet alleen een containerregister : het kan bijvoorbeeld ook worden gebruikt als een kaartenmuseum om helikopters op te slaan. Harbor is multi-tenant : Projectspecifieke configuratie is mogelijk met specifieke quota en beleidsregels. Het heeft ook de meest complete set functies van alle containerregisters waar we ooit mee hebben gewerkt, zoals: Verbinding met OpenID Connect. Audit logging voor container pull en push acties. Beleid voor container images zoals tag retentie en tag onveranderlijkheid. Replicatie naar andere registers (bijvoorbeeld ECR, ACR, ...). Webhooks kunnen worden geactiveerd wanneer specifieke acties plaatsvinden. Een project kan dienen als cache proxy voor publieke afbeeldingen. Daarnaast heeft Harbor een goed gedocumenteerde API en gebruiken we een Terraform-provider om bronnen zoals projecten en gebruikers binnen Harbor in te stellen met behulp van Terraform-code. Zoals je kunt lezen, heeft Harbor veel te bieden. ;-) In de volgende sectie gaan we dieper in op een aantal functies die we nog niet hebben behandeld, maar die zeker het vermelden waard zijn. Container Image Kwetsbaarheid Scannen Een van de meest interessante functies is de ingebouwde kwetsbaarheidsscan. Harbor heeft een ingebouwde tool voor het scannen op kwetsbaarheden die automatisch container images scant op kwetsbaarheden wanneer ze naar het register worden gepushed. Er wordt een taak ingepland wanneer een container image wordt gepushed en zodra het resultaat beschikbaar is, is het zichtbaar naast de container image. Je kunt ook meer details krijgen over de specifieke kwetsbaarheden die zijn gevonden: Voor ons zijn deze inzichten in de kwaliteit van de containers een enorme verbetering ten opzichte van het huidige containerregister dat we gebruiken. Door enkele extra configuraties te maken, kunnen we de ervaring van het scannen op kwetsbaarheden nog beter maken. Enkele voorbeelden: Blokkeer het trekken van container images die Kritieke CVE kwetsbaarheden hebben. Regelmatige scans plannen van images die al in het havenregister zijn opgeslagen. Sta specifieke CVE's toe die op dit moment niet kunnen worden verholpen. Een webhook instellen om actie te ondernemen wanneer een CVE wordt gedetecteerd. Harbor gebruikt Trivy als standaard tool om kwetsbaarheden te scannen, maar het is eenvoudig om over te schakelen naar een andere tool door deze op je cluster te installeren en te registreren in de Harbor interface. Met deze eenvoudige stappen kunt u de beveiliging van containers naar een hoger niveau tillen. Ondertekening van containerafbeeldingen Harbor biedt ook een Container Image Signing-functie waarmee gebruikers het vertrouwen van container images kunnen verifiëren. Als Notary of Cosign wordt gebruikt om container images te beveiligen, kan Harbor hun handtekeningen valideren, en verzekeren dat er niet met de images is geknoeid door ongeautoriseerde bronnen anders dan uw build tools. De functie Container Image Signing wordt aangegeven door een groen vinkje in de interface van Harbor, wat aangeeft dat de image correct is ondertekend. Hoewel deze blogpost niet beschrijft hoe deze functie werkt, kunt u gedetailleerde documentatie over het proces vinden via deze link . Robot-accounts Naast gewone gebruikers kun je met Harbor ook robotaccounts aanmaken. Deze systeemgebruikers zijn niet gekoppeld aan persoonlijke accounts en worden vaak gebruikt door scripts en processen om zich te authenticeren met het Harbor register. Bijvoorbeeld bij het bouwen van een container image kunnen scripts een robot account gebruiken om de container image naar het Harbor register te pushen. Om de beveiliging te verhogen, is het mogelijk om een verlooptijd in te stellen voor robotgebruikers. Bovendien kunnen de toegangsrechten beperkt worden tot een bepaald project en kan zelfs het niveau van rechten binnen dat project aangepast worden. Het auditlogboek registreert alle activiteiten die worden uitgevoerd door het robotaccount, net als bij gewone gebruikers. Hoe ziet de installatie van het Harbor-register eruit? We draaien Harbor-register op EKS, de Kubernetes Service van AWS. Omdat we op AWS draaien, kunnen we een aantal AWS-services gebruiken om een aantal afhankelijkheden te bieden. We hebben 3 configuratielagen in deze opstelling: AWS bronnen. Kubernetes bronnen. Bronnen binnen Harbor register. ⬇️ In de volgende secties gaan we dieper in op deze configuratielagen. 1. De AWS-bronnen instellen Binnen de ACA Group proberen we al onze infrastructuur als code te beheren. We gebruiken Terraform om alle afhankelijkheden voor ons Harbor-register in te stellen: Route53 voor DNS. RDS voor een multi-az postgres database. Elasticache voor een Redis-cluster met hoge beschikbaarheid voor sessiebeheer. EFS voor gedeelde opslag in meerdere zones voor onze containers. EKS voor de masterlaag van het Kubernetes-cluster. Nodegroups ingezet over meerdere beschikbaarheidszones die zullen dienen als rekencapaciteit voor ons Kubernetes cluster. Zodra deze bronnen beschikbaar zijn, kunnen we de Kubernetes-configuratie genereren en deze inzetten op ons Kubernetes-cluster. 2. De kubernetes-bronnen instellen We gebruiken een helm om de Kubernetes-configuratiebestanden te genereren die nodig zijn om Harbor in te stellen. Dit zijn YAML-bestanden die zijn opgeslagen in GIT-repositories. Uiteindelijk zal flux deze YAML-bestanden deployen naar het Kubernetes-cluster. ℹ️ kun je hier in een andere blogpost lezen over implementaties met flux. Als resultaat worden de volgende workloads aangemaakt op je Kubernetes cluster: Harbor core. Harbor Portal, bedient de UI. Harbor Registry, beheert het containerregister. Harbor Jobservice, plant achtergrondjobs. Harbor Trivy, scant CVE's / kwetsbaarheden. Notary resources, voor het ondertekenen van afbeeldingen. Daarnaast worden verschillende Kubernetes-objecten gegenereerd, waaronder de Ingress, die de gebruikersinterface (UI) blootstelt op de door jou opgegeven URL. Als je meer details wilt, kun je Harbor direct installeren op je lokale Kubernetes-cluster door het Helm-installatiecommando uit te voeren: helm install my-release harbor/harbor Standaard 3. Bronnen instellen in Harbor Nu we het Harbor-register operationeel hebben, kunnen we daarin efficiënt verschillende bronnen aanmaken, zoals projecten, robotaccounts en retentiebeleid. Nogmaals, we willen deze bronnen in code beheren in plaats van ze via de UI aan te maken. Dit helpt ons niet alleen bij het effectief bijhouden van wijzigingen, maar voorkomt ook mogelijke misconfiguraties via pull request mechanismen. Met zijn uitgebreide en goed gedocumenteerde API maakt Harbor het voor veel tools mogelijk om aangepaste addons te ontwikkelen. Door gebruik te maken van onze expertise in Terraform-code, geven we de voorkeur aan de Terraform Harbor addon om de bronnen in het Harbor-register efficiënt te beheren. Het volgende voorbeeld creëert een project binnen Harbor: resource "harbor_project" "myproject" { name = "myproject" public = false vulnerability_scanning = true enable_content_trust = true deployment_security = "" } Standaard Het Harbor-register gebruiken Na het implementeren van het Harbor-register en het maken van projecten, wordt het een functioneel containerregister dat op dezelfde manier werkt als elk ander containerregister. Om container images naar het Harbor register te pushen, kunnen conventionele build jobs gebruikt worden. De buildjob vereist echter authenticatiereferenties, meestal van een robotaccount. Daarna moet je de configuratie van je jenkins, tekton, BitBucket Pipeline, GitHub actie of soortgelijke opdracht bijwerken om het juiste project en de Harbor URL te specificeren, zoals registry.example.be/myproject. Het push commando kan ook gevonden worden in de Harbor interface: Nadat het container image naar het Harbor register is geduwd, kan het van andere locaties worden gehaald. Om een image naar je lokale machine te trekken met Docker, kun je de volgende commando's gebruiken: docker login docker pull registry.example.be/myproject/image:version Standaard Om het container image te gebruiken in een Kubernetes omgeving, begin je met het aanmaken van een Secret van het type "docker-registry" dat de nodige referenties bevat om het container image te deployen. Aangezien een Secret specifiek is voor een naamruimte, moet je dit commando uitvoeren voor elke naamruimte die een container uit het Harbor-register gebruikt. kubectl -n NAMESPACE create secret docker-registry registry.example.be --docker-server=registry.example.be --docker-username='firstname.lastname' --docker-password='mysupersecurepassword' --docker-email=me@company.be Standaard Nu kan je verwijzen naar de container image binnen je Deployment, StatefulSet, Job, ... De imagePullSecrets sectie verwijst naar de Secret die in de bovenstaande stap werd aangemaakt. image: registry.example.be/myproject/image:version ... imagePullSecrets: - naam: registry.example.be Standaard Conclusie Deze blogpost gaf een overzicht van de vele voordelen en functies van het Harbor-register. We hebben ook onze aanpak gedeeld voor het instellen en gebruiken van het containerregister. Bij ACA gebruiken we Harbor als containerregister voor een van onze belangrijkste projecten en we zijn momenteel bezig om het te adopteren als ons standaardregister voor nieuwe projecten. Zodra dit is ingesteld, maken we een plan om andere actieve projecten te migreren. Ons doel is om de stabiliteit, beschikbaarheid en veiligheid voor onze klanten te verbeteren. Als je meer wilt weten over het Harbor-register, neem dan gerust contact met ons op! {% module_block module "widget_32015f12-8114-463e-bcf8-473d84a7e2dd" %}{% module_attribute "buttons" is_json="true" %}{% raw %}[{"appearance":{"link_color":"light","primary_color":"primary","secondary_color":"primary","tertiary_color":"light","tertiary_icon_accent_color":"dark","tertiary_text_color":"dark","variant":"primary"},"content":{"arrow":"right","icon":{"alt":null,"height":null,"loading":"disabled","size_type":null,"src":"","width":null},"tertiary_icon":{"alt":null,"height":null,"loading":"disabled","size_type":null,"src":"","width":null},"text":"Talk to use here!"},"target":{"link":{"no_follow":false,"open_in_new_tab":false,"rel":"","sponsored":false,"url":{"content_id":null,"href":"https://www.acagroup.be/en/services/cloud/","href_with_scheme":"https://www.acagroup.be/en/services/cloud/","type":"EXTERNAL"},"user_generated_content":false}},"type":"normal"}]{% endraw %}{% end_module_attribute %}{% module_attribute "child_css" is_json="true" %}{% raw %}{}{% endraw %}{% end_module_attribute %}{% module_attribute "css" is_json="true" %}{% raw %}{}{% endraw %}{% end_module_attribute %}{% module_attribute "definition_id" is_json="true" %}{% raw %}null{% endraw %}{% end_module_attribute %}{% module_attribute "field_types" is_json="true" %}{% raw %}{"buttons":"group","styles":"group"}{% endraw %}{% end_module_attribute %}{% module_attribute "isJsModule" is_json="true" %}{% raw %}true{% endraw %}{% end_module_attribute %}{% module_attribute "label" is_json="true" %}{% raw %}null{% endraw %}{% end_module_attribute %}{% module_attribute "module_id" is_json="true" %}{% raw %}201493994716{% endraw %}{% end_module_attribute %}{% module_attribute "path" is_json="true" %}{% raw %}"@projects/aca-group-project/aca-group-app/components/modules/ButtonGroup"{% endraw %}{% end_module_attribute %}{% module_attribute "schema_version" is_json="true" %}{% raw %}2{% endraw %}{% end_module_attribute %}{% module_attribute "smart_objects" is_json="true" %}{% raw %}null{% endraw %}{% end_module_attribute %}{% module_attribute "smart_type" is_json="true" %}{% raw %}"NOT_SMART"{% endraw %}{% end_module_attribute %}{% module_attribute "tag" is_json="true" %}{% raw %}"module"{% endraw %}{% end_module_attribute %}{% module_attribute "type" is_json="true" %}{% raw %}"module"{% endraw %}{% end_module_attribute %}{% module_attribute "wrap_field_tag" is_json="true" %}{% raw %}"div"{% endraw %}{% end_module_attribute %}{% end_module_block %}
Lees verderWant to dive deeper into this topic?
Get in touch with our experts today. They are happy to help!

Want to dive deeper into this topic?
Get in touch with our experts today. They are happy to help!

Want to dive deeper into this topic?
Get in touch with our experts today. They are happy to help!

Want to dive deeper into this topic?
Get in touch with our experts today. They are happy to help!


