Aracılığıyla paylaş


Bulutta yerel uygulamalara giriş

İpucu

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

Cloud Native .NET apps for Azure eBook cover thumbnail.

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.

Buluttan, mikro hizmetlerden ve en son teknolojiden bahsedilmenizi sağlar.

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 oluşturacaksınız?

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

Traditional monolithic design

Ş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...

  • derleme
  • test
  • deploy
  • troubleshoot
  • dikey ölçeklendirme

Bugün var olan birçok başarılı uygulama monolith olarak oluşturuldu. Uygulama bir isabettir ve yinelemeden sonra yineleme ve daha fazla işlevsellik ekleyerek gelişmeye devam eder.

Ancak bir noktada rahatsız hissetmeye başlarsınız. Kendinizi uygulamanın denetimini kaybedersiniz. Zaman geçtikçe, his daha yoğun hale gelir ve sonunda olarak Fear Cyclebilinen 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.
  • Kod tabanı hiç bitmeyen "hızlı düzeltmeler" ile bozulduğundan mimari erozyon kümeler.
  • Son olarak danışmanlar gelip yeniden yazmanızı söylüyor.

Bu durum size tanıdık geldi mi?

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 Design

Ş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. Tüm trafiğin, trafiği temel arka uç hizmetlerine yönlendirmekten ve birçok çapraz kesme endişesini zorlamaktan sorumlu bir API Gateway hizmeti aracılığıyla nasıl yönlendirdiğini unutmayın. 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üşüncen şu olabilir: "Bu tam olarak ne anlama geliyor?" Yazılım satıcıları tarafından daha fazla şey pazara sunulan 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 özel, yazılım sektöründeki bir sürüş trendi 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 heyecandan farklı olarak buluta özel gerçektir. 400'den fazla büyük şirketten oluşan bir konsorsiyum olan Cloud Native Computing Foundation'ı (CNCF) düşünün. Kuruluş, buluta özel 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 bulutta yerel ilkeler, desenler ve teknolojiden bağımsız en iyi yöntemleri sunar. Aynı zamanda, bulutta yerel sistemler oluşturmak için Microsoft Azure bulutunda sağlanan hizmetleri ve altyapıyı ele alıyoruz.

Peki, Buluta Özel tam olarak nedir? Arkanıza yaslanın, rahatlayın ve bu yeni dünyayı keşfetmenize yardımcı olalım.