Takip et

My Portfolio – Yeni Yıl Yeni Sen Meydan Okuması: Google Cloud Run ile Modern Bir Portföy Uygulaması Geliştirme

Bu, Google Cloud Run üzerinde çalışan “My Portfolio – Yeni Yıl Yeni Sen” meydan okumasının bir parçası olan örnek portföy uygulamanızdır.

My Portfolio – Yeni Yıl Yeni Sen Meydan Okuması: Google Cloud Run ile Modern Bir Portföy Uygulaması Geliştirme

Yeni bir yıl, yeni başlangıçlar ve yeni hedefler demektir. Bu “Yeni Yıl Yeni Sen” meydan okumasında, kendinizi geliştirmek ve dijital varlığınızı güçlendirmek için harika bir fırsat sunuyoruz: kendi kişisel portföy uygulamanızı Google Cloud Run üzerinde hayata geçirmek. Bu makale, bu heyecan verici yolculukta size rehberlik edecek, modern bulut teknolojilerinin gücünü kullanarak projelerinizi ve yeteneklerinizi dünyaya sergilemenizi sağlayacak.

Giriş: Neden Bir Portföy Uygulaması ve “Yeni Yıl Yeni Sen”

Günümüzün rekabetçi dünyasında, kişisel markalaşma ve yeteneklerinizi etkili bir şekilde sergilemek büyük önem taşımaktadır. Bir portföy uygulaması, projelerinizi, deneyimlerinizi ve becerilerinizi potansiyel işverenlere, müşterilere veya işbirlikçilere sunmanın en profesyonel yollarından biridir. “Yeni Yıl Yeni Sen” meydan okuması ise, bu projeyi ertelemek yerine hemen şimdi harekete geçmek için mükemmel bir motivasyon kaynağıdır.

Kişisel Markalaşmanın Önemi

Dijital çağda, bir web sitesi veya çevrimiçi portföy, sizin dijital kartvizitiniz gibidir. Bu, sadece bir özgeçmişten çok daha fazlasını sunar; çalışmalarınızı canlı örneklerle gösterebilir, kişiliğinizi yansıtabilir ve potansiyel bağlantılarla doğrudan etkileşim kurma imkanı sunar. Kendi alan adınızla yayınlanan bir portföy, profesyonelliğinizi ve teknolojiye olan yatkınlığınızı da gösterir.

“Yeni Yıl Yeni Sen” Felsefesi ve Proje Hedefleri

“Yeni Yıl Yeni Sen” meydan okuması, kendinize yeni bir beceri kazandırmak, mevcut yeteneklerinizi pekiştirmek ve somut bir ürün ortaya koymak için tasarlanmıştır. Bu meydan okumanın ana hedefi, modern bulut teknolojilerini kullanarak, sıfırdan veya mevcut projelerinizi dönüştürerek, tamamen işlevsel ve profesyonel bir portföy uygulaması oluşturmaktır. Bu süreçte hem teknik bilgi birikiminizi artıracak hem de gözle görülür bir başarı elde edeceksiniz.

Neden Modern Bir Yaklaşım?

Geleneksel sunucu yönetimi, kurulum ve bakım süreçleri zaman alıcı ve maliyetli olabilir. Modern bulut yaklaşımları, özellikle sunucusuz (serverless) mimariler, geliştiricilerin altyapı endişeleri olmadan kod yazmaya odaklanmasını sağlar. Bu, projenizi daha hızlı hayata geçirmenize, maliyetleri optimize etmenize ve uygulamanızın otomatik olarak ölçeklenmesini sağlamanıza olanak tanır. Google Cloud Run, bu modern yaklaşımın en güçlü temsilcilerinden biridir.

Google Cloud Run Nedir ve Neden Tercih Edilmeli?

