Genel Teknoloji ve İnovasyon

Google App Engine Nedir, Avantajları Nelerdir?

08-GoogleAppEngineNedir

Web uygulamaları geliştirmenin yeni yolu: Google App Engine

Yıllar önce bir web uygulaması geliştirmek istediğinizde, ihtiyaçlarınıza yanıt verebilecek bir barındırma hizmetini satın almanız, kullanmasanız da seçtiğiniz hizmetin bedelini ödemeniz gerekirdi. Sunucusuz (serverless) altyapılar ise bu zorunluluğu ortadan kaldırdı. Bu da Google App Engine gibi web uygulaması geliştirmenin yeni bir yolunu sunan çözümleri beraberinde getirdi. 

Belki de bundan 10 yıl önce bir web uygulaması geliştirmek istediğinizde, ziyaretçi sayılarınızı ve ihtiyaç duyduğunuz kapasiteyi öngörmeniz, buna göre bir barındırma hizmeti satın almanız beklenirdi. Hosting (barındırma) servislerinden satın alacağınız alan ve işlem kapasitelerini kullansanız da kullanmasanız da belirlenen ödemeleri yapmanız gerekirdi.

Ardından kullanıma göre ölçeklenebilen sunucusuz (serverless) altyapılar ortaya çıktı. Sunucusuz altyapılar, web uygulamaları geliştirmek isteyenler için maliyet avantajlı ve ihtiyaç odaklı bir çözüm sundu. Bu teknolojinin gelişmesiyle Google App Engine gibi monolitik sunucusuz çözümler de ortaya çıktı. 

Bu yazımızda, Google’ın Cloud çözüm ailesi içinde sunduğu App Engine çözümüne odaklanmadan önce serverless mimarinin tanımından söz edeceğiz. Ardından App Engine’in ne olduğuna, geliştiriciler için ne gibi avantajlar sağladığına, App Engine’in sunduğu standart ve esnek geliştirme ortamlarının özelliklerine değineceğiz.

Serverless (sunucusuz) bilgi işlem nedir?

Serverless (sunucusuz) bilgiişlem, backend (arka yüz) hizmetlerinin “kullanıldığı kadar öde” modeliyle sunulduğu bir yöntemdir. Sunucusuz bir sağlayıcı, kullanıcıların temel altyapı hakkında endişelenmeden kod yazmasına ve dağıtmasına olanak tanır. Sunucusuz bir satıcıdan backend hizmetleri satın alan bir işletme, kullandığı işlem gücü kadar ücretlendirilir ve satın aldığı hizmet, otomatik olarak ölçeklendirilir.

Bu sayede işletmelerin bant genişliği veya sunucu sayısı gibi konular hakkında endişelenmesine gerek olmaz. Bu hizmet sağlama yönteminin ismi sunucusuz olsa da fiziksel sunucular kullanılmaya devam eder, fakat sunucunun belirli bir bölümü müşteriye tahsis edilmez.

Bir diğer deyişle müşterilerin sabit bir bant genişliği ve sunucu içeren hizmet paketlerini kullanmasına gerek olmaz. Zira kapasite ve sunucu ihtiyacı, kullanıma göre sağlayıcı tarafından otomatik olarak belirlenir. Serverless teknolojisi işletmelere önemli ölçüde maliyet avantajı sağladığı gibi, operasyonel yükleri de azaltır.

Google App Engine nedir?

Google App Engine, geniş ölçekte web uygulamaları geliştirmek ve barındırmak için tümüyle yönetilen, sunucusuz bir platformdur. Google App Engine, çeşitli çalışma ortamlarında popüler yazılım geliştirme dillerini destekler. Bu sayede geliştiriciler, yazılım dillerini, bu dili geliştirirken kullanacakları kütüphaneleri seçerek Google App Engine’in o yazılım dili için özelleştirilmiş versiyonundan, kullandığın kadar öde modeliyle yararlanabilir. Sunucular Google tarafından sağlanır ve uygulamaların gerektirdiği işlem kapasitesine göre anlık olarak App Engine tarafından ölçeklendirilir. 

Google App Engine, Go, PHP, Java, Python, Node.js, .NET, Ruby başta olmak üzere pek çok yazılım geliştirme dilini destekler. Platformun sundukları, seçilen yazılım geliştirme diline ve geliştirme ortamına göre belirlenir.

Geliştiriciler, kendi kod altyapılarını sıfırdan yazabilecekleri gibi, Google App Engine’in ilgili yazılım diline ve kütüphanesine göre sunduğu hazır konteynerleri de kullanabilir. Bu yönleriyle Google App Engine, mobil uygulamalar, web platformları, uygulama geliştirme arayüzleri (API) ve dahası için en uygun, kolay yönetilebilir ve maliyet avantajlı geliştirme ortamını sunar. Google, App Engine kapsamında sunduğu geliştirme ortamlarını standart ve esnek olmak üzere ikiye ayırır. 

Standart geliştirme ortamı: App Engine tarafından sunulan standart geliştirme ortamı, Google’ın altyapısında çalışan konteyner örneklerini temel alır. Konteynerler, mevcut birkaç çalışma zamanından biriyle önceden yapılandırılmıştır.

Standart geliştirme ortamı, ağır iş yüklerine ve büyük miktarda verilere rağmen, güvenilir bir şekilde çalışan uygulamalar oluşturmayı ve dağıtmayı olanaklı kılar. Standart geliştirme ortamı tarafından desteklenen yazılım geliştirme dilleri Python, Java, Node.js, PHP, Ruby ve Go olarak sıralanabilir. 

