Maarten Jongmans

Lid sinds: 28-04-2016

#aws lambda
05Sep2018
AWS Lambda - spacecomputing
Maarten Jongmans

Maarten Jongmans is software engineer en projectleider bij endroit.nl en boo2.nl.  Met zijn team ontwerpt, ontwikkelt en onderhoudt hij web-applicaties. In deze blog vertelt hij over zijn dagelijkse werkzaamheden. Eén van de opmerkelijkste innovaties die AWS ons heeft gebracht is de Lambda service. Hiermee kan een deel van de code buiten de server draaien in het on-eindige. Er is geen server nodig en de capaciteit is on-eindig. Dit is ideaal voor applicaties met onregelmatige piek-momenten in het gebruik. Deze pieken moeten worden opgevangen en dus moet de aan te schaffen server zo groot zijn als het hoogste piek-moment. Dat is erg kostbaar en met AWS Lambda dus niet meer nodig. De programmatuur waarin de pieken voorkomen worden met Lambda gedraaid. De server kan dan beperkt blijven tot het meest gangbare gebruik. Voorbeeld: In de klassieke server-hosting omgeving dient bij een piek-verbruik van 300 een server van 300 te worden aangeschaft. Bij AWS Lambda hoeft dat niet en kan worden volstaan met een capaciteit gelijk aan gangbaar gebruik bijvoorbeeld 80. De code die de piek veroorzaakt wordt gedraaid met Lambda. Alhoewel aan Lambda ook kosten zitten zullen deze altijd flink lager zijn dan het aanhouden van een grote server die meestal niet volledig wordt gebruikt. Bij endroit.nl hebben we dit toegepast in het portaal van CP&A waar s'ochtends tussen zes en zeven uur tien-duizenden foto's worden ge-upload. Met Lambda worden deze foto's verkleind en gekopieerd naar thumbnails.

#aws server configurations
31Aug2018
Een AWS server configuratie
Maarten Jongmans

Maarten Jongmans is software engineer en projectleider bij endroit.nl en boo2.nl.  Met zijn team ontwerpt, ontwikkelt en onderhoudt hij web-applicaties. In deze blog vertelt hij over zaken die hij bij zijn dagelijkse werkzaamheden tegenkomt. Wij gebruiken AWS voor het draaien, beheer en onderhoud van web-applicaties. AWS biedt honderden bouwblokken met duizenden mogelijkheden voor het inrichten van een optimale cloud-omgeving. In deze blog toon ik de inrichting die we gebruiken met in [vierkante] haken referenties naar de AWS bouwstenen en wat technische omschrijvingen voor die het begrijpen. Onze web-applicaties geven gebruikers (users)  informatie via schermen op desktop en smartphones via https (browser) maar sturen ook emails [SES] en SMS [SNS]. De emails zijn gecertificeerd door Amazon en komen niet in de spam. Alle bouwstenen van de server zitten veilig in het AWS Ecosysteem met een single login [IAM]. Voor DNS gebruiken we [Route53] waarmee we ook up / down-time en gebruikers-klikken vastleggen en rapporteren via [CloudWatch]  en [QuickSight] . Online toegang is beveiligd met een Firewall [WAF] waarvoor regels worden gebruikt die specifiek zijn per programma. Zo worden voor Wordpress websites gelet op andere hack-patronen dan bij administratie-programma's. Moter van het platform zijn de [EC2] webservers waarvan er door auto scaling van de [Elastic Load-Balancer] instances (kopieën) worden gemaakt (en weer worden verwijderd) al naar gelang het aantal gebruikers zodat de performance altijd optimaal blijft. Om dit te bewerkstelligen zijn al onze applicaties stateless.  De aparte database servers [RDB] zitten in een Privat Subnetwerk dat alleen door de webserver is te benaderen. Files worden opgeslagen op file-server [S3]. Statische content wordt op externe servers in een Content Delivery Netwerk [CloudFront] extra snel weergegeven in de browser zonder load op de web-server [EC2]. Statistieken en dashboards worden gegenereerd door [QuickSight] met een kopie database zodat de [RDB] gewoon kan blijven werken zonder met zware overzichten lastig te worden gevallen. Tenslotte gebruiken we [CloudWatch] voor iedere bouwsteen voor een 7/24 monitor van de applicaties in onze boo2 en endroit cockpit van het support-team.

#wat is aws
31Aug2018
AWS - wat is het
Maarten Jongmans

