Pola dan implementasi untuk transformasi cloud perbankan

Azure Cosmos DB
Azure Event Hubs
Azure Functions
Azure Kubernetes Service (AKS)
Azure Pipelines

Artikel ini membahas pola dan implementasi yang digunakan tim insinyur perangkat lunak komersial (CSE) saat mereka membuat Transformasi cloud sistem perbankan di Azure.

Sistem

Arsitektur saga

Saga Berbasis Orkestrasi pada Arsitektur Tanpa Server

Unduh file Visio arsitektur ini.

Aliran data

Contoso Bank memiliki penerapan lokal dari saga berbasis orkestrasi. Dalam penerapannya, orkestrator adalah mesin keadaan terbatas (FSM). Tim CSE mengidentifikasi tantangan berikut dalam desain arsitektur:

  • Overhead penerapan dan kompleksitas pada orkestra stateful untuk ditangani dengan manajemen status, waktu tunggu, dan restart dalam skenario kegagalan.

  • Mekanisme observabilitas untuk melacak status alur kerja saga per permintaan transaksi.

Solusi yang diusulkan di bawah ini adalah implementasi pola saga melalui pendekatan orkestrasi menggunakan arsitektur tanpa server di Azure. Ini mengatasi tantangan dengan menggunakan:

Untuk informasi selengkapnya, lihat Pola: Saga di Microservices.io.

Pola saga

Saga adalah pola yang cocok untuk pengelolaan transaksi terdistribusi, yang umumnya diterapkan pada layanan keuangan. Skenario baru telah muncul di mana operasi didistribusikan di seluruh aplikasi dan database. Dalam skenario baru, pelanggan akan membutuhkan arsitektur dan desain implementasi baru untuk memastikan konsistensi data pada transaksi keuangan.

Pendekatan properti atomisitas, konsistensi, isolasi, dan daya tahan (ACID) tradisional tidak lagi sesuai. Itu karena data operasi sekarang terbentang ke dalam database yang terisolasi. Menggunakan pola saga mengatasi tantangan ini dengan mengoordinasikan alur kerja melalui urutan transaksi lokal yang didorong oleh pesan untuk memastikan konsistensi data.

Arsitektur KEDA

Penskalaan Otomatis Prosesor EFT dengan pemicu topik KEDA Kafka

Unduh file Visio arsitektur ini.

Untuk informasi selengkapnya tentang penskala KEDA, lihat dokumen KEDA berikut:

  • Pemicu Azure Event Hubs: Kompatibilitas untuk membaca URI penyimpanan Azure blob untuk aplikasi Java. Ini menggunakan Event Processor Host SDK, memungkinkan kemampuan untuk menskalakan konsumen Java yang membaca pesan protokol antrean pesan tingkat lanjut (AMQP) dari Pusat Aktivitas. Sebelumnya penskala Pusat Aktivitas hanya bekerja dengan Azure Functions.

  • Pemicu topik Apache Kafka: Dukungan untuk autentikasi SASL_SSL Plain, memungkinkan kemampuan untuk menskalakan konsumen Java yang membaca pesan protokol Kafka dari Event Hubs.

Alur kerja

  1. Tim CSE menyebarkan aplikasi pada kluster Azure Kubernetes Service (AKS). Solusi yang diperlukan untuk peluasan skala aplikasi secara otomatis berdasarkan jumlah pesan yang masuk. Tim CSE menggunakan penskala Kafka untuk mendeteksi apakah solusi harus mengaktifkan atau menonaktifkan penyebaran aplikasi. Penskala Kafka juga memasukkan metrik khusus untuk sumber peristiwa tertentu. Sumber kejadian dalam contoh ini adalah hub peristiwa Azure.

  2. Ketika jumlah pesan di hub peristiwa Azure melebihi ambang batas, KEDA memicu pod untuk memperluas skala, meningkatkan jumlah pesan yang diproses oleh aplikasi. Penurunan pod secara otomatis terjadi ketika jumlah pesan dalam sumber peristiwa turun di bawah nilai ambang batas.

  3. Tim CSE menggunakan pemicu topik Apache Kafka. Ini memberikan solusi kemampuan untuk menskalakan layanan Prosesor EFT jika proses melebihi jumlah maksimum pesan yang dikonsumsi dalam suatu interval.

KEDA dengan dukungan Java

Kubernetes Event-driven Autoscaler (KEDA) menentukan bagaimana solusi harus menskalakan kontainer apa pun di dalam Kubernetes. Keputusan didasarkan pada jumlah peristiwa yang perlu diproses. KEDA, yang memiliki berbagai jenis penskala, mendukung beberapa jenis beban kerja, mendukung Azure Functions, dan tidak mengenal vendor. Buka Penskalaan otomatis aplikasi Java dengan KEDA menggunakan Azure Event Hubs untuk menjelajahi contoh yang berfungsi.

Memuat arsitektur pengujian

Load Testing Pipeline dengan JMeter dan Azure Load Testing

Unduh file Visio arsitektur ini.

Solusi ini menggunakan Azure Load Testing dengan skrip JMeter (JMX). Azure Load Testing adalah layanan pengujian beban terkelola penuh yang memungkinkan Anda menghasilkan beban skala tinggi. Layanan ini mensimulasikan lalu lintas untuk aplikasi Anda, terlepas dari di mana mereka dihosting dan dapat menggunakan skrip JMeter yang ada.

Alur kerja

Azure Load Testing memungkinkan Anda membuat pengujian beban secara manual menggunakan portal Azure atau Azure CLI. Atau, Anda dapat mengonfigurasi alur CI/CD untuk diintegrasikan dengan Azure Load Testing. Melakukannya memungkinkan Anda mengotomatiskan uji beban untuk terus memvalidasi performa dan stabilitas aplikasi Anda sebagai bagian dari alur kerja CI/CD Anda.

  1. Pahami cara kerja Azure Load Testing dengan membuat dan menjalankan pengujian beban.
  2. Gunakan skrip JMeter baru atau yang sudah ada dan konfigurasikan alur kerja CI/CD Anda untuk menjalankan pengujian beban.

Detail skenario

Skenario ini membantu Anda lebih memahami pola dan implementasi gambaran besar di industri perbankan, ketika pindah ke cloud.

Langkah berikutnya

Pelajari selengkapnya tentang teknologi komponen:

Jelajahi arsitektur terkait: