Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Bangun arsitektur yang digabungkan secara longgar dengan layanan mikro menggunakan DevOps praktik dan AWS Cloud9
Alexandre Nardi, Amazon Web Services
Ringkasan
Pemberitahuan: AWS Cloud9 tidak lagi tersedia untuk pelanggan baru. Pelanggan yang sudah ada AWS Cloud9 dapat terus menggunakan layanan seperti biasa. Pelajari selengkapnya
Pemberitahuan: AWS CodeCommit tidak lagi tersedia untuk pelanggan baru. Pelanggan yang sudah ada AWS CodeCommit dapat terus menggunakan layanan seperti biasa. Pelajari selengkapnya
Pola ini menunjukkan cara mengembangkan aplikasi web khas dalam arsitektur tanpa server, untuk pengembang dan pemimpin pengembangan yang mulai menguji DevOps praktik di Amazon Web Services (AWS). Ini membangun aplikasi sampel yang menciptakan etalase dan backend untuk browsing dan membeli buku, dan menyediakan layanan mikro yang dapat dikembangkan secara independen. Pola ini menggunakan AWS Cloud9 sebagai lingkungan pengembangan, database Amazon DynamoDB sebagai penyimpanan data, dan layanan AWS seperti AWS dan AWS untuk integrasi berkelanjutan CodePipeline dan fungsionalitas penerapan berkelanjutan ( CodeBuild CI/CD).
Pola memandu Anda melalui kegiatan pengembangan berikut:
Membuat lingkungan pengembangan AWS Cloud9 standar
Menggunakan CloudFormation templat AWS untuk membuat aplikasi web dan layanan mikro untuk buku
Menggunakan AWS Cloud9 untuk memodifikasi perubahan front-end, melakukan perubahan, dan menguji
Membuat dan menguji CI/CD pipa ke layanan mikro
Mengotomatiskan pengujian unit
Kode untuk pola ini disediakan di GitHub, di repositori AWS DevOps End-to-End Workshop
Prasyarat dan batasan
Prasyarat
Akun AWS yang aktif
File dari AWS DevOps End-to-End Workshop
diunduh ke komputer Anda
penting
Membangun aplikasi demo ini di akun AWS Anda membuat dan menggunakan sumber daya AWS. Anda bertanggung jawab atas biaya layanan AWS dan sumber daya yang digunakan untuk membuat dan menjalankan aplikasi. Setelah Anda menyelesaikan pekerjaan Anda, pastikan untuk menghapus semua sumber daya untuk menghindari biaya yang sedang berlangsung. Untuk petunjuk pembersihan, lihat bagian Epik.
Batasan
Panduan ini dimaksudkan untuk tujuan demonstrasi dan pengembangan saja. Untuk menggunakannya di lingkungan produksi, lihat Praktik terbaik keamanan dalam dokumentasi AWS Identity and Access Management (IAM), dan buat perubahan yang diperlukan pada peran IAM, Amazon DynamoDB, dan layanan lain yang digunakan. Aplikasi web berasal dari AWS Bookstore Demo App
Arsitektur
Arsitektur aplikasi toko buku diilustrasikan di bagian Arsitektur
Dari perspektif penerapan, Aplikasi Demo Toko Buku menggunakan satu CloudFormation templat untuk menyebarkan semua layanan dan objek dalam satu tumpukan. Pola ini membuat beberapa perubahan untuk menunjukkan bagaimana pengembang atau tim tertentu dapat bekerja dalam produk tertentu (Buku), dan memperbaruinya secara independen dari aplikasi lainnya. Untuk alasan ini, kode untuk pola ini memisahkan fungsi AWS Lambda dan objek terkait untuk layanan mikro Buku menjadi templat CloudFormation kedua, yang membuat tumpukan Buku. Itu memungkinkan untuk melihat layanan mikro diperbarui dengan menggunakan CI/CD praktik. Dalam diagram berikut, batas putus-putus mengidentifikasi layanan mikro Buku.

