發表文章

目前顯示的是 七月, 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 方便後序處

部署一個具備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:    app: mysql  clusterIP: None --- apiVersion: v1 kind: PersistentVolumeClaim metadata:  name: mysql-pv-claim spec:  accessModes:    - ReadWriteOnce  storageClassName: ""  resources:    requests:      storage: 20Gi --- apiVersion: apps/v1beta1 kind: Deployment metadata:  name: mysql spec:  strategy:     type : Recreate  template:    metadata:      labels:        

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' ) as date ,                   round ( SUM (t0.cost), 6 ) AS cost_total FROM ( SELECT * FROM [ your-project-id :daily_billing.gcp_billing_export_$billing_account_id]              WHERE _PARTITIONTIME >= TIMESTAMP ( '20170401' )              AND  _PARTITIONTIME &