發表文章

目前顯示的是 七月, 2017的文章

weddingcnp via GCP

圖片
Cage & Ping wedding 是一個我們為結婚喜宴處理朋友出席報名相關事宜特別開發的網站,所有的服務全部建構在 Google Cloud Platform 上功能大至如下:喜宴相關資訊訂婚場/結婚場時間、地點、交通資訊出席人數統計(強制使用 Google/Facebook 登入)。訂婚場/結婚場,人數、葷素、兒童椅等,需不需要住宿婚紗搶先看,先公開一部份。喜宴當天再公佈所有照片喜宴進行中的 Bingo 遊戲EDM (發佈 email 給參加的朋友)GA (關心一下有多少人來看)因為我們規劃了一些特別的梗(其實是要幫每一個出席的人作一張專屬的桌卡),所需要每一個人的大頭照(avatar),立馬就動到使用 Google/Facebook 進行登入,授權後程式能夠自動的抓到每一個人的照片,雖然不是每一個人的照片解析度都夠進行後制的加工,不過已經可以節省下非常多的時間有結過婚的朋友都非常的清楚,統計出席人數是一件很麻煩的事情,出席的大人數、小孩數、小孩有沒有佔位、需不需要兒童座椅、有沒有住宿的需求。種種的資料統計很麻煩,所以就計設出一個表單,想出席的朋友直接登入 Google/Facebook 帳號後,填完相關問題的表單送出後就好了,收單前可以俢改資料(這塊踩到大的雷,透過 Google Analytic 可以很多是直接使用手機登入網站,不過遇到表單無法送出的問題,後來針對相容性作調整後才讓大家順利的報完名)weddingcnp architecture上面是 weddingcnp 的架構圖,整個網站完全是架構在 Google App Engine 上,透過 dispatch.yaml 的設定將流量切為服務前端靜態網頁(golang + vue.js + auth0)及後端 endpoint API 的部份。前後端為不同的 instance, 可以容易在 Google App Engine 的管理介面中計對前後端別分進行版控Enpoints API 作為接收前端送過來的資料,並接報名相關資料儲存到 Google DataStore, 並自動將使用者的 Avatar 儲存到 Google Cloud Storage 並將所有的名單透過 Google client API 轉存一份至 Google Drive 方便後序處理。只要有人報名會自動透過 sendg…

部署一個具備DB與AP的應用程式 - 以Yourls服務部署為例

圖片
接下來以建置mysql資料庫以及一個連線該資料庫的應用部署來觀察GKE在網路層的變化,我們參考kubernetes的mysql服務建立的方式(文章:https://kubernetes.io/docs/tasks/run-application/run-single-instance-stateful-application/),其中我們需要先建立mysql所需要用到的disk空間,可以透過下面指令來建置:
gcloud compute disks create --size=20GB mysql-disk
然後,透過mysql.yaml來設定mysql與相關掛載的設定...
apiVersion: v1
kind: PersistentVolume
metadata:
 name: mysql-pv
spec:
 capacity:
   storage: 20Gi
 accessModes:
   - ReadWriteOnce
 gcePersistentDisk:
   pdName: mysql-disk
   fsType: ext4
---
apiVersion: v1
kind: Service
metadata:
 name: mysql
spec:
 ports:
   - port: 3306
 selector:

Google Container Engine的建立

圖片
在Google Cloud上使用Container Engine服務來建置Container Cluster是非常方便的事,原因是因為在GKE上,他幫忙我們處理掉了網路的串接、效能管理、對外IP的連線與防火牆的授權等等... GKE是怎麼完成的呢?下面讓我們一步一步的,用比較詳細的流程來看一下每個階段Google做了什麼...
首先我們先建立一個GKE cluster環境,用yourls這個名稱來建立... 建立後,可以在GKE console中看到下面的資訊:
接下來,點進yourls的cluster時候,可以看到下面的資訊... 包含cluster的master與slave以及cluster的location,k8s的版本與cluster size等資訊...
在GKE cluster size小於10台的情況下Google會代管您的Master node,讓管理上可以忽略Master Node的部分,也可以省下Master Node的費用...
另外,下面有列出node pool的資訊,其中GKE上預設node與master的版本相同,而如果要做升級動作,可以針對node與master分開執行,這樣可以讓環境彼此間的影響比較小...
當Cluster架設好,我們會想... 那,就通了嗎?以Google Compute Engine的經驗,我們需要設定firewall讓cluster的環境打通,來看看firewall上的設定...
在firewall上,GKE幫我們建立了幾個設定.. gke-yourls…-all: 允許GKE內部Container的網段可以直接連線彼此gke-yourls…-ssh: 允許master node可以讓外部ssh連線進入gke-yourls…-vms: 允許GKE Host VM彼此之間可以互通
透過上述設定,可以讓一個GKE的Cluster可以正常運作... 接下來可以看一個應用程式部署的情況下,在網路上會有哪些改變... ^^
From: IndustrialClouds.net

GCP的Billing Export與分析(二) - Report with Datastudio

圖片
Datastudio是Google所提供的線上報表工具,可以透過簡單的定義data source來撈取多種的data格式,甚至data的來源,當然,其上支援Google的大數據資料來源,包含BigQuery, Sheet, Cloud Storage, Cloud SQL等等... 加上前篇所介紹,透過Billing Export來匯出帳務資料,我們可以結合這篇所介紹的功能來製作各種報表...

Step1 至Google Datastudio (https://www.google.com/analytics/data-studio/),點選sign up for free,用google的帳號即可登入。



Step2 將BigQuery的資料設置為datastudio的資料來源。點選”資料來源” 並按下右下角的加號
選擇BigQuery > 你的專案 > dataset > table,最後按下右上角的連結,Bigquery的資料就可以在datastudio中使用。

Step3 建立報表。點選建立新報表後,旁邊的資料來源就多了你剛剛新增的GCP Billing,點選並將這個資料來源加入此報表。 點選圖建立報表,如下圖

簡單的介紹到這邊,接下來需要大家努力把SQL結合進來咯,下面是一部分報表的完成品,給大家參考一下.... 這邊透過加入日期filter的功能來設定報表的區間,可以讓您的報表更具備彈性喲!

作者:宜禎

GCP的Billing Export與分析(一) - 透過BigQuery查詢與分析GCP帳務資料

圖片
GCP提供雲端服務平台之相關產品,在計價上,GCP提供Billing檔案的匯出,從GCP web console設定,可匯出至BigQuery、Cloud Storage與PubSub幾個目的儲存體,本次跟大家介紹BigQuery的匯出部分,並藉由BigQuery的查詢呈現您想要的報表。 GCP Billing export to Bigquery在您的Billing Account的設定頁面中,可以透過下面的介紹設定好Billing Data的匯出動作...

首先,進入Google Cloud Billing頁面後,可以在BigQuery export的項目中設定匯出Billing資料至某個您具備權限的project下的BigQuery dataset中...



設定完成後,BigQuery就會多一個dataset並且自動產生一個table,該table的名稱規則為:gcp_billing_export_$billing_account_id



原則上設定完後,Billing的資料會等約2個工作天才會完整的進來,如果沒看到全部的資料,請不要擔心^^ 建立報表下面是透過BigQuery來取得某個期間的每日各項目加總(日期自行修改)的查詢語句。結合上述的專案帳務資料的匯出,可以得到所指定日期內每一天的所有項目費用紀錄,可以讓您方便了解每項資源在每天的使用上,在各專案中的比重約為多少...

SQL: SELECT  t0.product ,strftime_utc_usec(t0.start_time,'%Y%m%d') asdate ,
round(SUM(t0.cost),6) AS