| Üye olun RSS

Cloud Hakkında

Eylül 28th, 2010 | 5 Comments | Posted in Internet, Linux, Mobile, sanal makina, web

Akıllı telefonlar, Web 2.0 ve sosyal ağ kültürü bir çok mobil ve web projesini hayatımıza soktu. Bu projelerin büyük kısmı hayatta kalamazken bazıları müthiş gelişim gösterdiler.

Gelişim gösterebilen projelerden birine sahip olabilmek heyecanı, yeni girişimcilerin sürekli yeni projelerle karşımıza çıkmasına neden oluyor. Bu kadar projeyle karşı karşıya gelince insanın aklına şu soru takılıyor: tutmama ve yaygınlaşmama gibi çok yüksek oranlı risklerin olmasına rağmen bu yatırımlar nasıl yapılabiliyor?

Elbette her proje yarın milyonlarca kullanıcısı olacakmış gibi yatırımlarla ortaya çıkmıyor, burada anahtar kelime ölçeklenebilirlik. Eğer ölçeklenebilir bir donanım ve yazılım mimarına sahipseniz küçük bir yatırımla sistemi çalıştırır ve gerektiğinde büyüterek devam edersiniz. Eğer projeniz büyümüyorsa sadece küçük bir yatırımı kaybetmiş olursunuz. Bu durumda, projenizle ortaya koyduğunuz fikir, sunduğunuz özellikler, karşıladığınız ihtiyaçlar kadar sistemi nasıl tasarladığınız da çok kritik bir öneme sahip oluyor.

Ne zaman ve ne kadar hızlı büyüyebileceğini kestirmesi zor, alt yapı yatırımını sadece gerektiğinde yapabilmek için tasarladığımız projelerde ya da anlık yüksek kaynak gerektiren işlerde ilk akla gelen artık cloud hizmetlerinden faydalanmak oluyor. Cloud çözümleri ile en mantıklı(verimli) yatırımları yapabiliyorsunuz, kaynakların kullandığınız kadarını ödüyorsunuz.

Cloud hizmetleri uzun süredir hayatımızda büyük rol oynuyor. Takip edenler bilir, hem hizmet alan hem de hizmet veren olarak son zamanlarda büyük gelişim içinde olduğunu gözlemliyoruz.

Hizmet alanlar makina, network, storage yatırımı yapmadan projelerini çalıştırabiliyor ve kullandıkları kadar ödüyorlar.

Hizmet verenler ise ellerinde büyük fiziksel makina parkını, küçük parçalara bölüp operasyonel işleri otomatikleştirerek en verimli şekilde kullanmanın yolunu bulmuş durumdalar.

Bu modelde özetle “kazan kazan” anlayışı hakim. Bu anlayışın olduğu her yerde başarı neredeyse kaçınılmaz oluyor.

Geocities ile başlayan ve 12-13 yıldır süregelen kişisel web sitelerim için sadık bir hosting müşterisiyim. Bu süre içerisinde yerli yabancı bir çok hosting firmasından amatör olarak hizmet aldım. Shared serverlardan aldığım dandik(ucuz) hizmetlerden tutun colocation ve vps’lere kadar geniş bir yelpazede deneyimlerim oldu.

Benim cloud ile tanışmam ise bir hobi projesinin sunucu tarafını host edeceğim bir yer ararken, Google’ın AppEngine hizmetine java desteği sağlamasıyla oldu. Google AppEngine bir cloud hizmeti ve belli limitler altında tamamen ücretsiz. Android için geliştirdiğim aScore programının sunucu tarafı 2 senedir Google’a emanet ve bugüne kadar tık demedi :)

Google, AppEngine hizmeti ile geliştiricilere bir platform sunuyor. Geliştiriciler bu platforma uygulamalarını koyuyorlar ve cloud’ta host edilmesini sağlıyor. Network, disk, cpu, memory gibi altyapı birimleri developerlardan tamamen izole edilmiş durumda. Bu tip cloud hizmetlerine Platform as a service (PaaS) adı verilmiş.

Bir çoğumuzun günlük hayatta sıkça kullandığı cloud hizmetleri de var. Mesela gmail,flickr,dropbox vb. Bu tip verisi internette olan web uygulaması tipindeki hizmetlere de Software as a service (SaaS) adı verilmiş.

Amazon’un da cloud hizmetleri var, bu hizmetler yukarıda bahsettiğim PaaS ve SaaS’tan biraz daha farklı, çünkü bu hizmetlerle size, storage, network altyapısı ve makina sağlanabiliyor. Tüm bu alt yapıyı kendiniz konfigüre ediyor ve kullanıyorsunuz. Amazon’un verdiği bu alt yapı sunma hizmetlerine de Infrastructure as a service (IaaS) adı verilmiş.

