【阿里云系列】-基于云效构建部署NodeJS项目到ACK_云效 node,面试官不讲武德

51 阅读4分钟

算法

  1. 冒泡排序

  2. 选择排序

  3. 快速排序

  4. 二叉树查找: 最大值、最小值、固定值

  5. 二叉树遍历

  6. 二叉树的最大深度

  7. 给予链表中的任一节点,把它删除掉

  8. 链表倒叙

  9. 如何判断一个单链表有环

由于篇幅限制小编,pdf文档的详解资料太全面,细节内容实在太多啦,所以只把部分知识点截图出来粗略的介绍,每个小节点里面都有更细化的内容!

开源分享:docs.qq.com/doc/DSmRnRG… location ~* ^.+.(html|htm)$ { # Very short caching time to ensure changes are immediately recognized expires 5m; }

location /api/v1/ { proxy_pass http://192.168.10.41/;#后端api网关服务在ACK中的集群IP proxy_set_header Host host;proxysetheaderXRealIPhost; proxy_set_header X-Real-IP remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; }

location / { add_header Cache-Control "no-cache, no-store"; add_header X-Frame-Options "DENY"; add_header X-Content-Type-Options "nosniff"; add_header 'Access-Control-Allow-Origin' "order.test.com.cn"; add_header 'Access-Control-Allow-Credentials' 'true'; add_header Access-Control-Allow-Methods "GET,POST,PUT,DELETE , OPTIONS"; # 添加允许的请求方法 add_header 'Access-Control-Allow-Headers' *; # add_header Content-Security-Policy "default-src 'self';legit1.com legit2.com; report-uri /reportingurl;"; add_header Content-Security-Policy "default-src 'self';" always; try_files uriuri uri/ @router; } }


#### 03. 编写启动nginx文件(entrypoint.sh)



#!/bin/sh

Replace env vars in JavaScript files

#echo "Replacing env vars in JS" #for file in /usr/share/nginx/html/js/app.*.js; #do

echo "Processing $file ...";

# Use the existing JS file as template

if [ ! -f $file.tmpl.js ]; then

cp filefile file.tmpl.js

fi

envsubst 'VUE_APP_BACKEND_HOST,VUE\_APP\_BACKEND\_HOST,VUE_APP_MATOMO_HOST,VUE_APP_MATOMO_ID<VUE\_APP\_MATOMO\_ID' < file.tmpl.js > $file

#done

echo "Starting Nginx" nginx -g 'daemon off;'


#### 04.编写部署ack的yaml文件



apiVersion: apps/v1 kind: Deployment metadata: name: test-web namespace: prod
labels: app: test-web spec: replicas: 1 selector: matchLabels: app: test-web template: metadata: labels: app: test-web spec: containers: - name: test-web image: registry-vpc.cn-shanghai.aliyuncs.com/prod-acr/test-web:${IMAGE-TAG} ports: - containerPort: 8080

resources:

limits:

cpu: "500m"


apiVersion: v1 kind: Service metadata: name: test-web namespace: prod labels: app: test-web spec: selector: app: test-web ports:

  • name: http protocol: TCP port: 80 targetPort: 8080
  • name: https protocol: TCP port: 443 targetPort: 8080 type: NodePort

#### 05.在ACR中新建镜像仓库


![在这里插入图片描述](https://p6-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/18b25416bb674a1d9d7ac1a0418943b3~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg55So5oi3MzM5MTQ5MjgwNjA=:q75.awebp?rk3s=f64ab15b&x-expires=1771921678&x-signature=3n90jFy2GxJHCS%2FGa5oqaqlztds%3D)


### 新建流水线


在云效中新建流水线,如下图所示,主要有三个阶段,分别为拉取源代码(即配置代码仓库)、构建、部署  
 ![在这里插入图片描述](https://p6-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/451fbd46d8e741a2bfd6d08a4d8d79a0~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg55So5oi3MzM5MTQ5MjgwNjA=:q75.awebp?rk3s=f64ab15b&x-expires=1771921678&x-signature=uej6Y3rFsltYWBhmZYtdSFsG7lc%3D)  
 点击第一个阶段,如下图所示进行编辑代码源及拉取代码默认分支  
 ![在这里插入图片描述](https://p6-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/d3ba21e4afdd48b78ca7a4efed979289~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg55So5oi3MzM5MTQ5MjgwNjA=:q75.awebp?rk3s=f64ab15b&x-expires=1771921678&x-signature=EvncTAxzzUuHnleK%2FJUWZV%2BRh6U%3D)  
 点击【Node.js构建Docker镜像并推送镜像仓库】进行第二个阶段的编辑  
 ![在这里插入图片描述](https://p6-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/425d3fea6735413bab7e52cdd28389d9~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg55So5oi3MzM5MTQ5MjgwNjA=:q75.awebp?rk3s=f64ab15b&x-expires=1771921678&x-signature=wz8La6%2BAB2qvLaq8LGMg8RCVkL4%3D)  
 如上图所示编写构建命令:



input your command here

#cnpm install npm install --registry=registry.npmmirror.com npm run build


如下图所编辑镜像推送ACR的步骤  
 ![在这里插入图片描述](https://p6-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/141a8e32cddc42f1bc76dcf2f30c100f~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg55So5oi3MzM5MTQ5MjgwNjA=:q75.awebp?rk3s=f64ab15b&x-expires=1771921678&x-signature=Oajt3GQ7w4ApMAkDQPxME6YjhDM%3D)  
 点击【Kubernetes 发布】进行最后一个阶段部署的操作


![在这里插入图片描述](https://p6-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/488ac6db6d1f449a94b9d4617e8009d7~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg55So5oi3MzM5MTQ5MjgwNjA=:q75.awebp?rk3s=f64ab15b&x-expires=1771921678&x-signature=V2jFyIKBuU%2BFyWDavtxApmO72Us%3D)  
 如上图所示,增加变量IMAGE-TAG用做上文中提到的拉取镜像的标签  
 其中选择集群连接时,可以按照下图所示进行操作


![在这里插入图片描述](https://p6-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/249ab2be6fc1474ea1a43c9e59e62447~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg55So5oi3MzM5MTQ5MjgwNjA=:q75.awebp?rk3s=f64ab15b&x-expires=1771921678&x-signature=5eY48%2BoZmN%2FSKaEnudNBYxq231I%3D)


### 验证发布


点击【运行】,运行结果可通过如下图所示的流程图进行详细查看日志  
 ![在这里插入图片描述](https://p6-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/81b681c60d334ed0802cec0f387921d8~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg55So5oi3MzM5MTQ5MjgwNjA=:q75.awebp?rk3s=f64ab15b&x-expires=1771921678&x-signature=2Y04xRXODdLUrxywE3183pAJ1M4%3D)可以查看不同阶段的日志,如下图所示为构建阶段的日志:  
 ![在这里插入图片描述](https://p6-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/b5ecc86039dc455284c818efc0cbe6d4~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg55So5oi3MzM5MTQ5MjgwNjA=:q75.awebp?rk3s=f64ab15b&x-expires=1771921678&x-signature=grwCpGGu2p8xdp%2FPYeepSisqlBI%3D)  
 如下图所示为部署阶段的日志:  
 ![在这里插入图片描述](https://p6-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/e7c2e12fc03742949633e3b2060b2747~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg55So5oi3MzM5MTQ5MjgwNjA=:q75.awebp?rk3s=f64ab15b&x-expires=1771921678&x-signature=OftcpIi0h27SLiHFjOq8nLnGku0%3D)







### 性能优化

1.webpack打包文件体积过大?(最终打包为一个js文件)  

2.如何优化webpack构建的性能  

3.移动端的性能优化  

4.Vue的SPA 如何优化加载速度  

5.移动端300ms延迟  

6.页面的重构

**所有的知识点都有详细的解答,我整理成了280页PDF《前端校招面试真题精编解析》。**

**[开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】](https://docs.qq.com/doc/DSmRnRGxvUkxTREhO)**

![](https://p6-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/70f830809bde443d823a1d542f050226~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg55So5oi3MzM5MTQ5MjgwNjA=:q75.awebp?rk3s=f64ab15b&x-expires=1771921678&x-signature=ATWwbjnv6%2BEQxLBeosA8rS%2B2zCc%3D)

![](https://p6-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/d9f01c941c934785b5de61e3f772d09f~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg55So5oi3MzM5MTQ5MjgwNjA=:q75.awebp?rk3s=f64ab15b&x-expires=1771921678&x-signature=SyTiMhdI4m%2FpvyGF1tsYsFnIhDI%3D)