Ana içeriğe atla

Girişimlerin ve Küçük Yazılım Şirketlerinin Sunucu İle İmtihanı

Bir yazılım ürününün en büyük gider kalemlerinden olan sunucu ve servis masrafları ile ilgili tatsız gerçekleri duymaya hazır mısınız? O zaman ileri, ileri, kabul et, ileri, son!



Sunucu ihtiyacınızı bulut sistemleri, dedicated, VPS, fiziksel sunucular gibi çözümlerle karşılayabilirsiniz. Bu kadar çok seçenek olmasının yanında bol bol reklam ve şehir efsaneleriyle bilgi bombardımanına tutulan biz yazılımcılar hangi seçeneğin bizim için en uygun olduğu konusunda kararsız kalıyoruz. Karar versek bile içimizde hangisinin daha iyi olduğuna dair bir arayış devam ediyor, acaba soruları kafamızın içinde sürekli dönüyor.

Diyelim ki bir yazılım ürününü ele avuca gelecek şekilde (MVP minimum viable product) geliştirdiniz. Belli bir kullanıcı kitleniz de oluştu. Paylaşımlı sunucu barındırma (shared hosting) hizmeti ile belli bir yere kadar uygulamanız sorunsuz çalışıyor. Ancak kullanıcılarınıza daha kaliteli bir kullanım deneyimi yaşatmak ve kesintisiz bir hizmet sunmak istiyorsanız artık kendi sunucularınıza (evet çoğul kelime) geçme zamanı geldi demektir.

Benim zaten çok kullanıcım yok, sunuculara verebileceğim çok param da yok, kullandığım kadar ödeyeyim, ihtiyacım olduğunda makine açarım ihtiyacım yoksa kapatırım diyorsanız bulut dünyasına hoş geldiniz. AWS, Azure, Google Cloud, Digital Ocean, VULTR, Paperspace gibi birçok seçenek karşınızda. Bu tür bulut sağlayıcıları kullanmak hızlı bir şekilde ürün geliştirmeye yardımcı oluyor. Kullanıcı karşısına çıkma süreniz kısalıyor. Şimdi gelelim dezavantajlarına:
  • Küçük sayıda isteklerde maliyet çok küçükken (ya da yokken) yüksek trafikte maliyetin katlanarak artması.
  • Döviz kuru dalgalanmaları nedeniyle maliyetin de dalgalanması (genelde yükselmesi)
  • Ani fiyat artışları olabilir. E-postanıza gelen “biz fiyatlarımızı yükselttik” bilgilendirmesini okurken boncuk boncuk terleyebilirsiniz. Benim kullandığım bir hizmetin fiyatı 3 (yazıyla üç) kat birden artmıştı.
  • Bu tür bulut sağlayıcıların Türkiye’de hizmet noktaları olmadığı için ağ gecikmesi (lag) yaşanabiliyor. Hizmet aldığınız yer ile Türkiye’deki bir sisteminiz sürekli iletişim halinde ise bu gecikmeler nedeniyle sistem çalışamaz hale gelebiliyor. Örneğin veri tabanı AWS’de uygulama sunucusu ise Türkiye’de ise kullanıcı sayısı artmaya başladığında uygulamanız hissedilir seviyede yavaşlamaya başlıyor. Eğer iki mikro servis birbirinden uzaktalar ise kafa patlatarak tasarladığınız dağıtık mimari tasarımları hiçbir işe yaramayabiliyor.
  • Kodlar ve geliştirme ortamı platform bağımlı olabiliyor. Platforma has kodlar ve hizmetler projenizin içine işleyebiliyor.
  • Açıklanamayan kaynak tüketimi için ücret kesilmesi yaşanabiliyor. Aynı uygulama yerel bilgisayarda az işlemci tüketirken, bulutta yüksek işlemci tüketebiliyor. Örneğin yerelde oluşturduğunuz sanal bilgisayarda %2-%5 civarında işlemci kullanan bir job’ı aynı özelliklere sahip uzaktaki bir sanal bilgisayarda çalıştırdığınızda %20-%30 civarında işlemci tüketebiliyor. Veri tabanında aniden çalışan sorgu sayısı arttı diye alarm gelirken, durumu kontrol ettiğinizde veri tabanına fazla istek gelmediğini ama veri tabanının fazla kaynak tükettiğini görebiliyorsunuz. Bu durumlar nadiren de olsa oluyor.
  • Otomatik ölçeklemelerin gecikmeli olarak canlıya açılması ya da hiç açılmaması. Kullanıcı trafiği arttığında otomatik olarak ek sunucuların açılması için kurallar yazmış olmanıza rağmen trafik arttığında ölçeklemenin yapılmadığına zaman zaman rastlayabilirsiniz. Ölçekleme için yeni açılmaya çalışan sunucunun askıda kalıp bir türlü canlı duruma geçmediğini görebilirsiniz. Bel bağladığınız ölçekleme özelliğinin çalışmaması nedeniyle yaşanan kesinti yüzünden kullanıcılardan birçok şikâyet alıp kullanıcı kaybedebilirsiniz.
  • Kullanılan bir hizmetin 2-3 ay sonra kapatılacağına dair bir bilgilendirme alabilirsiniz. İhtiyacınızı çözen, geliştirme yapmak zorunda kalmadan kullandığınız bir servis veya API olduğunu düşünün. Zaten elinizde yeterli personel yokken, yapılacak işler sırada beklerken böyle bir haber aldığınızda neler hissedeceğinizi düşünün. Kullandığınız hizmet başka bir yerde yoksa kendiniz geliştirmek zorundasınız. Başka bir yerde varsa veri kaybı olmadan, kullanıcılara hizmet kesintisi yaşatmadan geçiş sürecini planlamak ve uygulamak zorundasınız.
  • Türkiye yurtdışı internet çıkışında yaşanabilecek sorunlar, mahkeme kararı ile IP ve domainlere yasaklama kararının çıkması, bulutun verdiği paylaşılan IP’lerin kara listede olması gibi sürpriz durumlarla karşılaşabilirsiniz.
  • Personel ve danışmanlık maliyetini de unutmamak lazım. Bulut sunucusunda projeyi yayınlayacak (DevOps) kişilerin maaş ve istekleri sizin için önemli bir maliyet olabilir. Bulut sunucusundaki bir servis için danışmanlık almak istediğinizde size gelen teklifteki rakamı gördüğünüzde işi gücü bırakıp danışmanlık yapsam acaba diye düşünebilirsiniz.