Cloud ile ilgili bir çok bilgi ve kavramı wikipedia’da da bulabilirsiniz. Ben bu bölümde biraz Amazon cloud hizmeti deneyimlerimden bahsetmek istiyorum.

Amazon verdiği cloud hizmetlerini Amazon Web Services (AWS) adı altında bir araya toplamış. Bunlardan üzerinde en çok uğraştığım Elastic Compute Cloud (EC2) hizmeti oldu. Bu hizmet ile XEN sanallaştırma ortamı kullanılarak müşterilere değişik konfigürasyonlarda sanal makinalar veriyorlar. Verdikleri makinalarda hazır bir Linux dağıtımı veya Windows işletim sistemi olabiliyor. Burada tercih bize kalıyor.

Amazon’un sunduğu cloud hizmetlerinden, web üzerinde bir yönetim konsoluyla (AWS Management Console) ihtiyaç duyduğunuz bir çok işlem yapılabiliyor. Ayrıca hazırladıkları web service’leri kullanarak her türlü işlem gerçekleştirilebiliyor. WEB servislerini kullanarak bazı işlemleri otomatize etmek ya da farklı yönetim uygulamaları da yapmamız mümkün, mesela iPhone için yapılan iAWS ve bir Firefox plugini olan ElasticFox oldukça başarılı örnekler. Cloudfoundry ise Amazon’un IaaS hizmetini Google AppEngine’e benzer bir Paas’a çevirebiliyor, tabiki arka tarafta Amazon Web Servislerini kullanarak…

AWS Management Console

EC2′ya geri dönersek,
Bir EC2 sunucusuna sahip olmak için ilk olarak Amazon Machine Image (AMI) adı verilen image’lardan birini tercih etmemiz gerekiyor.
Image’ların arasında Amazon’un sunduğu Quick Start AMI’ları kullanarak hızlıca bir sunucu oluşturabiliyoruz.
Aynı zamanda herkes kendi AMI’ını hazırlayıp istediği zaman bunu kullanıp sunucu oluşturabiliyor. Mesela bir Centos dağıtımı üzerine apache,mysql,php kurup bu sunucudan bir image oluşturabiliyor aynı zamanda public kullanıma açabiliyoruz.
Sunucu yazılımı geliştiren firmaların da kendi ürünlerini kurup konfigüre ettiği ve resmi olarak sunduğu AMI’lar da var. Mesela Oracle ile birlikte hazırlanmış, üzerinde Oracle DB kurulmuş ve konfigüre edilmiş AMI’ları kullanabiliyoruz. Wowza Media Server kurulu AMI’lar da buna örnek verilebilir.
Son olarak Ubuntu gibi belli bir topluluk olarak, EC2 üzerinde çalışması için resmi olarak hazırlanan AMI’lar da var.

Kısacası, bir hayli alternatifimiz olan bu listeden, ihtiyaç duyduğumuz işletim sistemi ve servislerle ilgili en uygun AMI’yı seçerek sunucumuzu oluşturmamız gerekiyor. Seçimimizi yaparken dikkat edilecek bazı konular var, bunlarla ilgili bir kaç önerim olacak:

İşletim Sistemi

AMI seçerken genelde açıklama bölümünde sunucunun çalıştığı işletim sistemi de belirtilir. Bazı AMI’lara ihtiyaca göre özellikler eklenmiştir, eğer web’de o image’ın oluşturulma amacıyla ilgili güvenilir bir sayfa veya dökümandan referans almadıysanız uzak durun derim. Çünkü gerçekten doğru optimize edilmemiş ya da gerçekten ihtiyazcınızın ötesinde konfigüre edilmiş olabilir. Burda önerim, Ubuntu’nun resmi sitesinde belirttiği ya da Amazon Linux işletim sistemli AMI’lardan birini kullanarak kendi ihtiyacınıza göre sunucu yazılımları kurmak olacaktır.
Özellikle Amazon Linux AMI’ları gerçekten yüksek performansa ve güvenlik önlemlerine sahip. Ubuntu ve Amazon Linux’u aynı iş için denedim ve gerçekten hissedilir bir fark gözlemledim.
Denenemelere hızlı bir giriş için Amazon’un hazırladağı Quick Start AMI’larını da kullanabilirsiniz.

Architecture (32/64 bit)

