[TIL] 如何快速在 Google Cloud Platform 上面架設一個 Docker 環境

Using docker-machine is another way to host your google compute instance with docker.

docker-machine create \
  --driver google \
  --google-project $PROJECT \
  --google-zone asia-east1-c \
  --google-machine-type f1-micro $YOUR_INSTANCE

If you want to login this machine on google cloud compute instance, just use docker-machine ssh $YOUR_INSTANCE

Refer to docker machine driver gce

Note:

  • The progress of docker-machine might be slow because it need connect to Google Compute Engine.
  • Do not use multiple docker-machine creation, because docker need to write related information on docker.sock. You might occur error on Wrapper Docker Machine process exiting due to closed plugin server (unexpected EOF).
  • Using docker-machine to create local vbox vm will install docker 1.12 rc1, but on GCP will using 1.11. So, we could use docker swarm mode :(

[TIL] Google Cloud Storage Quickstart

Google Cloud Storage:

扁平的檔案結構,其主要架構為:

  • Bucket (ex: gs://example) 就像是 git repo 一樣.
  • Object 就像是檔案一樣.

存取方式

這裡先介紹透過 Google Cloud SDK 來安裝,透過以下方式可以安裝:

curl https://sdk.cloud.google.com | bash

建立 Bucket

gsutil mb gs://YOUR_BUCKET_NAME

複製檔案過去

gsutil cp SOURCE DESTNATION

根據這樣指令架構.

檔案放上 Google Cloud Storage:

gsutil cp ./111.txt gs://YOUR_BUCKET_NAME

拉回本地端:

gsutil cp gs://YOUR_BUCKET_NAME/111.txt ./

參考:

[Golang][FB] 教學如何快速透過 Golang 與 Heroku 架設一個臉書機器人

1. Just Deploy the same on Heroku

Deploy

Remember your heroku ID and app address. ex: https://APP_ADDRESS.herokuapp.com/

2. Create a Facebook Page

Make sure you already have Facebook account, if you need use FB Bot.

3. Go to Facebook Developer to create App

Create App, need select as follow:

  • New App type [Web App], create app
  • Add new product [Messenger]

4. Configuration Messenger Bot

Get token from Faccebook page.

  • Select a “Page” you own.
  • Go to “Meseenger” product.
  • It will generate token
  • copy it and store it.

5. Paste Token to Heroku

Go to heroku dashboard, go to “Setting” -> “Config Variables”.

  • Add “Config Vars”
  • Name -> “TOKEN”
  • Value use token facebook app.

6. Back Facebook App configuration

  • Go to “Messenger” product
  • Go to “Setup Webhooks”
  • Fill https://APP_ADDRESS.herokuapp.com/webhook in callback URL.
  • Fill your token in “token”.
  • Checked the checkbox “message_deliveres”, “messages”.

If your configuration is correct, it will show “completed”.

Also remember to choose correct page in this setting.

7. Request basic permissions

In Messenger application review, press “Request Premission”.

  • Checked the “pages_messaging”.

How to testing it.

  • Go to your spcific “page” in Facebook.
  • Press “Send Message”

How to modification your Bot Code

  • Download code from Heroku git clone https://git.heroku.com/APP_ADDRESS.git
  • Modify code on main.go first. especially in MessageReceived().
  • Commit and push it back to heroku git push heroku master.

程式設計週記[2016/06/24]: COSCUP 要開賣, Docker Swarm v2 帶來集群管理

這是什麼?

程式週記主要內容如下:

Gihub project 介紹:

  • 主要會貼一些github,但是會盡量寫上一些有用的評語(或是我容易想到的關鍵詞)幫助以後查詢

網路文章心得:

  • 會寫些心得,強迫自己閱讀.

“程式週記”並且定期週期性更新.

大部分內容在我的twitter都會有,這邊只是將一些簡單的心得與感想註解一下.

本週摘要

正式上班第一週,大部分時間都在開會 @_@ .本週最大的事情大概就是COSCUP 要開賣還有就是 Docker 出了自己的集群管理系統 Docker Swarm v2 . 本週還是寫了一個專案,不過不會記錄到 Project52,大家也要繼續寫喔.



Go

Short Introduction to Bleve

一個文字搜尋的套件,支援相當多的語系.這裡有 Github

GO: MARSHAL AND UNMARSHAL JSON WITH TIME AND URL DATA

講解如何透過 Custom Marshaller 透過 JSON 來處理 time 或是其他類型資料.這裡有更仔細的影片教學可以看 from Francesc Campoy -

http://elliot.land/go-subtests-and-sub-benchmarks

主要是講解 Go 1.7 新增的 subtest 跟 subbenchmark 的部分.

HOW TO WRITE ROUTER TESTS IN GO



Python



Android/JAVA/NODE.JS/Scala

Spark Streaming Programming Guide - Spark 1.1.0 Documentation

Send data to spark streaming directly via pipe



Docker

Youtube: Docker 1.12 Release Candidate 2

About Docker Swarm V2, 內建 SwarmKit 之後.類似 Mesos 一樣可以很方便的建置出資源控管.

More Microservices Bliss with Docker 1.12 and Swarm only

專門幫 Docker port 到 PI (ARMed) 的 HyPriot 也把 1.12 開始導入了,這篇也有一些介紹.

DockerCon 2016 D1 主题演讲

紀錄 DockerCon 2016 第一天的重點,主要還是集群管理的部分.

Swarm Reboot in Docker 1.12

SwarmKit 在 Docker 1.12 之後會整合進 Docker Swarm 中,這篇文章做一個簡單的介紹.

Building serverless apps with Docker

若有參加 Docker Birthday #3 聚會,應該都了解這 voting 的 Micro-services web 架構,原 fig 作者(後來變成 Docker compose) - Ben Firshman ,把這應用程式變成 Serverless 架構。測試過無需裝 Docker 1.12 rc2,Docker 1.11亦可執行,但 Docker Compose 要 1.7 以上~



iOS/Swift



其他程式語言



論文收集



網站文章



網站收集



有聲書/影片心得



本週專案

Project 52 雖然結束了,好像還是天天在寫東西.紀錄一下

Facebook Bot in Golang 範本與簡單教學如何馬上配置好 Facebook Bot Server 透過 Heroku.

明明 Project 52 都結束了.. 還是習慣寫點東西…

程式設計週記[2016/06/17]: 女兒剛滿週歲,Project52 也順利完成

這是什麼?

程式週記主要內容如下:

Gihub project 介紹:

  • 主要會貼一些github,但是會盡量寫上一些有用的評語(或是我容易想到的關鍵詞)幫助以後查詢

網路文章心得:

  • 會寫些心得,強迫自己閱讀.

“程式週記”並且定期週期性更新.

大部分內容在我的twitter都會有,這邊只是將一些簡單的心得與感想註解一下.

本週摘要

本週真是一波多折:先是老婆感冒生病,再來換我眼睛長針眼.也剛好本週要把 Project 52 跟一個電子報導(尚未發,先保密)寫完.整個就是忙碌到不行.最後專案是 Raft Server ,所有的變數名稱跟功能都是依照論文來寫.不過 Log Replication 還需要更多的測試才能確認功能是否正常.



Go

google/cayley: An open-source graph database

Google 開發的開源圖形資料庫,裡面提供許多關於連接資料 (Linked Data) 的工具箱.

GB 0.4.2 release

GB 有新功能就是 nope mode ,可以只編譯 test 的部分而不去跑他,來確保程式碼有沒有基本的問題.

How to do Google sign-in with Go

透過 Golang 來撰寫可以登入 Google 服務的功能.

roylee0704/gron: gron, Cron Jobs



Python

Reactive Programming in Python

PyCon Taiwan 2016 的講稿



Android/JAVA/NODE.JS/Scala

jQuery 3.0 Final Released!



Docker

Shrink your App with Alpine Linux

教導你如何將 App 修改後可以放入 Alpine Linux 之中,這樣也可以在 Docker 放入 Alpine (又小又安全)

gaia-adm/pumba: Chaos testing tool for Docker



iOS/Swift

iOS 裡面的 SourceKit 已經是用 Swift 編譯而成



其他程式語言

Spark手把手:e2-spk-s02 教你如何透過 docker 來架設 spar



論文收集

Who to Follow for DevOps Resources on Twitter | Automic Software

DevOps Twitter 名人帳號清單.



網站文章

Clairvoyance 是怎麼開發的 - 104 Chrome 套件天眼通的開發經過與心得

最近很知名的 104 Chrome Plugin 可以讓你在職位下面留言.

Secure and fast GitHub Pages with CloudFlare

找時間要把這個部落格 HTTPS 的問題透過 CloudFlare 解決一下

API 已死,Bot-to-Bot 时代即将到来

[原文] 這一篇裡面是提到,透過自然語言的發展.以後機器對機器可以越來越簡單,而不用再透過 API 了.

揭秘苹果的 AI 技术: 即将用于Siri 2 的自我学习技术

灣區日報: 面對困難項目怎麼辦

面对困难的项目(尤其是side project),如何坚持做下去?将每天醒来的第一个小时贡献给这个项目,一小时到了可以停下来明天再做。这种方式开始新的一天就会时不时思考该项目。每天一小时,养成了习惯,就坚持下去了,就有可能做成你原以为做不成的事。 [摘錄]

Slide: QCon NewYork 2016: The Verification of a Distributed System

The Segment AWS Stack



網站收集

Distributed systems for fun and profit

“GDB for fun and profit”

A curated list of awesome Amazon Web Services (AWS) libraries, open source repos, guides, blogs, and other resources. Featuring the Fiery Meter of AWSome.

收集所有的 AWS Web Service



有聲書/影片心得

Youtube: Distributed Consensus Making Impossible Possible

很值得一看.

Google’s Site Reliability Engineering with Todd Underwood

想知道 Google SRE 做什麼,聽聽看



本週專案

這邊會寫一些我的Project 52的成果.

本週專案: https://github.com/kkdai/raftserver

最後一個禮拜,當然要專心把 Raft Consensus 寫完.不過這週有太多的事情.所以雖然做完了,但是只有 Leader Election 有比較多的測試; Log Replication 需要更多的測試與問題修正.

邁向下一步

打完卡後,就要離開群光電子. 在這兩年多,不務正業的完成以下目標:

  1. 有一個可愛的女兒(滿足…)
  2. 完成 8 堂 MOOCs (本想一年 10 堂,但是硬生生拖了兩年還是上不完)
  3. 程式語言 Scala, Swift, Golang, Ruby, R 學習. Python 算複習. ObjC / Android 工作上的就不算了.
  4. 完成了 Project 52 (眼淚…)
  5. 將要站上 COSCUP 講者台 (順便也將要站上 Morden Web)
  6. 讀了 4 篇非工作上的相關論文 (Paxos, Raft, Gorrila, Maglev)
  7. 很開心地加入了碼天狗,認識很多厲害的大大.

勇敢邁向下一步吧… 我是這麼想著..