Bulutta yerelleşme: Daha iyi bulut uygulamaları nasıl geliştirilir?


Birçok bulut uygulaması yavaştır, hantaldır, şişkindir veya başka nedenlerle kullanıcı beklentilerini karşılamada başarısız olur; ancak ekiplere ilk ilkelerden yola çıkarak takip edecek kaynaklar verilirse, bu sorunun nasıl çözüleceğine ilişkin yanıtlar zaten mevcuttur.

Uptime Intelligence’ın bulut araştırma direktörü Owen Rogers, bulut uygulamalarının performans ve verimlilik açısından ölçeklenebilir olacak şekilde tasarlanması gerektiğini söylüyor. Ne yazık ki birçok işletme uygulamaları kaldırıp buluta taşıyor.

Rogers, “Çoğu uygulamanın ölçeğe göre yeniden tasarlanması gerekecek, bu da maliyet ve zaman anlamına geliyor” diye açıklıyor.

Hyve Managed Hosting’in kurucu ortağı ve yöneticisi Jon Lucas, doğru planlamanın ve kapsamlı testlerin çok önemli olduğunu ekliyor. Lucas, “Oturup teknik özellikleri ve gereksinimlerinizi belirleyin, ardından bunu bir geliştirme ortamında oluşturun” diyor.

Sorunlar genellikle geliştirme çoğunlukla ekibin kafasında gerçekleştiğinde ortaya çıkar ve daha sonra kullanıcılar araçları gerçekten kullanırken başka sorunlar ortaya çıkar. Sadece burnunuzu takip etmek yerine, tüm değişikliklerin tam olarak yönetildiği test aşaması tamamlanana kadar gerekirse canlı dağıtımı ertelemek daha iyidir.

Lucas, uygulamaların başlangıçta ve daha sonra başka bir şeye ihtiyaç duyduklarında veya başka bir şeye ihtiyaç duyduklarında paydaş gereksinimlerine uymasını sağlayın ve tüm bunların imzalanmasını sağlayın, diyor.

Hyve kurucu ortağı ve yöneticisi Jake Madders, bunu yapmamanın sonuçlarını gördü; çevrimiçi uygulamalarının, tasarımları desteklemek için artan miktarda donanım, süreç ve bellekle yamalanması gereken müşteriler de dahil. Bir örnek, bir veritabanındaki indekslenmesi zor kod olabilir.

Madders, “Bu sorunu aşmalarına yardımcı olmaya çalışıyoruz, ancak aslında çözülmesi gereken temel bir kod sorunu var ve bu da onların barındırma hizmetlerinde çok fazla para tasarrufu sağlamasını sağlıyor” diyor.

Böl ve fethet

Verilerin hareketini en aza indirin ve işlemeyi sunucu yerine kullanıcı tarayıcısı düzeyinde yapılacak şekilde bölün. Yalnızca gerektiğinde birden fazla sunucuda otomatik ölçeklendirme için işlem gücünü artırarak web uygulamalarını da otomatik olarak ölçeklendirin. Kod oluştururken kit dağıtım özellikleri ve içerik sunma, önbelleğe alma, konumlar veya birden fazla varlık noktası gereksinimlerinin tümü uyumsuzluklara neden olabilir.

“Çoğunlukla bazı müşterilerin bunun ne kadar büyüyeceğini veya eş zamanlı kaç kullanıcının olacağını düşünmediği görülüyor. Madders, başarılı olan müşterilerin bir veya iki yıl boyunca işe yarayacak olanın ötesinde bunu açıkça planladıklarını söylüyor.

İşte o zaman deneyimli geliştiriciler kalitelerini gösterebilirler. Madders, acemilerin harika kodlayıcılar olabileceğini ancak genellikle tüm yığını veya eşzamanlı bağlantıları etkileyen şeyleri düşünmediklerini söylüyor.

Veri depolama şirketi NetApp’in Birleşik Krallık ve İrlanda baş teknoloji uzmanı Grant Caley, geliştiricilerin, yazılımın temel kaynakları kullanma şeklini en üst düzeye çıkaran uygulamaları en iyi şekilde oluşturup geliştiremeyebileceğini söylüyor.

Caley, “Bu konuda pek fazla seçenekleri yok çünkü onlara kullanmaları için bir araç veriliyor – geliştirme platformu – bu da performansla ilgili sorunlara neden olabilir” diyor.

CIO’ların, geliştiricilerin, özellikle de tam yığının farkında olmadan, hızlı uygulamalar oluşturma becerisine sahip olmadıklarını anlamaları gerekir. Özellikle testler için daha fazla zamana ve kaynağa ihtiyaç olduğunu kabul ediyor.

Caley şunu ekliyor: “İnsanlar özensiz değil.” “Pazara çıkış süresi ve iş anının yakalanması nedeniyle hepimiz uygulamaları olabildiğince hızlı geliştirmeye çalışıyoruz.”

