0


【云原生】4.1 DevOps基础

哈喽~大家好呀,在前面的一篇扩展篇里面简单的介绍了下 DevOps ,从这篇开始就进入到了自动化部署项目了。在前面我们写到的一些项目,它们都是手动一步一步添加上去的,未免显得太笨重了,如何我们有 1000 个项目,那这可不能手动部署(这会累 si 人的),所以官方为了效率,推出了 DevOps。

🥇个人主页:个人主页​​​​​

🥈 系列专栏:【云原生系列】

🥉与这篇相关的文章:
【云原生】3.4 RuoYi-Cloud部署实战(上)【云原生】3.4 RuoYi-Cloud部署实战(上)_程序猿追的博客-CSDN博客【云原生】3.5 RuoYi-Cloud部署实战(下)【云原生】3.5 RuoYi-Cloud部署实战(下)_程序猿追的博客-CSDN博客云原生讲解【扩展篇】云原生讲解【扩展篇】_程序猿追的博客-CSDN博客

一、DevOps简介

DevOps 是一系列做法和工具,可以使 IT 和软件开发团队之间的流程实现自动化。其中,随着敏捷软件开发日趋流行,**持续集成 (CI) 持续交付 (CD) **已经成为该领域一个理想的解决方案。在 CI/CD 工作流中,每次集成都通过自动化构建来验证,包括编码、发布和测试,从而帮助开发者提前发现集成错误,团队也可以快速、安全、可靠地将内部软件交付到生产环境。

二、尚医通项目上云

这里有服务端、客户端、以及网关;服务端与客户端部署完之后,发送请求给网关,网关把各个请求给微服务

项目架构

  1. yygh-parent
  2. |---common //通用模块
  3. |---hospital-manage //医院后台 [9999]
  4. |---model //数据模型
  5. |---server-gateway //网关 [80]
  6. |---service //微服务层
  7. |-------service-cmn //公共服务 [8202]
  8. |-------service-hosp //医院数据服务 [8201]
  9. |-------service-order //预约下单服务 [8206]
  10. |-------service-oss //对象存储服务 [8205]
  11. |-------service-sms //短信服务 [8204]
  12. |-------service-statistics //统计服务 [8208]
  13. |-------service-task //定时服务 [8207]
  14. |-------service-user //会员服务 [8203]
  15. ====================================================================
  16. yygh-admin //医院管理后台 [9528]
  17. yygh-site //挂号平台 [3000]

三、sentinel 部署

上云之前呢首先要部署好中间件,像 Nacos、MySQL、Redis是之前已经部署好了的,所以接下来部署剩下的部分。

1、Sentinel

它是用来做流量保护功能的

在应用负载——>服务里面创建一个服务(设置好基本信息、容器镜像、挂载存储、高级设置等设置)

四、mongo部署

同样的,在应用负载——>应用里面选择好创建模板,点击部署(设置好基本信息、应用配置
等设置),为了侯浩方便的访问,可以将端口号暴露出去。

然后指定工作负载创建服务(设置基本信息、服务设置、高级设置),部署好了之后我们可以用个工具来测试一下是否部署完成(MongoDB Compass 的软件),连接一下,发现没问题

mysq|数据初始化

使用工具(SQLyog)连接上 mysql ,将我们要使用的 sql 语句导入进去并运行。

五、生产环境配置抽取

项目默认规则

  • 每个微服务项目,在生产环境时,会自动获取 微服务名-prod.yml 作为自己的核心配置文件
  • 每个微服务项目,在生产环境时,默认都是使用 8080 端口

创建一个 service-cmntprod.yml 将所有的中间件的地址改为我们的生产的地址,同样的每一个微服务(Sentinel、MongoDB、RabbitMQ、Redis等)都要进行这样的操作,后面配置好 deploy.yaml 文件

  1. apiVersion: apps/v1
  2. kind: Deployment
  3. metadata:
  4. labels:
  5. app: service-cart
  6. name: service-cart
  7. namespace: his #一定要写名称空间
  8. spec:
  9. progressDeadlineSeconds: 600
  10. replicas: 1
  11. selector:
  12. matchLabels:
  13. app: service-cart
  14. strategy:
  15. rollingUpdate:
  16. maxSurge: 50%
  17. maxUnavailable: 50%
  18. type: RollingUpdate
  19. template:
  20. metadata:
  21. labels:
  22. app: service-cart
  23. spec:
  24. imagePullSecrets:
  25. - name: aliyun-docker-hub #提前在项目下配置访问阿里云的账号密码
  26. containers:
  27. - image: $REGISTRY/$ALIYUNHUB_NAMESPACE/service-cart
  28. readinessProbe:
  29. httpGet:
  30. path: /actuator/health
  31. port: 8080
  32. timeoutSeconds: 10
  33. failureThreshold: 30
  34. periodSeconds: 5
  35. imagePullPolicy: Always
  36. name: app
  37. ports:
  38. - containerPort: 8080
  39. protocol: TCP
  40. resources:
  41. limits:
  42. cpu: 300m
  43. memory: 600Mi
  44. terminationMessagePath: /dev/termination-log
  45. terminationMessagePolicy: File
  46. dnsPolicy: ClusterFirst
  47. restartPolicy: Always
  48. terminationGracePeriodSeconds: 30
  49. ---
  50. apiVersion: v1
  51. kind: Service
  52. metadata:
  53. labels:
  54. app: service-cart
  55. name: service-cart
  56. namespace: his
  57. spec:
  58. ports:
  59. - name: http
  60. port: 8080
  61. protocol: TCP
  62. targetPort: 8080
  63. selector:
  64. app: service-cart
  65. sessionAffinity: None
  66. type: ClusterIP

不积跬步无以至千里,趁年轻,使劲拼,给未来的自己一个交代!向着明天更好的自己前进吧!


本文转载自: https://blog.csdn.net/aasd23/article/details/125962047
版权归原作者 Coder.追 所有, 如有侵权,请联系我们删除。

“【云原生】4.1 DevOps基础”的评论:

还没有评论