I en verden av programvareutvikling er kodegjennomgang og godkjenning viktige prosesser for å sikre kvaliteten, sikkerheten og funksjonaliteten til programvaren som utvikles. Imidlertid møter ledere som har til oppgave å føre tilsyn med disse kritiske prosessene ofte en rekke utfordringer, for eksempel følgende:
- Mangel på teknisk kompetanse – Ledere har kanskje ikke en grundig teknisk forståelse av programmeringsspråket som brukes eller har kanskje ikke vært involvert i programvareutvikling over en lengre periode. Dette resulterer i et kunnskapshull som kan gjøre det vanskelig for dem å nøyaktig vurdere virkningen og forsvarligheten av de foreslåtte kodeendringene.
- Tidsbegrensninger – Kodegjennomgang og godkjenning kan være en tidkrevende prosess, spesielt i større eller mer komplekse prosjekter. Ledere må balansere mellom grundigheten i gjennomgangen og presset for å møte prosjekttidslinjene.
- Volum av endringsforespørsler – Å håndtere et høyt volum av endringsforespørsler er en vanlig utfordring for ledere, spesielt hvis de fører tilsyn med flere team og prosjekter. I likhet med utfordringen med tidspress, må ledere være i stand til å håndtere disse forespørslene effektivt for ikke å holde tilbake prosjektfremdriften.
- Manuell innsats – Kodegjennomgang krever manuell innsats fra lederne, og mangelen på automatisering kan gjøre det vanskelig å skalere prosessen.
- Teknisk dokumentasjon – Riktig dokumentasjon av kodegjennomgangen og godkjenningsprosessen er viktig for åpenhet og ansvarlighet.
Med fremveksten av generativ kunstig intelligens (AI), ledere kan nå utnytte denne transformative teknologien og integrere den med AWS-pakken med distribusjonsverktøy og tjenester for å strømlinjeforme gjennomgangs- og godkjenningsprosessen på en måte som ikke tidligere var mulig. I dette innlegget utforsker vi en løsning som tilbyr en integrert ende-til-ende-distribusjonsarbeidsflyt som inkluderer automatisert endringsanalyse og oppsummering sammen med godkjenningsarbeidsflytfunksjonalitet. Vi bruker Amazonas grunnfjell, en fullt administrert tjeneste som gjør grunnmodeller (FM-er) fra ledende AI-startups og Amazon tilgjengelige via en API, slik at du kan velge fra et bredt spekter av FM-er for å finne modellen som passer best for ditt bruk. Med Amazon Bedrock serverløse opplevelse kan du komme raskt i gang, personlig tilpasse FM-er med dine egne data, og integrere og distribuere dem i applikasjonene dine ved hjelp av AWS-verktøy uten å måtte administrere noen infrastruktur.
Løsningsoversikt
Følgende diagram illustrerer løsningsarkitekturen.
Arbeidsflyten består av følgende trinn:
- En utvikler skyver nye kodeendringer til kodelageret sitt (som f.eks AWS CodeCommit), som automatisk utløser starten på en AWS CodePipeline utplassering.
- Applikasjonskoden går gjennom en kodebyggingsprosess, utfører sårbarhetsskanninger og utfører enhetstester med dine foretrukne verktøy.
- AWS CodeBuild henter depotet og utfører en git show-kommando for å trekke ut kodeforskjellene mellom gjeldende commit-versjon og forrige commit-versjon. Dette produserer en linje-for-linje-utgang som indikerer kodeendringene som er gjort i denne utgivelsen.
- CodeBuild lagrer utdataene til en Amazon DynamoDB tabell med ytterligere referanseinformasjon:
- CodePipeline kjøre ID
- AWS-regionen
- CodePipeline navn
- CodeBuild byggenummer
- Dato og tid
- status
- Amazon DynamoDB-strømmer fanger opp dataendringene laget til bordet.
- An AWS Lambda funksjonen utløses av DynamoDB-strømmen for å behandle posten som er tatt.
- Funksjonen påkaller Anthropic Claude v2-modellen på Amazon Bedrock via Amazon Bedrock InvokeModel API anrop. Kodeforskjellene, sammen med en prompt, gis som input til modellen for analyse, og et sammendrag av kodeendringer returneres som utdata.
- Utdataene fra modellen lagres tilbake til den samme DynamoDB-tabellen.
- Leder varsles via Enkel e -posttjeneste fra Amazon (Amazon SES) av sammendraget av kodeendringer og at godkjenning av dem kreves for distribusjonen.
- Lederen gjennomgår e-posten og gir sin avgjørelse (enten godkjenne eller avvise) sammen med eventuelle vurderingskommentarer via CodePipeline-konsollen.
- Godkjenningsvedtaket og vurderingskommentarene fanges opp av Amazon EventBridge, som utløser en Lambda-funksjon for å lagre dem tilbake til DynamoDB.
- Hvis den er godkjent, distribuerer pipelinen applikasjonskoden ved hjelp av dine foretrukne verktøy. Hvis den avvises, avsluttes arbeidsflyten og distribusjonen fortsetter ikke.
I de følgende delene distribuerer du løsningen og verifiserer ende-til-ende-arbeidsflyten.
Forutsetninger
For å følge instruksjonene i denne løsningen trenger du følgende forutsetninger:
Distribuere løsningen
Gjør følgende for å distribuere løsningen:
- Velg Start Stack for å starte en CloudFormation-stabel i
us-east-1
: - Til Epostadresse, skriv inn en e-postadresse du har tilgang til. Sammendraget av kodeendringer vil bli sendt til denne e-postadressen.
- Til modell-ID, la som standard anthropic.claude-v2, som er den antropiske Claude v2-modellen.
Det tar ca. 4 minutter å distribuere malen.
- Når du mottar en e-post fra Amazon SES for å bekrefte e-postadressen din, velger du koblingen for å godkjenne e-postadressen din.
- Du vil motta en e-post med tittelen "Summary of Changes" for den første forpliktelsen av prøvelageret til CodeCommit.
- På AWS CloudFormation-konsollen, naviger til Utganger kategorien i den utplasserte stabelen.
- Kopier verdien til RepoCloneURL. Du trenger dette for å få tilgang til prøvekodelageret.
Test løsningen
Du kan teste arbeidsflyten fra ende til annen ved å ta på deg rollen som en utvikler og presse noen kodeendringer. Et sett med eksempelkoder er utarbeidet for deg i CodeCommit. Til få tilgang til CodeCommit-depotet, skriv inn følgende kommandoer på din IDE:
Du finner følgende katalogstruktur for en AWS skyutviklingssett (AWS CDK) applikasjon som lager en Lambda-funksjon for å utføre en boblesortering på en streng med heltall. Lambda-funksjonen er tilgjengelig via en offentlig tilgjengelig URL.
Du gjør tre endringer i applikasjonskodene.
- For å forbedre funksjonen til å støtte både hurtigsortering og boblesorteringsalgoritme, ta inn en parameter for å tillate valg av algoritmen som skal brukes, og returner både algoritmen som brukes og sortert array i utdataene, erstatte hele innholdet i
lambda/index.py
med følgende kode:
- For å redusere tidsavbruddsinnstillingen for funksjonen fra 10 minutter til 5 sekunder (fordi vi ikke forventer at funksjonen skal kjøre lenger enn noen få sekunder), oppdater linje 47 i
my_sample_project/my_sample_project_stack.py
som følger:
- For å begrense påkallingen av funksjonen ved å bruke IAM for ekstra sikkerhet, oppdater linje 56 tommer
my_sample_project/my_sample_project_stack.py
som følger:
- Trykk på kodeendringene ved å skrive inn følgende kommandoer:
Dette starter arbeidsflyten for CodePipeline-distribusjon fra trinn 1–9, som beskrevet i løsningsoversikten. Da vi påkalte Amazon Bedrock-modellen, ga vi følgende spørsmål:
- SEO-drevet innhold og PR-distribusjon. Bli forsterket i dag.
- PlatoData.Network Vertical Generative Ai. Styrk deg selv. Tilgang her.
- PlatoAiStream. Web3 Intelligence. Kunnskap forsterket. Tilgang her.
- PlatoESG. Karbon, CleanTech, Energi, Miljø, Solenergi, Avfallshåndtering. Tilgang her.
- PlatoHelse. Bioteknologisk og klinisk etterretning. Tilgang her.
- kilde: https://aws.amazon.com/blogs/machine-learning/enhance-code-review-and-approval-efficiency-with-generative-ai-using-amazon-bedrock/
- : har
- :er
- :ikke
- $OPP
- 1
- 10
- 100
- 11
- 17
- 200
- 27
- 58
- 7
- 8
- 9
- a
- I stand
- Om oss
- akselerere
- adgang
- tilgjengelig
- ansvarlighet
- nøyaktig
- Oppnå
- faktisk
- la til
- tillegg
- Ytterligere
- adresse
- Legger
- Fordel
- AI
- algoritme
- algoritmer
- tillate
- langs
- Amazon
- Amazon Web Services
- an
- analyser
- analyse
- analysere
- og
- Antropisk
- noen
- api
- app
- Søknad
- søknader
- godkjenning
- godkjenne
- godkjent
- arkitektur
- ER
- rundt
- Array
- kunstig
- AS
- vurdere
- bistå
- Assistent
- attributter
- augmented
- autentisert
- Autentisering
- autorisere
- Automatisert
- automatisk
- Automatisering
- tilgjengelig
- AWS
- AWS skyformasjon
- tilbake
- Balansere
- basert
- BE
- fordi
- vært
- være
- BEST
- mellom
- kroppen
- både
- bringe
- boble
- bygge
- Bygning
- by
- ring
- CAN
- Kan få
- fanget
- saken
- CD
- utfordre
- utfordringer
- endring
- endret
- Endringer
- Velg
- ren
- Cloud
- kode
- Kode anmeldelse
- koder
- kommentarer
- forplikte
- Felles
- fullføre
- komplekse
- konsis
- Gjennomføre
- dirigerer
- Konsekvenser
- betraktninger
- består
- Konsoll
- innhold
- kontekst
- opprettet
- skaper
- kritisk
- Gjeldende
- tilpasse
- dato
- datter
- håndtering
- avgjørelse
- Misligholde
- definert
- utplassere
- utplassert
- utplasserings
- distribusjon
- Distribueres
- utforming
- ønsket
- detaljering
- Bestem
- utviklet
- Utvikler
- Utvikling
- diagram
- forskjeller
- forskjellig
- vanskelig
- katalog
- dokumentasjon
- gjør
- ikke
- varighet
- lette
- effektivitet
- effektivt
- innsats
- enten
- ellers
- emalje
- slutt
- ende til ende
- slutter
- Ingeniørarbeid
- forbedre
- sikrer
- Enter
- går inn
- Hele
- Miljø
- spesielt
- Event
- eksempel
- Unntatt
- forvente
- erfaring
- eksperimenter
- utforske
- utforsker
- utvidet
- trekke ut
- Face
- møtt
- familie
- Noen få
- finansiell
- Finansinstitusjoner
- Finn
- fleksibilitet
- følge
- etter
- følger
- Til
- Fundament
- Gratis
- fra
- fullt
- funksjon
- funksjonelle
- funksjonalitet
- videre
- mellomrom
- generert
- generative
- Generativ AI
- få
- få
- gå
- Go
- Går
- større
- veiledning
- håndtere
- seletøy
- Ha
- å ha
- he
- Høy
- svært
- hans
- hold
- Hvordan
- Men
- HTML
- http
- HTTPS
- menneskelig
- i
- ID
- if
- illustrerer
- Påvirkning
- gjennomføring
- implementere
- implikasjoner
- viktig
- forbedre
- in
- dyptgående
- inkorporerer
- indeks
- indikerer
- informasjon
- Infrastruktur
- innledende
- inngang
- institusjoner
- instruksjoner
- integrere
- integrert
- Integrerer
- inn
- Introduserer
- påkaller
- involvert
- IT
- JSON
- Vet
- kunnskap
- maling
- Språk
- større
- lansere
- ledende
- Permisjon
- mindre
- la
- linje
- LINK
- Liste
- lenger
- laget
- Hoved
- større
- gjøre
- GJØR AT
- administrer
- fikk til
- leder
- Ledere
- måte
- håndbok
- Kan..
- ment
- Møt
- metadata
- kunne
- minutter
- modell
- modeller
- modifikasjoner
- mer
- mest
- flere
- Naviger
- Trenger
- Ny
- neste
- Nei.
- none
- nå
- tall
- mange
- of
- Tilbud
- ofte
- on
- bare
- or
- Annen
- ellers
- ut
- skissert
- produksjon
- utenfor
- samlet
- overser
- oversikt
- egen
- parameter
- påvente
- Utfør
- utfører
- perioden
- rørledning
- Pivot
- plato
- Platon Data Intelligence
- PlatonData
- mulig
- Post
- potensiell
- makt
- trekkes
- forberedt
- forutsetninger
- press
- forrige
- tidligere
- fortsette
- prosess
- Prosesser
- produsere
- produserer
- Profil
- Programmering
- Progress
- prosjekt
- prosjekter
- ledetekster
- ordentlig
- foreslått
- gi
- forutsatt
- gir
- offentlig
- formål
- skyver
- Skyver
- kvalitet
- spørring
- Rask
- raskt
- område
- motta
- rekord
- redusere
- Redusert
- reduserer
- referanse
- Avvist..
- slipp
- erstatte
- Repository
- forespørsler
- påkrevd
- Krav
- Krever
- Ressurser
- svar
- begrense
- Resultater
- retur
- avkastning
- anmeldelse
- Anmeldelser
- Rise
- Rolle
- Kjør
- s
- samme
- sample
- Spar
- lagret
- skalerbar
- Skala
- skanner
- sekunder
- seksjoner
- sikre
- sikkerhet
- utvalg
- senior
- sendt
- server~~POS=TRUNC
- tjeneste
- Tjenester
- sett
- innstilling
- bør
- Vis
- lignende
- Enkelt
- Singapore
- So
- Software
- programvareutvikling
- software engineering
- løsning
- Solutions
- noen
- kilde
- spesifisert
- fart
- tilbringer
- stable
- Begynn
- startet
- starter
- startups
- Trinn
- Steps
- stream
- effektivisere
- String
- struktur
- slik
- suite
- velegnet
- SAMMENDRAG
- støtte
- bord
- Ta
- ta
- lag
- Teknisk
- Teknologi
- mal
- test
- tester
- enn
- Det
- De
- verden
- deres
- Dem
- Der.
- Disse
- de
- denne
- De
- tre
- Gjennom
- strammer
- tid
- tidkrevende
- tidslinjer
- tittelen
- til
- sammen
- verktøy
- verktøy
- transformative
- Åpenhet
- utløst
- prøve
- to
- typisk
- forståelse
- enhet
- Oppdater
- oppdatert
- URL
- us
- bruke
- bruk sak
- brukt
- Brukere
- bruker
- ved hjelp av
- v1
- verdi
- ulike
- verifisere
- versjon
- av
- volum
- vs
- sårbarhet
- var
- we
- web
- webtjenester
- VI VIL
- var
- når
- hvilken
- bred
- Bred rekkevidde
- vil
- med
- innenfor
- uten
- Arbeid
- arbeidsflyt
- arbeid
- virker
- verden
- X
- yaml
- Du
- Din
- zephyrnet