阿里云微服务引擎MSE(阿里云微服务平台)

admin 251 2022-12-07

阿里云服务器优惠多,折扣错,惊喜多,请咨询:www.wqiis.com

本文目录一览:

专访阿里云资深专家易立

专访阿里云资深专家易立

集装箱曾经改变全球贸易的供应链,Docker也将改变软件的供应流程。

4月26日的云栖大会·南京峰会上,阿里云资深专家汤子楠发布了飞天专有云敏捷版(Apsara Stack Agility),此前美国Docker公司首席执行官Ben Golub 在曾在DockerCon 2017上宣布过这个消息。

这是阿里云和Docker公司合作之后的产物,是国内第一个支持Docker官方企业版(Enterprise Edition, EE)的容器类产品,包含从容器的创建到运行以及镜像的全生命周期管理,可以部署在企业自有数据中心环境内,特别适用于企业专有云及混合云场景。

据阿里云方面介绍,阿里巴巴集团内部运用容器技术已有六年时间。2016年,阿里电商核心应用的基础平台全部转向Docker,并通过天猫双11进行了技术验证。

容器技术领域,最为著名的公司,无疑为Docker,后者也是一个容器管理引擎。与传统虚拟机相比,容器技术是操作系统级别的虚拟化技术,更为轻量。36氪曾经介绍过,Docker则是在容器技术的基础上额外提供了标准镜像格式。Docker就像被标准化的容器,相当于云计算领域的“集装箱”,可以承载后端的各种技术。

自从2013年开源的Docker项目发布之后,其以惊人的速度被企业采用,已成为容器运行的事实标准。据Docker公司公布的数据,截止目前为止,Docker Hub上的镜像下载量,已经达到120亿次,去年6月份这个数据是60亿;镜像总量超过了90万,去年只有40万。

国外许多大公司都积极拥抱Docker,包括AWS、IBM、HPE和微软等。国内网易、腾讯、阿里等主流云计算厂商,都提供基于Docker的容器服务。2015年,阿里云就在Docker社区版的基础上推出了阿里云容器服务,华大基因、上海证券交易所、中信集团、ofo共享单车、深圳码隆科技等多家企业均是容器服务的客户。去年10月,Docker与阿里云达成合作,将通过后者落地中国。

阿里云非常看好Docker的前景,认为Docker也将像集装箱一样,是改变世界那只箱子。就像集装箱改变全球贸易的供应链一样,Docker将改变软件的供应流程。根据阿里云去年面向技术人员所做的调查,其中超过87%的人表示,有意愿现在使用或者可能在未来六个月内使用Docker的架构。

据阿里云资深专家易立介绍,Docker技术有三方面的优势。

首先是敏捷。由于Docker的轻量级,就意味着同一硬件上可以运行更多的应用,它可以将系统利用率提高5-10倍;而且因为轻量,它的启动速度非常快,当公司业务出现峰值时,可以通过容器快速部署。容器技术也能实现产品的快速迭代,据调查,Docker对软件版本发布频率有高达13倍的平均提升。

然后是可移植性。在传统架构下,开发人员交付应用之后,运维人员需要部署合适的运行平台。两个环境间的差异往往会导致,应用在测试环境下正常运行,上线之后却经常会出问题。Docker则能把应用和应用环境一同打包,开发完成之后,运维人员可以直接使用这个容器来部署代码。

经过容器化的应用可以部署在任何地方,就可以避免原来因为环境差异带来的问题,同时也可以无缝迁移云,不用锁定某个云服务商。用户在自己的笔记本电脑上开发了一个应用,容器化之后可以不加修改地发布到云上。

第三是可控性。容器使得大规模互联网化运维变得可能,原来,企业的IT系统用久了,经过多次版本更新,里面的东西变得不可知,一旦出现问题需要花大量的时间排查。如果用容器化的方式交付应用,则线上每一个版本都可以复现,所有的东西都可以回溯。一旦原来的IT人员离职了,其他人也更容易理解应用程序是如何创建和工作的。

此外,易立指出,促进了开发和运维的一体化之外,Docker还有利于企业应用的现代化改进。传统应用往往是单体架构,如企业原有的CRM、ERP等大型应用,但随着新需求增加,更新和修复大型这类应用变得越来越困难;为此出现了微服务架构,其提倡将大应用拆解分一堆小服务,彼此协调提供功能,单个小服务可以独立部署、测试和运行。云原生的企业应用的架构一般是后者,Docker这套执行环境就非常适配云原生应用。

