Manage Development Environments in AWS Serverless Infrastructure

Een serverloos platform biedt de mogelijkheid om elke ontwikkelaar een eigen afzonderlijke full-stack-omgeving op een AWS-account te geven die ze kunnen gebruiken voor ontwikkel- en testactiviteiten.

Dit is mogelijk zonder dat de kosten aanzienlijk stijgen en gevolgen hebben voor iemand anders. Of zonder het risico dat de instellingen van de ontwikkelaar per ongeluk worden gewijzigd.

serverloze infrastructuur

Serverloze architectuur geeft een andere kijk op de oude problemen en is in veel opzichten positief verfrissend. Het belangrijkste voordeel is dat u geen beheerders meer in het workforce nodig heeft die geen presents hoeven te brengen bij het uitvoeren van volledige processen. Het andere voordeel – dat nu gericht is op het interne ontwikkelingsteam in plaats van op de enterprise, is dat het het ontwikkelingsteam onbeperkte voorwaarden kan bieden voor hun ontwikkelingswerk.

Wat dat precies betekent, gaan we hier uitleggen, namelijk:

  • Hoe u een onbeperkte ontwikkelomgeving kunt creëren op een serverloos platform.
  • Wat zijn de voordelen van een dergelijke opzet voor het workforce?
  • De meest cruciale gebieden om te verzorgen in een dergelijke opstelling, zodat deze na verloop van tijd niet kapot gaat.
  • Demonstratievoorbeeld van een dergelijke opstelling.

Een weg naar een zelfstandige omgevingsstapel voor elke ontwikkelaar

Je kunt de ontwikkelingsinfrastructuren beschouwen als een evolutionair proces in de loop van de tijd.

In het start was er een licht…

Gedeelde ontwikkeling

De meest gebruikelijke manier om ontwikkelaccountomgevingen te beheren is door een of meerdere afzonderlijke ontwikkelomgevingen te creëren. In een beter geval bevatten ze alle componenten van de productieomgeving. Zelfs dit is helemaal niet standaard. Vaak zal de ontwikkelomgeving beperkt blijven tot enkele van de belangrijkste providers en de relaxation missen.

Uiteraard is het in een dergelijke omgeving een grotere uitdaging om een ​​betrouwbare oplossing te ontwikkelen. De impression op de niet-presenterende systeemcomponenten ontbreekt eenvoudigweg. Het managementteam zal zeggen dat het workforce dit later in testomgevingen tijdens het testen van het systeem kan uitzoeken. Dit zal in de ogen van ontwikkelaars echter nooit een empathietrofee winnen.

Ontwikkelingsactiviteiten zullen minder nauwkeurig zijn. Ontwikkelaars zullen meer tijd besteden aan het herwerken en oplossen van problemen, en over het algemeen zal hun motivatie om een ​​excellent stukje code te maken afnemen. Bovendien creëer je met een dergelijke opzet al vanaf het start een inconsistente en onstabiele omgeving.

Afhankelijk van de grootte van het workforce kunnen er verschillende ontwikkelomgevingen nodig zijn om de meest kritieke parallelle werkconflicten tussen de groups te beperken. Omdat ze de ontwikkelomgevingen zullen delen, zal de ene ontwikkelaar op de een of andere manier invloed hebben op de ander. Uitgebreide communicatie tussen de teamleden is een should.

Meer ontwikkelomgevingen betekenen minder conflicten, maar de deelfactor is er nog steeds. Het kan misschien wel werken, maar het zal nooit een perfecte opstelling zijn. Meestal zullen de ontwikkelaars uiteindelijk lokaal iets creëren (dat al in battle is) rechtstreeks op de laptopmachines. Dit kan later voor additional problemen zorgen bij het samenvoegen van de code. Het gedrag op de laptopmachine kan verschillen van dat in de cloud. Dit kan problemen veroorzaken na het samenvoegen van de code met de ontwikkelingen die al door de anderen zijn gedaan.

Meervoudig gedeelde ontwikkeling

Maar toen heeft iemand de wereld geschapen…

De voor de hand liggende vraag is nu: wat is het dan? Welke opstelling zou de deelfactor wegnemen en zou het workforce niet motiveren om elders activiteiten te ondernemen dan het cloudaccount?

Stel je voor dat elk teamlid een aparte omgevingsstack krijgt die hij voor zijn eigen activiteiten kan gebruiken. Het zou uit dezelfde componenten bestaan ​​als het productiesysteem. Zonder de volledige gegevensbelasting, need dat is iets dat je niet eens echt wilt voor ontwikkelingsactiviteiten.

Of laten we een niveau hoger gaan: hoe zit het met het maken van zo’n stapel voor elke taak waaraan de ontwikkelaar werkt?

Duur – zou je denken.

Niet echt – zou ik zeggen.

Als de ontwikkelaars de omgevingen en hun bronnen actief gebruiken, is de vergelijking van de belasting tussen het allemaal parallel doen in één gedeelde omgeving versus het opsplitsen ervan in meer omgevingen qua kosten zeer waarschijnlijk gelijk. Omdat u een serverloze architectuur heeft en u alleen voor het echte gebruik betaalt.