Gelelim Türkiye sınırları içerisinde sunucu kullanımı ile ilgili gerçeklere. Türkiye’deki bilindik sunucu firmaları düşük gecikme ve düşük maliyet sunsalar bile maalesef istenmeyen birçok özelliğe sahipler. Hepsinin ortak özelliği bir sorun olduğunda iletişim kurmanın zor hatta imkansız olması. Birisine ulaşsanız bile aldığınız cevap “bakıyoruz” oluyor. Nedense sürekli DDOS saldırısına uğruyor Türkiye’deki sunucu firmaları. DDOS saldırısı sabit menü, doğru mu söylüyorlar yalan mı söylüyorlar bilemiyorsunuz. En sevdiğim özellikleri ise habersiz planlı bakım yapmaları. Kesinti oluyor, arıyorsunuz ve aldığınız cevap planlı bakım yapıyoruz oluyor. Kesinti olduğunda size bilgilendirme yapılmıyor. Bu yüzden kesinlikle bir alarm sistemi kurmalısınız. Türkiye’de hiçbir fiziki altyapısı olmayan bazı sunucu firmaları, sahte sunucu ve cihaz resimleriyle süslüyor web sitelerini. Sorsanız şu kadar sunucuları var, bu kadar altyapı yatırımı yapmışlar.

Gürültücü komşular, Türkiye’deki sunucu firmalarının diğer bir sorunu. Yan sunucularda çalışan bir uygulama tüm internet trafiğini sömürebiliyor. Bu gibi durumlarda sunucu firmalarının önlem alması çok uzun sürebiliyor, neden böyle bir durum oluyor diye sorduğunuzda ise “olur bazen” cevabı alıyorsunuz.

Türkiye’de bazı sunucu firmaları zaten vermek zorunda oldukları bazı hizmetler için “danışmanlık ücreti” altında ilave ücret istiyorlar. Hem de dolar ile, hem de çok yüksek miktarlarda.

Bir gün aniden sunucularınıza erişimi kaybedebiliyorsunuz. Sunucu firmasına ulaştığınızda (ulaşabilirseniz ne mutlu) saldırı vardı portları kapattık sonrada sizin sunucunun portunu açmayı unutmuşuz gibi bir cevap alabilirsiniz.

Kurum/şirket içi (on premise) sunucu barındırma ise bir korku filmi hikâyesidir. Eğitime göndermezler, ikinci el donanım alırlar, danışmanlık satın almazlar. Güvenlikten sorumlu kişi en güncel anti-virüs kullanılsın, Windows-Java en güncel sürümde olsun ister. Satın almacı acil bir donanım ihtiyacı için 2-3 yerden teklif toplar, varsa çıkma donanım bulur onu verir size. Dosyalarını yanlışlıkla sildiğini iddia eden bir personel o çok önemli Excel dosyasının yedeklerden geri getirilmesi için başınızda bekler. Veri tabanın parolası birinde, Administrator parolası başka birinde, sanal makine yönetimi başka birindedir. Acil bir düzeltme yapmak istersiniz ama o da ne. Bunu yapmaya yetkili olan kişi toplantıdadır.

