Shutterstock/phloxiiIedereen verplaatst zijn applicaties tegenwoordig naar de cloud. Vers beginnen is eenvoudig, maar wat als u een bestaande infrastructuur heeft die u moet migreren? Het opnieuw creëren van uw netwerk in de cloud biedt u de kans om uw architectuur te moderniseren en gebruik te maken van de vele voordelen van cloudproviders zoals AWS.
Wat maakt de cloud? Zo handig?
In zijn meest basale vorm is de “cloud” is gewoon elke Infrastructure-as-a-Service-provider waarmee u hardware kunt huren om uw applicaties op uit te voeren. Veel bedrijven runnen hun netwerken vanaf hun eigen on-premises servers. Door ze van een derde partij te huren, is er meer flexibiliteit en de mogelijkheid om naar behoefte te schalen.
Moderne cloudproviders zoals Amazon Web Services (AWS), Google Cloud Platform, Microsoft Azure en Digital Ocean (DO) bieden veel meer dan alleen servers tegen een vergoeding. Ze hebben het tot hun taak gemaakt om de efficiëntie van hun activiteiten te verbeteren en ontwikkelaars te voorzien van gebruiksvriendelijke tools die het bouwen van applicaties veel gemakkelijker maken.
Het draaien van uw servers in de cloud kan bijvoorbeeld feitelijk < sterk> u geld besparen. Hoewel dedicated servers natuurlijk core-for-core duurder zullen zijn (omdat iedereen zijn producten enigszins gaat opwaarderen), hebben providers zoals AWS geavanceerde automatische schaalsystemen. Hiermee kunt u het proces van uw serverlevenscyclus volledig automatiseren en nieuwe servers maken en vernietigen als de vraag fluctueert, vaak meerdere keren per dag. In plaats van te betalen voor piekcapaciteit, kunt u tijdens de daluren afschalen en in het algemeen geld besparen.
GERELATEERD: Aan de slag met AWS Autoscaling
Als u automatisch schalen instelt, kunt u ook automatisch extra servers maken in het geval dat u onverwacht veel wordt belast. Dit maakt uw netwerk zeer schaalbaar, en betekent dat u niet echt downtime zult ervaren vanwege veel verkeer. Deze schaalbare mentaliteit geldt voor alle diensten. De Lambda-functies van AWS zijn bijvoorbeeld out-of-the-box oneindig schaalbaar. Hun systemen zorgen ervoor dat de code voor u wordt uitgevoerd; het maakt niet uit hoe vaak je de functie per seconde aanroept, het zal geen bottleneck vormen.
Advertentie
De cloud bespaart ook geld door taakautomatisering. AWS's Relational Database Service (RDS) is bijvoorbeeld een volledig beheerde SQL-service die een groot deel van het beheer van databases automatiseert. U kunt al iemand betalen om deze taken voor u op uw eigen servers te doen; als u RDS zou gebruiken, zou die persoon meer databases kunnen beheren en de rest van zijn tijd efficiënter kunnen besteden.
En tot slot is cloudinfrastructuur vaak veel duurzamerdan on-premises oplossingen. Dit is gedeeltelijk te danken aan services zoals S3, die ongelooflijk redundant zijn voor gegevensopslag, maar het is ook van toepassing op netwerkontwerp met hoge beschikbaarheid. Het is eenvoudig om failover-cases te ontwerpen waarbij een back-upserver het kan overnemen in het geval van een hardwarestoring. En in het ergste geval is het maken van een back-up van alles in uw netwerk heel eenvoudig, aangezien services zoals EBS die de opslag voor uw servers van stroom voorzien, kunnen worden geconfigureerd om automatisch een back-up te maken naar S3.
Bijvoorbeeld AWS's 8217;s DNS-service, Route 53, ondersteunt gezondheidscontroles die uw hardware bewaken en het verkeer automatisch op DNS-niveau omschakelen als een server niet meer reageert. Groepen voor automatisch schalen ondersteunen ook statuscontroles en kunnen een server volledig beëindigen en vervangen als deze problemen ondervindt.
Uw architectuur moderniseren met cloud Oplossingen
Shutterstock/AshalathaDe overstap naar de cloud is een grote stap, maar met de extra tools die je krijgt, heb je een goede reden om je architectuur te onderzoeken om te zien of onderdelen ervan kunnen profiteren van een wijziging in het ontwerp.
Veel oudere applicaties zijn bijvoorbeeld ontworpen om “monolithisch” d.w.z. verpakt in één groot programma dat op uw server wordt uitgevoerd. Dit programma kan praten met een lokale of externe database, inkomende webverzoeken afhandelen, query's uitvoeren, informatie opzoeken, wachtrijen verwerken en al het andere dat uw gebruiksscenario wenst.
Dit kan goed zijn om dingen snel aan de gang te krijgen, maar uiteindelijk begint het een probleem te vormen, het is niet efficiënt. Zolang het probeert om veel complexe taken tegelijk af te handelen, zal er altijd één aspect van een grote monolithische applicatie zijn dat de bottleneck wordt voor de rest van de applicatie. Wat er dan meestal gebeurt, is dat u gedwongen wordt om op te schalen, meer servers in te richten en meer instanties uit te voeren. Dit kan ongelooflijk verspillend zijn als de rest van de componenten in het programma niet zo zwaar worden belast.
Advertentie
Dus de oplossing waar veel ingenieurs naar op weg zijn, is “microservices.” Dit zijn individuele diensten die elk een duidelijk, vast doel hebben. Misschien zorgt een element van uw webtoepassing voor videoverwerking en wordt het bijzonder zwaar gestrest in vergelijking wanneer gebruikers lange video's uploaden. Je zou dit onderdeel naar zijn eigen microservice kunnen verplaatsen, het extern kunnen afhandelen en het eenvoudig kunnen aanroepen wanneer dat nodig is. Nu kan dat onderdeel volledig op zichzelf schalen; u hebt mogelijk drie servers nodig waarop de videoverwerkingsservice wordt uitgevoerd, maar slechts twee servers waarop de rest van de toepassing wordt uitgevoerd. Dit maakt efficiënter gebruik van uw middelen en is over het algemeen een meer schaalbaar ontwerp.
Naar welke services moet ik kijken?
Ongeacht of u kiest voor een microservices-ontwerp, andere cloudoplossingen kunnen zeer nuttig zijn.
We zullen enkele van AWS' bespreken ;s-diensten, aangezien zij de marktleider zijn, vooral in het aantal diensten dat zij aanbieden. De meeste grote hebben echter vergelijkbare producten die beschikbaar zijn bij andere cloudproviders zoals Azure, GCP en Digital Ocean.
Cloud Object Storage (S3)
De meeste on-premises oplossingen maken gebruik van opslag op blokniveau, wat betekent dat objecten als bestanden op schijven worden opgeslagen en via het netwerk beschikbaar worden gesteld. De schaal van providers zoals AWS zorgt er echter voor dat enorme hoeveelheden bestanden kunnen worden opgeslagen in hun Simple Storage Service (S3).
S3 heeft geen traditionele mappen, hoewel ze wel objectsleutels hebben die meestal hetzelfde werken. In plaats van directe toegang tot de onderliggende schijf te bieden, kunt u met S3 eenvoudig een bestand opslaan in de cloud met een naam en locatie. Dat is het, maar dit eenvoudige ontwerppatroon zorgt voor grote flexibiliteit.
Advertentie
Stel bijvoorbeeld dat uw toepassing door gebruikers geüploade inhoud toestaat. Het opslaan van afbeeldingen in S3 zou een geweldige optie zijn, en je kunt ze zelfs beschikbaar maken via internet met behulp van AWS's CloudFront content delivery netwerk.
Overschakelen naar S3-gebaseerde opslag is een beetje een proces , maar er zijn hybride oplossingen, zoals AWS's Storage Gateway.
GERELATEERD: Op locatie NAS-prestaties nodig? Gebruik de S3-opslaggateway van AWS
Cloud-functies

