eboer's Boat

Neboer's Blog isn't Only About Technique

neboer.site迁移在即
建站 303

虽然万事万物都会有始有终,但是这并不是结束

迁移(物理)。

轻量应用服务器到期

经过了说短不短,说长不长的一年时间,Neboer的轻量应用服务器还有三天就正式到期了。

之前走的是活动渠道,因此这次到期之后面临的就是高昂的服务器开支。Neboer经营网站没有任何收入,实不相瞒,Neboer自己也没啥收入(是什么蒙蔽了我的双眼),因此我也不可能把太多的开销花在服务器上。而且最重要的,如果迁移服务器到腾讯云或者别的云上,可以再继续以比较便宜的价格购买到这种正好够用的服务器,何乐而不为呢?

因此,Neboer决定迁移整个neboer.site到腾讯云。受影响的网站有www.neboer.site和chat.neboer.site两个,实际上Neboer确实也只有这两个网站。迁移之后最起码可以保证在短期之内不用担心没有服务器可用的问题了。腾讯云的设备可以重复续费三次,价格和阿里云相比是相差不多的,相比之下更加良心一些。

迁移工作将会在任何时候开始,但是网站的服务应该不会停。NerChat!上的所有用户和聊天数据都将会得到保留,在终端用户看来应该感受不到实际发生了迁移。

阿里云DNS、DCDN、OSS等服务暂时不会跟着迁移过去,这些服务如果还能继续使用的话短期之内应该不会有变化,我个人对这一年来阿里云的表现表示非常肯定,服务器本身没有性能问题十分稳定,也没有任何网络卡顿,分配的带宽也十分充足(虽然直到最后我都没有消耗多少),CDN加速等的效果确实非常明显,而且价格很低,对我这个穹人来说非常友好,偶尔有不懂的、误操作的地方和人工申诉很快可以得到回复并且解决问题——希望接下来neboer.site在腾讯云上的日子里也能过得这么舒服。

neboer.site一周年

👶Neboer的建站早期探索

其实neboer.site已经远远不止一周年了。这个网站最开始上线的时候还是在vultr日本服务器上托管的,那个时候整个页面还比较简陋,用golang写的Nboat实在是让人不想维护,因此后面还是切换到了node平台。整个Nboat项目刚刚开始的时候还只是因为我觉得“我应该有一个自己的博客”,虽然现在这个网站的性质基本没变,但是很多东西都已经和那个时候不一样了。

Nboat使用golang开发,我用golang完全是因为那个时候在学golang(虽然确实到最后也没有用上golang,很多大佬都喜欢go语言,但是我不是大佬,也不喜欢go语言),正好知道了这个语言是很现代的高性能语言,因此就拿过来用了一用。结果就陷入了golang和mongodb的苦战。结构化的语言和没有schema的数据库在一起谁也看不上谁,终于我放弃了继续开发Nboat的想法,着手重新开始搭建Nboat2。

Nboat2正式开发完毕,应该也是去年十月份国庆节的时候。因为Nboat2开发完了就直接上线,并且一直在用阿里云的dcdn。阿里云cdn回源国外并不是很友好,网络卡顿和延迟,另外不能够回源ipv6地址,会报503的错误。后来我迁移到了阿里云的轻量应用服务器,也就相当于终于给网站找了一个很合适的去处。Nboat2开发其实经过了看起来挺久的一段时间,其实在我个人感觉只有最后国庆那一阵是非常重要的。也相当于可以说是,Neboer用一个国庆节的时间开发出了Nboat2。

Nboat2就完全使用JavaScript开发,从mongodb到nodejs都是如此,非常的js。Nboat2还使用模板渲染技术——这一点和Nboat是一样的。其实这一点也是问题的核心,模板渲染带来的问题一样很多。主要是我希望的博客功能确实有亿点点丰富,这种偏向于静态的建站方法果然是欣赏不来。具体Nboat2到底有哪些问题,我到底经历了怎样的内心挣扎,欢迎收看文章Nboat3 Q&As 。不管怎样,在去年的七月份最热的时候,我还是把这个网站肝了出来。刚刚写出来的代码似乎还冒着热气,就被十万火急的塞进了git仓库,推送到了服务器和远端的github上。Nboat2在之后的日子里一直撑着门面,虽然最后还是被Nboat3替换了,但是Nboat2给我带来的不仅仅是一个网站,它的主页和编辑器设计影响了Nboat3。编写Nboat2让我更深刻的理解了前端设计为什么会变成现在这个样子,并且直接促成了Nboat3的诞生。

🧔姗姗来迟的Nboat3

Nboat2上线之后总是会不时地冒出一点bug。我一直都希望把它的那个编辑器模块重新、好好地写一写。可是那个模块里参杂着HTML、CSS和大量的碎片化JavaScript代码,维护起来非常复杂。这些代码乱七八糟的分块存放在一个个pug模板中,威胁到整个站点的运行。我一直想要重新组织开发的时候出于省事而进行的残废设计,但是总是望洋兴叹,因为真正改起这些代码需要比较用心地设计——最重要的一点是,我当时不知道我需求的尽头是什么,因此没有办法给自己提前画好“上限”,即这个网站可以有什么功能,但是不可以有什么功能——万一改了呢?精心设计的这种渲染系统适用范围肯定比较窄,最起码没有Vue React这种东西来的舒服!

