一个小网站的云原生实践
前言
大家好,今天聊的这个小网站就是我自建的 linkedkeeper.com,它在2013年上线,到现在(2023年)也走过了10年的历程,从最开始部署的一个 war 到现在的 Serverless 部署,着实感受到了互联网技术的发展和变化,尤其是近年来的云原生技术,确实有一种变革的味道,我自己的体感,一是 Ops 的变化,二是 Bills 的变化。
10年如梭,小小的网站也在发生着变化,我从中学习到了很多,也许这就是实践的真谛。有人说2022年是 Serverless 的元年,而 Serverless 也是云原生的最终形态,所以在2023年,我的这小网站也终于完成了 Serverless 的改造上线。
10年如梭,就让我带领你也感受一下这小小的网站10年来的变化,如果你也有这样一个小小的网站,或者你也想要做一个这样的小网站,我们可以聊一聊,相互学习,希望有一天可以把这个小网站做成一个大网站。
10年如梭
LinkedKeeper 于2013年建站,最开始是在一家福建的网络空间租赁公司购买了10M空间,通过上传 war 进行部署,数据库是 MySQL,技术栈主要是以 Nginx、Tomcat7、JDK6、Struts2、Spring3 等进行开发。
这也算是这个小网站的缘起。
于2014年迁移到了阿里云,购买了一台低配的 ECS 和 RDB 服务,仍然是通过上传 war 进行部署,而且代码上传了 Github。
这次迁移其实是相当于是有了一台服务器,相比于网络空间,可以尝试的空间就大了很多。
于2016年技术栈升级为 Tomcat8、JDK7、SpringMVC3 等,前端还引入了 HTML5、CSS3、jQuery 等技术。
于2017~2018年又进行了多次技术栈的升级改造,包括引入了阿里云的 Redis、OSS、CDN 等技术,同时,实现了对接 QQ 和微博的第三方登录功能。
这几年是我成长最快的几年,一直不停的 Coding,有很多新的领域需要去探索,小小网站也在这几年不断的蜕变。
于2019年,引入 Elasticsearch 实现博文的搜索,不过由于 ECS、RBD 等都是部署在阿里云的经典网络上,而 Elasticsearch 必须部署在专有网络上,所以这在网络部署上,又使用了阿里云的 ClassicLink 解决 VPC 网络问题。
这几年下来,小小的网站使用的云技术已经多达十几种,此时也发现自己的知识面无形中被拓宽了很多。
于2021年,LinkedKeeper 迁移部署阿里云 Kubernetes 版(ACK),重点实现了的应用基于容器化 Dockerfile 系统改造,完成通过阿里云 ACR 的容器镜像构建。
这次也算是体感比较大的迁移,要知道之前可都是要本地构建再手动上传部署的,现在 comit 代码到 github,通过 ACR 构建 docker 镜像,最后由 ACK(k8s)直接部署就完事了。好是好,就是用起来真的贵。
于2023年,LinkedKeeper 无缝迁移部署到阿里云 Serverless 版(ASE),之所以没有迁移到 ASK(Serverless Kubernetes),主要还是被之前 ACK 的成本吓到了。
这次迁移似乎又回到了原点,相当于没有了服务器,仿佛是历史螺旋发展的一个过程。
至此,我的这个小网站历经10年的演进,实现了从一个 java.war 蜕变到了 Serverless 的云原生架构。不知道你的小网站是如何演变的,可以在评论区留言交流。
结尾
最后想跟大家分享的是,10年如梭,小小网站的成长,仿佛就是我自己的成长。现在创建一个 Serverless 的网站肯定不需要10年,可能仅仅10分钟就够了。不过唯一不同的是,这个小小的网站也承载了这10年来我积攒写下的文章,算是成长的痕迹,有兴趣的同学欢迎交流学习。