Aracılığıyla paylaş


Bulutta yerel uygulamalara giriş

Tavsiye

Bu içerik, .NET Docs veya çevrimdışı olarak okunabilen ücretsiz indirilebilir bir PDF olarak sağlanan Azure için Bulut Yerel .NET Uygulamaları Tasarlama adlı e-Kitap'tan bir alıntıdır.

Azure eKitap kapak küçük resmi için Buluta Özel .NET uygulamaları.

Başka bir gün ofiste "bir sonraki büyük şey" üzerinde çalışıyor.

Cep telefonun çalar. Her gün heyecan verici yeni fırsatlarla arayan, arkadaş canlısı işe alımcınız.

Ama bu sefer farklı: Başlangıç, eşitlik ve bol miktarda fon.

Bulut, mikro hizmetler ve en son teknolojiden bahsedilmesi sizi sınırlarınıza götürür.

Birkaç hafta ileri doğru ilerleyin ve artık büyük bir e-Ticaret uygulamasının mimarisini yapan bir tasarım oturumunda yeni bir çalışansınız. Önde gelen e-ticaret siteleriyle rekabet edeceksin.

Nasıl inşa edeceksiniz?

Son 15 yılın yönergelerini izlerseniz, büyük olasılıkla Şekil 1.1'de gösterilen sistemi oluşturursunuz.

Geleneksel monolitik tasarım

Şekil 1-1. Geleneksel monolitik tasarım

Tüm etki alanı mantığınızı içeren büyük bir çekirdek uygulama oluşturursunuz. Kimlik, Katalog, Sıralama ve daha fazlası gibi modülleri içerir. Tek bir sunucu işlemi içinde birbirleriyle doğrudan iletişim kurarlar. Modüller büyük bir ilişkisel veritabanını paylaşır. Çekirdek, bir HTML arabirimi ve mobil uygulama aracılığıyla işlevselliği kullanıma sunar.

Tebrikler! Monolitik bir uygulama oluşturdunuz.

Her şey kötü değil. Monolith'ler bazı farklı avantajlar sunar. Örneğin, bunlar kolaydır...

  • inşa et
  • deneme
  • konuşlandırmak
  • sorun giderme
  • dikey ölçeklendirme

Bugün var olan birçok başarılı uygulama monolith olarak oluşturuldu. Uygulama bir başarıdır ve her bir yinelemede yeni işlevler ekleyerek gelişimini sürdürmektedir.

Ancak bir noktada rahatsız hissetmeye başlarsınız. Uygulamanın kontrolünü kaybettiğinizi fark edersiniz. Zaman geçtikçe, his daha yoğun hale gelir ve sonunda Fear Cycle olarak bilinen bir duruma girersiniz.

  • Uygulama o kadar karmaşık hale geldi ki, tek bir kişi bile bunu anlamıyor.
  • Değişiklik yapmaktan korkuyorsun, her değişikliğin istenmeyen ve maliyetli yan etkileri vardır.
  • Yeni özellikler/düzeltmeler karmaşık, zaman alan ve uygulanması pahalı hale gelir.
  • Her sürüm mümkün olduğunca küçük hale gelir ve tüm uygulamanın tam dağıtımını gerektirir.
  • Kararsız bileşenlerden biri sistemin tamamını kilitleyebilir.
  • Yeni teknolojiler ve çerçeveler bir seçenek değildir.
  • Çevik teslim metodolojilerini uygulamak zordur.
  • Mimari erozyon, kod tabanı hiç bitmeyen "hızlı düzeltmeler" ile bozuldukça başlar.
  • Son olarak danışmanlar gelip yeniden yazmanızı söylüyor.

Tanıdık geliyor mu?

Birçok kuruluş, sistem oluşturmaya yönelik bulutta yerel bir yaklaşım benimseyerek bu monolitik korku döngüsünü ele almış durumdadır. Şekil 1-2'de bulutta yerel teknikler ve uygulamalar uygulanarak oluşturulan sistem gösterilmektedir.

Cloud-Native Tasarımı

Şekil 1-2. Bulutta yerel tasarım

Uygulamanın bir dizi küçük yalıtılmış mikro hizmette nasıl ayrıştırılmış olduğuna dikkat edin. Her hizmet kendi içindedir ve kendi kodunu, verilerini ve bağımlılıklarını kapsüller. Her biri bir yazılım kapsayıcısında dağıtılır ve kapsayıcı düzenleyicisi tarafından yönetilir. Büyük bir ilişkisel veritabanı yerine, her hizmet veri deposuna sahip olur ve türü veri gereksinimlerine göre değişir. Bazı hizmetlerin ilişkisel veritabanına, diğer hizmetlerin ise NoSQL veritabanlarına nasıl bağımlı olduğunu unutmayın. Bir hizmet, durumunu dağıtılmış bir önbellekte depolar. Trafiğin, trafiği temel arka uç hizmetlerine yönlendirmek ve birçok çapraz kesen konuyu uygulamakla görevli bir API Gateway hizmeti aracılığıyla nasıl yönlendirildiğine dikkat edin. En önemlisi, uygulama modern bulut platformlarında bulunan ölçeklenebilirlik, kullanılabilirlik ve dayanıklılık özelliklerinden tam olarak yararlanır.

Bulutta yerel bilgi işlem

Hmm... Az önce Cloud Native terimini kullandık. İlk düşünceniz şu olabilir: "Bu tam olarak ne anlama geliyor?" Yazılım satıcıları tarafından daha fazla şey satmak için uydurulmuş başka bir sektör vızıltısı mı?"

Neyse ki çok farklı ve umarım bu kitap sizi ikna etmeye yardımcı olur.

Kısa bir süre içinde buluta özgü, yazılım sektöründe öncülük eden bir trend haline geldi. Bu, büyük ve karmaşık sistemler oluşturmanın yeni bir yoludur. Bu yaklaşım modern yazılım geliştirme uygulamalarından, teknolojilerden ve bulut altyapısından tam olarak yararlanır. Buluta özel, sistemleri tasarlama, uygulama, dağıtma ve kullanıma hazır hale getirme yönteminizi değiştirir.

Sektörümüzü yönlendiren sürekli abartıdan farklı olarak bulut yerli gerçekten mevcuttur. 400'den fazla büyük şirketten oluşan bir konsorsiyum olan Cloud Native Computing Foundation'ı (CNCF) düşünün. Amacı, bulut yerel bilişimi teknoloji ve bulut yığınları arasında yaygın hale getirmektir. En etkili açık kaynak gruplarından biri olarak GitHub'da en hızlı büyüyen açık kaynak projelerinin birçoğuna ev sahipliği yapmaktadır. Bu projeler Kubernetes, Prometheus, Helm, Envoy ve gRPC'yi içerir.

CNCF, açık kaynak ve satıcı nötrlüğü ekosistemini teşvik eder. Bu ipucunun ardından, bu kitap bulut tabanlı ilkeler, kalıplar ve teknolojiden bağımsız en iyi uygulamaları sunar. Aynı zamanda, bulutta yerel sistemler oluşturmak için Microsoft Azure bulutunda sağlanan hizmetleri ve altyapıyı ele alıyoruz.

Öyleyse, Bulut Doğal tam olarak nedir? Arkanıza yaslanın, rahatlayın ve bu yeni dünyayı keşfetmenize yardımcı olalım.