Dalam dunia pengembangan perangkat lunak, peninjauan dan persetujuan kode merupakan proses penting untuk memastikan kualitas, keamanan, dan fungsionalitas perangkat lunak yang sedang dikembangkan. Namun, manajer yang bertugas mengawasi proses penting ini sering kali menghadapi banyak tantangan, seperti berikut:
- Kurangnya keahlian teknis โ Manajer mungkin tidak memiliki pemahaman teknis mendalam tentang bahasa pemrograman yang digunakan atau mungkin tidak terlibat dalam rekayasa perangkat lunak untuk waktu yang lama. Hal ini mengakibatkan kesenjangan pengetahuan yang dapat menyulitkan mereka untuk menilai secara akurat dampak dan kelayakan perubahan kode yang diusulkan.
- Kendala waktu โ Peninjauan dan persetujuan kode dapat menjadi proses yang memakan waktu, terutama dalam proyek yang lebih besar atau kompleks. Manajer perlu menyeimbangkan antara ketelitian peninjauan vs. tekanan untuk memenuhi jadwal proyek.
- Volume permintaan perubahan โ Menangani permintaan perubahan dalam jumlah besar merupakan tantangan umum bagi para manajer, terutama jika mereka mengawasi banyak tim dan proyek. Mirip dengan tantangan keterbatasan waktu, manajer harus mampu menangani permintaan tersebut secara efisien agar tidak menghambat kemajuan proyek.
- Upaya manual โ Peninjauan kode memerlukan upaya manual dari para manajer, dan kurangnya otomatisasi dapat mempersulit penskalaan proses.
- Dokumentasi โ Dokumentasi yang tepat mengenai proses peninjauan dan persetujuan kode penting untuk transparansi dan akuntabilitas.
Dengan bangkitnya kecerdasan buatan generatif (AI), para manajer kini dapat memanfaatkan teknologi transformatif ini dan mengintegrasikannya dengan rangkaian alat dan layanan penerapan AWS untuk menyederhanakan proses peninjauan dan persetujuan dengan cara yang sebelumnya tidak mungkin dilakukan. Dalam postingan ini, kami mengeksplorasi solusi yang menawarkan alur kerja penerapan end-to-end terintegrasi yang menggabungkan analisis dan ringkasan perubahan otomatis bersama dengan fungsionalitas alur kerja persetujuan. Kita gunakan Batuan Dasar Amazon, layanan terkelola sepenuhnya yang membuat model dasar (FM) dari startup AI terkemuka dan Amazon tersedia melalui API, sehingga Anda dapat memilih dari beragam FM untuk menemukan model yang paling sesuai dengan kasus penggunaan Anda. Dengan pengalaman tanpa server Amazon Bedrock, Anda dapat memulai dengan cepat, menyesuaikan FM secara pribadi dengan data Anda sendiri, dan mengintegrasikan serta menerapkannya ke dalam aplikasi Anda menggunakan alat AWS tanpa harus mengelola infrastruktur apa pun.
Ikhtisar solusi
Diagram berikut menggambarkan arsitektur solusi.
Alur kerja terdiri dari langkah-langkah berikut:
- Pengembang mendorong perubahan kode baru ke repositori kode mereka (seperti Komitmen Kode AWS), yang secara otomatis memicu dimulainya sebuah Pipa Kode AWS penyebaran.
- Kode aplikasi melewati proses pembuatan kode, melakukan pemindaian kerentanan, dan melakukan pengujian unit menggunakan alat pilihan Anda.
- Pembuatan Kode AWS mengambil repositori dan menjalankan perintah git show untuk mengekstrak perbedaan kode antara versi komit saat ini dan versi komit sebelumnya. Ini menghasilkan keluaran baris demi baris yang menunjukkan perubahan kode yang dibuat dalam rilis ini.
- CodeBuild menyimpan output ke file Amazon DynamoDB tabel dengan informasi referensi tambahan:
- ID eksekusi CodePipeline
- Wilayah AWS
- Nama CodePipeline
- Nomor pembuatan CodeBuild
- Tanggal dan waktu
- Status
- Aliran Amazon DynamoDB menangkap modifikasi data dibuat ke meja.
- An AWS Lambda fungsi dipicu oleh aliran DynamoDB untuk memproses catatan yang diambil.
- Fungsi ini memanggil model Anthropic Claude v2 di Amazon Bedrock melalui Amazon Bedrock API InvokeModel panggilan. Perbedaan kode, bersama dengan prompt, diberikan sebagai masukan ke model untuk dianalisis, dan ringkasan perubahan kode dikembalikan sebagai keluaran.
- Output dari model disimpan kembali ke tabel DynamoDB yang sama.
- Manajer diberitahu melalui Layanan Email Amazon Simple (Amazon SES) tentang ringkasan perubahan kode dan persetujuannya diperlukan untuk penerapan.
- Manajer meninjau email dan memberikan keputusan mereka (menyetujui atau menolak) bersama dengan komentar ulasan apa pun melalui konsol CodePipeline.
- Keputusan persetujuan dan komentar peninjauan ditangkap oleh Jembatan Acara Amazon, yang memicu fungsi Lambda untuk menyimpannya kembali ke DynamoDB.
- Jika disetujui, alur akan menyebarkan kode aplikasi menggunakan alat pilihan Anda. Jika ditolak, alur kerja berakhir dan penerapan tidak dilanjutkan.
Di bagian berikut, Anda menyebarkan solusi dan memverifikasi alur kerja end-to-end.
Prasyarat
Untuk mengikuti petunjuk dalam solusi ini, Anda memerlukan prasyarat berikut:
Terapkan solusinya
Untuk menerapkan solusi, selesaikan langkah-langkah berikut:
- Pilih Luncurkan Stack untuk meluncurkan tumpukan CloudFormation
us-east-1
: - Untuk Alamat email, masukkan alamat email yang dapat Anda akses. Ringkasan perubahan kode akan dikirim ke alamat email ini.
- Untuk modelId, biarkan sebagai default anthropic.claude-v2, yang merupakan model Anthropic Claude v2.
Menyebarkan template akan memakan waktu sekitar 4 menit.
- Saat Anda menerima email dari Amazon SES untuk memverifikasi alamat email Anda, pilih tautan yang disediakan untuk mengotorisasi alamat email Anda.
- Anda akan menerima email berjudul โRingkasan Perubahanโ untuk penerapan awal repositori sampel ke CodeCommit.
- Di konsol AWS CloudFormation, navigasikan ke Output tab tumpukan yang dikerahkan.
- Salin nilai RepoCloneURL. Anda memerlukan ini untuk mengakses repositori kode sampel.
Uji solusinya
Anda dapat menguji alur kerja secara menyeluruh dengan mengambil peran sebagai pengembang dan mendorong beberapa perubahan kode. Satu set kode contoh telah disiapkan untuk Anda di CodeCommit. Ke mengakses repositori CodeCommit, masukkan perintah berikut pada IDE Anda:
Anda akan menemukan struktur direktori berikut untuk Kit Pengembangan AWS Cloud (AWS CDK) aplikasi yang membuat fungsi Lambda untuk melakukan pengurutan gelembung pada string bilangan bulat. Fungsi Lambda dapat diakses melalui URL yang tersedia untuk umum.
Anda membuat tiga perubahan pada kode aplikasi.
- Untuk meningkatkan fungsi guna mendukung algoritma pengurutan cepat dan pengurutan gelembung, ambil parameter yang memungkinkan pemilihan algoritma untuk digunakan, dan kembalikan algoritma yang digunakan dan array yang diurutkan dalam output, ganti seluruh konten
lambda/index.py
dengan kode berikut:
- Untuk mengurangi pengaturan batas waktu fungsi dari 10 menit menjadi 5 detik (karena kami tidak mengharapkan fungsi berjalan lebih lama dari beberapa detik), perbarui baris 47 di
my_sample_project/my_sample_project_stack.py
sebagai berikut:
- Untuk membatasi pemanggilan fungsi menggunakan IAM demi keamanan tambahan, perbarui baris 56 di
my_sample_project/my_sample_project_stack.py
sebagai berikut:
- Dorong perubahan kode dengan memasukkan perintah berikut:
Ini memulai alur kerja penerapan CodePipeline dari Langkah 1โ9 sebagaimana diuraikan dalam gambaran umum solusi. Saat menjalankan model Amazon Bedrock, kami memberikan perintah berikut:
- Konten Bertenaga SEO & Distribusi PR. Dapatkan Amplifikasi Hari Ini.
- PlatoData.Jaringan Vertikal Generatif Ai. Berdayakan Diri Anda. Akses Di Sini.
- PlatoAiStream. Intelijen Web3. Pengetahuan Diperkuat. Akses Di Sini.
- PlatoESG. Karbon, teknologi bersih, energi, Lingkungan Hidup, Tenaga surya, Penanganan limbah. Akses Di Sini.
- PlatoHealth. Kecerdasan Uji Coba Biotek dan Klinis. Akses Di Sini.
- Sumber: https://aws.amazon.com/blogs/machine-learning/enhance-code-review-and-approval-efficiency-with-generative-ai-using-amazon-bedrock/
- :memiliki
- :adalah
- :bukan
- $NAIK
- 1
- 10
- 100
- 11
- 17
- 200
- 27
- 58
- 7
- 8
- 9
- a
- Sanggup
- Tentang Kami
- mempercepat
- mengakses
- dapat diakses
- akuntabilitas
- akurat
- Mencapai
- sebenarnya
- menambahkan
- tambahan
- Tambahan
- alamat
- Menambahkan
- Keuntungan
- AI
- algoritma
- algoritma
- mengizinkan
- sepanjang
- Amazon
- Amazon Web Services
- an
- Analisis
- analisis
- menganalisa
- dan
- Antropik
- Apa pun
- api
- aplikasi
- Aplikasi
- aplikasi
- persetujuan
- menyetujui
- disetujui
- arsitektur
- ADALAH
- sekitar
- susunan
- buatan
- AS
- menilai
- membantu
- Asisten
- atribut
- ditambah
- dikonfirmasi
- Otentikasi
- mengizinkan
- Otomatis
- secara otomatis
- Otomatisasi
- tersedia
- AWS
- Formasi AWS Cloud
- kembali
- Saldo
- berdasarkan
- BE
- karena
- menjadi
- makhluk
- TERBAIK
- antara
- tubuh
- kedua
- membawa
- gelembung
- membangun
- Bangunan
- by
- panggilan
- CAN
- Bisa Dapatkan
- ditangkap
- kasus
- CD
- menantang
- tantangan
- perubahan
- berubah
- Perubahan
- Pilih
- membersihkan
- awan
- kode
- Ulasan kode
- Kode
- komentar
- melakukan
- Umum
- lengkap
- kompleks
- ringkas
- Mengadakan
- melakukan
- Konsekuensi
- pertimbangan
- terdiri
- konsul
- Konten
- konteks
- dibuat
- menciptakan
- kritis
- terbaru
- menyesuaikan
- data
- putri
- berurusan
- keputusan
- Default
- didefinisikan
- menyebarkan
- dikerahkan
- penggelaran
- penyebaran
- menyebarkan
- Mendesain
- diinginkan
- Merinci
- Menentukan
- dikembangkan
- Pengembang
- Pengembangan
- diagram
- perbedaan
- berbeda
- sulit
- direktori
- dokumentasi
- tidak
- Dont
- lamanya
- memudahkan
- efisiensi
- efisien
- usaha
- antara
- lain
- akhir
- ujung ke ujung
- berakhir
- Teknik
- mempertinggi
- memastikan
- Enter
- memasuki
- Seluruh
- Lingkungan Hidup
- terutama
- Acara
- contoh
- Kecuali
- mengharapkan
- pengalaman
- eksperimen
- menyelidiki
- mengeksplorasi
- luas
- ekstrak
- Menghadapi
- dihadapi
- keluarga
- beberapa
- keuangan
- Lembaga keuangan
- Menemukan
- keluwesan
- mengikuti
- berikut
- berikut
- Untuk
- Prinsip Dasar
- Gratis
- dari
- sepenuhnya
- fungsi
- fungsionil
- fungsi
- lebih lanjut
- celah
- dihasilkan
- generatif
- AI generatif
- mendapatkan
- mendapatkan
- pergi
- Go
- Pergi
- lebih besar
- bimbingan
- menangani
- memanfaatkan
- Memiliki
- memiliki
- he
- High
- sangat
- -nya
- memegang
- Seterpercayaapakah Olymp Trade? Kesimpulan
- Namun
- HTML
- http
- HTTPS
- manusia
- i
- ID
- if
- menggambarkan
- Dampak
- implementasi
- mengimplementasikan
- implikasi
- penting
- memperbaiki
- in
- secara mendalam
- menggabungkan
- indeks
- menunjukkan
- informasi
- Infrastruktur
- mulanya
- memasukkan
- lembaga
- instruksi
- mengintegrasikan
- terpadu
- Terintegrasi
- ke
- Memperkenalkan
- memanggil
- terlibat
- IT
- json
- Tahu
- pengetahuan
- Kekurangan
- bahasa
- lebih besar
- jalankan
- terkemuka
- Meninggalkan
- kurang
- membiarkan
- baris
- LINK
- Daftar
- lagi
- terbuat
- Utama
- utama
- membuat
- MEMBUAT
- mengelola
- berhasil
- manajer
- Manajer
- cara
- panduan
- Mungkin..
- berarti
- Pelajari
- Metadata
- mungkin
- menit
- model
- model
- Modifikasi
- lebih
- paling
- beberapa
- Arahkan
- Perlu
- New
- berikutnya
- tidak
- None
- sekarang
- nomor
- banyak sekali
- of
- Penawaran
- sering
- on
- hanya
- or
- Lainnya
- jika tidak
- di luar
- diuraikan
- keluaran
- di luar
- secara keseluruhan
- mengawasi
- ikhtisar
- sendiri
- parameter
- tertunda
- Melakukan
- melakukan
- periode
- pipa saluran
- Poros
- plato
- Kecerdasan Data Plato
- Data Plato
- mungkin
- Pos
- potensi
- kekuasaan
- disukai
- siap
- prasyarat
- tekanan
- sebelumnya
- sebelumnya
- memproses
- proses
- proses
- menghasilkan
- menghasilkan
- Profil
- Pemrograman
- Kemajuan
- proyek
- memprojeksikan
- meminta
- tepat
- diusulkan
- memberikan
- disediakan
- menyediakan
- di depan umum
- tujuan
- mendorong
- Mendorong
- kualitas
- pertanyaan
- Cepat
- segera
- jarak
- menerima
- catatan
- menurunkan
- mengurangi
- mengurangi
- referensi
- Ditolak..
- melepaskan
- menggantikan
- gudang
- permintaan
- wajib
- Persyaratan
- membutuhkan
- Sumber
- tanggapan
- membatasi
- Hasil
- kembali
- Pengembalian
- ulasan
- Review
- Naik
- Peran
- Run
- s
- sama
- mencicipi
- Save
- disimpan
- terukur
- Skala
- scan
- detik
- bagian
- aman
- keamanan
- seleksi
- senior
- mengirim
- Tanpa Server
- layanan
- Layanan
- set
- pengaturan
- harus
- Menunjukkan
- mirip
- Sederhana
- Singapura
- So
- Perangkat lunak
- pengembangan perangkat lunak
- rekayasa Perangkat Lunak
- larutan
- Solusi
- beberapa
- sumber
- ditentukan
- kecepatan
- menghabiskan
- tumpukan
- awal
- mulai
- dimulai
- Startups
- Langkah
- Tangga
- aliran
- mempersingkat
- Tali
- struktur
- seperti itu
- rangkaian
- cocok
- RINGKASAN
- mendukung
- tabel
- Mengambil
- pengambilan
- tim
- Teknis
- Teknologi
- Template
- uji
- tes
- dari
- bahwa
- Grafik
- Dunia
- mereka
- Mereka
- Sana.
- Ini
- mereka
- ini
- itu
- tiga
- Melalui
- mengencangkan
- waktu
- membuang-buang waktu
- garis waktu
- berjudul
- untuk
- bersama
- alat
- alat
- transformatif
- Transparansi
- dipicu
- mencoba
- dua
- khas
- pemahaman
- satuan
- Memperbarui
- diperbarui
- URL
- us
- menggunakan
- gunakan case
- bekas
- Pengguna
- kegunaan
- menggunakan
- v1
- nilai
- berbagai
- memeriksa
- versi
- melalui
- volume
- vs
- kerentanan
- adalah
- we
- jaringan
- layanan web
- BAIK
- adalah
- ketika
- yang
- lebar
- Rentang luas
- akan
- dengan
- dalam
- tanpa
- Kerja
- alur kerja
- kerja
- bekerja
- dunia
- X
- yaml
- Kamu
- Anda
- zephyrnet.dll