根据阿里云去年的调查,技术人员使用或考虑使用Docker,大部分出于上述原因考虑。

虽然容器技术成为主流,将会是未来的趋势,但目前在国内仍未大规模普及。企业要使用该架构,依然需要付出一定的迁移和学习成本,可能还会有一定的安全考虑,这也是影响Docker普及的原因。因此,Docker推出了企业版处理类似问题。

据易立介绍,使用Docker架构需要对企业应用容器化,像刚刚说的,云原生应用与Docker非常契合,但不可能所有的应用都是新写的,有的企业应用属于传统架构、没有微服务,需要对现有系统做改造和迁移。

因此,针对传统的企业应用,Docker推出了传统应用迁移技术,可以一键转换虚拟机镜像,将原来的企业化应用转化为可以用容器化的方式交付和运维的应用。企业可以有两种路径,可以先将整个大应用容器化,再逐渐转化成微服务架构;也可以先将企业拆成微服务架构,然后容器化。

此前,之前Docker企业版未落地中国,社区版由开源社区来维护,每个月有个更新,三个月发布一次稳定版,这样的好处是版本演进速度很快,但对企业而言却带来很大的运维压力,需要经常大规模对Docker版本进行修复和升级,企业需要有极强的软件研发能力,并不是所有的企业IT部门都有将这种技术产品化的能力。

全球有不少公开的'Docker镜像库,其中Docker Hub是最大的公开仓库,开发者可以在上面共享和拉取Docker镜像,生成容器化的应用。但谁都可以往仓库推送镜像,就意味着无法保证安全风险。

针对此,Docker推出了Docker Store,上面的容器镜像全都由Docker认证,确保安全性,包括通过安全扫描,确定没有不合规的代码;同时通过签名“密封”镜像,确保其不可篡改。这就有点像一个容器版的Apps Store,里面所有的镜像都通过Docker审核。

总而言之,Docker企业版面向企业的,是一个完整的场景,而不是一个技术。它有增强的编排能力,有完整的控制台界面,里面的操作都可以安全地使用,它在社区版上增加了面向企业用户的管理和安全能力,同时提供了经过认证的操作系统、容器和插件。中国Docker企业版的技术支持,将会由阿里云和Docker联合提供。

说到阿里云跟Docker的合作,包括三个层面:Docker会借助阿里云的云基础架构进入中国,后者将为Docker Hub提供中国运营的基础服务;阿里云会推动Docker企业版的落地,联合提供销售和技术支持;阿里云成为Docker认证的云平台,Docker的认证插件和认证容器会验证在阿里云上的稳定可运行性,确保客户在阿里云上使用Docker的体验。

目前阿里云提供公共云版、飞天专有云版和飞天专有云敏捷版三种Docker的部署形态,客户也可以选择在公共云上使用,也可以自己部署。

自从容器技术面世之后,其生态内也出现了不少创业公司,国外涌现不少专注容器基础服务、网络、安全、存储和监控等某一细分领域的创业公司;在国内,除了阿里云以外,也有大批围绕Docker技术提供服务的创业公司,提供云端的快速部署和管理能力,比如36氪报道过的时速云、数人云、灵雀云、才云科技、轻元科技。阿里云整合了Docker企业版的飞天敏捷版,跟他们可能存在一定竞争关系。

才云科技CEO张鑫曾经说过,Docker本身一定不是核心竞争力,而真正的核心是如何能让用户或企业“无痛”地从非Docker的环境迁移至Docker化的世界,以及如何帮助用户在新的Docker化的世界里建立一整套的开发运维体系。

阿里云也表示,企业需要的,并不仅是Docker这个技术,而是一整套应用的解决方案。用户最终选择谁,取决于谁的服务更完整更好。不过,他们认为,国内容器市场还在成长阶段,他们和这些公司应该是在共同培育市场。

;

基于阿里云打造「云原生」Web应用——「懒猪行」Web应用开发实践

作者:阿里云MVP 刘远程

背景

『懒猪行』专注于境外自由行S2B业务,涉及分销、终端用户服务、供应链等多个服务环节,随着业务规模的不端增加,我们一直在 探索 Web应用开发的最佳实践,以加快Web应用的迭代效率,为B/C端用户创造更多价值。