Als de ontwikkelaars niet actief zijn en ze hebben nog steeds deze volledige stapel (of meer tegelijk) gemaakt, zijn de kosten nul omdat je een serverloze architectuur hebt. Niet gebruikte diensten brengen geen kosten met zich mee.

Particuliere ontwikkeling

Laten we de voordelen nader bespreken.

Voordelen die alleen het ontwikkelingsteam kan waarderen

Allereerst is één ding heel duidelijk. Alle voordelen die deze opzet biedt, kunnen alleen door het ontwikkelteam zelf worden gewaardeerd. Geen administration of zakelijke gebruiker zal hier ooit waarde in zien. Ik bedoel, ze begrijpen misschien waar de waarde ligt. Maar hoogstwaarschijnlijk zullen ze nooit toegeven dat ze het absoluut nodig hebben. Ze gebruiken het niet en zien het niet in hun dagelijkse werk.

Maar hoe moeilijk is het werkelijk om te begrijpen dat de beste ontwikkelingsresultaten alleen tot stand kunnen komen in de beste werkomgevingen?

Dus hier zijn de voordelen:

  1. De ontwikkelaar heeft de zekerheid dat niemand anders de omgeving waar ze momenteel aan werken zal veranderen. Alle componenten zijn speciaal voor deze taak en ontwikkelingsactiviteit nieuw gemaakt.
  2. De ontwikkelomgeving is een exacte kopie van de productieomgeving. Dit betekent dat een nauwkeurige simulatie van het gedrag van codewijzigingen mogelijk is
  3. Het workforce zal zich altijd direct binnen het cloudaccount ontwikkelen, omdat het geen zin meer heeft om dit lokaal te doen.
  4. Ervan uitgaande dat u DevOps-pijplijnen hebt gebouwd voor het maken en bijwerken van omgevingen, kunt u deze integreren met Jira- of ADO-tools voor verhalen- en ticketbeheer en de ontwikkelomgeving creëren of beëindigen, samen met de voortgang en afsluiting van verhalen. Hierdoor krijg je voor elk verhaal een aparte ontwikkelomgeving. Of zelfs een taak in het verhaal, wat echt geweldig is om terug te komen.
  5. Telkens wanneer de ontwikkelaar een wijziging doorvoert in de coderepository, zal de pijplijn de omgeving bijwerken met de nieuwste repositorycode. Dit betekent automatisering van de implementatie bij het bouwen van nieuwe code en snellere unit-testprocessen.
  6. Regelmatig onderhoud van ontwikkelomgevingen is niet echt nodig. Elke omgeving bestaat slechts voor een bepaalde korte tijd. Het wordt altijd gemaakt op foundation van de nieuwste standing van de repositorycode en de nieuwste gegevensmomentopname. Het onderhoudsprobleem misplaced zich in dit geval vanzelf op.
Geautomatiseerde Env-update

Wat zijn de nadelen?

Ja, er zijn enkele kanttekeningen waar u rekening mee moet houden. Ik zou ze niet expliciet nadelen noemen. Als u echter geen redelijke aandacht besteedt aan de onderstaande zaken, is het zeer waarschijnlijk dat deze in de loop van de tijd kunnen uitgroeien tot uw redenen voor het herstructureren van de infrastructuur.

#1. Pas op voor AWS-limieten

Hier is het ding. Als je voor elke persoon en activiteit een aparte omgevingsstapel gaat maken, dan ga je veel AWS-objecten maken.

Denk aan S3-buckets, beleid, rollen, gebruikers, databases, VPC’s, enzovoort.

Dit is een should voor u om te overzien en te controleren. Als de omgevingen internet zijn gemaakt en ontwikkelaars er steeds meer van zullen toevoegen zonder de oude of de omgevingen die verband houden met reeds voltooide verhalen op de juiste manier te verwijderen, zul je vroeg of laat problemen tegenkomen bij het bereiken van verschillende AWS-limieten.

AWS-limiet

Sommigen van hen zijn gemakkelijk te vergroten. Voor andere kunt u een verhoging aanvragen by way of AWS-ondersteuning. En dan zijn er nog enkele harde limieten waar je niets meer aan kunt doen als je ze eenmaal hebt bereikt.

Dit wordt een spel over het controleren van het totale aantal gebruikte AWS-objecten per objecttype. Het gaat erom ervoor te zorgen dat je niet voortdurend op het randje danst. Je wilt niet het grootste deel van de tijd in het bovenste gedeelte van de limieten zitten. Dat zou in feite betekenen dat u vóór elke nieuwe omgevingscreatie eerst een aantal reinigingsprocessen moet uitvoeren, handmatig of automatisch.

Hoe het ook zij, dit zal alleen maar resulteren in een vertraging van de ontwikkelingsactiviteiten in het algemeen. Het ontwikkelingsteam zal voortdurend bezig zijn met het oplossen van bestaande omgevingen voordat er een nieuwe wordt gecreëerd.