因此经过了大量的实验,我做出了用Nuxt重写这个网站的计划。但是实际开发却是困难重重。经过了相当漫长的两个月(真的开发了两个月!)的、拖拖拉拉的开发之后,Nboat3才算是正式和大家见面了。Nboat3上线的时候其实真没过去多久,差不多也就是两三个月以前吧。理论上来说Nboat3上线的时间差不多是一周年的时间,只不过那个时候没有心情庆祝罢了。

使用现代框架开发的Nboat3还是很令人满意的。现在也一直稳定运行没有问题,虽然期间被谷歌报了几次503(因为奇葩的url),总体来讲还算是一切正常。期间倒是经过了几次bugfix,不过也是在易于维护的基础之上的,写起来确实比之前那两个版本要舒服不少。

👨‍🦳NerChat!改版

NerChat!在Nboat2时期就已经有了。那个时候的NerChat!还十分的简陋。简陋到什么程度呢?简陋到没有自己的logo和欢迎页,所有的东西都是英文的,也没有做任何专门的优化之类的,更没有一个自己的介绍页面。直到今天NerChat!变了许多,由原来的,只是个人觉得可能有用就部署了的“玩玩”的东西,也变成了一个可以拿得出手的网站。

NerChat!逐渐变成了neboer.site的一个重要组成部分,根据谷歌搜索指数的报告,相当一部分人是通过“开源im”等的搜索关键词加入的NerChat!,这也侧面证明了Google做的有多棒——真的很棒。

NerChat!的落地页也是我亲自开发出来的,当然,实际上是套用了一个bootstrap的模板,但是套那个模板也就是为了不从0开始开发罢了,还是一件比较简单的事情。这个页面上有一个“指南”我一直没有时间做,如果你想要为NerChat!写一份使用说明书,那么欢迎翻译一些重要的RocketChat文档。

✝服务器到期

嗯,然后就是服务器到期了。实际上NerChat!和Nboat3才上线不到四五个月,其实我个人内心还是充满了不舍和遗憾的。不过搭建网站嘛,又不需要什么性能,随便找一个能给予网站一个容身之所的地方就行了,本质上不难,这都不是问题。

云上的生命

这一年的时间里,发生了太多的事情。大多都是乱七八糟,让人不快。但是Nboat3和NerChat!两个网站确实给了我很多的慰藉。无论是谷歌搜索指数的逐渐提高,还是断断续续的有人在NerChat!上聊天,亦或者是有了什么探索的心得在Nboat3里被我记录下来发表出去,再就是改版了NerChat!的图标设计和落地页的推广……我都觉得这些是重要的体验,让我在面对生活中各种事情的时候,能多一份安心,多一份自我的感知。它让我在生活之余多了一些事情可做,而正因为我可以做这些事情,我感受到我正在拥有第二个生命,云上的生命。

试想一下,在北京,阿里云的华北区域某数据中心,一排排的机架反射着金属的光泽,一个个二极管闪烁着,闪烁着,风扇的轰鸣声,机械硬盘的转动声、空调机的噪声、主机的蜂鸣等等汇聚在一起,形成了一首金属狂潮交响乐。就在这乐章的深处,某个机柜里的某台主机的内部,主板深处接着的某块硬盘之中,储存着Nboat3和NerChat!整个网站的所有代码和数据(大约不到1G)。网卡从纷繁复杂的网络杂包中过滤出了来自全球各地的网络请求,在古老而又现代的操作系统的强力推动下,程序一步又一步接力的把请求传递给数据库,伴随着硬盘的轻轻一划,一串电信号夹杂着文字信息喷涌而出,顺着总线抵达处理器,顺着内存抵达网卡,通过以太网线,穿过交换机,冲出北京电信,像闪电一样划过整个华北平原、贯穿中国大地!最终,这串信号绕过了半个或者一个中国,走完了这段艰难的旅程,被你家的路由器发往你的主机。主板的网卡再次把它轻轻拾起,再经过类似的接力传输,最终,浏览器看到了这些数据。排版引擎一目十行的翻译着这串信息里的文字,脚本引擎一目十行的编译执行着其中的代码,在主板更深一点的地方,显卡全力以赴的渲染着,渲染着,把这段短短的文字变成了显示屏能够读懂的信息,顺着宽阔的HDMI线路引起了显示屏各个芯片各个针脚的电平高低不断变化,出现了一圈圈涟漪,随着1920*1080个像素点按照秩序乖乖排列整齐,我要对你说的话,就已经全部呈现在你的屏幕之上了。你的眼睛把这些信息转成一个又一个神经脉冲,你的大脑理解着其中的含义,感受着我的体验。这段文字虽然只是由像素点的色彩明暗变化拼合而成的,但是你要明白这就是我要对你说的话,这些话由另一个我讲给你听,另一个在万维网中、活着的、我。

我生而不息,光纤中闪烁的便是我的生命。