Azure'da telehealth sistemi oluşturma

Azure Database for PostgreSQL
Azure Functions
Azure Kubernetes Service (AKS)
Azure Storage
Azure Traffic Manager

Bu makalede, Azure bulut platformunu kullanarak bir telehealth sisteminin nasıl derlenmiyor olduğu açıklanmaktadır.

Mimari

Telehealth sistemine dahil edilen Azure bileşenlerine mimariye genel bakış.

Bu mimarinin bir Visio dosyasını indirin.

İş Akışı

Çözüm, aşağıdakiler de dahil olmak üzere dört sütun üzerine kurulmuştur:

  • Müşteriler
  • İletişim bileşenleri
  • API'ler ve iş mantığı
  • Depolama ve altyapı hizmetleri

Mimari diyagramın sol tarafında sağlık uzmanı ve hasta adlı iki gruptan müşteriler yer alır. Sağlık uzmanı, hastalarıyla iletişim kurmak için uygun yazılımı ve web portalı istemcilerini kullanır. Diğer taraftan hastalar, Bluetooth bağlantısı aracılığıyla tıbbi cihaza bağlı bir mobil uygulama kullanır. Bu ileri geri iletişim, arka uç hizmetleri kullanılarak sağlanır:

  • Genel kullanıma yönelik API'ler
  • Web RTC aracılığıyla görüntülü aramalar veya Signal kullanarak istemciden istemciye iletişim gibi iş akışlarından sorumlu iç mikro hizmetler. signal, sunucu kodunun istemci tarafı web uygulamalarına zaman uyumsuz bildirimler göndermesine olanak tanıyan bir Microsoft ASP.NET yazılım kitaplığıdır.

Bu hizmetlerin durumu, PostgreSQL için Azure Veritabanı gibi çeşitli Azure hizmetlerinde (diyagramın sağ tarafında) kalıcıdır. Medya dosyaları Azure depolama hesaplarına kaydedilir. Tüm hizmetlerden gelen tüm günlükler, Azure Uygulaması Analizler kullanan merkezi bir günlük çözümünde toplanır. Son olarak, Azure Notification Hub'ın yardımıyla anında iletme bildirimleri aracılığıyla istemciler arasında zaman uyumsuz iletişim sağlanabilir.

Çözüm şu şekilde ayarlandı:

  • Arka uçta çalışan bulut hizmetlerinin ölçeklenebilirlik özelliğinden yararlanın.

  • Çözümü oluşturan ekiplerin özerkliğini artırın. Her ekip işlevsel etki alanlarını denetler ve bileşenlerinin gelişimini sağlar. İşlevsel etki alanları çakışmadığından, her ekip kendi hızıyla yenilik yapabilir. Ayrıca, hizmetlerin kod temelleri bağımsız olduğundan, çözümün tamamı için CI/CD işlem hattı basitleştirilir.

  • İşlevlerin mikro hizmetler arasında dağıtılması için gereken hizmetler arası iletişim ve koordinasyon mekanizmasını oluşturun. Bu belgede açıklanan çözüm, bu görevi gerçekleştirmek için Redis için Azure Cache kullanır.

  • Merkezi izleme elde edin ve çözümün sorunlarını giderme özelliğini geliştirin.

  • Hizmetler arasındaki iletişimin güvenliğini sağlamak için yönetilen kimliklerden yararlanan gizli dizilerin, kimlik bilgilerinin, sertifikaların ve anahtarların basitleştirilmiş yönetimi.

