Web Sitenizi Cloud Run'da Deploy Edin
Bilgisayar bilimlerinin alt dallarından biri olan cloud teknolojileri, özellikle günümüzde web sitelerin öneminin artmasıyla beraber değeri günden güne artmaktadır. Bu durum web sitelerinin bir yerde barındırılması ve sürekli açık bulunması gerektiği için gereken ortamı sağlamasından kaynaklanmaktadır. Bu makalemde de hazır bir web sitenin hangi adımları tamamlayarak Google Cloud içinde deploy edebileceğiniz üzerine olacaktır.
1. Cloud Provider Seçmek
Huawei Cloud, Amazon Web Services, Google Cloud, Microsoft Azure gibi çokça kullanılan cloud providerlardan birisini bu aşamada seçilmesi gerekmektedir. Çünkü bu bulut sağlayıcıları websitesi deploy edebilmek için gerekli teknolojilere sahip olsalar bile hepsi bu teknolojileri farklı şekillerde ve farklı isimlerle sunmaktadırlar. Bu örneğimizde ben bu işlemi nasıl Google Cloud üzerinde yapabileceğimiz üzerinde duracağım.
2. Hesap Oluşturmak
Seçtiğiniz Cloud provider’ı üzerinde bir hesap oluşturmanız gerekmektedir. Çoğu Cloud provider ücretsiz deneme hesabı sağlamaktadır ve eğer öğrenci iseniz yine bazı Cloud providerlar çeşitli avantajlar sağlamaktadırlar.
3. Website Dosyalarını Hazırlamak
Websitenize ait tüm dosyaları bir klasörde toplamanız gerekmektedir. Bu süreçlerin hatasız gerçekleşebilmesi için de dosyalarınızın eksiksiz ve sorunsuz çalıştığından emin olmanız gerekmektedir. Bu süreçlerde websitesi dosyalarınızı GitHub, GitLab vb. gibi developer platformlarında tutmanız size Continous Integration / Continous Development(CI/CD) gibi alanlarda çeşitli avantajlar sağlayacaktır. Ben bu yazımızda GitHub üzerinden bir örnek vererek devam edeceğim.
4. Website Dosyalarını Cloud Ortamına Klonlamak
Öncelikle github üzerinden dosyaları Cloud ortamına klonlamak için sağ üstten Cloud Shell’i aktif etmeniz gerekmektedir. Bu süreçten sonra yapacağımız işlemlerin çoğu yine bu ekrandan devam edecektir. Bu ekranı aktif ettikten sonra aşağıdaki kodları kendi GitHub reponuza göre düzenlemeniz gerekmektedir.
git clone https://github.com/berkkaya0304/portfoliowebsiteofmine.git
cd ~/portfoliowebsiteofmine
Bu aşamadan sonra ise gerekli yüklemelerin yapılması için benim kendi repomda oluşturduğum setup.sh dosyası gibi bir dosya oluşturup gerekli kurulumları bu şekilde yaptırmanız gerekmektedir.
/setup.sh
Bundan sonra uygulamanın çalışıp çalışmadığını aşağıdaki komut yardımıyla test edebiliriz.
cd ~/portfoliowebsiteofmine
npm start
5. Google Cloud Build ile Docker Container’ı Oluşturma
Geride kalan aşamaları sorunsuz bir şekilde hallettiyseniz bundan sonraki aşamalarda sorun yaşamamanız gerekmektedir. Bundan sonra uygulamayı docker container’ı haline getirerek daha az kaynak harcayarak çalıştırmış olacağız.
- Docker Container’ı oluşturmak için Artifact Registry -> Repositories ekranına girmeniz gerekmektedir.
- Create Repository dedikten sonra da repository’i website olarak adlandırın ve biçimini docker olarak ayarlayın.
- Location ve Region olarakta us-central1 bölgesini seçebilirsiniz. Sonra da create’e basarak oluşturmanız gerekmektedir.
Google Cloud CLI ile doğrulayabilmek için Cloud Shell’de
gcloud auth configure-docker
bu komutu çalıştırmanız gerekmektedir.
6. Docker’ı Kullanma
Bu aşamada ise gerekli API’ları çalıştırmanız gerekmektedir. Bu yüzden
gcloud services enable artifactregistry.googleapis.com \
cloudbuild.googleapis.com \
run.googleapis.com
bu komutları Cloud Shell’de çalıştırmanız gerekmektedir. Bundan sonra ise
gcloud builds submit --tag us-central1-docker.pkg.dev/${GOOGLE_CLOUD_PROJECT}/website/website:1.0.0
bu şekilde derleme işlemini başlatabilirsiniz.
7. Container’ı Cloud Run’a Dağıtma
Bu aşamada oluşturduğumuz docker container’ını Cloud Run’a aktarıyoruz.
gcloud run deploy website --image us-central1-docker.pkg.dev/${GOOGLE_CLOUD_PROJECT}/website/website:1.0.0 --region us-central1
8. Web Sitesini Güncellemek
Bu başlığımızda bu şekilde web sitesini yayınladıktan sonra nasıl güncelleyebileceğiniz üzerine konuşacağız. Tabi ki de bu süreçlerde fazlasıyla güncelleme yapmanız gerekecektir. Bu yüzden bu başlık fazlasıyla önemlidir.
Eğer ki bu süreçlerden sonra web sitenizi yeniden güncellemek isterseniz eğer web siteniz react ile yazıldıysa örnek kodları aşağıda bulabileceksiniz. Ama eğer başka bir dil ile yazıldıysa websiteniz küçük bir araştırma ile bu komutların kendi yazılım dilinizde yazılmış haline rahatlıkla ulaşabilirsiniz.
cd ~/portfoliowebsiteofmine/react-app
npm run build:portfoliowebsiteofmine
Bu şekilde yeniden build ettikten sonra yapmanız gereken işlem ise yeniden docker ortamında çalıştırmak olacaktır ve ileride kontrolü kolaylaştırmak açısından versiyon kısmını da güncellemeniz gerekmektedir.
cd ~/portfoliowebsiteofmine
gcloud builds submit --tag us-central1-docker.pkg.dev/${GOOGLE_CLOUD_PROJECT}/website/website:2.0.0
Sıradaki aşamada ise son olarak oluşturduğumuz derlemeyi nasıl kapalı kalma süresi olmadan uygulamamızı güncelleyebileceğimizi göreceğiz.
9. Kapalı Kalmadan Web Siteyi Güncellemek
Değişiklikler tamamlandı ve son durumda yapılması gereken sadece web site hiç kapanmadan güncellemesi kaldı. Cloud Run docker container olarak oluşturduğumuz kısmı online hale getirip, buraya gönderilen trafikleri ise yeni container’a yönlenmesini sağlar. Aşağıdaki komudu Cloud Shell’de kullanarak yukarıda bahsettiğimiz gibi rahatlıkla kapalı kalmadan web sitesini güncelleyebilirsiniz.
gcloud run deploy monolith --image us-central1-docker.pkg.dev/${GOOGLE_CLOUD_PROJECT}/monolith-demo/monolith:2.0.0 --region us-central1
Bu yazımda, elinizdeki websitesini nasıl google cloud’da container’a çevirip cloud run ile başlatabileceğiniz üzerinde durduk. Bunlardan sonra ise bu yayınladığınız websitesini nasıl rahatlıkla güncelleyebileceğinizi de gördük.
Umarım bu yazım, elinizdeki websitesini nasıl Google Cloud ile beraber internete açabileceğiniz konusunda size yardımcı olmuştur. Ben Berk Kaya, herkese iyi çalışmalar diliyorum ve bir sorunuzda bana ulaşmaktan çekinmeyin.