考虑到服务部署平台目前还没有端到端生产级解决方案,企业一般需要定制集成,下面给出一个可以参考的具备轻量级治理能力的发布体系:

简化发布流程如下:
应用通过 CI 集成后生成镜像,用户将镜像推到镜像治理中心;
用户在资产治理中心申请发布,填报应用,发布和配额相关信息,然后等待审批通过;
发布审批通过,开发人员通过发布控制台发布应用;
发布系统通过查询资产治理中心获取发布规格信息;
发布系统向容器云发出启动容器实例指令;
容器云从镜像治理中心拉取镜像并启动容器;
容器内服务启动后自注册到服务注册中心,并保持定期心跳;
用户通过发布系统调用服务注册中心调拨流量,实丝雀或灰度发布等机制;
网关和内部微服务客户端定期同步服务注册中心上的服务路由表,将流量按负载均衡策略分发到新的服务实例上。
另外,持续交付流水线(CD Pipeline)也是微服务发布重要环节,这块主要和研发流程相关,一般需要企业定制,下面是一个可供参考的流水线模型,在镜像治理中心上封装一些轻量级的治理流程,例如只有通过测试环境测试的镜像才能升级发布到 UAT 环境,只有通过 UAT 环境测试的镜像才能升级发布到生产环境,通过在流水线上设置一些质量门,保障应用高质量交付到生产。

注意,本文限于篇幅,对测试和 CI 等环节没有涉及,但它们同样是构建微服务架构的重要环节,也有众多成熟的开源产品可选。
技术选型虽然重要,但还只是微服务建设的一小部分工作,选型后的产品要在企业内部真正落地,形成完整的微服务技术栈体系,则后续还有大量集成、定制、治理、运维和推广等工作。
本文仅限个人经验视角,选型思路仅供参考借鉴。每个企业的具体上下文(业务场景,团队组织,技术架构等)各不相同,每个架构师的背景经验也各不相同,大家要结合实际自己做出选型,没有最好的技术栈,只有相对较合适的技术栈。 另外,好的技术选型是相互借鉴甚至 PK 出来的,欢迎大家讨论,给出自己的微服务 2.0 技术栈选型意见。spring boot protobuf
Spring Boot
Alibaba Dubbo
Google gRPC
NetflixOSS Eureka
Hashicorp Consul
NetflixOSS Zuul
Kong

Spring Cloud Config
CTrip Apollo
ElasticSearch
Yelp Elastalert
Dianping CAT
Zipkin
Naver Pinpoint
OpenTSDB
KairosDB
Argus
InfluxDB
Prometheus
Grafana
Sensu
Esty 411
Zalando ZMon
NetflixOSS Hystrix
Nginx
Apache Kafka
Allegro Hermes
Apache Rocketmq
Rabbitmq
Sohutv CacheCloud
Twitter twemproxy
CodisLab codis
Dangdang Sharding-jdbc
MyCAT
Xxl-job
Dangdang elastic-job
Apereo CAS
JBoss keycloak
Spring cloud security
OpenID-Connect-Java-Spring-Server
Google Kubernetes
Apache Mesos
Vmware Harbor
Netflix Spinnaker
Microservices in Practice – Key Architecture Concepts of an MSA
本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/jisuanjixue/article-75342-6.html
两个字
另外两个送给了我最重要的两个人