Uygulama geliştirme araçları, kitaplıklar, bilgi işlem, depolama, ağ oluşturma ve veri yönetimi katmanlarının tümü geliştirme süreci boyunca yer alır. Özellikle yapay zekanın (AI) yükselişiyle birlikte, mümkün olduğu kadar büyük bir veri kümesinde CI/CD sürecini hızlandırmayı ve test süresine daha fazla zaman ayırmayı öneriyor.

Ve eğer bu veri kümelerini anında kontrol etmek için temeldeki altyapı katmanını kullanabilir ve bunları anında geri alabilirseniz, daha fazla veri kümesine, paralel olarak çalışan daha fazla teste sahip olabilir ve geliştirmeyi hızlandırabilirsiniz.

Caley, düşük kodlu veya hiç kodsuz platformların yükselişiyle birlikte, daha az beceriye sahip ekiplerin, sorunlara yol açabilecek uygulamalar geliştirebileceğini ekliyor.

İlkelerinize bağlı kalın

Ancak düşük kodlu uygulama geliştirme platformu tedarikçisi Mendix’in baş ürün sorumlusu Hans de Visser, bu sorunun genellikle bulutta yerel ilkelere daha sıkı bağlılıkla çözülebileceğini söylüyor.

De Visser, “Bunun hiper ölçekli bir şekilde çalıştığından emin olmak için durum bilgisi olan nesnelerin ve durum bilgisi olmayan bağlantıların ilkelerini uygulayın” diyor. “Uygulamanızı, bağımsız olarak yayınlanabilir ve ölçeklenebilir birden fazla mikro hizmete veya bağımsız bileşene bölebilirsiniz.”

Ağır hizmet tipi, her zaman açık bileşenlerin ölçeği bağımsız olarak genişletilebilir; Ana veri yönetimi hizmeti gibi diğerlerinin ise daha istikrarlı bir yüke sahip olabileceğini söylüyor.

Bazı müşteriler, örneğin Amazon Web Services (AWS) Lambda sunucusuz hizmetinde bir algoritma çalıştırmak gibi, daha geleneksel yönetim uygulamalarını özel kaynaklarla birleştirir. “Bu, en yüksek yükü karşılaması gereken işlevleri ölçeklendirmenize yardımcı olabilir. Hesaplamalar yapıldıktan sonra yeniden boyutlandırın” diye ekliyor.

Üçüncü bir unsur, yapay zeka destekli en iyi uygulamadır. De Visser, “Platformumuzda, geliştiricinin temel olarak uygulamalarda performansı garanti altına alacak ilkelere bağlı kalıp kalmadığını tespit eden, makine öğrenimi modelleri tarafından desteklenen bir dizi botumuz var” diyor. “Performansın düşmesine neden olacak şeyler yaparlarsa, belirli kalıplar uygulandığında uyarı veriyoruz ve değişiklik önerilerinde bulunuyoruz.”

AI/ML kitleri (Mendix kısa süre önce bir tane piyasaya sürdü), geliştiricilerin daha iyi uygulamalar oluşturmasına yardımcı olmanın yanı sıra onlara korkuluklar verip üretkenliği artırmalarına da yardımcı olabilir. Uygulama performansını ve sağlığını izleyerek diğer araçlar da yardımcı olabilir ve gelecekte uygulamalardaki şekillendirilebilirlik daha da fazla esneklik sağlanmasına yardımcı olacaktır.

De Visser, “Düşük kod kullanmanın püf noktası, mimariyi ve mimarinin nasıl inşa edileceğini bilmeyen daha az teknik kişinin hala oldukça karmaşık uygulamalar geliştirebilmesini sağlamak için onu soyutlamak ve maksimum ölçüde otomatikleştirmektir” diyor.

Extreme Networks’ün Avrupa, Orta Doğu ve Afrika (EMEA) CTO’su Markus Nispel, gerekliliği kullanıcıların, cihazların ve uygulamaların “sonsuz” dağıtımı için geliştirmeye odaklanma olarak özetliyor – ya da en azından Extreme’nin baktığı yol bu bugün olan şeyler.

Kendisi de aynı fikirde: “Bulut uygulamasının, bu uygulamaları kullanmak isteyenlere göre konumunun akılda tutulması gerekiyor.”

Nispel, tüm BT’yi kapsayan bulut tabanlı bir paradigma aracılığıyla yönetilen, ağlar genelinde uygulama performansı optimizasyonuna olan ihtiyacın altını çiziyor: bulut uygulamaları yapbozun sadece parçalarıdır. Bunun ötesinde, ilk günden itibaren kalite, otomasyon ve güvenlik oluşturmaya odaklanmayla ilgilidir.

“Sorun şu ki, uygulamalar her zaman bu paradigmalar kullanılarak tasarlanmıyor, geliştirilmiyor ve konuşlandırılmıyor; çoğu zaman eski uygulamalar kaldırılıyor, buluta taşınıyor ve tam olarak modernize edilmiyor” diyor.



Source link