云原生

近几年,Spring Cloud为代表的微服务架构越来越火热,吸引了大量创业公司『入坑』。微服务系统的开发与单体应用的开发相比,从团队组织、运维、开发方式等多个方面带来了颠覆式的变化。从2018年开始以Istio、SOFAMesh等为代表的Service Mesh方案逐渐走上舞台,并被称为『下一代微服务架构』。

如果把以容器技术和Service Mesh为基础的IT架构定义为云原生架构,那么Dubbo、Spring Cloud为代表的分布式架构将是促进云原生架构诞生的『中间产物』。

就在18年,云原生计算基金会(CNCF)为云原生技术重新定义:

Cloud native technologies empower organizations to build and run scalable applications in modern, dynamic environments such as public, private, and hybrid clouds. Containers, service meshes, microservices, immutable infrastructure, and declarative APIs exemplify this approach.

『云原生技术帮助公司和机构在公有云、私有云和混合云等新型动态环境中,构建和运行可弹性扩展的应用。云原生的代表技术包括容器、服务网格、微服务、不可变基础设施和声明式API。』

These techniques enable loosely coupled systems that are resilient, manageable, and observable. Combined with robust automation, they allow engineers to make high-impact changes frequently and predictably with minimal toil.

『这些技术能够构建容错性好、易于管理和便于观察的松耦合系统。结合可靠的自动化手段,云原生技术可以使开发者轻松地对系统进行频繁并可预测的重大变更。』

这种新颖架构方式,不仅提供了完善的软件持续交付链方案,也为我们的应用组织方式带来了巨大的想象空间,甚至在将来可能给整个软件行业带来颠覆式的革命。有一点是显而易见的:原本强耦合在一起的应用被拆分,变身成为能够实现完整子集功能的可插拔式微服务,通过有机的组织让其与其它微服务共同对外提供服务;就如同组装 汽车 的发动机和座椅等,它可以来自全球供应链不同的厂商。以云原生的设计哲学来总结,云原生应用具备微服务, 健康 报告,遥测数据,弹性声明式(非反应式)等特征。

云原生所带来的效果非常明显,但完整的实践确是很容易让人知难而退,因为单Kubernetes一项,从入门到掌握也需要花费3个月左右的时间。但幸运的是,阿里云等公有云平台已经为我们准备好了容器服务(Kubernetes版)产品,并支持通过Kubernetes进行应用的容器化管理。

所有的微服务都和 Envoy sidecar 集成在一起,被集成服务所有的出入流量都被 sidecar 所劫持,这样就为外部控制准备了所需的 Hook,然后就可以利用 Istio 控制平面为应用提供服务路由、遥测数据收集以及策略实施等功能。

懒猪行的架构设计(简化)

在新的架构中,使用了大量的阿里云产品,这鉴于我们过去的经验,阿里云产品在运维上为我们节省了不少精力。

以上架构,是我们走向『云原生』的第一步,距离成熟还有非常大的发展空间,云原生的发展也在发展的起步阶段。按架构,把所有需要持久化的数据,如:文件、图片、数据库等存储到阿里云OSS、RDS及Redis产品,而应用则运行在以K8s管理调度的容器集群中。

阿里云DevOps工具链

阿里云在云原生架构整个生命周期都提供了完善的支持:

部署到Kubernetes_部署到Kubernetes_选择部署方式_用户指南_CodePipeline-阿里云

推荐阅读:

[1] Service Mesher社区:ServiceMesher · Service Mesh|服务网格中文社区

[2] Kubernetes Handbook:序言 · Kubernetes Handbook - Kubernetes中文指南/云原生应用架构实践手册 by Jimmy Song(宋净超)

MVP招募进行中,点击「链接」

MSE平台如何加入班级

打开班级设置即可。

微服务引擎MSE(MicroserviceEngine)是开源注册、配置中心的全托管平台,提供了高可用、免运维的ZooKeeper、Nacos和Eureka等集群,完美兼容开源产品的标准接口,无需修改业务代码、开箱即用,同时还提供了监控和运维能力。

打开MSE,打开“课程",选择想要加入的班级,点击”加入班级“,.点击”确认加入班级“。

