从部署和运维说说DLI(1)

举报
Sephiroth 发表于 2020/05/12 16:56:36 2020/05/12
【摘要】 DLI是支持多模引擎的Serverless大数据计算服务,其很好的实现了Serverless的特性: 1. 弱化了存储和计算之间的联系; 2. 代码的执行不再需要手动分配资源; 3. 按使用量计费。 那么如何才能更好的实现Serverless化的服务,同时又避免成为传统单体分布式的应用?微服务架构无疑是最优的选择。DL...

        DLI是支持多模引擎的Serverless大数据计算服务,其很好的实现了Serverless的特性:

        1. 弱化了存储和计算之间的联系;

        2. 代码的执行不再需要手动分配资源;

        3.  按使用量计费。

        那么如何才能更好的实现Serverless化的服务,同时又避免成为传统单体分布式的应用?微服务架构无疑是最优的选择。DLI基于微服务架构模式下的整体部署架构如下:

p1.png

        即对外以纯API形式提供服务,通过以APIGateway作为应用的入口,基于领域模型按子域进行微服务划分,从而实现Serverless化的大数据计算服务。

        那么对于这样的一个基于微服务架构实现的Serverless服务,我们是如何在生产环境来部署与运维,从而在保证服务SLA的前提下实现快速迭代上线的呢?

        随着技术的发展,部署的流程和架构都发生了根本性的变化,如今已经走入了轻量级、短生命周期的技术时代。

p2.png

        从最初部署在物理机上的大数据计算平台,到基于公有云的弹性计算云服务器部署大数据平台,再到DLI这样的Serverless服务,其很好展现了大数据计算服务的演变。那么如何才能更好的实现Serverless化的大数据计算服务的部署呢,DLI的答案就是基于Kubernetes+Docker来部署各微服务。

        Kubernetes部署是在不停机的情况下部署服务的好方法,但是如何应对在接收生产流量后出现的错误,使新版本的服务更可靠呢?这可以通过将问题一分为二来看:

        1. 部署,即将服务上线到生产环境中运行;

        2. 发布,即使服务可用于处理生产流量。

 传统上,分离部署流程与发布流程一直是一个挑战。但现在我们有了很好的选择,那就是基于服务网格。在DLI的部署中我们结合了Kubernetes+Istio,利用Istio的流量管理实现了服务发现、流量路由,从而轻松的将部署与发布分开,使新版本的服务更加可靠。

p3.png


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。