Sunucu ihtiyacı için doğru çözümü bulanlar bulamayanlara anlatsın. Her proje için ihtiyaç değişir diyorsanız o zaman hikâye yeniden baştan başlıyor.

(Bu yazıda bazı senaryoları ve teknik terimleri yazının basit kalması adına dillendirmedim.)

Yorumlar

Bu blogdaki popüler yayınlar

Bir Uluslararası Yazılım Şirketinin Batış Hikayesi

 Güzel başlamıştı hikaye. Yazılımcılar mutlu, kullanıcılar memnundu. Sonra pandemi başladı. Sorun para değildi. Olmayan şey huzurdu… Durdurun hype trenini, inecek var kırık kalpler durağında  — Photo by Kelly Sikkema on  Unsplash Gerçek olamayacak kadar güzeldi çalışma ortamı. Yazılımcılara istedikleri eğitim ve donanım alınıyordu, personel arası hiyerarşik bir yapı yoktu, sorumluluğun yanında yetki de veriliyordu, esnek çalışma saatleri yazılımcılara göre esnekti, izin isteyen hiç kimse geri çevrilmiyordu, pandemiden önce bile uzaktan çalışma vardı. Ne oldu bu şirkete? Nazar mı değdi? Şirketin yazılım ürünü Türkiye’de doğmuştu. Ürün birçok ülkede hem kamu tarafından hem de özel sektör tarafından kullanılıyordu. Yazılım geliştirme ekipleri hem Türkiye’de hem de diğer ülkelerde bulunuyordu. Yazılımın argesi için gelen geri bildirimlerin çoğu Türkiye’den geliyordu. Yazılımın kalbi Türkiye’de atıyordu.  Koronavirüs pandemisi nedeniyle Türkiye’de kamu kuruluşları hizmet alımı ile aldıklar

Uluslararası Yazılım Firmasında Çalışmak

Türkiye merkezli 5 ülkede ofisi olan 50’den fazla mühendisi bulunan ve müşterileri hariç 8 farklı milliyetten kişiler bulunan bir yazılım firmasında yaklaşık 11 aydır çalışmaktayım. Bu süreç boyunca hem çalıştığım şirkette hem de iletişimde bulunduğum diğer uluslararası şirketlerde gözlemlediğim noktaları paylaşmak istedim. Buradaki görüşlerim tamamen kişiseldir ve firmadan firmaya değişebilir. Eleştiriyi önce en günahsız olanınız yapsın! Photo by Kyle Glenn on Unsplash İşe giriş ve mülakat süreçleri zor. İş ilanlarını mantıklı ve açıklayıcı olarak açılıyorlar. Öyle her şeyden anlayan süper yazılımcı aramıyorlar. Şirketin ihtiyacını göz önüne alarak ve her yazılımcının şirkette kullanılan teknolojileri bilemeyeceğini göz önüne alınarak iş ilanını açılıyor. Özgeçmişimde yazan her kelime ile ilgili sorguya çekildim. Başvurduğum pozisyon için gereken yeteneklerle ilgili zor sorular soruldu. Nasıl yaptılar bilmiyorum ama şirket kültürüne uyumumu ve iletişim yeteneğimi de ölçmüşler. Açık

Kamuda Yazılımcı Ol(ma)mak

Yazılımcı olarak 8 yıl kamuda, 2 yıl özel sektörde çalıştım. Bir yandan da freelance olarak çalıştım. Yurtdışındaki firmalarla da güzel yurdumun esnafıyla da çalıştım. En garip manzara bence kamudaki yazılım manzarası. Şu anda bir kamu kurumu için geliştirilen yazılım projesini yönetiyorum. Girdiğim toplantılarda, aldığım e-postalarda, yaptığım telefon konuşmalarında eski kamu anılarım depreşti. Kağıtların arasında hayalleri yıkılmış bir yazılımcı bulabilirsiniz Kamuda çalışırken hem benim hem de arkadaşlarımın başına gelen olaylardan ve şu anda kamuda çalışmaya devam eden tanıdıklarımdan aldığım bilgilerle, kamudaki yazılım dünyasını size sanayi diliyle aktarmaya çalışacağım. Bu yazı şahsi görüşlerimi içerir. Yine de kamuda 8 yılın yeterince objektif bir bakış açısı sunacağını düşünüyorum. Kamuya yazılım projesi geliştirirken karşılaşabileceğiniz durumlar: Bir kamu kurumu ile görüşmeye başlamak için bağlantı gerekir. Kamu kurumuna “sizin şöyle bir ihtiyacınız var ben bunu çözen yazılı