Cloud-functies zoals Lambda zijn ongelooflijk handig & #8212;ze stellen je in staat om code in de cloud uit te voeren zonder na te denken over servers. Vraag eenvoudig een functie aan die moet worden uitgevoerd, hetzij rechtstreeks, hetzij via een API zoals AWS's API Gateway, en deze wordt in de wachtrij geplaatst en uitgevoerd op Lambda-servers.
U betaalt gewoon een vergoeding voor het aantal CPU-seconden en geheugen dat uw functie gebruikt. Het maakt niet uit hoe vaak je de functie aanroept, hij zal worden geschaald om ermee om te gaan.
Cloudfuncties kunnen eenvoudig eenvoudige taken in je netwerk automatiseren. Als je een cronjob-script hebt dat op een van je servers draait, overweeg dan om het naar Lambda te verplaatsen. Natuurlijk is Lambda niet beperkt tot alleen simpele scripts. Het is zeer krachtig en kan worden gebruikt om robuuste applicatie-backends te maken.
GERELATEERD: Wat zijn Lambda-functies en hoe gebruik je ze?
Loadbalancers & amp; Automatisch schalen
Load balancers zijn netwerkapparaten die het verkeer tussen servers verdelen. Traditioneel moet je een server opzetten en deze zelf configureren met een programma als HAProxy. Op AWS zijn ze ingebouwd in het netwerk en je hoeft ze alleen maar aan te zetten en er een maandelijks bedrag voor te betalen.
Automatisch schalen is een andere functie die voortbouwt op load balancers. In plaats van dat uw lijst met servers statisch is, is deze in plaats daarvan gebaseerd op verkeerseisen. Servers worden indien nodig toegevoegd aan en verwijderd uit de pool.
Advertentie
Dit heeft veel voordelen, zoals we al hebben besproken, maar het heeft ook verstrekkende gevolgen voor de manier waarop u gebruik en update uw netwerk. Omdat uw serverinstallatieproces geautomatiseerd is, kunt u blauw/groene code-implementaties uitvoeren, waarbij servers worden bijgewerkt door geheel nieuwe servers te maken, te wachten tot de service online komt en het verkeer langzaam naar hen om te schakelen om eventuele problemen uit te bannen.< /p>