Bir sunucu oluşturuken karar vermeniz gereken konulardan biri de sanal makinanın donanım olarak nasıl bir konfigürasyona sahip olacağıdır. Size micro instance adı verilen 613 MB hafızaya sahip bir konfigürasyondan, 68 GB hafızaya veya 33.5 ECU (1 ECU = 1 GHz 2007 Xeon işlemci) ‘ya sahip konfigürasyona kadar geniş bir seçenek listesi sunuyor.
Eğer small veya medium sunucular istiyorsanız AMI’yı 32 bit architecture seçmelisiniz. Daha büyük sunucular için ise 64 bit AMI’ları tercih etmelisiniz. AMI açıklamalarında 32/64 bit platform bilgisi muhakkak belirtilmiştir.

Root Store

İlk defa EC2 ile haşır neşir olduğunuzda Root Source tercihinin temel avantaj/dezavantajalarından pek haberdar olunamıyor. AMI seçerken iki farklı tipte Root Store seçeneği göreceksiniz.

EBS: Bu AMI ile oluşturduğunuz sunucularda, yönetim kosolundan istediğiniz anda yeni bir AMI oluşturabiliyorsunuz. Bu özellik sunucu sayısını arttırarak ölçeklenebilen sistemler için çok önemli. Gerekli kurulumları, ayarları yapıp hizmet verir duruma getirdiğiniz bir sunucudan yeni bir private AMI oluşturup gerektiğinde bu AMI’yı kullanarak sunucu sayınızı arttırabilirsiniz.
EBS Boot’un bir başka avantajı ise düşük ve ucuz donanım konfigürasyonlu Micro Instance adı verilen sunuculardan oluşturabilmeniz.
Instance: Pek bir avantajını bulamadım. Sadece bu daha eski bir yöntem olduğu için daha çok public AMI bulma şansınız var.

Region

Amazon sunucularınızı, Avrupa,Amerika veya Asya’da farklı merkezlerde oluşturma imkanı veriyor. Eğer siz Avrupa lokasyonlu bir sunucuya sahip olmak istiyorsanız AMI’ın bu lokasyon için oluşturulmuş olması gerekiyor.

Artık istediğiniz gibi bir sunucu oluşturabilirsiniz. Sunucularınızı çoğaltmak, onlara birer IP set etmek, önlerine bir load balancer koymak, firewall tanımlarını yapmak gibi konular yine AWS Management Console’dan dakikalar mertebesinde yapılabilen işlemler.

Bir iPhone incelemesi

Aralık 4th, 2007 | 17 Comments | Posted in Mobile, cep

iPhone, Apple tarafından ilk duyurulduğunda teknoloji dünyasında büyük bir gürültü kopmuştu. İkinci bir gürültü ise Amerika’da ilk pazara çıktığı zamanlarda yaşandı. İlk gürültüde telefona bakış açısında radikal bir değişimin heyecanı yaşandı, teknolojide birden bire 10 sene atlama yapılmış gibi hisetti herkes. Ürün piyasaya çıktıktan sonra ise müthiş bir hayal kırıklığı yaşandı aynı heyecanlı grup tarafından. Herkes sayfalarca iPhone‘un neler yapamadığından bahsetti durdu…

Bir kaç hafta önce ben de bir iPhone edindim, hemen hergün bir şeyler keşfetmeyle geçti. iPhone hakkında en temel izlenimim şu oldu: O aslında çok noktadan dokunma algılayabilen ekranı ile ve sadece parmak dokunuşları ile kullanılabilmek üzere tasarlanmış. Ayrıca bir internet cihazı olması hedeflenmiş ki yüksek çözünürlükteki bir ekran ve gelişmiş bir internet tarayıcısı içermiş. Ekran geçişlerinde yumuşak efektler, inanılmaz canlı renkler, hızlı ve artistik kullanım için ne gerekiyorsa yapılmış. Peki tüm bunlar için ne gerekmiş? Öncelikle 400 MHz hızında bir işlemci gerekmiş, hatırlar mısınız? bir zamanlar pentium 100 bilgisayarlar vardı, o pentium yazısının yanındaki 100 rakamı işlemcinin 100 MHz olduğunu gösterirdi, yani dört tane pentium 100 işlemcisi hızında bu küçük iPhone. Başka ne gerekmiş? İstedikleri internet tarayıcısı, ekran animasyonları, müzik çalma, fotoğraf çekme ve işleme programları için yep yeni bir paltformda programlar yazmak yerine bildikleri bir işletim sistemini kullanmışlar, Apple’ın meşhur OS X işletim sistemini. Yani Apple, şık ve artistik kullanım için bir telefon maskesinin arkasına gizleyerek küçük bir bilgisayar sürmüş piyasaya.

