【摘要】 华为云迄今为止已经有14大类超过100种服务了,并且更多的新服务还在不断上线中。
摘要:华为云迄今为止已经有14大类超过100种服务了,并且更多的新服务还在不断上线中。众多的服务不仅让客户眼花缭乱,要理解这些服务并根据客户的需求做出合理的解决方案,即使是专业的技术人员也有时候力不从心。本文试图以华为云如何使能云原生应用(Cloud-Native)这一场景,以一张图的方式梳理一下对华为云服务的理解。
1. 关于云原生应用
云原生应用(Cloud-Native)这两年很热门,例如拥有火爆的Kubernetes项目的CNCF的全称就是Cloud Native Computing Foundation。不同的人对云原生应用有着不同的理解,我个人比较倾向Pivotal公司一个比较狭义的定义:Cloud-Native=DevOps+continuous delivery+ microservices+containers。详情请见:https://pivotal.io/cloud-native
2. 华为云如何使能云原生应用
以下这张图,来自于我前一段时间答标某项目的RFP。这个RFP中客户招标几个核心的应用。除了对应用本身功能的要求,客户还要求是云原生应用,使用云基础设施,采用目前流行的DevOps,微服务,容器,大数据/AI等技术。因此我画了一张Huawei Cloud Enables Cloud-Native Applications的PPT,重点讲解华为云如何使能云原生应用。我引用在这里供大家参考和探讨。
概要解释如下:
服务开发者使用华为云的软件开发云(DevCloud)完成DevOps中的Dev部分。一般用户会有几个环境,例如:开发(Develop),测试(Test),预生产(Pre-Live),生产(Live)。名称和阶段可能不同,但大致如此。DevCloud支持灵活定义各个阶段和每个阶段的动作。
软件以微服务的方式开发,用华为云的微服务引擎(CSE)管理。部署应用时可以通过应用编排服务(AOS)编排应用,资源模板服务(RTS)编排资源。AOS是华为自研的遵循TOSCA规范的应用编排服务,RTS是华为云兼容OpenStack Heat标准的资源编排服务。
微服务运行在容器服务(CCE)或者虚拟机(ECS)或者其它计算实例中。这些计算实例会挂载存储资源,例如块存储(EVS),文件系统服务(SFS);同时,这些微服务可能会用到一些中间件服务,例如关系型数据库(RDS),分布式缓存(DCS),分布式消息服务(DMS),文档数据库(DDS)等。
微服务提供的能力通过API网关和弹性负载均衡(ELB)向外暴露,供第三方应用开发者调用,形成API经济。对外的IP地址可以通过安全服务,例如Anti-DDoS,WAF等保护起来。
微服务本身会调用部署在用户私有云的其它后端服务,这部分服务的生命周期不由华为云管理,可以通过云目录服务(CCS)接入。
身份认证(IAM)、基础设施监控(CES)、日志服务(LTS)、云审计服务(CTS)、应用性能监控(APM)、应用运维服务(AOM)等构成了通用的管理服务。其中CES和华为云20+云服务集成,提供数百个监控项。AOM和APM一起可以提供比较完整的应用运维。
微服务云应用平台(ServiceStage)是一个一站式的提供云原生应用端到端生命周期管理的平台。
微服务产生的日志和记录等,可以作为大数据/AI(EI)的数据源。如下:
历史数据/批处理/离线处理:MRS(HDFS->HBase->Spark)或者OBS->UQuery(小型场景)
流数据/实时/在线处理:MRS(Flume->Kafka->Storm)或者DIS->CloudStream
深度学习:OBS的离线数据(定时/批量训练),或者Cloud Stream的流数据(增量训练)进入深度学习服务(DLS)进行模型训练,然后进行模型发布,进行预测。预测能力通过REST APIs的方式发布,和服务进行集成。
当然以上只是典型场景的描述,也并没有涵盖所有的华为云服务。但是把华为云如何使能云原生应用基本说清楚了。
3. 一张更详细的图