Esnek geliştirme ortamı: Esnek geliştirme ortamı, desteklediği çalışma zamanı ve yazılım dilleri açısından farklılaşır. Google Compute Engine’i temel alan App Engine’in sunduğu esnek geliştirme ortamı, yükleri dengelerken uygulamaları otomatik olarak yukarı ve aşağı ölçeklendirir. Esnek geliştirme ortamının desteklediği çalışma zamanları Go, Java 8, PHP 5/7, Python 2.7 / 3.6, .NET, Node.js, Ruby ve özel çalışma zamanları olarak sıralanabilir. 

Google App Engine’in özellikleri

Geliştiricilere en iyi yapabildikleri şeyi, kod yazmayı kesintisiz olarak yapabilme olanağı sunan Google App Engine’in özelliklerini madde madde aktaralım:

● Popüler yazılım geliştirme dilleri: Yukarıda da sıraladığımız gibi, App Engine’in çalışma ortamları, Node.js, Java, Ruby, C#, Go, Python veya PHP gibi popüler geliştirme dillerini destekler.

● Tamamen yönetilen (managed) bir platform: Geliştiriciler, bu özellik sayesinde teknik ayrıntılara takılmadan yalnızca kod yazmaya ve uygulamalarını iyileştirmeye odaklanabilir. 

● Güçlü uygulama tanılama: App Engine, uygulamaların durumunu ve performansını izlemek için Bulut İzleme ve Bulut Günlüğü’nü, hataları hızlı bir biçimde teşhis edip düzeltmek için Bulut Hata Ayıklayıcı ve Hata Raporlama’yı kullanır. 

● Uygulama sürümü oluşturma: Kullanıcılar, App Engine ile uygulamalarının farklı sürümlerini barındırabilir, bu sürümleri A/B testi gibi süreçler için kullanabilir. 

● Uygulama güvenliği: App Engine, güvenlik duvarı ve erişim kuralları tanımlayarak uygulamaların korunmasına yardımcı olur. Kullanıcılar, ek ücretler ödemeden kendilerine özel alanlarında varsayılan olarak yönetilen SSL/TLS güvenlik sertifikalarından yararlanabilir.

● Hizmetler ekosistemi: Google App Engine kullanıcıları, Google’ın diğer tüm geliştirici araçlarını içeren Google Cloud hizmetleri ekosistemine erişme şansı bulur.

Google App Engine geliştiricilere ne gibi avantajlar sunar?

Google App Engine, güçlü bir web uygulaması ve mobil projesi olan geliştiricilerin ürünlerini bir an önce test edebilecekleri, geliştirebilecekleri ve iyileştirebilecekleri bir çalışma ortamı sunar. Arka planda yürütülmesi gereken sistemsel ihtiyaçlar, Google App Engine tarafından üstlenilir ve geliştiriciler yalnızca işlerine odaklanabilir. App Engine’in somut faydaları, aşağıdaki başlıklarda değerlendirilir. 

● Kesintisiz erişilebilirlik: Google App Engine üzerinde çalışan uygulamaların çoğu, %99,95 çalışma süresine sahiptir. Diğer bir deyişle çeşitli veri merkezi kesintileri, uygulama erişilebilirliğini etkilemez. Ayrıca App Engine, geliştiricilerin sıklıkla kullandığı Stack Overflow, App Engine Groups, GitHub ve Server Fault gibi platformları da destekler. 

● Pazara daha hızlı erişim: Dijital rekabetin yoğun olduğu bir dönemde, geliştirici ve girişimciler için en önemli başlıklardan biri çevikliktir. Geliştiriciler, Google App Engine ile uygulamalarını kolayca geliştirebilir ve güvenilir bir ortamda çalışan uygulamalarını hızla son kullanıcıya ulaştırabilir. 

● Kolay yönetim: GAE, uygulamaları geliştirmek, test etmek, başlatmak ve güncellemek için ihtiyaç duyulan araçları bir araya getirir. Geliştiriciler bu platformdaki uygulamaları çok basit bir biçimde tasarlayabilir. 

● Ölçeklenebilirlik: Sunucusuz altyapının avantajını kullanan Google App Engine, uygulamaların ve web platformlarının hızlı bir biçimde popülerlik kazanması durumunda yetersiz kalmaz. Hızla, yeni iş yükü ve performans ihtiyaçlarına göre ölçeklenir.

● Maliyet avantajı: Yazının başında da belirttiğimiz gibi, GAE, sunucusuz mimari sayesinde geliştiricilere kullandıkları kadar ödeme fırsatı tanır. Çoğunlukla iş fikirlerini hayata geçirmek için küçük bütçelere sahip olan geliştiriciler, bu özellik sayesinde büyük yatırımlar yapmadan da geliştirme süreçlerini yürütebilir.

Google App Engine’e ilişkin ayrıntıları Global IT ile keşfedin

Türkiye’de Google Cloud denince akla gelen ilk markalardan biri olan Global IT, 16 yıllık Google Cloud deneyimiyle Google’ın sunduğu tüm geliştirici hizmetlerini çözüm portföyünde barındırıyor. Google Cloud hizmetlerini uçtan uca sunmayı başaran Global IT, e-ticaretin modernizasyonundan altyapı modernizasyonuna ve buluta geçişe pek çok alanda Google çözümlerinin gücünü kullanarak işletmelerin dijital dönüşüm yolculuklarına katkıda bulunuyor.