【云原生】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

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


    相关文章
    |
    4月前
    |
    Kubernetes Cloud Native 应用服务中间件
    云原生|kubernetes 你真的学废了吗---实战k8s 一(jsonpath实战)
    云原生|kubernetes 你真的学废了吗---实战k8s 一(jsonpath实战)
    62 0
    |
    19天前
    |
    Java fastjson 数据安全/隐私保护
    【Dubbo3技术专题】「云原生微服务开发实战」 一同探索和分析研究RPC服务的底层原理和实现
    【Dubbo3技术专题】「云原生微服务开发实战」 一同探索和分析研究RPC服务的底层原理和实现
    38 0
    |
    7月前
    |
    Cloud Native 数据可视化 测试技术
    云原生Istio案例实战 3
    云原生Istio案例实战
    83 0
    |
    7月前
    |
    Kubernetes Cloud Native Perl
    云原生Istio案例实战 2
    云原生Istio案例实战
    88 0
    |
    7月前
    |
    存储 Prometheus 监控
    云原生Istio案例实战 1
    云原生Istio案例实战
    142 0
    |
    4月前
    |
    Kubernetes Cloud Native 应用服务中间件
    云原生|kubernetes 你真的学废了吗---实战k8s 二(命令行创建各类资源)
    云原生|kubernetes 你真的学废了吗---实战k8s 二(命令行创建各类资源)
    76 1
    |
    4月前
    |
    存储 关系型数据库 MySQL
    猿创征文|云原生|kubernetes实务---部署MySQL--实战(一)
    猿创征文|云原生|kubernetes实务---部署MySQL--实战(一)
    52 0
    |
    4月前
    |
    运维 Prometheus 监控
    云原生可观测实战
    云原生可观测实战
    |
    9月前
    |
    存储 SQL 分布式计算
    Kubernetes云原生实战:分布式GeaFlow实现图研发,构建第一个商业智能应用
    Kubernetes在云原生应用中扮演着至关重要的角色,为商业智能(BI)强大赋能。不同于传统的BI,容器化部署在集群中可以获得更高的可靠性、弹性和灵活性。
    Kubernetes云原生实战:分布式GeaFlow实现图研发,构建第一个商业智能应用
    |
    9月前
    |
    消息中间件 Kubernetes 前端开发
    Kafka集群 on k8s实战<云原生>
    Apache ZooKeeper 是一个集中式服务,用于维护配置信息、命名、提供分布式同步和提供组服务,ZooKeeper 致力于开发和维护一个开源服务器,以实现高度可靠的分布式协调,其实也可以认为就是一个分布式数据库,只是结构比较特殊,是树状结构。
    418 0

    热门文章

    最新文章