阿里云企业级互联网架构实践系列-EDAS 开发(续)

前提: 关闭windows 防火墙,可以ping 通 EDAS所在IP

修改配置:假设EDAS 轻量级配置中心IP 是 10.10.10.10

修改hosts 文件 添加配置如下:

10.10.10.10 jmenv.tbsite.net

添加jvm 参数:

-Dvipserver.server.port=8080

-Daddress.server.domain=10.10.10.10

-Daddress.server.port=8080

-Dvipserver.client.port=8080

-Dpandora.location=D:/hsf.sar.jar

如果本地有多个IP可以通过需要配置一下hosts 来指定注册的IP

先打开 cmd 输入hostname 命令 获取本机名称,假设是 computer1

假设需要使用的本地IP是 11.111.1.1(确保此IP和EDAS的网络之间是同的)

在hosts 文件中添加如下配置:

11.111.1.1 computer1

-Dpandora.location=D:/hsf.sar.jar

指定的是潘多拉地址

添加需要的配置项:

1. 找到 ConfigCenter类,添加配置中心需要的groupID和DataID

其中groupId:是项目的包名称,确保唯一,建议网上国网统一使用 com.sgcc.osg 作为groupID。dataID,用于标识单个配置项。

2. 找到EDASConfigContextRefresher 在 registerDiamondListenersForApplications方法中添加 addListener第一参数是 ConfigCenter.DATA_ID,第二个参数是ConfigCenter.GROUP_ID。

loadConfiguration(compositePropertySource, environment, ConfigCenter. DATA_ID , ConfigCenter. GROUP_ID );

loadConfiguration方法前两个参数固定, 后面是 之前在ConfigCenter中添加的DATA_ID, 和GROUP_ID。

在本地开发的时候,应用启动前需要先在轻量级配置中心。添加配置项。

点击添加:

[图片上传失败...(image-8cefb1-1597155336559)]

在弹出框中输入在本地ConfigCentre.java 中配置的 groupID, 和dataId输入进去。

content 里面可以添加任意键值对。

@RestController

@RefreshScope //需要 动态刷新必加

public class Demo{

@Value(“${key1}”)

private String key1;

@Value(“${key2}”)

private String key2;

}

配置项:如下图每一个groupid, dataId,和content 对应一个配置项

分发 轻量级配置中心的时候 通过 压缩文件分发,不要copy 解压后的文件夹

如果应用列表没有数据,不能说明应用无法注册到分布式服务总线,而是应用启动失败,或者EDAS鉴权配置有问题

l 检查应用启动日志,查看是否正常启动。

如果抛出其他异常导致无法启动需要联系业务同学确认。

l 如果没有报错需要确认EDAS_SERVICE_ID 环境变量是否过程, 不能超过36

如果分布式服务总线的 服务列表是空的,就说明这个微服务没有注册到分布式服务总线

l 应用正常启动后(通过启动日志判断,出现pandora started说明启动完成),

l 查看 /etc/resolv.conf 确保EDAS的nameserver 放在首位。

l 查看 /home/admin/logs/vipsrv-logs/vipclient.log 中

l 如果有 403 access denied. 说明是容器所在宿主机的时间没有同步。需要联系云操系统的同事进行时间同步。时间同步后重启容器就可以注册成功。

l 如果有 error code 500 需要检查dncs-server 服务是否正常。

l 登录edas 物理机

l docker ps|grep dncs-server

l docker exec -it docker_id bash

l cd /home/admin/bin

l 运行sh chekc_dncs.sh

l 如果 check_dncs.sh 运行异常说明dncs-server出现问题。

l 登录edas 物理机

l docker ps|grep dncs-server

l docker exec -it docker_id bash

l cd /home/admin/bin

l 运行sh chekc_dncs.sh

l 如果 check_dncs.sh 运行异常说明dncs-server出现问题

l 出现异常后可以进行 docker restart docker_id 重启dncs-server 容器,容器重启后大概需要3-7分钟启动dncs-server 的业务,可以使用/home/admin/bin/check_dncs.sh 检查是否启动完成

l 登录edas 物理机

l docker ps|grep dncs-server

l docker exec -it docker_id bash

l cd /home/admin/bin

l 运行sh chekc_dncs.sh

l 如果 check_dncs.sh 运行异常说明dncs-server出现问题

