我是谁我在哪我在干嘛
首先简单的区分下这三个概念↓
PaaS、IaaS、SaaS
谷歌随便找了一张图,感觉三者的区别还是很明显的↓
图上IaaS和PaaS的区别在于Operating System和Database,不过实际上感觉通常被我们认为是IaaS的AWS还有GCP等都有提供OS级别的管理。不过OS的创建是用户自行选择的,认为平台本身不提供似乎也合理?
我想干嘛
最近对由于对网络的特♂殊♂需♂求升级(国内旁友们应该都懂哈),再加上没钱(其实是为了省钱买糖),开始钻研起了歪门邪道,经过对各种方案的对比整理、原理用法钻研、踩坑跳坑出坑,终于将技术上的需求明确下来了:
- 自带基础设施的云平台(Platform as a Service)
- 有至少一个免费、不限时的配额
- 支持基于docker/nodejs部署app
- 操作流程可理解、相对简洁
要求自带基础设施是因为在找的过程中发现有的平台虽然自称是PaaS,但实际上可以认为是只提供一套基于IaaS的部署工具——或者说应用管理方案。这种平台他们自己的部署工具大多有一套架构、对应的CLI,但基础设施还是别人的。具体表现在看doc你会发现他们要求你有Digitalocean、GCP或者AWS等IaaS才能部署
……emmmm这要都有一台自己的VPS了还要你们何用,参照上一条的定义,这样的平台并不能算作PaaS
我在干嘛
晚上吃饭的时候一时兴起翻到了一个free for dev列表,理所当然就顺着列表的PaaS、IaaS还有Docker related项翻了起来,最后翻来覆去的试了十几个,加上前几天的浏览整合了下,感觉大概符合要求能用的也就几个:
- Bluemix:乍看上去不复杂,有自己的CLI工具也有配合Pivotal Cloud Foundry的CLI插件,列入考虑
- Openshift:因为是基于Kubernetes架构,一个pod一个app过程极其简单,然而用了不到两天就被ban了……
- Hasura:微服务同样基于Kubernetes架构,本回的主角
- Pivotal Cloud Foundry:流程复杂了点(要部署docker app要设置diego_docker项,设置该项要admin用户,admin用户要自己创建,自己创建admin又要通过自行部署他们的UAA服务来创建,而这个服务无论是本地还是线上都部署失败),在Github提了issue,后面有空再慢慢跟进吧
- Arukas:还没试就在当晚被告知注册要排队很久,还要绑定银行卡,而且部署的
非法app很快就会被ban,遂放弃
综上所述,当晚摸鱼就决定试试hasura了!
Let’s debug this together
大致过程
先总结下印度工程师朋友的debug思路:
- hasura setup确保工程整体初始化
- 怀疑git状态,确认
git status
与git remote
正常, - 确认他们的CLI版本最新
- 打开hasura debug,后台源代码查看错误
- 中途我怀疑可能是墙还是user的问题所以擅自切到了root账号上了代理
- root账号多报了个credentials的错误,
hasura cluster get-credentials -c hasura
执行也有返回错误 - 被发现切了账号,
hasura user-info
确认了原本的user正常工作后切回了普通用户
- root账号多报了个credentials的错误,
- 发现我是在VM里操作的,怀疑我弄混了VM和本机设置(……)
- 进一步确认
git status
正常 - 确认$HOME变量正常
- 后台发现错误是在 git library 里抛出来的,怀疑到 git版本 问题上了
- 检查发现我还在使用古老的1.8.xx版本,遂试试升级git
- It works!That’s awesome!
报错细节
参照doc,安装CLI,注册好账号,建好project和cluster以及microservice节点,到了git push hasura master
这一步的时候出现了问题
|
|
起初以为是网络的问题,挂了代理试了一下,还是报错
|
|
束手无策,点击了右下角的webim图标将自己的问题发了过去,没期待能得到回复
意外的是很快就有人回复了我,看了下信息,似乎是个在印度的工程师朋友(妈呀还是k8s相关开发)
意外的是很快就有人回复了我,看了下信息,似乎是个在印度的工程师朋友
根据指示设置好其他一切漏的设置后接下来git push hasura master
基本上都固定报一个错了
|
|
于是开始一起debug……
因为习惯Linux敲命令行了哈哈哈
git版本太老
为什么是ssh不是常规git协议
为什么用虚拟机操作
通过他们的Gateway设置http准备好自动跳转https
问题分析
普通Github工程remote显示如下:
|
|
该工程的remote显示如下
|
|
通过remote可以明显看出他们的服务器不是一般的git server,问了下了解到他们确实是用的ssh server代替常规的git server,而低版本的git在解析ssh的时候似乎会出现问题,所以才一直报的error
实话说这个问题确实不好发现,如果没有后台查代码辅助,我应该是无论如何不会想到git的问题上的,云平台连接报错我总是会怀疑到国内神奇的网络环境上……
思维还是局限了点,也不知道是受限于经验还是知识了,不过这锅还是甩到墙上吧哈哈哈╮(╯▽╰)╭
后(fei)记(hua)
为何如此高兴
最近沉迷云平台,到处试用,用过的大部分平台虽说有人工求助接口,但很少能回复,更别说是及时回复,更更不用说一直跟着你手把手debug指导问题解决了。当然相信这里面原因复杂,时差、平台规模、bug本身都是阻碍,也不能一味的就说平台的服务不好吧
不管是时差正好对上了,还是他们的服务就是如此及时,快速的响应、耐心的帮助总是很让人感动的。
从他们的CLI版本还在0.15.x来看,估计平台建好还不久,用户群体没那么庞大,所以人工服务才如此及时吧,不知道将来规模大了还能不能如此快准稳哈哈哈
这次debug体验就像一次远程的结对编程,解决问题的那一瞬间非常开心,还顺便加了他们的discord讨论群,顺便问了下why not slack,顺便一起作为扩展阅读参考吧
英语表达与知识体系
记得以前看过一篇公众号文章,大意是我们获得的大部分知识都停留在某个浅薄的级别上,没有深入理解,不能实际应用,更无法举一反三
从自己的英文水平上深刻的感受到了这一点
平常也会看小说,看技术文章,阅读量能勉强维持住,读到复杂颠倒的语句也能理解其意思,但真到了说的时候蹦出来的还是那几句小学英语(I wil、Can I、I should、how…),语序也基本还是中文思考的语序。大概就是只能说出I really feel disappointed而说不出It clearly a bummer的水平吧。
扎心了,好几次交流途中都感觉无法完整表达出自己的意思,只能拐个弯。句式词汇单一反倒不是最难过的,毕竟交流只要能传达出意思就是胜利,然而事实上就是传达不出自己原本想表达的意思……╮(╯_╰)╭很难过了
慢慢来吧,希望工作后还能有时间精力加强英文水平
最后
Let’s debug this together!
Written with StackEdit.