Google Cloud Run, kapsayıcılı (containerized) uygulamaları sunucusuz bir ortamda çalıştırmanıza olanak tanıyan yönetilen bir bilgi işlem platformudur. Geliştiricilerin altyapı yönetimiyle uğraşmadan, sadece kodlarına odaklanmasını sağlar. Bu, özellikle kişisel portföy gibi değişken trafikli uygulamalar için ideal bir çözümdür.

Sunucusuz (Serverless) Mimarinin Avantajları

Sunucusuz mimari, geliştiricilerin sunucu provizyonu, yamalama, güncelleme veya ölçekleme gibi altyapı görevlerini yönetme ihtiyacını ortadan kaldırır. Bunun yerine, uygulamanız yalnızca bir istek geldiğinde çalışır ve yalnızca kullandığınız kaynaklar için ödeme yaparsınız. Bu, özellikle düşük trafikli zamanlarda maliyetleri önemli ölçüde azaltır. Cloud Run, bu modelin tüm avantajlarını, Docker kapsayıcılarının esnekliği ile birleştirir.

Ölçeklenebilirlik ve Otomatik Ölçeklenme

Portföy uygulamanızın trafiği zaman zaman artabilir, özellikle bir iş başvurusu yaptığınızda veya projeniz viral olduğunda. Cloud Run, uygulamanızın talebe göre otomatik olarak sıfırdan binlerce örneğe kadar ölçeklenmesini sağlar. Trafik azaldığında ise otomatik olarak ölçeği küçültür, hatta sıfıra iner. Bu, uygulamanızın her zaman erişilebilir ve performanslı olmasını garanti ederken, gereksiz maliyetlerden kaçınmanızı sağlar.

Kolay Dağıtım ve Yönetim

Cloud Run, Docker kapsayıcıları kullandığı için, uygulamanızı yerel ortamınızda çalıştırdığınız gibi bulutta da çalıştırabilirsiniz. Mevcut bir Docker imajını veya kaynak kodunuzu doğrudan dağıtabilirsiniz. Google Cloud Console, gcloud CLI veya Cloud Build gibi araçlarla entegrasyonu sayesinde dağıtım ve yönetim süreçleri oldukça basittir. Bu, geliştirme döngünüzü hızlandırır ve operasyonel yükü azaltır.

Portföy Uygulamanızın Mimarisi ve Geliştirme Süreci

Bir portföy uygulaması genellikle basit bir yapıya sahip olsa da, modern web teknolojilerini kullanarak daha dinamik ve etkileşimli hale getirilebilir. Cloud Run, bu tür uygulamalar için esnek bir barındırma ortamı sunar.

Teknoloji Seçimleri (Frontend, Backend, Veritabanı)

* Frontend: React, Vue.js, Angular gibi modern JavaScript kütüphaneleri veya framework’leri ile zengin kullanıcı arayüzleri oluşturabilirsiniz. Daha basit bir yaklaşım için HTML, CSS ve Vanilla JavaScript de yeterli olabilir.
* Backend: Portföyünüzde dinamik içerik (örneğin blog yazıları, iletişim formu) barındırmak isterseniz, Python (Flask/Django), Node.js (Express), Go veya Java gibi dillerle bir backend API oluşturabilirsiniz. Cloud Run, bu dillerin hepsiyle uyumludur.
* Veritabanı: Eğer dinamik içerik veya kullanıcı verisi depolamanız gerekiyorsa, Google Cloud SQL (PostgreSQL, MySQL) veya Firestore gibi yönetilen veritabanı hizmetlerini kullanabilirsiniz. Cloud Run, bu hizmetlerle kolayca entegre olabilir.

Uygulama Geliştirme Adımları