Maarten Jongmans is software engineer en projectleider bij endroit.nl en boo2.nl. Met zijn team ontwerpt, ontwikkelt en onderhoudt hij web-applicaties. In deze blog vertelt hij over zaken die hij bij zijn dagelijkse werkzaamheden tegenkomt. AWS is de afkorting van Amazon Web Services. Het is een Cloud-platform waarop je je hele automatisering kwijt kunt zonder een cent aan investering. Ga naar de website en maak een gratis account aan. Vanaf dat moment heb je dezelfde IT omgeving als de Rabobank, Netflix, Philips en Shell tot je beschikking. Welkom in de wereld van cloud-computing. Nadat je een gratis account hebt aangemaakt kun je databases maken met grafieken, mailen, SMS'en, bestanden onbeperkt en veilig opslaan en al je programma's laten draaien. Er zijn duizenden programma's, koppelingen en diensten beschikbaar. Zoek ernaar op de marktplaats. Je betaalt naar gebruik. Investering in servers en vaste maandelijkse hosting kosten zijn verleden tijd. Als je er verstandig mee omgaat zijn deze gebruikskosten lager dan de klassieke vaste maandelijkse automatiseringskosten. AWS is thans de standaard in de industrie en een groot deel van top 100 bedrijven gebruiken AWS voor hun automatisering. AWS staat al jaren bovenaan in Gartners Magic Quadrant. Ver boven Google (Cloud) en Microsoft (Azure). Microsoft en Google zijn concurrenten met hun eigen platforms maar zijn op dit moment volgers. Microsoft met haar platform 'Azure' heeft de beste papieren omdat men geneigd is Microsoft te kiezen omdat men al Microsoft Office Word, Excel gebruikt. De ratio hiervoor is afwezig. Je kunt dit vergelijken met het kiezen van een frans automerk omdat je een schilderij van een franse schilder boven je bed hebt hangen. Veel van onze klanten met een Microsoft office omgeving kiezen juist voor AWS ten behoeve van risico-spreiding. Het grote voordeel van AWS is schaalbaarheid, kosten en veiligheid. Een klant van ons doet online campagnes en verwerkt daarvoor online formulieren. Gemiddeld zijn dit er 10.000 per maand. Voor een actie van kinderpostzegels piekt dit in het najaar 3 dagen 50x zo hoog naar een half miljoen. Bij klassieke hosting-servers dient er dan een server besteld te worden die 50x groter (en duurder) is. Dit gaat meestal op jaarcontracten zodat je gedurende het hele jaar vastzit aan duizenden euro's per maand om ervoor te zorgen dat je voldoende capaciteit hebt voor drie dagen in oktober. Bij AWS is de capaciteit oneindig en betaal je voor het gebruik. Een ander voordeel is de beveiliging. AWS is een platform waar de beveiliging voor al je automatisering centraal is geregeld (IAM) zodat dit niet per systeem, programma of bestand hoeft te worden bekeken. Bedenk wat een zorgen dat scheelt bij het AVG-proof maken van je automatisering!

#server migration aws
30Aug2018
AWS - migratie naar AWS
Maarten Jongmans

Maarten Jongmans is software engineer en projectleider bij endroit.nl en boo2.nl.  Met zijn team ontwerpt, ontwikkelt en onderhoudt hij web-applicaties. In deze blog vertelt hij over zaken die hij bij zijn dagelijkse werkzaamheden tegenkomt. We gebruiken Amazon Web Services (AWS) cloudplatform voor het draaien en beheren van onze web-applicaties. Meestal omdat onze klanten dat eisen of wensen, maar inmiddels zijn we ook enthousiast over dit cloud-platform. AWS staat in Gartners Magic Quadrant voor Cloudservices al jaren dik aan de top ver voor Google (Cloud) en Microsoft (Azure).  Bestaande web-applicaties migreren we regelmatig van klassieke hosting, Google-cloud of Azure naar AWS. In deze blog beschrijf ik enkele aspecten waarbij rekening moet worden gehouden voor een dergelijke migratie. De technische infrastructuur van AWS die we thans (aug 2018) gebruiken staat schematisch weergegeven in figuur 1.   Server-keuze. Dit is meestal de keuze tussen Microsoft (IIS) of Apache. Indien Apache bieden we het meer moderne Nginx aan als alternatief.  Met Nginx minder vastlopende servers en weekendwerk!  Operating system. We gebruiken meestal die waarop de web-applicatie voorheen draaide om compatibiliteitsproblemen te voorkomen. Als het een oud of verlopen operating system betreft gebruiken we Docker. Docker isoleert de web-applicatie van de server plaatst het in een container.  In deze container kan de web-applicatie in de meeste operating systemen draaien.  'Los-knippen' van de web-applicatie. Om de web-applicatie met database te kopiëren naar een andere omgeving moeten alle linkjes en draadjes met de oude server omgeving worden doorgeknipt en algemeen worden gemaakt. De kwaliteit van de code komt hier direct aan het licht.  Het "hardcoding" van verwijzingen naar server-,  database en file-servers is a big NoNo in programmeerland.  Wijzigingen en migraties worden daardoor erg moeilijk. Directe verwijzingen naar file-servers moeten worden vervangen door generieke verwijzingen naar S3, de opslag-service van AWS. Alle links met de omgeving en server moeten  worden geplaatst in een config(uration) file.  Stateless maken van de web-applicatie. Dit betekent dat de web-applicatie blijft draaien als de code op een andere server wordt verplaatst. Het gebruik van sessies of cookies wordt vervangen door tokens zodat er niets op een server wordt opgeslagen. Dit biedt weer meer zekerheid dat de applicatie ook op een andere server zoals AWS zonder problemen zal draaien. Een bijkomend voordeel is dat de performance kan worden verbeterd door het gebruik van Load-balancing. Load-balancing kan alleen met stateless web-applicaties. SES wijzigen. Web-applicaties communiceren vanuit de cloud naar de gebruikers op aarde via het internet (http). Maar ook door het versturen van email (SMTP) of SMS. Hiervoor biedt AWS een betrouwbare service waarbij Amazon garant staat voor de mails die je verstuurt zodat ze niet in de spam komen. Testen. Met een grote 'T'. Niets in de automatisering gaat automatisch en controleren is beter dan vertrouwen. Dat laatste heb ik nog uit mijn accountancy periode. De rol, betrokkenheid, verantwoordelijkheid, tijd en beschikbaarheid van gebruikers bepaalt hierbij het slagen van het testen. figuur 1: AWS technische infrastructuur