In plaats daarvan is het echt van cruciaal belang om alle limieten proactief onder controle te houden door fixed op de achtergrond te blijven schoonmaken. Idealiter op een geautomatiseerde manier, zodat een ontwikkelaar de volgende keer dat hij een frisse nieuwe omgeving nodig heeft, deze meteen en zonder verdere vertragingen creëert.

#2. Houd de uitvoeringstijd van de DevOps-pijplijn laag

Het klinkt geweldig om te zeggen dat elke nieuwe ontwikkelomgeving automatisch wordt gemaakt zodra je aan een verhaal begint te werken.

Het klinkt vreselijk als dit in werkelijkheid betekent dat de ontwikkelaar een paar uur op zo’n omgeving zal wachten. En dan niet alleen voor de creatie, maar voor elke daaropvolgende replace van de omgeving (direct na elke repository commit).

devops-pijplijn

Zet het in een samenvattende formule en kijk hoeveel inactieve tijd een dergelijke situatie zou veroorzaken. Het is niet echt mogelijk voor een ontwikkelaar om elke keer naar “iets anders” te springen als hij moet wachten tot de omgeving gereed is.

Dat zou hetzelfde zijn als verwachten dat u boodschappen gaat doen terwijl u bij de dokter wacht op uw geplande controles. Het gaat gewoon niet gebeuren. Je zit daar en wacht, need het kan elke volgende minuut komen.

#3. Replace de masterdataset regelmatig

Elke nieuwe omgevingscreatie moet een verwijzingsbrongegevensset hebben. Dit dient om de gegevens naar de zojuist gemaakte omgevingsstapel te kopiëren. De dataset moet regelmatig worden bijgewerkt (in principe na elke productierelease). Dit zorgt ervoor dat de omgeving wordt gecreëerd met de nieuwste datasetstructuur.

master-dataset

Het hoeft geen volledige database-snapshot uit de productie te bevatten, hoewel dat meestal de eenvoudigste manier is om dit te doen. Het datamodel moet echter altijd up-to-date zijn, zodat elke nieuwe ontwikkelingsactiviteit vanuit het juiste startpunt begint.

#4. Leer uw workforce “milieuverantwoordelijk” te zijn

Milieuvriendelijk zijn is nu een belangrijk onderwerp en verwachting van alle grote bedrijven. Soortgelijke verwachtingen gelden ook voor het ontwikkelingsteam.

milieuvriendelijk computergebruik

Als een ontwikkelaar meer omgevingen parallel nodig heeft omdat dit de effectiviteit aanzienlijk zal vergroten, dan is dat zo. Maar als de ontwikkelaar daarentegen meerdere omgevingen parallel open houdt, alleen maar omdat hij lui is om ze te sluiten, dan is dat iets dat zo snel mogelijk moet genezen.

Het voorrecht hebben om aan een privé-sandbox te werken, gaat gepaard met een passend verantwoordelijkheidsniveau. Wij verwachten niets minder dan een verantwoord en solidair gebruik van dergelijke voordelen.

Voorbeeld opstelling

Real-voorbeeld-infrastructuur

Nu we het allemaal samenvatten, is dit wat u kunt verwachten van zo’n serverloze opstelling met meerdere omgevingen.

  • U kunt de DevOps-pijplijn gebruiken om het maken, bijwerken en beëindigen van nieuwe omgevingen te automatiseren.
  • Vervolgens zal de ontwikkelaar aan de ontwikkelomgeving werken en deze bijwerken naarmate hij vordert in de ontwikkeling.
  • Zodra de ontwikkelaar klaar is met codewijzigingen en het testen van eenheden, voltooit u de activiteit in deze omgeving door de code samen te voegen met de hoofdrepositoryvertakking.
  • Omdat veel ontwikkelaars dit tegelijkertijd kunnen doen, zijn activiteiten voor het samenvoegen van code nodig om de overdracht van alle wijzigingen van de ontwikkelomgevingen naar de enige plaats van true – de grasp department – te garanderen.
  • Werk de centrale testomgeving bij met de standing van deze hoofdvertakkingsrepository, zodat de systeemtestactiviteiten kunnen worden uitgevoerd by way of de samengevoegde code van alle ontwikkelaars.
  • Gebruik een speciale Bug Repair Surroundings om eventuele lopende problemen op te lossen. Deze omgeving kan worden gemaakt met behulp van dezelfde DevOps-pijplijnen die al aanwezig zijn (behandel deze gewoon als een andere tijdelijke ontwikkelomgeving).
  • Ga ten slotte verder met QA-testen en productievrijgave.

Zoals u kunt zien, kunt u, door dezelfde DevOps-pijplijn in verschillende stadia van de architectuur te hergebruiken, snel een flexibel serverloos platform bouwen met zoveel standalone ontwikkel- of testomgevingen als nodig is. Het beste van alles is dat alle voordelen geen kosten met zich meebrengen.

Mogelijk bent u ook geïnteresseerd in deze serverloze computerplatforms om uw code uit te voeren.

Leave a Comment

porno izle altyazılı porno porno