l dmesg |grep java

l 如果出现Out of memory: Kill process xxxx(java) 说明 dncs-server 进程由于OOM被linux 系统kill

l edas 鉴权体系的隔离不同账户之间不可能互相访问

l 不同集群使用不同的k8s集群做实现,不同k8s 集群的网络是不可以相通的

l 如果使用HSF协议,HSF协议内部兼容了服务的负载均衡

l 如果使用spring cloud 框架下的RESTful 协议,由spring cloud 的Ribbon组件提供负载均衡

l 如果使用spring cloud 框架下的RESTful 协议,由spring cloud 的Ribbon组件重试,可以在application.properties 中配置ribbon 的重试策略

由于edas应用的启动依赖于pandora 容器所有需要在Junit 测试类上面添加如下配置引入pandora 容器的启动:

SpringCloudAlibaba(一):概述与重要组件

前一篇提到了我们为什么要替换PHP语言采用Java语言。而Java语言的框架选型上来说有太多的选择,常见的有Dubbo,SpringCloud等。我们选择了SpringCloudAlibaba。替换PHP语言到SpringCloudAlibaba是个大工程,主要是业务迁移部分。讨论之初我也确认过是否迁移原有的业务,得到的明确答复是 迁移 。 那么这么来说也就简单了,复杂的就是工期问题了。

SpringCloud Alibaba是Alibaba结合自身的微服务实践开源的一套微服务全家桶 ,在SpringCloud项目中进行孵化并且毕业。既然是SpringCloud的项目那么阿里云其实包含其商业化的产品。 例如Nacos在阿里云就有其商业化的版本 MSE 。 同时SpringCloud Alibaba的相关组件是经历过双十一大促考验的产品。稳定性较高。

SpringCloud Alibaba是SpringCloud的子项目,其实很多相关的文章都提到了SpringCloud Alibaba与SpringCloud的关系,其中有很多的论点都比较有意思。大家可以去搜索一下。

SpringCloud Alibaba是依赖SpringCloud相关的标准实现的一套微服务的架构。结合阿里巴巴的相关实践与阿里云的相关服务实现的一些组件得以更快的实现相关产品业务。

Nacos实现了服务的配置中心与服务注册发现的功能,Nacos可以通过可视化的配置降低相关的学习与维护成本,实现动态的配置管理与分环境的配置中心控制。 同时Nacos提供了基于http/RCP的服务注册与发现功能。

Sentinel是面向分布式微服务架构的轻量级高可用的流控组件,以流量作为切入点,从流量控制,熔断降级,系统负载保护等维度帮助用户保证服务的稳定性。常用与实现限流、熔断降级等策略。

RocketMQ基于Java的高性能、高吞吐量的消息队列,在SpringCloud Alibaba生态用于实现消息驱动的业务开发,常见的消息队列有Kafka、RocketMQ、RabbitMQ等,相关的比较文档可以自行去翻阅。

既然是微服务的产品,那么肯定会用到分布式事物。Seata就是阿里巴巴开源的一个高性能分布式事物的解决方案。

Dubbo已经在圈内很火了,SpringCloud Alibaba基于上面提到的Nacos服务注册中心也同样整合了Dubbo。

SpringCloud Alibaba还有一些其他的组件选择,例如schedulerX、SMS、OSS等。但是由于其主要是阿里云的商业化产品就不再过多的进行介绍。集成其商业化产品时才能用到。

SpringCloud Alibaba是基于SpringCloud标准由阿里巴巴实现的微服务全家桶,可插拔的方式实现组件的替换,在某些场景中我们需要的组件可以自由进行选择。例如需要分布式链路跟踪我们可以增加sleuth组件用于实现分布式链路跟踪业务等。

很多人提到SpringCloudAlibaba的商业问题,记得当年SpringCloudAlibaba推出第一版的时候我也评论了...卖产品全家桶。不可否认是有那么一些,但是其实它本身的很多组件又不一定非要选择商业版本。这个可以自由进行选择。

阿里云函数计算和网站比较

阿里云云原生应用平台为企业提供了完善的容器服务、

函数计算、微服务体系、消息中间件体系及系列基础服务应用工具。

上一篇:虚拟主机接口(免费虚拟主机接口)
下一篇:代备案虚拟主机(虚拟机使用主机代理)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~