1. Tasarım ve Planlama: Portföyünüzün görünümünü ve hangi bilgileri içereceğini planlayın. Bir tel kafes (wireframe) veya mockup oluşturmak faydalı olacaktır.
2. Frontend Geliştirme: Seçtiğiniz teknoloji ile kullanıcı arayüzünü oluşturun. Duyarlı (responsive) tasarım prensiplerine dikkat edin.
3. Backend Geliştirme (isteğe bağlı): Eğer dinamik bir yapıya ihtiyacınız varsa, API uç noktalarını ve iş mantığını geliştirin.
4. Veritabanı Entegrasyonu (isteğe bağlı): Veritabanı modelinizi tasarlayın ve uygulamanızla entegre edin.
5. Yerel Test: Uygulamanızı yerel ortamınızda kapsamlı bir şekilde test edin.

Kapsayıcılaştırma (Containerization) ve Docker

Cloud Run, uygulamaları Docker kapsayıcıları içinde çalıştırır. Bu, uygulamanızın tüm bağımlılıklarıyla birlikte izole bir ortamda paketlenmesi anlamına gelir.
Bir Dockerfile oluşturarak uygulamanızın nasıl derleneceğini ve çalıştırılacağını tanımlarsınız. Bu dosya, uygulamanızın çalışması için gerekli tüm adımları (taban imajı seçimi, bağımlılıkların yüklenmesi, kodun kopyalanması, portun açılması vb.) içerir.


# Dockerfile
# Python taban imajını kullan
FROM python:3.9-slim-buster

# Çalışma dizinini ayarla
WORKDIR /app

# Bağımlılıkları kopyala ve yükle
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt

# Uygulama kodunu kopyala
COPY . .

# Uygulamanın dinleyeceği portu belirt
ENV PORT 8080
EXPOSE 8080

# Uygulamayı başlatma komutu
CMD ["python", "app.py"]


# app.py (Basit bir Flask uygulaması örneği)
from flask import Flask, render_template_string

app = Flask(__name__)

@app.route('/')
def home():
    return render_template_string("""
        
        
        
            
            
            My Portfolio - Yeni Yıl Yeni Sen
            
        
        
            

Hoş Geldiniz!

Bu, Google Cloud Run üzerinde çalışan "My Portfolio - Yeni Yıl Yeni Sen" meydan okumasının bir parçası olan örnek portföy uygulamanızdır.

Uygulamanızı geliştirmeye devam edin ve yeteneklerinizi sergileyin!

""") if __name__ == '__main__': app.run(debug=True, host='0.0.0.0', port=8080)


# requirements.txt
Flask

Google Cloud Run Üzerinde Dağıtım (Deployment) Adımları

Uygulamanızı bir Docker kapsayıcısına dönüştürdükten sonra, Cloud Run'a dağıtmak oldukça basittir. İşte adım adım süreç:

Google Cloud Projesi Oluşturma ve Ayarlar

1. Google Cloud Hesabı: Bir Google Cloud hesabınız olduğundan emin olun. Yeni kullanıcılar genellikle ücretsiz kredi alır.
2. Proje Oluşturma: Google Cloud Console'a gidin ve yeni bir proje oluşturun veya mevcut bir projeyi seçin.
3. API'leri Etkinleştirme: Cloud Run API'sini ve Cloud Build API'sini (eğer kaynak koddan dağıtım yapacaksanız) etkinleştirin.

Docker İmajını Oluşturma ve Google Container Registry'ye Yükleme

