I en värld av mjukvaruutveckling är kodgranskning och godkännande viktiga processer för att säkerställa kvaliteten, säkerheten och funktionaliteten hos den mjukvara som utvecklas. Men chefer med uppgift att övervaka dessa kritiska processer står ofta inför många utmaningar, såsom följande:
- Brist på teknisk expertis – Chefer kanske inte har en djupgående teknisk förståelse för det programmeringsspråk som används eller kanske inte har varit involverad i programvaruutveckling under en längre period. Detta resulterar i en kunskapslucka som kan göra det svårt för dem att korrekt bedöma effekten och sundheten av de föreslagna kodändringarna.
- Tidsbegränsningar – Kodgranskning och godkännande kan vara en tidskrävande process, särskilt i större eller mer komplexa projekt. Chefer måste balansera mellan granskningens noggrannhet kontra pressen att möta projektets tidslinjer.
- Volym av ändringsförfrågningar – Att hantera en stor mängd förändringsförfrågningar är en vanlig utmaning för chefer, särskilt om de övervakar flera team och projekt. I likhet med utmaningen med tidsbrist måste chefer kunna hantera dessa förfrågningar effektivt för att inte hålla tillbaka projektframsteg.
- Manuell ansträngning – Kodgranskning kräver manuell insats av cheferna och bristen på automatisering kan göra det svårt att skala processen.
- Dokumentation – Korrekt dokumentation av processen för granskning och godkännande av koden är viktig för transparens och ansvarsskyldighet.
Med ökningen av generativ artificiell intelligens (AI), chefer kan nu utnyttja denna transformativa teknologi och integrera den med AWS-sviten av distributionsverktyg och tjänster för att effektivisera gransknings- och godkännandeprocessen på ett sätt som tidigare inte varit möjligt. I det här inlägget utforskar vi en lösning som erbjuder ett integrerat end-to-end-implementeringsarbetsflöde som inkluderar automatiserad förändringsanalys och sammanfattning tillsammans med godkännande arbetsflödesfunktioner. Vi använder Amazonas berggrund, en helt hanterad tjänst som gör grundmodeller (FM) från ledande AI-startups och Amazon tillgängliga via ett API, så att du kan välja från ett brett utbud av FM:er för att hitta den modell som är bäst lämpad för ditt användningsfall. Med Amazon Bedrock serverlösa upplevelse kan du komma igång snabbt, privatanpassa FMs med din egen data och integrera och distribuera dem i dina applikationer med hjälp av AWS-verktyg utan att behöva hantera någon infrastruktur.
Lösningsöversikt
Följande diagram illustrerar lösningsarkitekturen.
Arbetsflödet består av följande steg:
- En utvecklare driver nya kodändringar till sitt kodlager (som t.ex AWS CodeCommit), som automatiskt utlöser starten av en AWS CodePipeline spridning.
- Applikationskoden går igenom en kodbyggande process, utför sårbarhetssökningar och utför enhetstester med hjälp av dina föredragna verktyg.
- AWS CodeBuild hämtar förvaret och utför ett git show-kommando för att extrahera kodskillnaderna mellan den aktuella commit-versionen och den tidigare commit-versionen. Detta ger en rad för rad utdata som indikerar kodändringarna som gjorts i den här utgåvan.
- CodeBuild sparar utdata till en Amazon DynamoDB tabell med ytterligare referensinformation:
- CodePipeline kör ID
- AWS-regionen
- CodePipeline namn
- CodeBuild byggnummer
- Datum och tid
- status
- Amazon DynamoDB-strömmar fångar dataändringarna gjort till bordet.
- An AWS Lambda funktionen triggas av DynamoDB-strömmen för att bearbeta den registrerade posten.
- Funktionen åberopar den antropiska Claude v2-modellen på Amazon Bedrock via Amazon Bedrock InvokeModel API ring upp. Kodskillnaderna, tillsammans med en prompt, tillhandahålls som input till modellen för analys, och en sammanfattning av kodändringar returneras som utdata.
- Utdata från modellen sparas tillbaka till samma DynamoDB-tabell.
- Chefen meddelas via Amazons enkla e -posttjänst (Amazon SES) av sammanfattningen av kodändringar och att deras godkännande krävs för implementeringen.
- Chefen granskar e-postmeddelandet och ger sitt beslut (antingen godkänna eller avvisa) tillsammans med eventuella granskningskommentarer via CodePipeline-konsolen.
- Godkännandebeslutet och granskningskommentarerna fångas upp av Amazon EventBridge, som utlöser en Lambda-funktion för att spara dem tillbaka till DynamoDB.
- Om den godkänns, distribuerar pipelinen applikationskoden med hjälp av dina föredragna verktyg. Om det avvisas avslutas arbetsflödet och distributionen fortsätter inte.
I följande avsnitt distribuerar du lösningen och verifierar arbetsflödet från början till slut.
Förutsättningar
För att följa instruktionerna i den här lösningen behöver du följande förutsättningar:
Distribuera lösningen
Så här distribuerar du lösningen:
- Välja Starta stack för att starta en CloudFormation-stack i
us-east-1
: - För E-postadress, ange en e-postadress som du har åtkomst till. Sammanfattningen av kodändringar kommer att skickas till denna e-postadress.
- För modelId, lämna som standard anthropic.claude-v2, som är den antropiska Claude v2-modellen.
Det tar cirka fyra minuter att distribuera mallen.
- När du får ett e-postmeddelande från Amazon SES för att verifiera din e-postadress, välj länken för att auktorisera din e-postadress.
- Du kommer att få ett e-postmeddelande med titeln "Sammanfattning av ändringar" för den första commit av exempelförrådet i CodeCommit.
- På AWS CloudFormation-konsolen navigerar du till Utgångarna fliken i den utplacerade stacken.
- Kopiera värdet på RepoCloneURL. Du behöver detta för att komma åt exempelkodförrådet.
Testa lösningen
Du kan testa arbetsflödet från början genom att ta rollen som utvecklare och driva några kodändringar. En uppsättning exempelkoder har förberetts åt dig i CodeCommit. Till komma åt CodeCommit-förrådet, ange följande kommandon på din IDE:
Du hittar följande katalogstruktur för en AWS Cloud Development Kit (AWS CDK) applikation som skapar en lambdafunktion för att utföra en bubbelsortering på en sträng med heltal. Lambdafunktionen är tillgänglig via en allmänt tillgänglig URL.
Du gör tre ändringar i applikationskoderna.
- För att förbättra funktionen för att stödja både snabbsorteringsalgoritm och bubbelsorteringsalgoritm, ta in en parameter för att tillåta val av algoritm som ska användas, och returnera både den använda algoritmen och den sorterade matrisen i utdata, ersätt hela innehållet i
lambda/index.py
med följande kod:
- För att minska tidsgränsen för funktionen från 10 minuter till 5 sekunder (eftersom vi inte förväntar oss att funktionen ska köras längre än några sekunder), uppdatera rad 47 i
my_sample_project/my_sample_project_stack.py
enligt följande:
- För att begränsa anropet av funktionen med IAM för ökad säkerhet, uppdatera rad 56 in
my_sample_project/my_sample_project_stack.py
enligt följande:
- Tryck på kodändringarna genom att ange följande kommandon:
Detta startar CodePipeline-distributionsarbetsflödet från steg 1–9 som beskrivs i lösningsöversikten. När vi anropade Amazon Bedrock-modellen gav vi följande uppmaning:
- SEO-drivet innehåll och PR-distribution. Bli förstärkt idag.
- PlatoData.Network Vertical Generative Ai. Styrka dig själv. Tillgång här.
- PlatoAiStream. Web3 Intelligence. Kunskap förstärkt. Tillgång här.
- Platoesg. Kol, CleanTech, Energi, Miljö, Sol, Avfallshantering. Tillgång här.
- PlatoHealth. Biotech och kliniska prövningar Intelligence. Tillgång här.
- Källa: https://aws.amazon.com/blogs/machine-learning/enhance-code-review-and-approval-efficiency-with-generative-ai-using-amazon-bedrock/
- : har
- :är
- :inte
- $UPP
- 1
- 10
- 100
- 11
- 17
- 200
- 27
- 58
- 7
- 8
- 9
- a
- Able
- Om Oss
- accelerera
- tillgång
- tillgänglig
- ansvar
- exakt
- Uppnå
- faktiskt
- lagt till
- Dessutom
- Annat
- adress
- Lägger
- Fördel
- AI
- algoritm
- algoritmer
- tillåter
- längs
- amason
- Amazon Web Services
- an
- analyser
- analys
- analysera
- och
- Antropisk
- vilken som helst
- api
- app
- Ansökan
- tillämpningar
- godkännande
- godkänna
- godkänd
- arkitektur
- ÄR
- runt
- array
- konstgjord
- AS
- bedöma
- bistå
- Assistent
- attribut
- augmented
- authenticated
- Autentisering
- godkänna
- Automatiserad
- automatiskt
- Automation
- tillgänglig
- AWS
- AWS molnformation
- tillbaka
- Balansera
- baserat
- BE
- därför att
- varit
- Där vi får lov att vara utan att konstant prestera,
- BÄST
- mellan
- kropp
- båda
- föra
- bubbla
- SLUTRESULTAT
- Byggnad
- by
- Ring
- KAN
- Kan få
- fångas
- Vid
- CD
- utmanar
- utmaningar
- byta
- ändrats
- Förändringar
- Välja
- rena
- cloud
- koda
- Kodgranskning
- koder
- kommentarer
- förbinda
- Gemensam
- fullborda
- komplex
- koncis
- Genomför
- beteenden
- Konsekvenser
- överväganden
- består
- Konsol
- innehåll
- sammanhang
- skapas
- skapar
- kritisk
- Aktuella
- skräddarsy
- datum
- dotter
- som handlar om
- Beslutet
- Standard
- definierade
- distribuera
- utplacerade
- utplacera
- utplacering
- vecklas ut
- Designa
- önskas
- detailing
- Bestämma
- utvecklade
- Utvecklare
- Utveckling
- Diagrammet
- skillnader
- olika
- svårt
- katalog
- dokumentation
- gör
- inte
- varaktighet
- lätta
- effektivitet
- effektivt
- ansträngning
- antingen
- annars
- änden
- början till slut
- slutar
- Teknik
- förbättra
- säkerställa
- ange
- in
- Hela
- Miljö
- speciellt
- händelse
- exempel
- Utom
- förvänta
- erfarenhet
- experiment
- utforska
- utforskar
- förlängas
- extrahera
- Ansikte
- inför
- familj
- få
- finansiella
- Finansiella institut
- hitta
- Flexibilitet
- följer
- efter
- följer
- För
- fundament
- Fri
- från
- fullständigt
- fungera
- funktionella
- funktionalitet
- ytterligare
- spalt
- genereras
- generativ
- Generativ AI
- skaffa sig
- få
- gå
- Go
- Går
- större
- vägleda
- hantera
- sele
- Har
- har
- he
- Hög
- höggradigt
- hans
- hålla
- Hur ser din drömresa ut
- Men
- html
- http
- HTTPS
- humant
- i
- ID
- if
- illustrerar
- Inverkan
- genomförande
- genomföra
- implikationer
- med Esport
- förbättra
- in
- djupgående
- inkorporerar
- index
- pekar på
- informationen
- Infrastruktur
- inledande
- ingång
- institutioner
- instruktioner
- integrera
- integrerade
- integrerar
- in
- Introducerar
- anropar
- involverade
- IT
- json
- Vet
- kunskap
- Brist
- språk
- större
- lansera
- ledande
- Lämna
- mindre
- Låt
- linje
- LINK
- Lista
- längre
- gjord
- Huvudsida
- större
- göra
- GÖR
- hantera
- förvaltade
- chef
- chefer
- sätt
- manuell
- Maj..
- menas
- Möt
- metadata
- kanske
- minuter
- modell
- modeller
- modifieringar
- mer
- mest
- multipel
- Navigera
- Behöver
- Nya
- Nästa
- Nej
- Ingen
- nu
- nummer
- talrik
- of
- Erbjudanden
- Ofta
- on
- endast
- or
- Övriga
- annat
- ut
- skisse
- produktion
- utanför
- övergripande
- övervaka
- Översikt
- egen
- parameter
- väntan
- Utföra
- utför
- perioden
- rörledning
- pivot
- plato
- Platon Data Intelligence
- PlatonData
- möjlig
- Inlägg
- potentiell
- kraft
- föredragen
- beredd
- förutsättningar
- tryck
- föregående
- tidigare
- Fortsätt
- process
- processer
- producera
- producerar
- Profil
- Programmering
- Framsteg
- projektet
- projekt
- prompter
- rätt
- föreslagen
- ge
- förutsatt
- ger
- publicly
- Syftet
- skjuter
- Tryckande
- kvalitet
- fråga
- Snabbt
- snabbt
- område
- motta
- post
- minska
- Minskad
- minskar
- referens
- Avvisade..
- frigöra
- ersätta
- Repository
- förfrågningar
- Obligatorisk
- Krav
- Kräver
- Resurser
- respons
- begränsa
- Resultat
- avkastning
- återgår
- översyn
- Omdömen
- Rise
- Roll
- Körning
- s
- Samma
- prov
- Save
- sparade
- skalbar
- Skala
- skannar
- sekunder
- sektioner
- säkra
- säkerhet
- Val
- senior
- skickas
- Server
- service
- Tjänster
- in
- inställning
- skall
- show
- liknande
- Enkelt
- Singapore
- So
- Mjukvara
- mjukvaruutveckling
- mjukvaruutveckling
- lösning
- Lösningar
- några
- Källa
- specificerade
- fart
- spends
- stapel
- starta
- igång
- startar
- Startups
- Steg
- Steg
- ström
- effektivisera
- Sträng
- struktur
- sådana
- svit
- lämpad
- SAMMANFATTNING
- stödja
- bord
- Ta
- tar
- lag
- Teknisk
- Teknologi
- mall
- testa
- tester
- än
- den där
- Smakämnen
- världen
- deras
- Dem
- Där.
- Dessa
- de
- detta
- de
- tre
- Genom
- stramar
- tid
- tidskrävande
- tidslinjer
- betitlad
- till
- tillsammans
- verktyg
- verktyg
- transformativ
- Öppenhet
- triggas
- prova
- två
- typisk
- förståelse
- enhet
- Uppdatering
- uppdaterad
- URL
- us
- användning
- användningsfall
- Begagnade
- användare
- användningar
- med hjälp av
- v1
- värde
- olika
- verifiera
- version
- via
- volym
- vs
- sårbarhet
- var
- we
- webb
- webbservice
- VÄL
- były
- när
- som
- bred
- Brett utbud
- kommer
- med
- inom
- utan
- Arbete
- arbetsflöde
- arbetssätt
- fungerar
- världen
- X
- jaml
- Om er
- Din
- zephyrnet