Bileşenler

  • PostgreSQL için Azure Veritabanı, kullanıcı (hasta ve sağlık uzmanı) ve cihazla ilgili verileri depolar. Hizmet kararlı, hafif olduğundan ve satıcı kilidi olmadığından seçildi.
  • Azure Kubernetes Service , uygulama iş mantığını barındırarak özelleştirme için dağıtım kolaylığı ve esneklik sağlar. Hizmet ayrıca çözümü altında kullanılan gerçek donanımdan soyutlar.
  • Redis için Azure Cache hizmet içi veriler (paylaşılan veriler) için kullanılan geçici verileri barındırıyor. Verilerin önbellekten süresinin dolması durumunda hizmet veritabanından yeniden oluşturulabilir
  • Azure Notification Hub hastaya gelen içeriği bildirir: sohbet, görüntülü aramalar, cihaz yapılandırma ayarları.
  • Azure İşlevleri görevleri zamanlar. Örneğin, büyük kullanıcı kümesiyle geniş iletişimler, analiz koordinasyonu arka uçta (toplamalar...) çalışır.
  • Azure Uygulaması Analizler, sorun giderme amacıyla sistemden gelen sinyalleri/olayları (günlükler, mikro hizmetler, ön uç ve cihazlardan gelen günlüklerden telemetri) merkezileştirir.
  • Azure Content Delivery Network (CDN), bakım ve güncelleştirmeler (java betik dosyasının web portalına teslimi) ve portal aracılığıyla medya dosyalarını (videolar, görüntüler) teslim etmek için kullanılır. Tüm bu içerik arka planda Azure depolama hesaplarında depolanır.
  • Azure Traffic Manager , coğrafi konumlar arasında yük dengelemesi sağlar.
  • Azure SignalR , sunucu kodunun istemci tarafı web uygulamalarına zaman uyumsuz bildirimler göndermesine olanak tanır. Son kullanıcı cihazları Standart veya Gelişmiş modda yapılandırılabilir.

Alternatifler

Veritabanı tarafında, diğer tüm PaaS veritabanı hizmetleri kullanılabilir. Uygulama mantığını barındırırken, Azure Kubernetes Service yerine Azure Uygulaması Hizmeti'ni kullanmayı düşünebilirsiniz.

Senaryo ayrıntıları

Ayrıntılar, profesyonel bir sağlık kuruluşunu uzak hastalarına bağlayan gerçek bir müşteri uygulamasını temel alır. Böyle bir sistem oluşturmanın başka yolları da olsa, açıklanan çözüm hastalar ve uzaktan bakım sağlayıcıları arasındaki iletişimi sağlamanın yanı sıra hastaların taşıdığı tıbbi cihazları uzaktan ayarlama konusunda başarılı olmuştur.

İşitme engelli yaklaşık 700 milyon kişi var. Ancak bunların yalnızca %10'unun yaşamlarını iyileştirmek için işitme cihazı kullanıyor. Bazı coğrafyalarda veya durumlarda, bir hastanın gerektiğinde doğrudan yardım alması mümkün değildir. Örneğin, şunları yapan hastaları göz önünde bulundurun:

  • İşitme uzmanının ofisinde çoğaltılmayan belirli bir işitme durumunda (örneğin, parkta yürürken, bir partiye katılırken veya evdeyken) yardıma ihtiyacınız vardır.
  • Hareket sorunları yaşayın veya işitme uzmanından uzak mesafelerde ikamet edin.
  • Sınırlı sayıda işitme uzmanına sahip gelişmekte olan bir ülkede/bölgede yaşayın.

Bu zorlukların üstesinden gelmek için uzaktan işitme hizmetleri sağlayabilme becerisine sahip olmak önemlidir. Bu durumda, sağlık uzmanı uzak hastalarıyla etkileşim kurmak için sohbet veya görüntülü iletişim kullanır. İşitme güçlüğü çeken Kişiler, uzaktan oturum sırasında işitme cihazına erişim sağlamak için bir akıllı telefon kullanın. İşitme uzmanı, işitme cihazı yapılandırmasında yapılan değişiklikleri gerçek zamanlı olarak dağıtırken hasta hemen iyileştirilmiş işitme deneyimi yaşar.

Olası kullanım örnekleri