1. GCP CLI Kurulumu: Google Cloud SDK'yı bilgisayarınıza kurun ve gcloud auth login ile kimlik doğrulaması yapın.
2. Docker İmajını Oluşturma: Uygulamanızın kök dizininde (Dockerfile'ın olduğu yer) aşağıdaki komutu çalıştırın:


    docker build -t gcr.io//my-portfolio:latest .
    


* yerine kendi Google Cloud Proje ID'nizi yazın.
3. İmajı Yükleme: Oluşturduğunuz Docker imajını Google Container Registry'ye (GCR) yükleyin:


    docker push gcr.io//my-portfolio:latest
    


Artık imajınız bulutta depolanmıştır ve Cloud Run tarafından kullanılabilir.

Cloud Run Servisini Dağıtma ve Yapılandırma

1. Servis Dağıtımı: Cloud Run servisini dağıtmak için aşağıdaki gcloud komutunu kullanın:


    gcloud run deploy my-portfolio-app \
      --image gcr.io//my-portfolio:latest \
      --platform managed \
      --region us-central1 \
      --allow-unauthenticated \
      --port 8080
    


* my-portfolio-app: Servisinizin adı.
* --image: GCR'ye yüklediğiniz imajın yolu.
* --platform managed: Yönetilen Cloud Run platformunu kullanacağınızı belirtir.
* --region: Uygulamanızı dağıtmak istediğiniz bölge (örneğin us-central1, europe-west1).
* --allow-unauthenticated: Uygulamanızın genel erişime açık olmasını sağlar.
* --port 8080: Uygulamanızın Docker kapsayıcısı içinde dinlediği portu belirtir.
2. Dağıtım Onayı: Komutu çalıştırdıktan sonra, sizden onay isteyebilir. Onayladıktan sonra Cloud Run servisi oluşturulacak ve uygulamanız dağıtılacaktır.
3. URL Alma: Dağıtım tamamlandığında, uygulamanızın erişilebilir olduğu bir URL alacaksınız. Bu URL'yi tarayıcınızda açarak uygulamanızın çalıştığını doğrulayabilirsiniz.

Uygulamanızı Daha da Geliştirmek ve Optimize Etmek

Portföy uygulamanızı dağıttıktan sonra, onu daha profesyonel hale getirmek ve kullanıcı deneyimini iyileştirmek için çeşitli geliştirmeler yapabilirsiniz.

Özel Alan Adı (Custom Domain) Yapılandırması

Cloud Run, uygulamanız için varsayılan bir URL sağlar, ancak www.sizinadiniz.com gibi kendi özel alan adınızı kullanmak profesyonelliği artırır.
1. Alan Adı Kaydı: Bir alan adı sağlayıcısından (Google Domains, GoDaddy vb.) bir alan adı satın alın.
2. Cloud Run Entegrasyonu: Google Cloud Console'da Cloud Run servisinize gidin. "Özel Alan Adları" sekmesinden "Alan Adı Eşle" seçeneğini kullanarak alan adınızı Cloud Run servisinize bağlayın.
3. DNS Kayıtları: Cloud Run size DNS sağlayıcınızda ayarlamanız gereken CNAME ve/veya A kayıtlarını verecektir. Bu kayıtları alan adı sağlayıcınızın DNS yönetimi panelinde yapılandırın.

CI/CD Entegrasyonu (GitHub Actions/Cloud Build)

Sürekli Entegrasyon/Sürekli Dağıtım (CI/CD) boru hattı kurmak, kod değişikliklerinizi otomatik olarak test etmenizi ve dağıtmanızı sağlar.
* GitHub Actions: Kodunuzu GitHub'da barındırıyorsanız, GitHub Actions ile bir iş akışı oluşturarak her git push işleminde otomatik olarak Docker imajınızı oluşturup GCR'ye yükleyebilir ve Cloud Run servisinizi güncelleyebilirsiniz.
* Google Cloud Build: Kaynak kodunuzu doğrudan Cloud Build'e bağlayarak, belirli bir branch'e yapılan her push işleminde uygulamanızı otomatik olarak derleyip Cloud Run'a dağıtabilirsiniz. Bu, manuel dağıtım süreçlerini ortadan kaldırır ve hata yapma olasılığını azaltır.

Performans İyileştirmeleri ve Caching

* CDN Kullanımı: Statik içerikleriniz (resimler, CSS, JavaScript dosyaları) için Google Cloud CDN gibi bir İçerik Dağıtım Ağı (CDN) kullanarak uygulamanızın yüklenme hızını artırabilirsiniz. CDN, içeriği kullanıcılara coğrafi olarak daha yakın sunucularda önbelleğe alarak gecikmeyi azaltır.
* Önbellekleme Stratejileri: Dinamik içerikleriniz için uygun önbellekleme stratejileri uygulayın. HTTP önbellek başlıklarını (Cache-Control) kullanarak tarayıcı önbelleklemesini veya Cloud CDN ile önbellekleme yapabilirsiniz. Backend'inizde Redis gibi bir önbellek katmanı da kullanabilirsiniz.

Güvenlik ve Maliyet Yönetimi İpuçları

Bulut uygulamaları geliştirirken güvenlik ve maliyet yönetimi her zaman öncelikli olmalıdır.

Kimlik Doğrulama ve Yetkilendirme Stratejileri

* Herkese Açık Portföy: Eğer portföyünüz tamamen herkese açık olacaksa, --allow-unauthenticated bayrağını kullanmaya devam edebilirsiniz.
* Yönetici Paneli: Eğer portföyünüzde bir yönetici paneli veya özel içerik varsa, Google Identity Platform (Firebase Authentication), Auth0 veya kendi JWT tabanlı kimlik doğrulama sisteminizi kullanarak erişimi kısıtlayabilirsiniz. Cloud Run, IAM (Identity and Access Management) ile entegre çalışarak servislerinize kimlerin erişebileceğini detaylı bir şekilde kontrol etmenizi sağlar.

Güvenlik Açıklarını Önleme

* Bağımlılık Güncellemeleri: Uygulamanızın kullandığı tüm kütüphaneleri ve bağımlılıkları düzenli olarak güncelleyin. Güvenlik açıkları genellikle eski sürümlerde bulunur.
* Güvenli Kodlama Pratikleri: XSS (Cross-Site Scripting), SQL Injection gibi yaygın web güvenlik açıklarına karşı önlemler alın. Kullanıcı girişlerini her zaman doğrulayın ve sanitize edin.
* Sırlar Yönetimi: API anahtarları, veritabanı şifreleri gibi hassas bilgileri kodunuzda doğrudan saklamayın. Google Secret Manager veya Cloud Run'ın ortam değişkenleri (environment variables) özelliğini kullanarak bu sırları güvenli bir şekilde yönetin.

Cloud Run Maliyetlerini Optimize Etme

Cloud Run'ın "kullandığın kadar öde" modeli genellikle maliyet etkin olsa da, bazı optimizasyonlar yapabilirsiniz:
* Maksimum Eşzamanlılık (Concurrency): Her bir Cloud Run örneğinin aynı anda kaç isteği işleyebileceğini ayarlayarak maliyetleri optimize edebilirsiniz. Varsayılan değer 80'dir, ancak uygulamanızın performansına göre bunu değiştirebilirsiniz.
* CPU Ayarları: Uygulamanızın CPU tahsisini "CPU her zaman tahsis edildi" veya "CPU sadece istek sırasında tahsis edildi" olarak ayarlayabilirsiniz. Arka planda işlem yapmayan veya düşük trafikli uygulamalar için "CPU sadece istek sırasında tahsis edildi" seçeneği daha uygun maliyetlidir.
* Maksimum ve Minimum Örnek Sayısı: Uygulamanızın boşta kalma süresini ve minimum örnek sayısını ayarlayarak maliyetleri kontrol altında tutabilirsiniz. min-instances değerini 0 olarak ayarlamak, trafik olmadığında hiçbir maliyet ödememenizi sağlar.
* Bütçe Uyarıları: Google Cloud'da bütçe uyarıları ayarlayarak harcamalarınızı takip edin ve beklenmedik maliyet artışlarını önleyin.

Sonuç: Geleceğe Yönelik Bir Adım

"My Portfolio – Yeni Yıl Yeni Sen" meydan okuması, sadece bir portföy uygulaması oluşturmaktan çok daha fazlasını temsil ediyor. Bu, modern bulut teknolojilerini öğrenmek, kendinizi geliştirmek ve dijital dünyada güçlü bir varlık oluşturmak için atılmış somut bir adımdır. Google Cloud Run'ın sunduğu esneklik, ölçeklenebilirlik ve kullanım kolaylığı sayesinde, altyapı endişeleri olmadan yaratıcılığınıza odaklanabilir ve projelerinizi hızla hayata geçirebilirsiniz.

Bu süreçte edindiğiniz bilgiler ve oluşturduğunuz uygulama, kariyerinizde yeni kapılar açabilir, yeni fırsatlar yaratabilir. Unutmayın, gelişim sürekli bir yolculuktur. Uygulamanızı yayınladıktan sonra bile, yeni özellikler eklemeye, performansı iyileştirmeye ve en son teknolojileri keşfetmeye devam edin. "Yeni Yıl Yeni Sen" felsefesiyle çıktığınız bu yolda, başarılar dileriz!

SSS (Sık Sorulan Sorular)

Cloud Run ücretsiz mi?

Cloud Run, belirli bir kullanım limitine kadar ücretsiz bir katman sunar. Bu limitler genellikle kişisel portföy gibi düşük trafikli uygulamalar için yeterli olabilir. Limitlerin üzerinde kullanım durumunda ise "kullandığın kadar öde" prensibiyle ücretlendirilirsiniz. Detaylı bilgi için Google Cloud fiyatlandırma sayfasına bakabilirsiniz.

Cloud Run hangi programlama dillerini destekliyor?

Cloud Run, Docker kapsayıcılarını çalıştırdığı için, bir Docker imajı oluşturabildiğiniz sürece teorik olarak herhangi bir programlama dilini (Python, Node.js, Go, Java, .NET, PHP, Ruby vb.) destekler.

Veritabanı nasıl entegre ederim?

Cloud Run uygulamanızdan Google Cloud SQL (PostgreSQL, MySQL, SQL Server), Firestore veya Cloud Spanner gibi yönetilen veritabanı hizmetlerine kolayca bağlanabilirsiniz. Cloud SQL için "Cloud SQL bağlantı proxy'si"ni kullanarak güvenli ve yönetilen bir bağlantı kurmak en iyi uygulamadır.

Portföy uygulamam için ne kadar maliyet beklemeliyim?

Çoğu kişisel portföy uygulaması, Cloud Run'ın ücretsiz katman limitleri içinde kalabilir veya çok düşük maliyetlerle (aylık birkaç dolar) çalışabilir. Maliyetler, uygulamanızın aldığı trafik miktarına, kullanılan CPU ve bellek kaynaklarına, ve ek olarak kullandığınız diğer Google Cloud hizmetlerine (veritabanı, depolama vb.) bağlıdır.

Cloud Run yerine başka hangi seçenekler var?

Google Cloud içinde benzer sunucusuz seçenekler arasında Cloud Functions (daha çok tekil fonksiyonlar için), App Engine (daha çok geleneksel web uygulamaları için) ve Kubernetes Engine (daha fazla kontrol ve esneklik isteyenler için) bulunmaktadır. Diğer bulut sağlayıcılarında ise AWS Lambda, Azure Functions, Heroku gibi alternatifler mevcuttur. Cloud Run, kapsayıcı esnekliği ile sunucusuz kolaylığını birleştirdiği için genellikle tercih edilen bir çözümdür.

Yorumlar
İçeriği beğendiniz mi? Bir tartışma başlatın veya görüşlerinizi paylaşın.
Yorum Yaz

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Gönder

E-posta Bülteni
Yazılım Topluluğuna Katılın
En son güncellemeleri, yaratıcı ipuçlarını ve özel kaynakları doğrudan e-posta kutunuza alın. Tasarım ve inovasyonun geleceğini birlikte keşfedelim.
Exit mobile version