GCP platformunu kullanmaya başlamadan önce genel olarak bu platformla ilgili bilgi sahibi olmanız, hangi servislerin kullanılabilir olduğu ve bu parçaların birlikte nasıl çalıştığını bilmeniz, ileride nasıl ilerleyeceğinize karar vermenize yardımcı olacaktır. Yazımın başında öncelikle sizlere bu platform ve yaygın kullanılan özellikleri hakkında bilgi vermeye çalışacağım. Vereceğim bilgilerin büyük çoğunluğu kaynak olarak https://cloud.google.com/docs üzerinden alınmış olacak. Ayrıca bu platform hakkında yayınlanmış bazı tutorial (eğitici) çalışmalarını da ileri ki zamanlarda sizlerle paylaşacağım.
Google Platform kaynakları
Google Cloud Platformu, tüm dünya üzerinde konumlanmış belirli bölgelerde mevcut olan Google Data Center’ları (Veri Merkezleri) üzerinde mevcut olan bilgisayar, harddisk, sanal makinalar (VMs), vs. gibi fiziksel ve sanal varlıkların birleşiminden oluşmaktadır. Herbir data center bölgesi global bir bölgedir. Bölgeler; Central US (Merkez Amerika), Western Europe (Batı Avrupa), ve East Asia (Doğu Asya)’dan oluşmaktadır. Herbir bölgede ayrıca zone (alan)’lar mevcut olup zone’lar bölge içerisinde birbirlerinden ayrı olarak izole edilmiştir. Her bir zone bölge kodu dahil olarak harf ve rakamdan oluşan bir kodla isimlendirilmektedir. Örneğin; East Asia üzerindeki bir zone “asia-east1-a” olarak isimlendirilmektedir.
Kaynakların bölgelere ve zone’lara göre dağıtılmış olması çeşitli avantajlar sağlamaktadır. Olası bir arıza durumda yedeklilik sağlanması, daha düşük latency (gecikme) süreleri, vs. gibi. Ayrıca çeşitli kurallar aracılığıyla farklı bölgelerdeki kaynaklar birlikte kullanılabilir.
Services (servisler) aracılığıyla GCP kaynaklarına erişme
Cloud Computing (Bulut Bilişim)’de, kullandığınız software (yazılım) ve hardware (donanım) kaynakları services (servisler) olarak tanımlanmaktadır. Bu servisler sizi GCP içindeki kaynaklara erişiminizi sağlamaktadır. Şu anda mevcut olan GCP servisleri çok fazla olup, ayrıca bu hizmetler günden güne artış göstermektedir. GCP üzerinde bir websitesi yada uygulama geliştirirken, bu servisleri kombine ederek ihtiyacınız olan altyapıya uygun bir şekilde kullanabilirsiniz, ihtiyacınız olduğunda ise gerekli değişiklikleri basit bir şekilde yapabilirsiniz.
Global, Regional (Bölgesel), ve Zone kaynakları
Bazı GCP kaynaklarına yapılan çalışmanın bulunduğu region ve zone farkı olmaksızın genel olarak erişilebilmektedir. Bunlara “global resource” denilmektedir. Disk imajları, disk snapshotları, network, vs. gibi. Bazı GCP kaynaklarına ise sadece çalışmanın bulunduğu aynı region (bölge) içerisinden erişilebilmektedir. Bunlara ise “regional resource” denilmektedir. Static external IP adresleri gibi. Bazı kaynaklara ise sadece çalışmanın bulunduğu aynı zone içerisinden erişilebilmektedir. VM instances (sanal makinalar), türleri ve diskler gibi. Aşağıdaki diagram global scope, region’lar ve zone’lar ve kaynaklar arasındaki ilişkiyi göstermektedir.
Kaynakların türleri ve kapsamı üzerinde çalıştığınız projeye bağlı olarak çeşitlilik gösterebilmektedir. Örneğin network yaratmak global bir kaynak kullanmaktadır. IP adresi rezerve etmek ise bölgesel bir kaynak kullanmaktadır.
GCP üzerinde çalışmalarınızı yaparken region ve zone’lar arasındaki ilişkiyi anlamak önemlidir. Örnek olarak bir region’da mevcut olan bir makinanıza başka bir region üzerinde bulunan bir diski bağlayamazsınız çünkü latency (gecikme) süreleri çok düşük olacaktır ve performans sorunu yaşayacaksınızdır. Neyse ki GCP bu gibi işlemleri yapmamıza izin vermemektedir. Diskler sadece aynı zone içerisinde kullanılabilmektedir.
Seçtiğiniz computing ve hosting service (işleme ve barındırma servisi)’ne bağlı GCP self-management (kendi kendine yönetim) olarak kaynak dağıtımını sağlamaktadır. Yine de çalışmanıza bağlı olarak kaynakların nasıl yada nereden ayrıldığını ve kullanıldığına dikkat etmeniz gerekebilir.
GCP’nin coğrafik dağılımı hakkında daha fazla bilgi için Geography ve Regions (Coğrafya ve Bölgeler) kısmına bakabilirsiniz.
Projeler
Kullanmak istediğiniz herhangi bir GCP kaynağı öncelikle bir projeye ait olmalıdır. Projeyi inşa ettiğiniz bir bina gibi düşünebilirsiniz. Bir proje ayarlar, izinler ve metadata (üstveri) gibi uygulamanıza ait bilgiler ve veriler bütününden oluşmaktadır. Bir projeye atanmış kaynaklar birlikte kolay bir şekilde kullanılabilir, örnek olarak internal (dahili) network iletişimi, region-zone kurallarına uymak gibi. Her biri projeye atanmış kaynaklar projenin sınırları çerçevesinde ayrı ayrı tutulmaktadır. Gerekli durumlarda external (harici) bir network iletişimi ile ayrı projelere ait kaynaklar birbirleri ile haberleşebilmektedir.
GCP üzerinde her bir projeye ait aşağıdaki üç bilgi mevcut olacaktır.
- Belirleyeceğiniz bir proje ismi
- Belirleyeceğiniz bir proje ID. Dilerseniz GCP sizin için bu ID’yi belirleyebilir.
- GCP’nın kendi belirleyeceği bir proje numarası
GCP kullanırken bu üç tanımlayıcı bilgiyi gerektiğinde kodlarınızda yada API komutlarında kullanıyor olacaksınızdır. Aşağıdaki ekran görüntüsü, proje adını, ID ve numara bilgisini bizlere göstermektedir.
GCP üzerinden varolan her bir projeye ait ID bilgisi farklı olmalıdır. Bir proje yarattığınızda ve daha sonra bu projeyi sildiğinizde, bu projeye verdiğiniz ID bilgisini bundan sonra hiçbir GCP müşterisi bir daha kullanamaz.
Faturalama özelliğini kullanmaya başladığınız zaman (deneme süresi bittikten sonra) her bir proje bir fatura hesabına bağlı olacalktır.. Birden fazla projeniz varsa hepsi aynı hesaba bağlı olabilir.
GCP servislerine bağlanma yolları
GCP size servislerini kullanabilmeniz için üç farklı yol sunmaktadır.
GCP Console (GCP Konsolu)
GCP konsolu size web-tabanlı, grafik bazlı bir kullanıcı arayüzü sağlamaktadır. Bu sayede projelerinizi ve kaynaklarınızı kolaylıkla yönetebilirsiniz. GCP konsolunu kullanırken, yeni bir proje yaratabilir, mevcut bir projeyi üzerinde değişiklikler yapabilir ve bu projeye bağlı kaynaklarınızı yönetebilir, ekleyip, çıkarabilirsiniz. Birden fazla proje yaratabilir, çalışmalarınıza bağlı ayrı ayrı çalışma grupları ve kaynaklar atayabilirsiniz. Örneğin yeni bir proje yaratacaksınız ve sadece belirli ekip üyelerinin bu projeye erişmesini istiyorsunuz. Bu şekilde yetkilendirmeleri kolaylıkla yapabilirsiniz.
Command-Line Interface (Komut satırı arayüzü)
Komut satırını kullanmak isteyenler için Google Cloud SDK yazılım paketiyle gcloud command-line aracı sunulmaktadır. Gcloud aracı hem kaynaklarınızı yönetmek, hem de geliştirdiğiniz uygulama ve projelere ait workflow iş akışlarını da yönetebilmenize imkan tanımaktadır. Kullanılabilir tüm komut setlerini öğrenmek için Gcloud referans sayfasına bakabilirsiniz.
Client Libraries (Kullanıcı Kütüphaneleri)
Cloud SDK paketi client libraries (kullanıcı kütüphaneleri) desteği de sunmaktadır. Bu hazır kütüphane sayesinde uygulama geliştirme sürenizi kısaltabilir, daha verimli ve hatasız uygulamalar geliştirebilirsiniz. Bu kütüphanenin bizlere sunduğu iki tür .api desteği mevcuttur.
- App .api (Uygulama .api)’siyle servisler ile kolaylıkla iletişim kurabilirsiniz. Bu .api’lar Node.js ve Phyton gibi yazılım dilleriyle de çalışabilmek için optimize edilmiştir. Bu şekilde uygulama ve kodlarınızı GCP servisleri ile daha doğal ve standart bir şekilde entegre edebilirsiniz. Kütüphaneler ayrıca authentication (doğrulama) and authorization (yetkilendirme) içinde hazır entegre kodlar mevcuttur.
- Admin .api (Yönetici .api)’si kaynaklarınızı yönetmek için yardımcı olmaktadır. Örnek olarak; eğer automated tools (otomatikleştirilmiş araçlar) geliştirmek istiyorsanız admin .api kullanabilirsiniz.
Bunların dışında ayrıca Google’ın diğer ürünlerine ait API client kütüphanelerini kullanabilirsiniz. Google Maps, Google Drive, ve YouTube gibi ürünlere ait.
Pricing (Ücretlendirme)
GCP üzerinden fiyatlandırmanın nasıl uygulandığını öğrenmek için ücretlendirme sayfasını, bireysel olarak servislerin ve ürünlerin ücretleri hakkında ürün fiyatları sayfasını ziyaret edebilirsiniz.
GCP size ayrıca bu platformu kullanmaya başlamadan değerlendirme yapmanızı sağlamak için bazı küçük araçlar sunmaktadır.
Hesaplama aracı GCP kullanımının size ne kadara mal olacağını kabaca hesaplamanızı sağlayacaktır. Kullanacağınız servisler hakkında bilgi vererek, örneğin kaç tane Compute Engine kullanacaksınız, persistent disk adedi ve boyutları gibi. tahmini ücret hakkında bilgi sahibi olabilirsiniz.
The total cost of ownership (TCO) tool aracı ise bulutta çalışan işlem gücünüzün ve kaynağınızın size göreceli fiyat bilgisini sağlayacaktır. Ayrıca ürünün kendisine sahip olsanız daha mı avantajlı olur, kiralasanız mı daha uygun olur yada bulutta mı kullanırsanız daha uygun olur, diğer bulut servislerinden bu hizmeti alırsanız ne kadar bir fark oluşur, bu gibi fiyat tahmini ve modellemeler için bu araçtan faydalanabilirsiniz. Araç size depolama, network yada size özel çalışan bir uygulama için fiyat modelleme bilgisi sunmamaktadır.
Vakit ayırıp okuduğunuz için teşekkür ederim.
Kaynak: https://cloud.google.com/docs