Bu çözüm sağlık sektörü için idealdir. Aşağıdaki ek kullanım örnekleri benzer tasarım desenlerine sahiptir:

  • Bluetooth özellikli tüm cihazlara bu tür bir çözüm kullanılarak erişilebilir ve uzaktan ayarlanabilir.
  • Uzak bir ortamda/bağlamda iletişim (metin, ses, video) veya bilgi alışverişi (eğitim, memnuniyet anketleri).
  • Genel olarak dağıtılmış web içeriği yönetimi.
  • Nesnelerin İnterneti (IoT)

Modu

Standart mod

Standart modda, uydurma yazılımı cihaz için bazı yapılandırma JSON dosyası veya içeriği içeren bir bildirim hazırlar. Daha sonra bildirim Azure Notification Hub'a geçirilir ve bu da bildirimi kullanıcının telefonuna iletir.

Gelişmiş mod

Gelişmiş modda, işitme cihazı uzmanı cihaza ayrıntılı yapılandırma göndermek için uygun yazılımı kullanır. Bu, SignalR'nin WebSockets kullanarak başardığı arka uç ile cihaz arasında kararlı ve güvenilir bir bağlantı gerektirir. Son kullanıcının telefonu bu kanalın alıcı ucundadır. Telefondan Bluetooth bağlantısı, cihazla son iletişim bağlantısını kurar.

Dikkat edilmesi gereken noktalar

Bu önemli noktalar, bir iş yükünün kalitesini artırmak için kullanılabilecek bir dizi yol gösteren ilke olan Azure İyi Tasarlanmış Çerçeve'nin yapı taşlarını uygular. Daha fazla bilgi için bkz . Microsoft Azure İyi Tasarlanmış Çerçeve.

Bölgeler arasındaki gecikme süresini iyileştirmek için farklı kümelerin önünde bir trafik yöneticisi kullanmanızı ve kümelerin kullanılamaz duruma gelmesi halinde geri dönüş mekanizması olarak kullanmanızı öneririz. Veritabanları için, büyük miktarda veri yükleme ve toplama gerektiren sorgular için salt okunur çoğaltmalar kullanmanızı öneririz. Önbelleğe alma hızını artırmak için içerik teslim ağı (CDN) kullanarak statik web dosyalarını (.html, .js, görüntüler vb.) genel olarak teslim etmenizi öneririz.

Dağıtım

Bu senaryoyu dağıtırken dikkate alınması gereken en önemli yön, bulut tabanlı arka uç ve ön uç (telefonlar/cihazlar) genelinde dağıtımların koordinasyonudur. Bunu başarmak için özellik bayrağı kavramını kullanmayı göz önünde bulundurun.

Yönetim

Her işlevsel etki alanının belirli bir mikro hizmet (uzun vadeli) kullanılarak ele alınması fikrine daha iyi uyum sağlamak için, veritabanını birkaç küçük veritabanına bölme fırsatı vardır. Bunu yapmak, tüm hizmetlerle ilgili verilerin tek bir veritabanında yoğunlaşmasının aksine, her mikro hizmetle ilgili akışın ilke yalıtımını ve özerkliğini sağlar. Bu hedefe ulaşmak için, buluttaki bir PaaS veritabanı hizmetinin temel özelliklerinden biri olan bu veritabanlarının sağlanmasını ve yönetilmesini otomatikleştirmek gerekir. Bu veritabanı yönetim katmanının hem çözümle hem de birleşik izleme çözümüyle tümleştirilmesi gerekir.

İzleme

Katmanların her birini izlemek önemlidir ve her izleme modeli buluttaki tek bir demette birleştirilmelidir. Bileşenler ve katmanlar arasında bütünsel içgörüler sağlamak için tüm bu günlüklerin ve telemetri veri noktalarının bağıntısını etkinleştirmek önemlidir.

Bugün izlenen katmanlar şunları içerir:

  • Windows uygulaması (işitme cihazı uzmanının masaüstüne yazılım sığdırma)
  • Barındırılan uygulama mantığı
  • Bulut hizmetleri

Boyutlandırma ve ölçeklendirme

