跳到主要內容

發表文章

有趣的Google container-vm

研究Google在GCE執行datalab的範例中,發現了個頗有趣的事情... 不久前Google針對Optimized Container出了一個container-vm,雖然目前已經預計要deprecate這個image,不過在datalab執行於GCE的範例中M還是使用這個image來執行... 有趣的地方是,datalab-service.yaml是一個k8s的pod描述檔... 下面是instance執行的gcloud腳本: gcloud compute instances create "instance-name" \ --project "project-id" \ --zone "zone" \ --network "datalab-network" \ --image-family "container-vm" \ --image-project "google-containers" \ --metadata-from-file "google-container-manifest=datalab-server.yaml" \ --machine-type "n1-highmem-2" \ --scopes "cloud-platform" 打開datalab-server.yaml檢視,內容如下: apiVersion: v1 kind: Pod metadata: name: 'datalab-server' spec: containers: - name: datalab image: gcr.io/cloud-datalab/datalab:local command: ['/datalab/run.sh'] imagePullPolicy: Always ports: - containerPort: 8080 hostPort: 8080 hostIP: 127.0.0.…
最近的文章

為GCS加上HTTP(S) Load Balancer與CDN

GCS可以串連HLB了,也可以附加CDN功能了!也就是說,未來幫任何的GCS設定frontend存取的位置,甚至加上SSL都已經不是夢想,還在嫌架設主機太麻煩嗎?


GCS website bucket YouTube

這是GCS Website Bucket的設定過程,動手比較有感覺,給大家參考一下~



PubSub入門

Cloud PubSub是Google Cloud Platform上的一個Publish Subscriber的服務,讓使用者可以透過API將資料放到PubSub上,並且透過建立Subscriber讓其他的城市可以讀取該資料做進一步的處理... PubSub的特性如下: 作爲應用程式服務的中介,供連接異質性來源的系統作為資料傳遞之用支援Push與Pull兩種方式,其中Push可以讓使用者設定Push URL,讓系統可以直接再接收到訊息時,呼叫push url提供“at least once” delivery的送達保證,並且資料在傳輸過程中均有加密保護PubSub是一個全球化的服務,並且會依照使用者之彈性需求自動調整資源概念上,topic是讓您放您資料的位置,然後需要在該topic下面建立subscriber,讓程式可以在該subscriber下讀取到放置在該topic的資料,再透過ACK這個動作回覆系統,確認已經被讀取... 建立topic$ gcloud --format=json alpha pubsub topics create my-topic [ { "reason": "", "success": true, "topicId": "projects/sunny-573/topics/my-topic" } ] 列表topics$ gcloud alpha pubsub topics list --- topic: projects/sunny-573/topics/my-topic topicId: my-topic ... Push訊息到pubsub$ gcloud alpha pubsub topics publish my-topic '{"aaa":123,"bbb":223}' 為topic建立一個subscriber$ gcloud alpha pubsub subscriptions create sub002 --topic my-topic --- ackDeadlineSeconds: 10 pushEndpoint: null re…

最精簡的K8S執行環境 - MiniKube

kubernetes.io發佈了一個供本地端單機跑kubernetes最精簡的環境minikube,透過minikube可以很快速的使用與測試k8s的功能唷~ 安裝minikube 安裝的部分要看您的主機是哪種OS,下面是Mac OS的安裝方式 curl -Lo minikube https://storage.googleapis.com/minikube/releases/v0.6.0/minikube-darwin-amd64 && chmod +x minikube && sudo mv minikube /usr/local/bin/ 其他的操作部分都是使用kubectl,可以參考kubernetes的指令... 其他一功能 透過minikube的指令,可以看到在Mac上,其實是使用Virtualbox來啟動裝有kubernetes的boot2docker環境。 # ps -ef | grep minikube 502 14260 14236 0 11:49上午 ?? 21:11.73 /Applications/VirtualBox.app/Contents/MacOS/VBoxHeadless --comment minikubeVM --startvm cb568998-d8b4-40d4-a6e7-c92aea5aee3d --vrde config 502 18986 4258 0 3:59下午 ttys008 0:00.00 grep --color=auto minikube minikube除了提供k8s環境之外,而且也連結了這些環境提供一些不錯的操控方式,這邊紀錄幾個看到還不錯用的功能... 檢視版本資訊 minikube version # minikube version minikube version: v0.6.0 k8s version # minikube get-k8s-versions The following Kubernetes versions are available: - v1.3.0 Minikube的儀表板minikube dashboard 此時,桌面會跳出browser的畫面,裡面是kubernetes的dashboard,這版本的dashboard已經提供…

Google Cloud上的大資料工具探討 - Lambda Architecture原來這麼簡單

大資料的環境需求
步上雲端的時代,運算與儲存空間隨著莫爾定律的實踐慢慢變得越來越便宜,而大資料的議題也越來越被重視,在Google這麼一個以大資料起家的企業,從一開始的分散式儲存體GFS(Google File System)到大資料分析工具MapReduce的概念,讓我們知道在大資料處理上,儲存(Input)與讀取(Output)兩個不可或缺的環節。
分散式儲存在傳統的架構上,存在一顆硬碟或資料庫的資料,要讓多台主機同時存取並分析資料會有許多衝突問題需要解決。而且,在雲端的概念中,要訴求一台超級電腦似乎永遠是成本遠高於利潤的作法,在雲端分毫必爭的資源環境,Google是以小而多的方式來取勝。而GFS正式以此方式讓儲存可以無限延伸,不只空間的部分得以延伸,連存取該空間所需要用到的運算能力,也可以在這個架構上得到滿足。
有效率的查詢方式MapReduce是一種沒有index的查詢方式,從頭開始看資料,再透過所給訂的條件作過濾... 原本看似毫無效能的運作,在GFS之後漸漸變成可能... 由於GFS提供了平行的存取架構,讓原本查詢需要在一台機器上運作的傳統被打破。而基於GFS的可過展儲存方式,同一份資料可以由眾多的主機同時讀取,因此Google實作了MapReduce的架構,可以同時間讓多個運算資源存取同一份資料,因此只要使用正比於資料的大小的機器來運算,就可以把處理的時間壓縮到可以忍受的範圍。
更多的資源調用方法當最困難的問題都已經解決,接下來的問題就相對單純了許多,而且,在現階段不論是網路環境、運算資源、儲存資源等等都持續不斷提升之下,資源的價格也在不斷的降低,這意味著適合大資料的環境已經具備... 接下來,開發者們可以集中在思考資料有意義的地方。但在資源無虞的情況下,使用資源的方式則需要再好好思考,如何自動化、如何因應量大的儲存、處理...
部署管理:如何在最短的時間內部署您的服務,讓他可以承受最大的request、儲存最多的資料,並且具備HA的架構... 自動化拓展(Auto Scale):延伸部署管理的另一個應用層面,如何在不影響服務的層面下,自動化擴展您的伺服器群,並且可以在離峰時間將資源釋放。 全球網路:雲端時代在步入全球存取的狀況下,我們在思考如何讓全世界的使用者可以存取無礙,已經成為雲端的課題之一。
剩下的,就是轉換傳統的思維,讓我們開始思考哪些是現存的資料,哪些是…