Dalam workshop ini, Anda akan membangun dan menerapkan serangkaian microservices sederhana dengan pendekatan arsitektur event-driven.
Tujuan utama dari workshop ini adalah untuk membangun fondasi untuk memperluas dan menskalakan arsitektur microservices dengan memanfaatkan komunikasi sinkron dan asinkron (synchronous and asynchronous communication) - dengan pola koreografi (coreography pattern) dan pola orkestrasi (orchestration pattern).
Isi workshop ini akan diperbarui secara berkala, dan jika Anda memiliki pertanyaan atau menemukan masalah dalam workshop ini, harap ajukan pertanyaan/masalah tersebut sebagai Issue.
Repositori ini terdiri dari 3 workshop:
Dalam workshop ini, Anda akan membangun 2 fungsi AWS Lambda. Satu fungsi AWS Lambda (sebagai Produsen) akan mengirimkan (dispatch) event, dan satu Fungsi AWS Lambda (sebagai Konsumen) akan menerima (consume) event. Selain menerima event, Konsumen juga akan menulis log ke AWS CloudWatch Logs untuk memastikan aliran prosesnya berjalan dengan baik.
Sebagai kelanjutan dari workshop sebelumnya, pada workshop kali ini Anda akan membangun sistem yang lebih kompleks yang melibatkan beberapa microservices. Anda akan mempelajari cara menggabungkan komunikasi sinkron dan asinkron karena ini adalah pola yang umum digunakan dalam membangun microservices.
Anda akan membangun HTTP API dengan Amazon API Gateway dan AWS Lambda. Di latar belakang, HTTP API akan mengirimkan events ke Amazon EventBridge untuk pemrosesan backend. Events ini akan diterima oleh 4 microservices yang diwakili oleh beberapa fungsi AWS Lambda. Komunikasi antar microservices di backend akan berjalan secara asinkron dengan menerapkan pendekatan koreografi menggunakan Amazon EventBridge.
Selain koreografi, kita juga perlu memahami pendekatan lain yang disebut orkestrasi. Di lab ini, Anda akan membuat sebuah state machine untuk mengelola orkestrasi antar microservices.
Dalam workshop ini, Anda akan membangun sistem perbankan sederhana yang memiliki 4 domain. Sistem ini bertujuan untuk melakukan penilaian dan validasi sebelum pembukaan rekening di sebuah bank.
Anda akan mempelajari cara menggunakan AWS Step Functions untuk membangun state machine untuk orkestrasi. Selain itu, Anda juga dapat menggunakan beberapa tipe status yang disediakan oleh AWS Step Functions.
Workshop ini menyambut pengembang (developer) dari semua tingkatan.
Workshop ini disusun sebagai permainan teka-teki di mana Anda perlu melengkapi satu set kode yang belum lengkap menjadi suatu kode yang lengkap. Ini adalah desain yang disengaja untuk membantu membangun pemahaman Anda tentang konsep tertentu dan membantu Anda memahami sumber daya yang diperlukan untuk mengembangkan dengan menggunakan layanan AWS.
Jika ini adalah kali pertama Anda menjalankan workshop ini, bagian ini adalah bagian penting yang perlu Anda baca sebelum melanjutkan.
Harap pastikan bahwa lingkungan pengembangan Anda memenuhi persyaratan di bawah dan sudah dikonfigurasi dengan benar sebelum memulai workshop mana pun.
Persyaratan | Informasi Lanjutan | Catatan |
---|---|---|
Akun AWS aktif | Tautan | Persyaratan wajib |
AWS CDK | Tautan | Memerlukan Node JS |
AWS CLI | Tautan | Membutuhkan akun AWS aktif. Harap konfigurasikan akun Anda seperti yang dijelaskan di halaman ini |
Python 3.8 | Tautan | Sebagian besar workshop akan menggunakan Python 3.8 |
Boto3 | Tautan | Amazon Web Services (AWS) Software Development Kit (SDK) untuk Python |
Node JS 10.30 atau versi lebih baru | Tautan | Node.js versi 13.0.0 hingga 13.6.0 are tidak kompatibel dengan AWS CDK |
Karena kita akan menggunakan AWS CDK secara ekstensif dalam workshop ini, harap konfigurasikan AWS CDK dengan benar untuk lingkungan pengembangan Anda.
Jika Anda belum melakukannya, silakan ikuti terlebih dahulu instruksi di sini.
Singkatnya, berikut ini adalah daftar prasyarat wajib yang harus Anda lakukan.
- Install AWS CLI
- Konfigurasikan AWS CLI dengan
aws configure
- Install Node JS
- Install AWS CDK dengan
npm install -g aws-cdk
- Konfigurasikan AWS CDK dengan
cdk bootstrap
Nama Lab | Tingkat | Durasi |
---|---|---|
Lab 0 - Pemeriksaan Persyaratan | Semua tingkat | 15 menit |
Lab 1 - Pengiriman dan Penerimaan Dasar | Pemula | 15 menit |
Lab 2 - Membangun Microservices Terkoreografi | Menengah | 30 menit |
Lab 3 - Mengorkestrasi Microservices | Menengah | 15 menit |
Untuk tugas yang lebih kompleks yang harus Anda selesaikan, akan ada 💡 PETUNJUK untuk memandu Anda menyelesaikannya. Seringkali, petunjuk tersebut juga akan menyertakan (beberapa) tautan untuk bacaan lebih lanjut.
Harap diingat bahwa jika Anda mengalami kebingungan dan tidak dapat melanjutkan ke langkah berikutnya, Anda selalu dapat melihat berkas referensi utama untuk melihat solusinya. Untuk akses yang mudah, 😕 Anda kebingungan? akan memandu Anda langsung ke solusinya.
Beberapa layanan AWS yang digunakan dalam workshop ini adalah sebagai berikut:
- AWS CDK
- AWS Lambda
- Amazon API Gateway
- Amazon CloudWatch
- Amazon EventBridge
- Amazon DynamoDB
- AWS Step Functions
Workshop ini menggunakan layanan AWS yang sebagian besarnya tercakup dalam Tingkat Gratis (Free Tier) - HANYA jika akun Anda berusia kurang dari 12 bulan. Untuk akun yang sudah tidak memenuhi persyaratan kelayakan tingkat gratis, workshop ini mungkin akan menimbulkan beberapa biaya. Untuk meminimalkan biaya, pastikan Anda menghapus sumber daya yang digunakan dalam workshop ini setelah Anda selesai.
Semua lab di workshop ini menggunakan metode pembersihan standar dengan AWS CDK.
- Pergi ke masing-masing lab
- Ubah direktori menjadi
cdk /
- Jalankan
cdk destroy
- Jika dalam beberapa kasus Anda gagal membersihkan sumber daya, Anda harus membuka AWS CloudFormation dan menghapus stack CloudFormation secara manual.