Azure Kubernetes kümelerinin yapılandırmasını günün saatiyle veya bölgesel desenlerle dalgalı ölçek gereksinimlerine uyacak şekilde iyileştirdiğinden emin olun. PostgreSQL için Azure Veritabanı'de Okuma Çoğaltmaları'nı kullanarak okuma iş yüklerini (sorguları toplama gibi) boşaltmayı göz önünde bulundurun.

PostgreSQL'in TimescaleDB uzantısını kullanmak, tıbbi cihazlardan gelen zaman ile ilgili verilerin daha verimli işlenmesini sağlar. Birden çok veritabanı düğümü sağlayarak genel ölçeğe ulaşmak için PostgreSQL için Azure Veritabanı – Hiper Ölçek (Citus) gibi bir genişleme çözümü kullanmayı göz önünde bulundurun.

Güvenlik ve uyumluluk

Güvenlik, kasıtlı saldırılara ve değerli verilerinizin ve sistemlerinizin kötüye kullanılmasına karşı güvence sağlar. Daha fazla bilgi için bkz . Güvenlik sütununa genel bakış.

Bu çözüm PHI ve kişisel verileri işler. Bu nedenle, tıbbi uygulamalar için sertifikalı hizmetlerin kullanılması önemlidir (HIPAA sertifikaları, yalnızca veritabanında kalan veriler için değil, aynı zamanda günlükler ve telemetri verileri için de). Ayrıntılar için lütfen Microsoft Güven Merkezi'nin HIPAA bölümüne bakın.

Yönetilen kimlik, parola yönetimini basitleştirmek için bu tür parolasız kimlik doğrulamasını destekleyen tüm Azure hizmetlerinde kullanılmalıdır: AKS, PostgreSQL, Redis Cache, Notification Hub, Azure Key Vault ve Azure İşlevleri. Azure kaynakları için yönetilen kimlikleri destekleyen tüm hizmetlere bakın.

Maliyet iyileştirme

Maliyet iyileştirmesi, gereksiz giderleri azaltmanın ve operasyonel verimlilikleri iyileştirmenin yollarını aramaktır. Daha fazla bilgi için bkz . Maliyet iyileştirme sütununa genel bakış.

Tek bir bölgedeki dağıtım için Fiyatlandırma Hesaplayıcısı'nda örnek fiyatlandırma bilgileri sağlanır

Katkıda Bulunanlar

Bu makale Microsoft tarafından yönetilir. Başlangıçta aşağıdaki katkıda bulunanlar tarafından yazılmıştır.

Asıl yazarlar:

Sonraki adımlar

İşletmenize benzer bir mimari uygulamaya başlamak için web hizmetleri, PostgreSQL için Azure Veritabanı gibi veritabanları ve .NET MAUI gibi mobil uygulama geliştirme teknikleri ve teknolojileriyle ilgili beceriler oluşturmayı göz önünde bulundurun.

Ürün belgeleri:

Gerçek zamanlı iletişim:

WebRTC'nin mobil uygulamalara gerçek zamanlı iletişim özellikleri sağladığı hakkında daha fazla bilgi WebRTC proje sitesinde mevcuttur.

Sunucuları döndürme:

Dönüş sunucularını* ve iki istemci arasındaki bağlantı türlerini (tcp, udp, p2p) yönetmek için Icelink gibi bir istemci kitaplığı kullanın (telefondaki uygulama ve işitme cihazı uzmanının masaüstü uygun yazılımı tarafından yüklenir). İstemci kitaplığı:

  • Akış kanalını oluşturur
  • Bağlantıları kurar
  • Hatalar, eksik paketler durumunda bağlantıyı yönetir, akışı bant genişliğinin varyasyonlarına göre otomatik olarak ayarlar
  • Aramalar sırasında çağrıları (ses ve/veya video) kodlar/kodunu çözer

*Turn sunucuları, VoIP ile ilgili protokollerde medya geçişlerinden sorumlu ağ varlıklarıdır. Bu çözümde, tarafından https://xirsys.com/ dünya çapındaki çeşitli veri merkezlerinde barındırılırlar. Aynı oturum altındaki iki istemci arasında doğrudan bağlantı kurar.