【云原生】4.1 DevOps基础与实战

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

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



一、DevOps简介

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

二、尚医通项目上云

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

项目架构

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

image.gif

三、sentinel 部署

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

image.png

1、Sentinel

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

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

image.png

四、mongo部署

同样的,在应用负载——>应用里面选择好创建模板,点击部署(设置好基本信息、应用配置

等设置),为了侯浩方便的访问,可以将端口号暴露出去。

image.png

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

image.png

mysq|数据初始化

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

五、生产环境配置抽取

项目默认规则

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

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

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      labels:
        app: service-cart
      name: service-cart
      namespace: his   #一定要写名称空间
    spec:
      progressDeadlineSeconds: 600
      replicas: 1
      selector:
        matchLabels:
          app: service-cart
      strategy:
        rollingUpdate:
          maxSurge: 50%
          maxUnavailable: 50%
        type: RollingUpdate
      template:
        metadata:
          labels:
            app: service-cart
        spec:
          imagePullSecrets:
            - name: aliyun-docker-hub  #提前在项目下配置访问阿里云的账号密码
          containers:
            - image: $REGISTRY/$ALIYUNHUB_NAMESPACE/service-cart
              readinessProbe:
                httpGet:
                  path: /actuator/health
                  port: 8080
                timeoutSeconds: 10
                failureThreshold: 30
                periodSeconds: 5
              imagePullPolicy: Always
              name: app
              ports:
                - containerPort: 8080
                  protocol: TCP
              resources:
                limits:
                  cpu: 300m
                  memory: 600Mi
              terminationMessagePath: /dev/termination-log
              terminationMessagePolicy: File
          dnsPolicy: ClusterFirst
          restartPolicy: Always
          terminationGracePeriodSeconds: 30
    ---
    apiVersion: v1
    kind: Service
    metadata:
      labels:
        app: service-cart
      name: service-cart
      namespace: his
    spec:
      ports:
        - name: http
          port: 8080
          protocol: TCP
          targetPort: 8080
      selector:
        app: service-cart
      sessionAffinity: None
      type: ClusterIP

    image.gif

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


    相关文章
    |
    1月前
    |
    Prometheus 监控 Cloud Native
    实战经验:成功的DevOps实施案例解析
    实战经验:成功的DevOps实施案例解析
    42 6
    |
    4月前
    |
    运维 Cloud Native Devops
    一线实战:运维人少,我们从 0 到 1 实践 DevOps 和云原生
    上海经证科技有限公司为有效推进软件项目管理和开发工作,选择了阿里云云效作为 DevOps 解决方案。通过云效,实现了从 0 开始,到现在近百个微服务、数百条流水线与应用交付的全面覆盖,有效支撑了敏捷开发流程。
    19360 30
    |
    3月前
    |
    运维 Cloud Native Docker
    云原生技术入门:Docker容器化实战
    【9月更文挑战第20天】本文将引导你走进云原生技术的世界,通过Docker容器化技术的实战演练,深入理解其背后的原理和应用。我们将一起探索如何在云平台上利用Docker简化部署、扩展和管理应用程序的过程,并揭示这一技术如何改变现代软件的开发和运维模式。
    |
    3月前
    |
    运维 Cloud Native Devops
    云原生架构的崛起与实践云原生架构是一种通过容器化、微服务和DevOps等技术手段,帮助应用系统实现敏捷部署、弹性扩展和高效运维的技术理念。本文将探讨云原生的概念、核心技术以及其在企业中的应用实践,揭示云原生如何成为现代软件开发和运营的主流方式。##
    云原生架构是现代IT领域的一场革命,它依托于容器化、微服务和DevOps等核心技术,旨在解决传统架构在应对复杂业务需求时的不足。通过采用云原生方法,企业可以实现敏捷部署、弹性扩展和高效运维,从而大幅提升开发效率和系统可靠性。本文详细阐述了云原生的核心概念、主要技术和实际应用案例,并探讨了企业在实施云原生过程中的挑战与解决方案。无论是正在转型的传统企业,还是寻求创新的互联网企业,云原生都提供了一条实现高效能、高灵活性和高可靠性的技术路径。 ##
    212 3
    |
    3月前
    |
    运维 Cloud Native Devops
    云原生时代的DevOps实践:自动化、持续集成与持续部署
    【9月更文挑战第3天】未来,随着人工智能、大数据等技术的不断融入,DevOps实践将更加智能化和自动化。我们将看到更多创新的技术和工具涌现出来,为软件开发和运维带来更多便利和效益。同时,跨团队协作和集成也将得到进一步加强,推动软件开发向更加高效、可靠和灵活的方向发展。
    |
    4月前
    |
    Kubernetes Cloud Native Docker
    云原生入门:Docker容器化部署实战
    【8月更文挑战第31天】在数字化浪潮中,云原生技术成为企业转型的助推器。本文通过Docker容器化部署的实践案例,引导读者从零基础到掌握基础的云原生应用部署技能。我们将一起探索Docker的魅力,学习如何将一个应用容器化,并在云平台上运行起来,为深入云原生世界打下坚实基础。
    |
    5月前
    |
    Kubernetes Cloud Native 微服务
    企业级容器部署实战:基于ACK与ALB灵活构建云原生应用架构
    这篇内容概述了云原生架构的优势,特别是通过阿里云容器服务Kubernetes版(ACK)和应用负载均衡器(ALB)实现的解决方案。它强调了ACK相对于自建Kubernetes的便利性,包括优化的云服务集成、自动化管理和更强的生态系统支持。文章提供了部署云原生应用的步骤,包括一键部署和手动部署的流程,并指出手动部署更适合有技术背景的用户。作者建议在预算允许的情况下使用ACK,因为它能提供高效、便捷的管理体验。同时,文章也提出了对文档改进的建议,如添加更多技术细节和解释,以帮助用户更好地理解和实施解决方案。最后,展望了ACK未来在智能化、安全性与边缘计算等方面的潜在发展。水文一篇,太忙了,见谅!
    |
    7月前
    |
    Cloud Native 关系型数据库 分布式数据库
    【PolarDB开源】PolarDB数据迁移实战:平滑过渡至云原生数据库
    【5月更文挑战第24天】本文介绍了如何平滑迁移数据至阿里云的云原生数据库PolarDB,包括迁移准备、策略选择、步骤、验证及示例代码。通过需求分析、环境准备和数据评估,选择全量、增量或在线迁移策略。使用数据导出、导入及同步工具(如DTS)完成迁移,并在完成后验证数据一致性、性能和安全。正确执行可确保业务连续性和数据完整性。
    225 1
    |
    4月前
    |
    敏捷开发 缓存 前端开发
    阿里云云效产品使用合集之前端打包时npm安装卡住一般是什么导致的
    云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
    |
    4月前
    |
    敏捷开发 弹性计算 持续交付
    阿里云云效产品使用合集之同一个主机部署是否支持下载多个制品
    云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。