Hizmet odaklı mimari nedir?
Hizmet odaklı mimari (SOA), iş uygulamaları oluşturmak için hizmetler adı verilen yazılım bileşenlerini kullanan bir yazılım geliştirme yöntemidir. Her hizmet, bir iş özelliği sunar ve hizmetler, farklı platform ve diller arasında birbiriyle iletişim de kurabilir. Geliştiriciler, hizmetleri farklı sistemlerde yeniden kullanmak veya birkaç bağımsız hizmeti karmaşık görevleri gerçekleştirmek amacıyla birleştirmek için hizmet odaklı mimariyi kullanır.
Örneğin, bir kuruluştaki birden fazla iş süreci, kullanıcı kimlik doğrulaması işlevinin kullanılmasını gerektirir. Kimlik doğrulaması kodunu tüm iş süreçleri için yeniden yazmak yerine, tek bir kimlik doğrulama hizmeti oluşturarak bunu tüm uygulamalar için yeniden kullanabilirsiniz. Benzer şekilde, bir sağlık kuruluşundaki hasta yönetimi sistemleri ve elektronik hasta kaydı (EHR) sistemleri gibi neredeyse tüm sistemlerin hastaları kaydetmesi gerekir. Bu sistemler, hasta kaydı görevini yerine getirmek için tek bir ortak hizmeti çağırabilir.
Hizmet odaklı mimarinin avantajları nelerdir?
Hizmet odaklı mimari, tüm süreçlerin tek bir birim olarak çalıştığı geleneksel monolitik mimarilere kıyasla çeşitli avantajlara sahiptir. Hizmet odaklı mimarinin önemli avantajlarından bazıları şunlardır:
Pazara daha hızlı ulaşma
Geliştiriciler, zamandan ve maliyetten tasarruf etmek için hizmetleri farklı iş süreçlerinde yeniden kullanır. Hizmet odaklı mimari sayesinde, uygulamaları kod yazmaktan ve entegrasyonları sıfırdan yapmaktan daha hızlı şekilde bir araya getirebilirler.
Verimli bakım
Monolitik uygulamalarda küçük hizmetleri oluşturmak, güncellemek ve hatalarını ayıklamak, büyük kod bloklarına kıyasla daha kolaydır. Hizmet odaklı mimarideki herhangi bir hizmeti değiştirmek, iş sürecinin genel işlevselliğini etkilemez.
Daha fazla uyum
Hizmet odaklı mimari, teknolojideki gelişmelere daha uyumludur. Uygulamalarınızı verimli ve uygun maliyetli şekilde modernize edebilirsiniz. Örneğin, sağlık kuruluşları daha yeni bulut tabanlı uygulamalarda eski elektronik sağlık kayıt sistemlerinin işlevselliğini kullanabilir.
Hizmet odaklı mimarinin temel ilkeleri nelerdir?
Hizmet odaklı mimariyi uygulamak için iyi tanımlanmış standart yönergeler yoktur. Bununla birlikte, tüm hizmet odaklı mimari uygulamalarında ortak olan bazı temel ilkeler vardır.
Birlikte çalışabilirlik
Hizmet odaklı mimarideki her bir hizmet, hizmetin işlevselliğini ve ilgili koşul ve şartları belirten açıklama belgeleri içerir. Herhangi bir istemci sistemi, bir hizmeti temel alınan platform veya programlama dilinden bağımsız olarak çalıştırabilir. Örneğin, iş süreçleri hem C# hem de Python dilinde yazılmış hizmetleri kullanabilir. Doğrudan etkileşim olmadığından, bir hizmetteki değişiklikler hizmeti kullanan diğer bileşenleri etkilemez.
Gevşek ilişkilendirme
Hizmet odaklı mimarideki hizmetler, veri modelleri veya bilgi sistemleri gibi dış kaynaklara mümkün olduğunca az bağımlı olacak şekilde gevşek ilişkilendirilmelidir. Ayrıca geçmiş oturumlardan veya işlemlerden herhangi bir bilgiyi saklamadan durum bilgisine sahip olmamaları gerekir. Böylece, bir hizmeti değiştirirseniz bu, istemci uygulamalarını ve hizmeti kullanan diğer hizmetleri önemli ölçüde etkilemez.
Soyutlama
Hizmet odaklı mimarideki istemcilerin veya hizmet kullanıcılarının, hizmetin kod mantığını veya uygulama ayrıntılarını bilmesine gerek yoktur. Bu kişiler için hizmetler, bir kara kutu gibi görünmelidir. İstemciler, hizmetin ne işe yaradığı ve nasıl kullanılacağı hakkında gerekli bilgileri hizmet sözleşmeleri ve diğer hizmet açıklama belgeleri aracılığıyla alır.
Ayrıntı düzeyi
Hizmet odaklı mimarideki hizmetler, ideal olarak hizmet başına ayrı bir işletme işlevini
paketleyecek şekilde uygun bir boyut ve kapsama sahip olmalıdır. Geliştiriciler daha sonra birden fazla hizmeti kullanarak karmaşık işlemleri gerçekleştirmek üzere bir bileşik hizmet oluşturabilir.
Hizmet odaklı mimarinin bileşenleri nelerdir?
Hizmet odaklı mimaride dört ana bileşen vardır.
Hizmet
Hizmetler, hizmet odaklı mimarinin temel yapı taşlarıdır. Bu hizmetler, özel (yalnızca bir kuruluşun dahili kullanıcılarına açık) veya genel (internet üzerinden herkesin erişilebileceği) olabilir. Her bir hizmet ayrı olarak üç ana özelliğe sahiptir.
Hizmet uygulaması
Hizmet uygulaması, kullanıcı kimlik doğrulaması veya fatura hesaplama gibi belirli bir hizmet işlevini gerçekleştirmek için mantık oluşturan koddur.
Hizmet sağlayıcısı
Hizmet sağlayıcısı, başkalarının kullanabileceği bir veya daha fazla hizmeti oluşturur, bakımını yapar ve sunar. Kuruluşlar, kendi hizmetlerini oluşturabilir veya üçüncü taraf hizmet sağlayıcılarından satın alabilir.
Hizmeti tüketicisi
Hizmet tüketicisi, hizmet sağlayıcısının belirli bir hizmeti çalıştırmasını talep eder. Bu, bütün bir sistem, uygulama veya başka bir hizmet olabilir. Hizmet sözleşmesi, hizmet sağlayıcısı ile tüketicinin birbirleriyle iletişim kurarken uyması gereken kuralları belirtir. Hizmet sağlayıcıları ve tüketiciler; farklı departman, kuruluş ve hatta sektörlerde yer alabilir.
Hizmet kaydı
Bir hizmet kaydı veya hizmet deposu, kullanılabilir hizmetlerin yer aldığı ve bir ağ üzerinden erişilebilen bir dizindir. Bu dizin, hizmet sağlayıcılarının hizmet açıklaması belgelerini depolar. Açıklama belgeleri, hizmet ve hizmetle nasıl iletişim kurulacağına ilişkin bilgileri içerir. Hizmet tüketicileri, hizmet kayıt defterini kullanarak ihtiyaç duydukları hizmetleri kolayca keşfedebilir.
Hizmet odaklı mimari nasıl çalışır?
Hizmet odaklı mimaride, hizmetler bağımsız olarak çalışır ve tüketicilerine işlevsellik ya da veri alışverişi sunar. Tüketici, bilgi talep eder ve girdi verilerini hizmete gönderir. Hizmet, verileri işler, görevi yerine getirir ve bir yanıt gönderir. Örneğin, bir uygulama kimlik doğrulaması hizmeti kullanıyorsa hizmete kullanıcı adını ve parolayı sunar. Hizmet, kullanıcı adını ve parolayı doğrulayarak uygun bir yanıt döndürür.
İletişim protokolleri
Hizmetler, bir ağ üzerinden veri iletimini belirleyen kuralları kullanarak iletişim kurar. Bu kurallara, iletişim protokolleri denir. Hizmet odaklı mimariyi uygulamaya ilişkin standart protokollerden bazıları şunlardır:
• Basit Nesne Erişimi Protokolü (SOAP)
• RESTful HTTP
• Apache Thrift
• Apache ActiveMQ
• Java Mesaj Hizmeti (JMS)
Hizmet odaklı mimari uygulamanızda birden fazla protokol de kullanabilirsiniz.
Hizmet odaklı mimaride kurum veri yolu (ESB) nedir?
Kurum veri yolu, birden fazla hizmete sahip bir sistemle iletişime geçerken kullanabileceğiniz bir yazılımdır. Teknoloji ne olursa olsun hizmetler ile hizmet tüketicileri arasında iletişim kurar.
Kurum veri yolunun avantajları
Bir kurum veri yolu, yeniden kullanılabilir bir hizmet arabirimi aracılığıyla iletişim ve dönüşüm özellikleri sunar. Bir kurum veri yolunu, hizmet isteklerini uygun hizmete yönlendiren merkezi bir hizmet olarak düşünebilirsiniz. Bu yol ayrıca isteği, hizmetin temel aldığı platform ve programlama dili için kabul edilebilir bir biçime dönüştürür.
Hizmet odaklı mimariyi uygulamadaki sınırlamalar nelerdir?
Sınırlı ölçeklenebilirlik
Hizmetler birçok kaynağı paylaştığında ve işlevlerini yerine getirmek için koordinasyona ihtiyaç duyduğunda, sistem ölçeklenebilirliği önemli ölçüde etkilenir.
Artan bağımlılıklar
Hizmet odaklı mimari sistemleri, zaman içinde daha karmaşık hale gelebilir ve hizmetler arasında çeşitli bağımlılıklar geliştirebilir. Bir döngüde çeşitli hizmetler birbirini çağırıyorsa bunları değiştirmek veya hataları ayıklamak zor olabilir. Merkezi veritabanları gibi ortak kaynaklar da sistemi yavaşlatabilir.
Tek hata noktası
Kurum veri yoluna sahip hizmet odaklı mimari uygulamalarında, kurum veri yolu tek bir hata noktası oluşturur. Bu, hizmet odaklı mimarinin savunduğu merkeziyetsizlik fikrine aykırı olan merkezi bir hizmettir. Kurum veri yolu çökerse istemciler ve hizmetler birbirleriyle hiç iletişim kuramaz.
Mikro hizmetler nedir?
Mikro hizmetler mimarisi, mikro hizmetler adı verilen ve yalnızca tek bir görevde uzmanlaşan ve bu göreve odaklanan çok küçük ve tamamen bağımsız yazılım bileşenlerinden oluşur. Mikro hizmetler, geliştiricilerin diğer yazılım sistemlerinin mikro hizmetleriyle iletişim kurmasına olanak tanımak için oluşturduğu kurallar olan API'ler aracılığıyla iletişim kurar.
Mikro hizmetler mimari tarzı, modern bulut bilişim ortamlarına en uygun tarzdır. Bu hizmetler genellikle, kodu tüm bağımlılıklarıyla paketleyen bağımsız yazılım birimleri olan container'larda çalışır.
Mikro hizmetlerin avantajları
Mikro hizmetler buluta özgü özellikleriyle bağımsız olarak ölçeklenebilir, hızlı ve taşınabilirdir ve platformdan bağımsızdır. Ayrıca bu hizmetler ayrıştırılmıştır ve bu da diğer mikro hizmetlere sınırlı bağımlılıkları olduğu ya da hiç bağımlılıkları olmadığı anlamına gelir. Mikro hizmetler bunu başarmak için diğer sistemlerin de eriştiği ve kullandığı merkezi verilere uzaktan erişim sağlamak yerine ihtiyaç duydukları tüm veriler üzerinde yerel erişime sahiptir. Bu, mikro hizmetlerin performans ve çeviklikte eksikleri giderdiği veri çoğaltmayı oluşturur.
Mikro hizmetlere kıyasla hizmet odaklı mimari
Mikro hizmetler mimarisi, hizmet odaklı mimari tarzının evrimleşmiş halidir. Mikro hizmetler, yazılımı bulut tabanlı modern kurumsal ortamlarla daha uyumlu hale getirmek için hizmet odaklı mimarinin eksikliklerini ele alır. Yüksek ayrıntı düzeyine sahiptir ve veri paylaşımının aksine veri çoğaltmayı tercih ederler. Bu da mikro hizmetleri hafif API'ler aracılığıyla açığa çıkan kendi iletişim protokollerinden tamamen bağımsız hale getirir. Mikro hizmeti, API'si aracılığıyla kullanmak temelde tüketicilerin işidir ve bu da merkezileştirilmiş bir kurum veri yolu ihtiyacını ortadan kaldırır.
AWS, mikro hizmetleri uygulamanıza nasıl yardımcı olabilir?
AWS; modüler mimari düzenleri, sunucusuz operasyonel modeller ve çevik geliştirme süreçleri ile modern uygulamalar oluşturmak için harika bir yerdir. AWS, her kapsam ve ölçekteki modern uygulamaları desteklemek amacıyla yüksek düzeyde kullanılabilir mikro hizmetler oluşturmak için en eksiksiz platformu sunar. Örneğin, şunları yapabilirsiniz:
• Operasyonları basitleştirmek ve yönetim yükünü azaltmak için yönetilen container'larda güvenli mikro hizmetler oluşturma, izole etme ve çalıştırma.
• Mikro hizmetlerinizi sunucuları tedarik etmeden ve yönetmeden çalıştırmak için AWS Lambda'yı kullanma.
• Mikro hizmetler mimarisini desteklemek için 15 ilişkisel ve ilişkisel olmayan, amaca yönelik AWS veritabanı arasından seçim yapma.
• AWS App Mesh ile AWS'de çalışan mikro hizmetleri kolayca izleme ve denetleme.
• AWS X-Ray ile karmaşık mikro hizmet etkileşimlerini izleme ve sorunları giderme.
AWS'deki mikro hizmetler, daha hızlı inovasyon yapmanıza, riski azaltmanıza, pazara ulaşma süresini kısaltmanıza ve toplam sahip olma maliyetinizi düşürmenize yardımcı olur. Hemen bir AWS hesabı oluşturarak AWS'de hizmet odaklı mimariyi ve mikro hizmetleri kullanmaya başlayın.