Eğer Apple yapmak istediği telefonu, elindeki işletim sistemi ve diğer elindeki kaynaklar üzerine inşaa etmek yerine, yep yeni kapalı bir sistem üzerine kurmayı deneseydi sanırım bu yazı bu civarlarda biterdi. Bundan sonra yazacaklarım açık dünyanın (ve karanlık dünyanın) bir araya gelip aletin üzerindeki telefon maskesini düşürmüş olması sayesindedir.

Normalde üzerine 3. parti yazılımların kurulması planlanmamış olan iPhone‘un, bu zırhını bu linke girerek kaldırabiliyorsunuz. iPhone‘nun tarayıcısını kullanarak girebileceğiniz bu site telefonunuza ücretsiz bir installer programı ekleyebiliyor, bu program sayesinde yine ücretsiz bir çok programın kurulmasını sağlayabiliyor. Bundan sonrası da çorap söküğü gibi geliyor.


.:Installer:.

Artık bir okyonusa doğru yelken açma zamanı geldi:

BSD Subsytem:

Installer’ın uygulamalar deposunda bularak kurabileceğiniz bu uygulama telefonunuzu unix eklentileri ile donatıyor.

OpenSSH:

Telefonunuzu hemen hemen tüm Unix ve Linux işletim sistemlerinde kullanılan bu uygulamayla, güvenli bir iletişim sunucusu haline getirebiliyorsunuz, sadece Itunes programı ile erişebildiğiniz iPhone‘nunuz artık bir ssh istemcisi ile komut satırından erişilebiliyor. OpenSSH ile bütün dosya sistemini yönetecebileceğiniz bir kapı açmış oluyorsunuz. OpenSSH aynı zamanda telefonunuza bir ssh istemcisi kurulmasını da sağlıyor. OpenSSH kurulumundan önce BSD Subsytem kurmalısınız.

Term-vt100:

Artık iPhone‘unuz üzerinden terminal ekranı açabilirsiniz, bu teminal ekranı ile telefonunuzdan uzak makinaların komut satırına erişiminiz mümkün, tabi BSD Subsytem ve OpenSSH kurulumundan sonra bu işlemi yapabiliyorsunuz.

ncFtp:

Yine bir çok linux ve unix makinada kullanılabilen bu uygulama sayesinde terminal ekranından istediğiniz ftp sunucularına erişebilmeniz mümkün. Bunun için de önceden BSD Subsytem,OpenSSH ve Term-vt100 kurulmuş olması gerekli.

VNCSea:

iPhone‘nuz ile VNCServer kurulu herhangi bir unix,linux veya windows makinanın masaüstüne erişebilir bu uzak makinaları grafik ortamda yönetebilirsiniz.

Navizone:

Bu enterasan programla Navizone‘da oluşturduğunuz bir hesapla Google Maps üzerinde yerinizi görebilirsiniz. Bunun için bir gps alıcısına ihtiyaç duymuyor olmanız enterasan, bağlantı kurduğunuz kablosuz internet veya Edge hücre bilgisinden koordinatlarınızı tespit etmeye çalışıyor, pek başarılı değil ama yaklaşık olarak da olsa bir sonuç dönebiliyor.

Finder:

Telefonunuz üzerinde standart haliyle herhangi bir dosya yöneticisi bulunmamaktadır. Bu eksiği Finder ile kapatabilirsiniz, telefonunuz ücra köşelerinde mp3′lerinizi fotoğraflarınız hatta system dosyalarını bulabilir, kendinize güveniyorsanız müdahalelerde bulunabilirsiniz. Bunlardan herhangi birini email ile bir yerlere gönderebilirsiniz. Ayrıca fotoğraflarınız orjinal boyutu ile göndermenizin başka yolu bulunmuyor.

iflickr:

Eğer bir flickr hesabınız varsa çektiğiniz fotoğrafları anında flickr‘a yüklenmesini sağlıyorsunuz.

Vnote:

Telefonunuzda herhangi bir ses kayıt programı olmadığını farkedeceksiniz, artık var, hatta sesli email göndermenizi bile sağlaycak bu uygulama.

Apollo:

AIM,ICQ ve MSN Mesenger için bir uygulama.

Customize:

Telefonunuzda ikonların yerleri sabit öyle değil mi? Artık istediğiniz gibi değiştirebilirsiniz, parmağınızla sürükleyerek. Ayrıca bu program ile iPhone’un standart görsellerini ve sistem seslerini değiştirebiliyorsunuz.

SMSFix:

Garanti, YKB, Google gibi servislerden gelem SMS’lerin düzgün görünmediğinden şikayetçi iseniz bu sorunu bu programla çözebiliyorsunuz.

Screenshot:

Eğer benim gibi iPhone‘nuzdaki ekran görüntülerini paylaşmak isterseniz bu uygulama size yardımzı olacak.

Başka kurduğum kaldırdığım bir çok irili ufaklı oyun, program oldu. Belki bir başka iPhone yazımda onları da paylaşırım.

Sonuç olarak görülüyor ki bir cep telefonundan çok mobil bir pc’yi andıran bu cihaz, gördüğü ilgi ile önümüzdeki yıllarda farklı bir akımın doğmasına neden olacak.
Eskiden ilk internet deneyimlerimiz evimizdeki bilgisayardan ihtiyaç duydukça bağlantı kurup işimiz bitince bağlantıyı kesmek alışkanlığını içeriyordu, oysa şimdi internetlerimiz sürekli açık hatta sokaklarda ve kafelerde serbest internet sağlayıcılar bulmak çok normal. Bu durum cebimizdeki telefonlar için de aynı yöne doğru bir gelişim gösteriyor, iPhone siz kapatmak istemediğiniz sürece sürekli etraftaki kablosuz internet servislerini tarayıp bulamazasa ve gerekliyse Edge ile internete girmeye çalışan bir telefon.
Dikkat çekici bir başka konu ise bu tip cihazlara uygulamalar yazmak için hazırolda bekleyen müthiş bir kalabalığın varlığı. Öyle ki dışarıdan program yüklemeye kapatılmış olan bir cihaza bile bu kalabalık bir yolunu bulup programlar yazıp yükleyebiliyor. Sanırım şunu ön görmek çok zor değil: Özellikle linux tabanlı açık platform telefonlar piyasada yaygınlaşınca artık bilgisayarlarımızı ceplerimizde taşıyor olacağız.

iPhone tanıtımlarında standartlaşmış olan iPhone’daki eksiklikler bölümüne gelirsek aklımda kalanlar şunlar:

Donanımsal eksiklikler:

  • 3G desteği yok.
  • Java desteği yok.
  • GPS yok.
  • Radyo yok.
  • Bluetooth sınırlı.
  • Kamerasında analog yakınlaştırma yeteneği yok.
  • Kamera (sadece) 2 mega pixel.

Yazılımsal eksiklikler:

  • Tarayıcısında flash ve java desteği yok.
  • İstediğiniz MP3′ü zil sesi yapamıyorsunuz. (Aslında bu eksiklik değil bir strateji: isterseniz zil sesi satın alıp kullanabiliyorsunuz.)
  • MMS desteği yok.
  • Kamerasında digital yakınlaştırma yeteneği yok.
  • Kamera ile video kaydı yapma olanağı yok.
  • Ses kaydetme yeteneği yok.

Opera Mini 4 Beta

Temmuz 11th, 2007 | 2 Comments | Posted in Mobile, browser, cep, java, opera


Cep telefonlarının web tarayıcılarını oldum olası kullanışlı bulmamışımdır. Tarayıcıların kısıtlı yetenekleri, telefonların küçük ekran ve çözünürlük handikaplarıyla birleşince internet çekilmez bir hal alıyor. Cep telefonuyla internet keyfinin bir yolu var: Opera Mini, cep telefonları için geliştirilmiş java tabanlı bir web tarayıcıdır.
Daha önce Opera Mini 1.0 ve 2.0 sürümleri için 2 tane blog yazmıştım:


3.0 sürümü çıktığında tekrar bir blog yazmaya gerek görmemiştim ancak 4.0 beta sürümü gerçekten etkileyici ve bu defa bir demo videosu hazırlayarak Google Video‘ya yükledim:




Opera Mini‘nin kararlı sürümünü telefonunuzun standart wap/web tarayıcısından aşağıdaki adrese giderek yükleyebilirsiniz:
http://mini.opera.com

Opera Mini‘nin 4.0 beta sürümünü denemek istiyorsanız telefonunuzun standart wap/web tarayıcısından aşağıdaki adrese gitmeniz gerekiyor:
http://mini.opera.com/beta

Çalışma mantığı:
Görmek istediğiniz web siteleri önce Opera’nın sunucularında oluşturuluyor sonra telefonunuza gönderiliyor, gönderilen içerik telefonunuza göre küçültülmüş olduğu için indirilen veri orjinal sayfa boyutlarının çok daha altında oluyor.

Notlar:

  • Opera Mini 3.x’deki RSS okuyucuyu 4.0 beta sürümünde göremedim.
  • Gmail tarayıcıyı tanıyamadığı için temel html görünümü ile kullanılabiliyor.
  • Google reader çalışmıyor.
  • position:absolute olan bazı layer’ların gösteriminde hatalar yapabiliyor.