Alat
Alat
Kerangka Jest untuk pengujian JavaScript
Python 3.9
Kode
Kode sumber dan templat untuk pola ini tersedia di GitHub, di repositori AWS DevOps End-to-End Workshop
catatan
Bagian Epik menyediakan langkah-langkah tingkat tinggi untuk panduan ini, untuk memberi Anda informasi umum tentang prosesnya. Untuk menyelesaikan setiap langkah, lihat file README
Repositori AWS DevOps End-to-End Workshop
Praktik terbaik
Menggunakan aplikasi Toko Buku sangat mudah. Berikut adalah beberapa praktik terbaik yang direkomendasikan:
Saat Anda menginstal aplikasi, Anda dapat menggunakan nama proyek pilihan Anda atau menggunakan nama default (
demobookstore) untuk kenyamanan.Setelah aplikasi Anda aktif dan berjalan, itu adalah praktik yang baik untuk mematikan database Amazon Neptunus jika Anda ingin terus menguji untuk hari lain, karena instance database dapat mengakibatkan biaya tambahan. Namun, ketahuilah bahwa database akan dimulai secara otomatis setelah tujuh hari.
Untuk detail kode, lihat dokumentasi untuk repositori Aplikasi Demo AWS Bookstore
. Ini menggambarkan setiap layanan mikro dan tabel. Untuk praktik terbaik tambahan, lihat Beberapa tantangan jika Anda punya waktu... bagian dari file README
di repositori AWS DevOps End-to-End Workshop. Kami menyarankan Anda meninjau informasi untuk menyelami fitur-fitur tambahan untuk keamanan dan untuk mempraktikkan layanan decoupling.
Epik
| Tugas | Deskripsi | Keterampilan yang dibutuhkan |
|---|---|---|
Unduh kode sumber dari GitHub. | Kode sumber dan templat untuk pola ini tersedia di GitHub, di repositori AWS DevOps End-to-End Workshop catatanBagian Epik menyediakan langkah-langkah tingkat tinggi untuk panduan ini, untuk memberi Anda informasi umum tentang prosesnya. Untuk menyelesaikan setiap langkah, lihat file README Repositori AWS DevOps End-to-End Workshop | Pengembang aplikasi |
| Tugas | Deskripsi | Keterampilan yang dibutuhkan |
|---|---|---|
Buat fungsi front-end dan Lambda untuk aplikasi Toko Buku. |
| Developer |
Buat layanan mikro Buku. | Di CloudFormation konsol | Developer |
Uji aplikasi Anda. | Gunakan URL situs web dari DemoBookStoreStack tumpukan untuk mengakses aplikasi Toko Buku. | Developer |
| Tugas | Deskripsi | Keterampilan yang dibutuhkan |
|---|---|---|
Buat AWS Cloud9 IDE. | Di CloudFormation konsol | Pengembang, Pemimpin pengembang |
Buat CodeCommit repositori. |
| Developer |
Ubah kode di frontend dan periksa pipeline. |
| Developer |
| Tugas | Deskripsi | Keterampilan yang dibutuhkan |
|---|---|---|
Tambahkan file YAMAL untuk pembaruan build dan layanan. |
| Developer |
Buat bucket S3 untuk pipeline build. | Untuk membuat bucket S3, ikuti petunjuk di dokumentasi Amazon S3.
| Developer |
Gunakan IAM untuk membuat peran untuk CloudFormation penerapan. | Buat | Developer |
Buat pipeline baru untuk mengotomatiskan pembangunan dan penerapan layanan mikro Buku. | Developer | |
Uji layanan mikro Anda di AWS Cloud9. | Buat perubahan ListBooksfungsi dan lihat pipa berfungsi. | Developer |
Otomatiskan pengujian unit untuk fungsi ListBooks Lambda. | Di AWS Cloud9 IDE, aktifkan build untuk menjalankan pengujian unit, dan periksa hasil pengujian. Untuk instruksi, lihat file README | Developer |
| Tugas | Deskripsi | Keterampilan yang dibutuhkan |
|---|---|---|
Jadikan solusi Anda aman. | Konfigurasikan | Developer |
Hilangkan dependensi dalam template. CloudFormation | Metode untuk bertukar informasi antara | Developer |
Buat microservice Cart. | Gunakan layanan mikro Buku sebagai contoh untuk mengeluarkan fungsi yang berhubungan dengan keranjang belanja dari | Developer |
| Tugas | Deskripsi | Keterampilan yang dibutuhkan |
|---|---|---|
Hapus ember S3. | Di konsol Amazon S3
| Developer |
Hapus tumpukan. | Di CloudFormation konsol
Penghapusan bisa memakan waktu lebih dari 90 menit. Jika penghapusan gagal, hapus lagi, dan hapus juga sumber daya manual (misalnya, VPC atau antarmuka jaringan) berdasarkan pemberitahuan. | Developer |
Hapus peran IAM. | Di konsol IAM
Untuk step-by-step petunjuk, lihat dokumentasi IAM. | Developer |
Sumber daya terkait
Membuat tumpukan di CloudFormation konsol AWS ( CloudFormation dokumentasi AWS)
Membuat ember (dokumentasi Amazon S3)
Informasi tambahan
Untuk detail, step-by-step instruksi, lihat file README
Tentang pembaruan Mei 2023: Pola ini diperbarui untuk menggunakan versi Node dan Python yang lebih baru. Kami memperbarui banyak paket dalam kode sumber dan menghapus Glyphicon karena tidak lagi gratis. Kami juga menghapus semua dependensi pada repositori Aplikasi Demo AWS Bookstore