Google Cloud Platformu – Servisler

Bu yazımda sizlere yaygın kullanılan GCP servisleri hakkında genel bilgi vermeye çalışacağım. Daha detaylı bilgi almak isterseniz GCP Ürünler ve Servisler sayfasını ziyaret edebilirsiniz.

GCP servisleri genel olarak dört ana başlıktan oluşmaktadır.

Computing (İşleme) ve Hosting (Barındırma) Servisleri

 

GCP size Computing (İşleme) ve Hosting (Barındırma) için çeşitli seçenekler sunmaktadır. Dilerseniz sadece uygulamanızı geliştirmeye odaklı “Managed application platform (App Engine)” servisini kullanabilir, altyapı, işletim sistemi, sanal makina (VMs), software runtime gibi konuları düşünmenize gerek kalmaz, yada “Cluster management (Container Engine)” servisini kullanarak “Container (Konteyner)” gibi yenilikçi teknolojileri kullanarak çalışmanız üzerinde daha fazla esneklik sağlayabilir ve yönetebilirsiniz. GCP size bu servisi kullandığınızda sadece altyapı ve işletim sistemi bazında gerekli desteği sağlayacaktır. Yada dilerseniz “Unmanaged infrastructure (Compute Engine)” servisinden faydalanıp tümüyle kontrolü size ait olan esnek ve yönetilebilir bir “Own-cloud infrastructure (altyapı)’ya” sahip olabilirsiniz. Aşağıdaki resimde konu basit bir şekilde ele alınmıştır. Seçtiğiniz servisin türüne göre operasyonel sorumluluğunuz Google’dan size doğru soldan sağa doğru giderek artış gösterecektir.

 

 

Application (Uygulama) Platformu

 

Google’ın App Engine servisi Platform as a Service olarak hizmet veren bir üründür. Bu ürünü kullanırken Google kaynakların ve çalışma ortamının yönetimi ile ilgili pek çok konuyla sizin yerinize ilgilenmektedir. Örnek olarak; websitenize ait internet trafiği arttığında daha fazla computing resource (işlem gücü)’ne ihtiyacınız olursa, Google otomatik olarak altyapıyı buna göre ölçeklendirecektir (scaling). Eğer uygulamanızı geliştirdiğiniz işletim sisteminin veya runtime ortamın security updates (güvenlik güncelleştirmeleri)’nin yüklenmesi gerekiyorsa, Google bu işlere de sizin yerinize arka planda sessiz sedasız bakıyor olacaktır.

 

App Engine üzerinde uygulama geliştirirken;

App Engine servisinin özellikleri hakkında daha kapsamlı bilgi almak isterseniz ilgili linkten yararlanabilirsiniz.

 

Containers (Konteynerlar)

 

Container-based (Konteyner tabanlı) computing ortamıyla, Docker gibi teknolojilerden faydalanarak siz yazdığınız kod üzerine daha fazla odaklanabilir, uygulamanızı çalıştıracağınız runtime ortamını veya barındıracağınız sunucu ortamını düşünmenize gerek kalmaz. Google Container Engine (Konteyner Motoru) on-premises (özel), hybrid (karma) yada Google’ın public (genel) cloud altyapısı üzerinde esnek bir çalışma sağlayan açık kaynak kodlu olan Kubernetes sistemi üzerine kurulmuştur.

 

Container Engine kullanırken;

Virtual machines (Sanal Makinalar)

 

GCP’ın unmanaged (yönetilmeyen) Compute Engine servisine Google Compute Engine (GCE) denilmektedir. Compute Engine servisini infrastructe as a platform (IaaS) olarak düşünebilirsiniz, çünkü platform size güvenilir ve sağlam bir altyapıyı sağlar ama kullanmak istediğiniz platform birleşenlerini sizin seçmeniz ve ayarlamanız gerekmektedir. Compute Engine servisiyle sistemi kurmak, yönetmek ve izlemek sizin sorumluluğunuzdadır. Google gerekli kaynakları güvenli, yeterli ve güvenilir bir şekilde sizin için hazır olarak bulundurur ama onları planlamak ve yönetmek size bağlıdır. Bu servisin avantajı sisteminizin üzerinde tam bir kontrol ve sınırsız esneklik hakkınızın olmasıdır.

 

