Hosting Firmalarının Yatay Büyümesi – Oğuzhan Blog
Oğuzhan YILMAZ	in Web Hosting	| 01/01/2015
Ülkemizde Web Hosting sektörünün 10-15 yıllık bir geçmişi olmasına rağmen giderek büyüyerek ekonomik gelişim gösteriyor. Ne yazık ki dışa bağımlılık ile birlikte bu ekonominin %70’i yurt dışı firmalarına giderek sadece hizmetten ürettiğimiz ile yetiniyoruz fakat zaman içinde ortaya çıkacak olan yerel çözümlerle tersine döneceğine inanıyorum.
Web Hosting firmasının içinde bulunduğumuz ekonomide ayakta kalabilmesi için büyüme odaklı hareket etmesi zorunludur. Bunu yakalayan 3-4 yıllık firmalara baktığımızda Domain, Bandwidth, Donanım, Personel vb. kalemlerin her yıl %100 ile %300 civarında büyüme kaydettiğini görürüz.
Bu hızlı büyüme karşısında firmalar hizmet sunarken veya bir donanım satın alırken modülerliğine, genişleyebilmesine ve soyutlanabilmesine önem vermek zorundadır.
Web Hosting firmaları olabildiğince çevik hareket edebilecek kabiliyette yapılanmalıdır çünkü faaliyet gösterdiği zemin bazen günler içinde, bazen de saatler içinde değişiklik gösterebilir. (Bunu bir örneğini SSL’in Poodle açığında yaşadık. Günler içinde tüm sunucularda SSLv3 protokolünün kapatılması gerekti. Daha iyi örneklerde bulabiliriz zorlasak. ^_^)
Firmanın bu büyüme odaklı stratejiyi teknik açıdan planlayıp, işletmesi için bir Web Hosting Kontrol Panel yazılımına ihtiyacı vardır. Bu yazılım büyüme için öyle kritiktir ki firmanın iyi veya kötü olmasını, hizmet kalitesini ve büyüme hızını belirler.
Web Hosting firması kendi büyümesini, artan domain ve sunucu miktarını efektif şekilde yönetebilecek yazılımları tercih ederek kararlı ve hızlı bir şekilde büyüme sağlamayı hedeflemelidir. Bu bağlamda yatay genişlemeye olanak veren aynı zamanda merkezi yapılar kurabilmenizi sağlayan Kontrol Panel yazılımları tercih edilmesi önemlidir.
Bu stratejiye uygun olarak çalışabilen az sayıda yazılım vardı, bunlar Plesk Automation, Hosting Controller, WebSitePanel (Açık Kaynak), Atomia ve bizim geliştirdiğimiz MaestroPanel yazılımıdır. (Atladığım yazılımlar olabilir)
Hepsinin belirli avantajları ve dezavantajları olmasının yanı sıra MaestroPanel‘in ülkemizde geliştiriyor olmasından dolayı avantajı diğerlerine göre daha fazladır.
Günümüzde Bulut Bilişim kavramının ortaya atılmasından sonra geleneksel Web Hosting sistemleri yerini giderek ihtiyaca göre genişleyebilen ve kullandığın kadar öde (pay as you go) olarak ücretlendirilen sistemlere bıraktı.
Daha önceleri Web Hosting firması Windows ve Linux işletim sistemlerinde sunucuları ayrı ayrı hazırlar, üzerine varsa otomasyon yazılımını kurar ardından bir Verimerkezi’nde barındırarak bu hizmeti sunardı.
Firma büyüdükçe sunucuları artar, IP adresleri, Name Server isimleri ve barındırılan Domain’ler çoğalır, sonunda hangi müşterisinin hangi sunucuda bulunduğunu, müşterisine hangi Name Server’ı ve hangi sunucu adresini vereceğini bilemez, yönetemez hale gelirdi.
Bu durum hizmet kalitesine ve müşteri memnuniyetine direkt yansıdığından baskı sonucu firmanın çok radikal değişikliğe gitmesi kaçınılmaz olur bu aşamada da büyümesi yavaşlardı.
Günümüz de ise sanallaştırma (Virtualization) ile birlikte daha taşınabilir (Compact) ve çevik sistemlerin tasarlanması mümkün hale geldi. Ardından OpenStack, CloudStack gibi büyük sanal sunucu kümelerini yöneten yazılımlar ortaya çıkarak işleri daha da kolaylaştırdı. Bunların üzerine Ansible, Chef gibi yardımcı araçlarla tüm işlerimizi robotlara bırakır olduk. Hal böyle olunca Web Hosting Kontrol Panel seviyesinde işleri sunucu seviyesindeki gibi kolaylaştıran, yatay genişlemeyi sağlayan yazılımların önemi arttı.
Peki, genişleme odaklı bir Kontrol Panel hangi yeteneklere sahip olmalıdır?
Firmanızın müşterileri arttıkça hizmetin kararlı bir şekilde sunulması için neler gerekmektedir?
Bu sorulara çözüm olarak Kontrol Panel yazılımlarının getirdiği yaklaşım Dağıtık Mimari dediğimiz özelliktir.
Genişlemeyi kontrol altına alarak kararlı şekilde işletmek için Kontrol Panel’in dağıtık mimariyi destekliyor olması gerekir.
Dağıtık mimariden kasıt, birden çok sunucu üzerinde birden çok servis ve uygulama çalıştırma ortamı ile aynı anda çalışan, yöneten platform ve Lokasyon bağımsız bir sistem kastedilmektedir.
Yukarıda değindiğimiz kavramlar doğrultusunda sisteminizi tasarlarken göz önüne almanız gereken temel özellikler hemen hemen aşağıdaki gibidir;
1. Merkezi Kontrol Panel
Eğer yapabiliyorsanız hem Store tarafını hem de hizmet yönetimini tek bir sistemde birleştirin. Tüm müşterilerinizin tek bir adres üzerinden aynı panele girip hizmet satın alıp yönetmesi firmanız adına profesyonel ve güvenilir biz izlenim verecektir.
Kurumsal kimliğinizi Store’da daha güçlü sunacağınızdan müşteri sadakatini tetikler, teknik açıdan da esneklik kazandırır. Sağladığınız hizmetlerde diğer firmalardan farklılaşmanıza olanak verir. Çeviklik anlamında da sunucu ve kontrol panellerini soyutlamış olursunuz.
Store mantığının diğer bir avantajı da arka planda çalışan teknoloji, kontrol panel veya servis değişikliklerinden müşterilerin hiç etkilenmemesidir. Bu da hizmet kalitesini arttıran önemli bir meseledir.
2. Merkezi DNS
Hosting hizmetinde kullandığınız her bir sunucu için yeni bir çift Name Server tanımlamak berbat bir sisteme gidişin ilk adımlarıdır. Her müşterinize ayrı Name Server adresi vermek hem kafa karıştıracak hemde IP değişikliklerini çekilmez hale getirecektir ki IP’lerin değişme sıklığı fazladır.
DNS çok kaynak gerektirmeyen, hızlı çalışan ve yönetmesi kolay bir servis olduğundan merkezileştirme de ayrıca ele alınmasında bir sakınca yoktur.
Vakit kaybetmeden DNS sisteminizi merkezileştirmemiz büyüme hedeflerinize ulaşmayı daha çabuklaştıracaktır.
Buradaki amaç bakım maliyetlerini azaltmak ve NS karmaşasından kurtulmak olmalıdır.
DNS sisteminiz en az 2 sunucudan oluşması gerektiği gibi IP adreslerinin farklı subnet’lerde olması gerekir. Bu aşamada Kontrol Panel’in merkezi DNS desteğinin olmasına dikkat ediniz.
Diğer yandan hedeflediğiniz müşteri kitlesi kurumsal ve ciddi uptime oranları istiyorsa DNS’de AnyCast kurgusunu işletmeniz gelecek saldırılara daha dayanıklı olmanızı ve Uptime garantinizi tutturmanızı sağlayacaktır.
Merkezi yapıları hedeflerken kullanabileceğiniz güzel bir DNS yazılımı olarak PowerDNS‘i tavsiye ederim. ISC Bind‘in MySQL provider’ını kullanarak da güzel işler çıkarılabiliyor. DNS Zone’larını dosya üzerinde değilde MySQL gibi bir veritabanında tutmanız felaket senaryolarından daha çabuk kurtulmanızı sağlayan bir karar olacaktır.
3. Çoklu Sunucu Desteği
Müşteri sayınız ve sunucu sayınız zamanla doğru orantıda artacaktır o nedenle belirli bir müşteri sayısından sonra sunucularınızın hesabını kitabını, tanımlı olan IP’leri ve üzerindeki Domain’leri ilk başka hazırladığınız dandik Excel dosyaları ile takip edemeyeceksiniz.
Bu kargaşanın önüne geçebilmek için Kontrol Panelinizin birden fazla sunucuyu tek bir yerden yönetebilmesine önem vermeniz gerekir. Böylece hangi sunucuda hangi servislerin, Domain’lerin ve IP adreslerinin çalıştığını doğal olarak takip edebilecek ve sistemin bütününü yönetebileceksiniz.
Çoklu sunucunun diğer bir özelliği de platform (Linux, Windows) ve lokasyon (Farklı Verimerkezleri veya Subnet’ler) bağımsızlığının sağlanmasıdır. Bu özellik size sunduğunuz servislerin daha geniş kitleye hitap etmesine olanak verir.
Bu fazı eğer ön tarafta müşteriyi karşılayan bir Store tarafında da çözmeniz kolaydır.
4. Yeni Servislerin Entegrasyonu
Web Hosting firmasının mevcut sistemlerini sürekli daha iyi çalışır hale getirmeyi amaçlaması gerekir. Bu aşamada “çalışıyorsa elleme” mantığı sizi ortalama bir firma olarak kalmanızı sağlayacaktır.
Sizin göreviniz tipik bir Japon firması gibi KAIZEN uygulamak olmalıdır. Sürekli sisteminizi iyileştirmenin yollarını aramak bununla da yetinmeyip sunduğunuz hizmetlere paralel olarak katma değerli servisler üretip sisteminize entegre etmeniz müşterilerinize borcunuz.
Bu minvalde geliştirdiğiniz Müşteri Kontrol Paneli (Store) veya mevcut Web Hosting Kontrol Panel’i sağlayacağınız yeni servislere kolay bir şekilde entegre olabilmesi önemlidir. Özellikle Kontrol Panel seçiminde kendinizin genişletebileceği mimari özelliklere sahip bir yazılım seçmeniz avantajınıza olacaktır.
Genişleyebilen İdeal Yapı
Shared Web Hosting üzerine ideal bir yapının kalıplaştırılması bileşenlerin çalışması ve ağ yapılandırması kendi içinde onlarca birleşim (Kombinasyon) içerirken çok zor bir iş. Fakat önümüzdeki büyüyen firmaların yapılarını incelediğimizde karşımıza çıkan tiplerin ortalaması fikir vermesi açısından yeterli olur diye düşünüyorum.
MaestroPanel olarak birçok firma ile çalışıyoruz ve birçok yeni firmanın da Web Hosting sistemlerini kurguladık. Butik yapıları saymazsa genel doğruları kabaca tanımladığımız ideal yapı aşağıdaki şemaya benzer nitelikte ortaya çıkıyor.
Network, San/Nas ve Cluster sistemleri katıp karmaşıklaştırmak istemedim maksat kavramları üzerinden ilerlemek.
Müşteri Mağazası ve Hizmet Yönetimi (Store) alanı, müşterinin giriş yapıp profilini yönetebileceği, sunduğunuz hizmetleri satın alabileceği ve yönetebileceği web uygulamasından oluşuyor.
Bu alanı firma olarak kendi bünyenizde geliştirmenizin yanı sıra WHMCS, HostBill gibi hazır paket programlar üzerinden de geliştirebilirsiniz.
API Ara yüzleri katmanı, arka plandaki Kontrol Panel’i ile haberleşmenizi sağlayan bölümdür. Bu alanda Kontrol Panellerin API desteğinin kapsamı önem kazanır.
Kontrol Paneli size Web sitesindeki dosyanın yazma izninden tutun SQL veritabanı kullanıcısının haklarına kadar yönetebileceğiniz fonksiyonları sunmasını beklemelisiniz.
Bu katmanın diğer bir avantajı ise size Kontrol Panel bağımsızlığını sağlamasıdır. API katmanı soyutlama yaparak sunucuları sisteme dâhil etmenizi sağlayan kilit bir noktadır.
Hizmet Sunucuları alanı ise müşterilerinize sunduğunuz hizmetleri barındıran işletim sistemi, servis yazılımları veya posta sunucularından oluşan bir kümedir. Burada şuanda piyasada uygulanan iki tip yöntem vardır.
Birincisi, sunucuları rollere ayırıp her bir servisi ayrı sunucuda çalışmasını sağlayarak kararlılık (Stabilite) ve büyüme sağlamak;
Servisler pekiştirilmiş (Konsolide) şekilde yönetim eforunu oldukça düşüren bir yapı sunuyor.
İşletim sistemini servis tabanlı özelleştirip performans artışı sağlanabiliyor. Örneğin SQL rolündeki bir sunucuda IOPS yüksek olacağından buna göre bir donanım düzeni alabilirsiniz.
Sistem Yöneticisi için yedekleme ve bakımı daha kolay. Küçük küçük birçok servis yerine tek bir servisi tek hamlede yönetebilme avantajı yaratıyor.
Clustered yapılara daha kolay uyum sağlar.
Sunucu üzerinde yapılan değişiklikler diğer servisleri etkilemez.
Bu yapıyı en az 4 DNS’lerle beraber 6 sunucu ile kurgulamak zorundasınız o nedenle başlangıç maliyeti yüksek.
Her an büyük krizlere gebe bir ortama dönüşebilecek potansiyel barındırıyor. Servisler merkezi olduğundan fazla müşteriye hizmet veriyor. Krizler büyük çapta oluyor.
İşletim Sistemi için ayrılan kaynaklar toplam maliyete bakıldığında haddinden fazla.
Bakım ve Taşıma işlemleri sunucu sürekli yük altında olmasından dolayı zorlaşıyor.
Bu yapı örneğin bir firmanız var, servis sayıları belli, barındırılacak Domain sayıları belli bu senaryo için çok avantajlı fakat büyüme için ideal değil.
Yapı yumurtaları aynı sepete koyulmasına benzer bir durum oluşturuyor ve sepetlerin ağırlığının artması sonucu taşınabilirliğini zorlaştırıyor.
Boyutu belli sistemler için daha doğru bir yaklaşım fakat büyüme odaklı bir yapıda uzun vadede yönetim ve performans sıkıntılarına yol açacak bir yapı.
Tecrübelerimize dayanarak klasik manada hareket eden fakat tek bir Kontrol Panel ile yönetilen aşağıdaki yapı büyümeye daha yatkın bir yapı sunuyor.
Başlangıç maliyeti düşük 2 sunuculuk bir yapı ile hemen işletmeye alınabilir.
Tüm yumurtalar farklı sepetlerde böylece sorunlar küçük çapta yaşanıyor daha çabuk çözülebiliyor.
Servisler üzerindeki yük hafif. Taşınması ve yönetimi kolay, çevik bir yapı sunuyor.
Servislerin çoğalması ile birlikte yönetim ve bakım zorlukların yaşanabiliyor.
Servise özel bir sunucu yapılandırması yapamıyorsunuz. Buna bağlı olarak performansı arttırmanız zorlaşır.
Birden fazla rol aynı sunucu üzerinde çalışıyor. Birbirlerini çalışmasını etkileyebilecek senaryolar yaşanabiliyor.
Burada göreceğiniz gibi sunuculara rol atamalarından ziyade, her sunucuya birden fazla rol yükleniyor. Böylece tüm yumurtaları tüm sepetlere dağıtarak kararlılık (Stabilite) sorunlarının daha yerel etki göstermesi hedefleniyor.
Buradaki yapıyı kurgulamanız için Kontrol Panel’inizin bunu destekler nitelikte olması şart (Örneğin MaestroPanel’i tamamen bu yapıyı yönetmesi için geliştirdik).
Bu yaklaşımları tamamen klasik Web Hosting bileşenlerinin (Apache, IIS, MySQL, MSSQL, Bind) standart yapılandırma ile tasarladım. Ayrıca Cluster yapılar, Yük Dengeleme (Load Balance) ve Hight Availability özellikleri ekleyip son derece profesyonel sistemler kurgulayabilirsiniz. Fazla karmaşıklaşmaması açısından kabaca değinmeye çalıştım.
Kontrol Panel seviyesine dönecek olursak;
Bu sistemler işletebilmek için merkezi yapıları destekleyen, birden fazla sunucu üzerinde çalışabilen, platform ve lokasyon bağımsız yapılar kurmanıza olanak veren bir Web Hosting Kontrol Panel’e ihtiyacınız var.
Bunun için yukarıda saydığımız dünyadaki kısıtlı sayıdaki alternatiflerin yanı sıra ülkemizde geliştirdiğimiz MaestroPanel ile de rahatlıkla büyüme odaklı sistemler kurabilir, destek, danışmanlık hizmetlerinden etkili bir şekilde yararlanabilirsiniz.
Gelecekteki Yapılar Nasıl Olacak?
Buraya kadar anlattıklarımız Virtual Host mantığında klasik Paylaşımlı Web Hosting çalışma prensibine dayanan sistemlerdi. Bu sistemler birbirinden yapılandırma bazında izole edilmiş kimi zaman farklı sunucularda çalışan hizmetler olarak karşımıza çıktı. Fakat özellikle 2015 itibarı ile uygulama sanallaştırma diğer bir değişle Application Container daha da ön plana çıkarak Container mantığında hareket eden bir yaklaşım benimsenmeye başladı.
Uygulamalar çalışma ortamlarında giderek daha özgür olacakları alanlara göre tasarlanmaya başladı, bu uygulamaları kullanan müşteriler de uygulamaların çalışması için izole ve herhangi bir kısıtlamayla karşılaşmayacakları ortamlar istediler.
Sektör buna ilk etapta VDS ya da Cloud Server denen sanal işletim sistemleri ile karşılık verdi fakat yönetim, güvenlik ve bakım maliyetlerinden dolayı geniş bir kitle yine Shared Web Hosting’de kaldı. Bir uygulamanın çalıştırılması için de koca bir işletim sisteminin kurulup aktif edilmesi pahalı gelmeye başladı.
Bunun üzerine eski dostumuz Container (Linux Containers) karşımıza Docker’ın inovatif yaklaşımı ile yeniden gündeme geldi ve yeni bir barındırma hizmetine ışık yaktılar. Container Hosting!
Bu yapılar müşteriye sunucu üzerinde çalışan sanal ve izole bir çalışma ortamı sağlayarak PHP, Ruby, .NET ortamlarında daha fazla özgürlük tanıyor. Tabi sizin belirlediğiniz çerçevede. Tam istediğimiz gibi.
Yakın zamanda mevcut Kontrol Panellerde bu değişime ayak uydurarak sunucu üzerinde host edilen Container sistemlerini yöneten yapılar sunacaktır. Bu aşamada Web Hosting firması bu değişime şimdiden ayak uydurarak Linux Containers, Windows Containers, Application Virtualization gibi kavramların ve Docker, Rocket gibi sistemlerin üzerine yoğunlaşarak geleceğe erkenden adapte olamaya çalışarak farklılaşabilir. Değişim başladı.