Hiçbir şey, bir uygulamanın viral hale gelmesini izlemek gibi bir geliştirme ekibinin moralini yükseltemez. En azından aylık bulut faturası gelene kadar harika bir duygu. Bazı geliştiriciler, bilgi işlem maliyetini yönetmenin devops ekibinin sorumluluğu olduğuna inanıyor. Kodlayıcılar yazılımı yazar, duvara fırlatır ve başkasının bunun için ödeme yapma konusunda endişelenmesine izin verir. Hiçbir şey gerçeklerden daha uzak olamazdı.
Akıllı geliştiriciler, kodlama kararlarının şirketin kârlılığı için büyük bir fark yarattığını bilirler. Hacimli kod daha yavaştır ve çalışması için daha fazla bulut kaynağı gerektirir. Daha iyi algoritmalar seçmek ve daha sıkı kod yazmak hızdan daha fazlasıdır. İyi yazılmış kodun çalıştırılması daha az maliyetlidir.
Geliştiriciler her zaman bağlantıyı görmezler. Makine satın alındığında RAM ve ekstra disk alanı ödenmiş olan kendi makinenizde kod yazmak kolaydır. İki terabaytlık disk alanınız varsa, kodunuzun ne kadarını tükettiğini fark etmeyebilirsiniz. Yeni bir algoritmanın çalışması iki kat daha uzun sürerse, masaüstünüz yanıp sönmeyebilir ve ayrıca birkaç ekstra milisaniyeyi kim fark eder? Ancak hesaplamayı ikiye katlamanın daha büyük bir bulut faturasıyla sonuçlanacağı neredeyse kesin.
Modern bulut bilişim, kaynak kullanımını bir satır kalem ücretine dönüştürmede mükemmeldir. İyi bulut geliştiricileri, kodlarını yazarken daha akıllı kararlar verme gücüne sahip olduklarını bilirler. Yavaş noktaları belirlemek için bir profil oluşturucuyu çalıştırmak veya daha düşük bellek ayak izi için gereksiz veri depolamadan kaçınmak kadar basit olabilir.
İşte kodunuzu daha yalın, daha hızlı ve çalıştırması daha ucuz olacak şekilde düzene sokmanın 12 yolu.
Daha hızlı kod yazın
Çoğu geliştirici, kodlarını optimize etmek için fazla zaman harcamaz. Dizüstü bilgisayarlarında bir saniyede çalışıyorsa, zamanla %20, %30 veya hatta %300 daha yavaş çalıştığını fark etmezler. Program hala bölünmüş saniyeler içinde yanıt veriyor. Ancak bu farklılıklar, sunucuda milyonlarca kez meydana geldiklerinde toplanır. Dikkatli profil oluşturma, yavaş parçaları işaretleyebilir. Bunları yeniden yazmak, uygulamanızın ihtiyaç duyduğu örnek sayısını azaltabilir.
RAM ayak izinizi azaltın
Kullanılan RAM miktarı, bulut örneklerini fiyatlandırmak için önemli bir parametredir. Çoğu durumda, RAM’inizi iki katına çıkarmak, maliyeti de iki katına çıkarır. Programcılar, verileri bellekte tutmaktan kaçınarak RAM ayak izini azaltabilir. gibi bazı akış algoritmaları Java’nın Akış sınıfları, büyük veri dosyalarıyla hepsini belleğe yüklemeden çalışmak üzere tasarlanmıştır. bu Apache DataSketches projesi tüm belleği işgal etmeden karmaşık büyük veri istatistikleri için yaklaşık cevaplar üretir.
Bir yan fayda olarak, dikkatli RAM tüketimi de algoritmalarınızı hızlandırabilir. Bazen işletim sistemi, sanal belleği kullanarak verileri diske boşaltmaya başlar. Bu, çökmeyi önler, ancak programlarınızı önemli ölçüde yavaşlatabilir.
Daha düşük çözünürlüklü resimler ve videolar kullanın
Daha düşük çözünürlüklü görüntülerin ve videoların kullanılması birçok yönden fayda sağlayabilir. İlk olarak, onları depolamak daha ucuz olacaktır. İkincisi, herhangi bir veri hırsızlığı ücretleri daha düşük olacaktır. Üçüncüsü, uygulama kullanıcılara daha hızlı görünecektir.
Tüm statik görüntüler baştan simge durumuna küçültülmelidir. Ne yazık ki, minimizasyonun miktarı basit değil çünkü bir noktada görsel kalite kullanıcılar tarafından görülebilecek kadar düşüyor. Doğru ödünleşimi bulmak, bazı programcıların vermeye hazır olmadığı bir tasarım kararıdır.
Yüklenen görüntüleri kullanan bazı uygulamalar, görüntüyü aldıktan sonra daha küçük küçük resimler ve düşük çözünürlüklü sürümler de oluşturabilir. Araç setleri ImageMagik ve benzeri formatlar WebP bu amaçla geliştirildi.
Gereksiz verileri boşaltın
Pek çok geliştirici, bir gün ihtiyaç duymaları ihtimaline karşı bilgi depolayan dijital paket fareleridir. Tabloları sonsuz sütunlarla doldururlar ve ardından satırları asla silmezler. Donanıma sahipseniz ve disk sürücüsünde bol miktarda alan varsa, ekstra verilerin hiçbir maliyeti yoktur. Ama bulut her şey için ücret alıyor. Gelecekte tüm bu değerlere gerçekten ihtiyacınız olacak mı? Kullanıcı bu kadar çok ayrıntı mı istiyor? Bu eski verilerin bir kısmını boşaltmak, veri depolama ve sızma konusunda size para kazandıracaktır.
Disk depolama alanını sınırla
Bulut örneklerinde yerel diski kullanmak yalnızca tehlikeli olmakla kalmaz, aynı zamanda pahalı da olabilir. Yerel disk alanı genellikle işletim sisteminin verimli bir şekilde çalışmasını sağlamak için yeterince hızlı olacak şekilde tasarlanmıştır. Birçok geliştirici, kodlarını bir veya daha fazla terabayt depolama alanına sahip kişisel bir makinede oluşturur. Bulut makine depolaması nadiren bu kadar ucuzdur veya kolayca bulunur. Bulutlar genellikle depolama için boyuta göre doğrudan faturalandırılır, bu nedenle en iyi yaklaşım, mümkün olduğunca az depolama alanı kullanmaktır. Yalnızca uygulamanızın oluşturduğu geçici dosyaları değil, gerekli sistem kitaplıklarınızı ve yazılım paketlerinizi de en aza indirmenin yollarını düşünün.
Günlüklerinizi temizleyin
Günlük dosyaları, geliştirme sırasında sorunları belirlemek ve yazılımda hata ayıklamak için mükemmeldir. Ancak kod üretime girdikten sonra hepsini saklamanız gerekmez. Tüm ekstra bilgiler ya yerel diski ya da nesne deposunu tıkar. Günlük sistemini tasarlarken, günlükleri sık sık kaldıracak şekilde yapılandırın. Gibi birçok günlük paketi Log4j minimum sayıda günlük tutacak ve bunları sürekli olarak silecek şekilde ayarlanabilir.
sunucusuz git
Sunucusuz mimari planları, yalnızca kodunuz çalışırken faturalandırılır; bu, yükler kesintili olduğunda size çok şey kazandırabilir. Sürekli bir kullanıcı akışına sahip uygulamalar bile beklediğinizden daha fazla ölü zamana sahiptir.
Çoğu sunucusuz fiyatlandırma planı, minimum RAM tüketimi ile dikkatli kodlama ve çok hızlı performansı ödüllendirir. Fatura formülü, yanıt süresini milisaniye cinsinden sayar ve yalnızca işlemcinin meşgul olduğu süre için ücretlendirilir. Bir geliştirici olarak, yanıt süresini doğrudan izleyebileceğiniz ve kod değişikliklerinizin bunu nasıl etkilediğini görebileceğiniz için anında geri bildirim alırsınız.
Sunucusuz yaklaşım, daha küçük veya daha fazla deneysel projeler için idealdir ve fatura genellikle ayda birkaç sent kadar düşük olabilir. Uygulamanız bazı özellikleri yalnızca ara sıra çalıştırıyorsa sunucusuz duruma geçmek mantıklı olabilir.
Eski verileri arşivle
Veriler eskidikçe, daha az sıklıkla erişilir. Uygulamanızı eski verileri daha ucuz bir konuma taşıyacak şekilde ayarlayarak bunu tahmin edebilirsiniz. Bazı bulutlar, bitlerin teslim edilmesi dakikalar hatta saatler sürebilen “soğuk depolama” için çok daha az ücret alır. gibi diğer bulutlar wasabi veya geri tepme Amazon S3 nesneleri için arşiv depolama konusunda uzmanlaşın ve büyük bulutlardan önemli ölçüde daha az şarj edin. Bazı durumlarda, veri hırsızlığı için ücret bile almazlar. Artık yüksek talep olmadığında verileri boşaltmak son derece uygun maliyetli olabilir.
CSS mizanpajlarınızı basitleştirin
Bazı çerçeveler tarafından oluşturulan HTML etiketlerine baktıysanız, mizanpajların ne kadar saçma olabileceğini bilirsiniz. Yalnızca DIV etiketleri içine tamamen yerleştirilmiş DIV etiketleridir; bu da oluşturma ve teslim etme maliyetine mal olur. Tanıdığım bir web tasarımcısı, yalnızca CSS’yi daha mantıklı bir şekilde kullanarak daha basit bir düzen oluşturarak bant genişliği faturalarını %30 azaltmakla övünüyor.
Statik siteler oluşturun
React gibi bazı çerçeveler, özellikle sunucu tarafı oluşturma gibi özellikler kullanıyorlarsa, oldukça fazla hesaplama gücü gerektirir. Tüm bu kodlar aylık bulut faturasını yükseltir. Tersi felsefe, bir önbellek kelimesinden sunulan değişmeyen HTML, CSS ve JavaScript bloklarından oluşturulmuş statik bir site oluşturmaktır. Bir içerik dağıtım ağı kullanmak, önbelleklerinizi kullanıcıya yaklaştırarak teslimatı daha da hızlandırabilir.
Çeşitli çerçeveler bu statik felsefeyi benimser. Jekyll, Hugo, korkunçve Pelikan tüm içeriğinizi bir dizi kompakt, değişmeyen dosyada paketleyecek araçlardan yalnızca birkaçıdır. AJAX çağrılarıyla yine de sayfalarda kişiselleştirme oluşturabilirsiniz, ancak sitenin büyük kısmı sunucularda çok az yük oluşturur.
Hesaplamayı ve depolamayı dışsallaştırın
Tarayıcılar daha güçlü hale geldikçe, bazı çerçeveler daha fazla hesaplamayı doğrudan istemciye taşımayı kolaylaştırır. İyi JavaScript veya WebAssembly kodu, yükün daha fazlasını kullanıcının makinesine ve bulut sunucularınızın dışına itebilir. Bazı geliştiriciler, bulut katmanlarını, kimlik doğrulama için biraz iş mantığına sahip bir veritabanından biraz daha fazla olacak şekilde azaltıyorlar. Bir arkadaş, her şeyi statik HTML ve PostgreSQL’in JSON çıktısı veren gömülü prosedürlere sahip sunucu tarafı sürümüyle çalıştırır.
Tarayıcılar ayrıca bilgileri yerel olarak depolamak için daha ayrıntılı seçeneklere sahiptir. HTML Web Depolama standardı ve W3C Dizine Alınmış Veritabanı API’sı. Artık sadece kısa dizeler ve kurabiyeler değil. Bu veriler, internet üzerinden seyahat etmediği için daha hızlı kullanılabilir ve kullanıcılara, verilerinin merkezi, hacklenebilir bir veritabanında depolanmadığını bilmeleri konusunda biraz rahatlık verir. Bir kullanıcının makinesinde ücretsiz olarak yaşayabilecekken neden veri depolama ve sızma için para ödeyesiniz?
Bir maliyet mühendisi atayın
Bazı geliştiriciler veritabanlarıyla ilgilenme konusunda uzmanlaşmıştır. Bazıları iyi tasarlanmış bir ön uçla güzel ilk izlenimler yaratmayı sever. Artık bulut maliyetleri çok esnek olduğundan, bazı ekipler kod maliyetlerini ve verimliliğini yönetmek için resmi olarak “maliyet mühendisleri” atamaktadır. Bir maliyet mühendisinin ilk odak noktası, uygulama kodunun daha temiz, daha hızlı, daha hafif ve dolayısıyla daha ucuz çalışmasını sağlamaktır. Bu görevi birinin işinin bir parçası yapmak, geliştirme ekibinin rolü ve sorumluluğunun bir parçası olarak kod maliyetlerini yönetmenin önemi hakkında bir mesaj gönderir.
Telif Hakkı © 2022 IDG Communications, Inc.
Kaynak : https://www.infoworld.com/article/3661809/12-programming-tricks-to-cut-your-cloud-bill.html#tk.rss_all