云原生与前端之间的关系
为了说明云原生与前端之间的关系,我画了一张比较简单的图来描述。
建议该图从上向下,从左向右看
1.首先用户访问我们的网站,第一个到的是CDN,在云原生时代,CDN往往与对象存储搭配使用。
2.到了ingress这一层,我们经常会使用istio来做ingress, istio后面对接的virtualservice 对接的可能是一个nginx 也可以是某一个后端java程序,这里我们假设是对接的一个nginx程序
3.nginx的conf文件里,过去我们往往会配置类似如下代码,把localtion指向某一个具体 的目录
location / { root /usr/share/nginx/html; index index.html index.htm; if (!-e $request_filename){ rewrite ^/.* /index.html last; } }
现在我们要加上对象存储的地址了,类似如下代码(这一块我从网上随便复制的)
location ^~ /resource/images/oss { proxy_pass http://bucket名.oss-cn-shenzhen-internal.aliyuncs.com; }
4.前端开发提交代码之后,到了git仓库,一般会触发jenkins的CI流程,后端镜像可能会放入harbor中,前端文件放入对象存储,例如minio中
5.CD流程一般会自动的去获取最新的镜像和最新的文件,自动部署
如果前端学会云原生有什么优势?
看完上述架构图,有的同学可能明白了,有的同学可能还是不明白,这些与我前端有什么关系?如果我学会了“云原生”相关知识有什么优势?
- 前端程序已经不只是dist目录里的html和js了,还有可能是electron打包的linux上运行deb.rpm文件,windows上运行的exe程序。前端开发的各种各样的程序如何提交给分类型,分git-tag号挂上钩?如果不懂云原生,那么将会是一场噩梦。但是如果前端开发会使用docker,可以很方便的生成不同版本的容器进行build,如果了解S3接口,可以通过S3接口分门别类的上传各种类型的文件。
- 前端一般会给程序加一些锚点,如果能和Elasticsearch结合起来,给到运营和产品一些华丽丽的dashboard,利人利己,相信一定能获得更好的KPI。
- 前端代码里如果能接入云原生的一些APM工具,那么能更加方便的定位前端问题。
最后,不要怕自己学不动了,卷起来吧,卷趴哪些运维和开发兄弟们吧~