Als er één ding is dat we iedereen zeker aanraden, is het 8217;s automatische schaling van uw belangrijkste EC2-services.
GERELATEERD: Aan de slag met Elastic Load Balancers van AWS
Geautomatiseerde CI/CD-pijplijnen
Shutterstock/RibkhanContinuous Integration/Continuous Deployment is het proces van het opzetten van een geautomatiseerde build van uw applicatie die wordt geïmplementeerd op de server wanneer u wijzigingen aanbrengt in uw bronbeheer.
Kortom, je pusht een commit naar Github (of welke andere repository je ook gebruikt), en een service zoals AWS CodePipeline start een build-server. Die server bouwt en test uw applicatie, en als het succesvol is, stuurt het de voltooide build naar uw servers om te worden bijgewerkt. Als u automatische schaling heeft ingesteld, kan dit worden gedaan met een blauw/groene implementatie met de optie voor snel en eenvoudig terugdraaien indien nodig.
GERELATEERD: Hoe aan de slag met de CI/CD-pijplijnen van AWS
Ingebouwd Content Delivery Network (CDN)
Het hebben van een CDN kan uw levertijden aanzienlijk versnellen. Omdat AWS in feite een wereldwijde computersupermacht is, heeft hun CDN edge-knooppunten over de hele wereld. Veel andere cloudproviders hebben vergelijkbare oplossingen; Google's Cloud CDN is een van de snelste en meest flexibele die er zijn, omdat Google een groot deel van de infrastructuur van internet beheert.
GERELATEERD: Aan de slag met CloudFront CDN van AWS
GERELATEERD: Hoe u Google Cloud CDN kunt gebruiken om uw website sneller te maken
Kunt u migreren zonder downtime?
Migreren zal een lang en ingewikkeld proces zijn, maar het hoeft geen langdurige downtime te betekenen. U zult waarschijnlijk een beetje downtime hebben, maar het proces kan redelijk naadloos worden gemaakt.
Advertentie
U kunt een van de twee strategieën toepassen: of u verplaatst al uw servers op één keer en schakel het hele netwerk over, of verplaats stukjes en beetjes van uw applicaties naar de cloud, en update uw applicaties om de nieuwe diensten te gebruiken.
De tweede optie zal resulteren in een hybride aanpak en dat is waar de meeste grote bedrijven voor kiezen, omdat het kosteneffectiever is om alleen de dingen te verplaatsen die er het meeste baat bij hebben. AWS heeft veel services die werken door on-premises hardware te integreren met de cloud.
De eerste optie is gemakkelijk voor kleine implementaties en wordt eenvoudig gemaakt door services zoals AWS's Application Migration Service, die snel kan een vloot servers naar EC2 verplaatsen. U zult waarschijnlijk nog steeds code-updates en configuratie nodig hebben, maar het kan uw hele netwerk naar een testomgeving verplaatsen waar u alles kunt instellen en vervolgens een cutover kunt uitvoeren wanneer u er klaar voor bent.
GERELATEERD: Hoe u eenvoudig servers naar de cloud kunt migreren met de applicatiemigratieservice van AWS

Hoe dan ook, verhuizen naar de cloud is een lange beslissing die je goed moet onderzoeken met een duidelijk plan. Uw specifieke setup zal enorm variëren, dus u zult de best practices moeten bekijken voor het soort applicaties dat u wilt gebruiken.