Çalışmanızı Google Compute Engine (GCE) üzerine kurarken;

 

Computing (İşleme) ve Hosting (Barındırma) Seçeneklerini Birleştirme

 

Sadece bir computing (işleme) servisine bağlı olmanız gerekmemektedir. Herbirinin özelliklerinden beraber faydalanabilmek için App Engine ve Compute Engine servislerini birlikte kullanabilirsiniz. Örnek olarak; Image Management for Mobile Apps (Mobil uygulamalar için imaj yönetimi) sayfasını okuyabilirsiniz.

 

Storage (Depolama) Servisleri

 

Uygulamanız her ne olursa olsun, muhtemelen verilerinizi depolamak için bir miktar alana ihtiyacınız olacaktır. GCP çeşitli türlerde depolama servisleri sunmaktadır.

  1. Standard en iyi oranda erişilebilirlik (availability) yüzdesi sunmaktadır.
  2. DRA daha düşük fiyata, daha düşük bir yüzdeye sahip erişilebilirlik sunmaktadır.
  3. Nearline en düşük fiyatı sunmaktadır. Veri erişim hızı ve availability düşük olup daha çok arşivleme, veri yedekleme veya felaket kurtarma (disaster recovery) çalışmaları için uygundur.

GCE üzerinde persistent disklerden yararlanarak, uygulamalarınız için istediğiniz öncelikli veri depolama teknolojisini seçebilirsiniz. Örnek olarak SQL veritabanınız için PostgreSQL, SQL tabanlı olmayan (NoSQL) veritabanınız için MongoDB kullanabilirsiniz.

 

Storage türleri hakkında daha detaylı bilgi almak, avantajlarını ve dezavantajlarını öğrenebilmek için Depolama türü seçme (Choosing a Storage Option) sayfasını inceleyebilirsiniz.

 

Networking (Ağ ve İletişim) Servisleri

 

App Engine; network altyapısını bizim yerimize yönetirken, Container Engine; bu iş için Kubernetes modelini kullanırken, Compute Engine; kullanmamız için bir dizi networking servisini bizlere sunmaktadır. Bu servisler kaynaklar arasında olan trafiği dengelemeye (load-balancing), DNS kayıtları yaratmaya ve var olan network altyapısını Google’ın network altyapısına bağlamaya yardımcı olur.

 

Networks, firewalls (güvenlik duvarları) ve routes (yönlendirmeler)

 

Compute Engine; instances’larınızın kullanımı için bir dizi networking servisi sağlamaktadır. Bir instance sadece bir network’e bağlanabilir. Her Compute Engine projesinin varsayılan olarak bağlı olduğu bir default network mevcuttur. Proje dahilinde ek networkler yaratılabilir ama networkler projeler arasında paylaştırılamaz.

 

Firewall rules (güvenlik duvarı kuralları) network üzerinde instances’lara gelen veri trafiğini yönetir. Yaratılan bir networkün, başlangıçta varsayılan firewall rules’ları mevcuttur. Ek olarak başka firewall rules’ları yaratılabilir.

 

Route (yönlendirme) ise instances’lar için daha gelişmiş network kuralları ve fonksiyonları oluşturulmasını sağlar. Örneğin; VPN bağlantısı yaratmak gibi. Route bir instance üzerinden ayrılan network paketinin hangi yönde ilerlemesini sağlar. Örnek olarak; belirli bir network dahilinde olan paketlerin gönderilmeden önce, kurduğumuz ve yönettiğimiz bir VM gateway makinası tarafından işlenip, kontrol edilmesi gibi.

 

Yük Dengeleme (Load-Balancing)

 

Websiteniz yada uygulamanız GCE üzerinden çalışırken, iş yükünüzü birden fazla instances arasında dağıtmanız gereken bir zaman gelebilir. GCE’s server tabanlı load balancing özelliği aşağıdaki seçenekleri sunmaktadır.

Cloud DNS

 

Domain Name System (DNS) kayıtlarınızı Google’ın kullandığı aynı altyapıyı kullanarak yayınlayabilir ve yönetebilirsiniz. Yönetilen zone’ları yada DNS kayıtlarını GCP konsolunu, komut satırını (command-line) yada REST API kullanarak yönetebilirsiniz.

 

Gelişmiş bağlanabilirlik (Advanced connectivity)

 

GCP’a bağlamak istediğiniz mevcut bir network altyapınız varsa, GCP üç seçenek sunmaktadır;

Büyük veri servisleri (Big data services)

 

Big data servisleri elinizdeki mevcut büyük veriyi Google’ın bulut platformunda işleyerek ve sorgulayarak karmaşık sorularınıza hızlı cevaplar almanızı sağlar.

 

Data analizi (Data analysis)

 

BigQuery data analizi hizmeti sunmaktadır. Bu hizmeti kullanarak;

BigQuery servisini hızlı ve kolay bir şekilde denemek için hızlı başlangıç sayfasını (Web UI Quickstart) sayfasını ziyaret edebilir ve genele açık datasetlerini kullanarak sorgulamalar yapabilirsiniz. Uçtan uca (end-to-end) gerçek zamanlı (real-time) datanızı BigQuery kullanarak nasıl işleyebileceğinizi öğrenmek için Kubernetes, Redis ve BigQuery ile gerçek zamanlı veri analizi (Real-time Data Analysis with Kubernetes, Redis, and BigQuery) sayfasını ziyaret edebilirsiniz.

 

Yığın ve akışkan data işleme (Batch and streaming data processing)

 

Cloud Dataflow; yığın ve akışkan datalarınızı işlemek (Batch and streaming data processing) yönetilebilen bir servis ve SDK (Software Development Kit)’ler sağlar. Dataflow yüksek hacimli (high-volume) data işlemek için iyi bir şekilde çalışmaktadır. Özellikle veri işleme task’ları kolaylıkla paralel olarak farklı workload’lar (iş yükleri) arasında paylaştırılabilir. Dataflow aynı zamanda datayı farklı depolama üniteleri arasında taşırken, başka bir formata çevirirken yada yeni bir depolama ünitesine yüklerken kullanılan extract-transform-load (ETL) task’ları içinde iyidir.

 

Eş zamanlı olmayan (asynchronous) mesajlaşma

 

Cloud Pub/Sub eş zamanlı olmayan (asynchronous) bir mesajlaşma servisidir. Uygulamanız topic isimli bir yayınlama birimine JSON data yapısında olacak şekilde mesajlar gönderebilir.  Cloud Pub/Sub topic’leri global kaynaklar olduğu için, projelerdeki sahip olduğunuz diğer uygulamalar topic’e HTTP request yada response şeklinde mesajlar alabilmek için üye olabilirler.  Cloud Pub/Sub bazı kısa örnekler ile deneyebilirsiniz. Uçtan uca (end-to-end) Pub/Sub kullanan büyük veri senaryosu örneği için Kubernetes, Pub/Sub ve BigQuery ile gerçek zamanlı veri analizi (Real-time Data Analysis with Kubernetes, Pub/Sub, and BigQuery).

Cloud Pub/Sub servisi sadece big data için yararlı olmayıp pek çok durumda asynchronous bir mesajlaşmaya ihtiyacınız olduğunda bu servisi kullanabilirsiniz. Örnek olarak; App Engine ve Compute Engine’i birbirleri ile koordineli bir şekilde nasıl çalıştırabilirsiniz. Daha detaylı bilgi için Reliable Task Scheduling on Compute Engine sayfasınızı ziyaret edebilirsiniz.

 

Vakit ayırıp okuduğunuz için teşekkür ederim.

Yazılarımı kaynak belirtilerek paylaşabilirsiniz.

 

Kaynak: https://cloud.google.com/docs/overview/cloud-platform-services

 

 

Exit mobile version