Serverless 如何助力DevOps

1.无服务器(Serverless)计算是什么

Serverless是一种构建和管理基于微服务架构的完整流程,允许你在服务部署级别而不是服务器部署级别来管理你的应用部署。它与传统架构的不同之处在于,完全由第三方管理,由事件触发,存在于无状态(Stateless)、

暂存(可能只存在于一次调用的过程中)计算容器内。构建无服务器应用程序意味着开发者可以专注在产品代码上,而无须管理和操作云端或本地的服务器或运行时。Serverless真正做到了部署应用无需涉及基础设施的建设,

自动构建、部署和启动服务。

 

Serverless不是没有服务器,它与传统去计算服务形态的区别主要包括:

l  更细粒度的计算资源分配;

l  基本无需预先计划计算资源;

l  高度弹性可扩展;

l  按需使用,按使用量付费。

2. Serverless 如何助力DevOps

 

有人说 Serverless 并不等于没有运维,Serverless 也需要运维,而且对运维提出了更高的要求:

 

l  云化运---要充分运用云上的各种运维产品,包括云日志、监控、告警、短信平台的对接,甚至微信的消息,还可以运用云函数本身来进行运维工作,利用这些工具来搭建和使用运维平台。

l  业务运维---不仅要做普通的运维工作,还要从业务角度来去进行更深入的查看,分析业务瓶颈。

l  充分利用原有能力的组合---尤其是在新业务开发过程中,如何通过原有的函数组合和模块组合实现功能。

l  业务函数或者模块如何进行复杂调用的跟踪和分析。

 

对于这种云化的环境,DevOps 优势体现需要更明显,开发和运维都要 DevOps,开发和运维两者需要结合得更紧密,两者作为一个团队来负责一个产品或服务的生命周期,两者需要通力合作,

对整个产品或服务完整的生命周期持续跟踪、改进。

 

3. 如何拥抱Serverless

从业务架构角度和开发运维角度,应该如何使用 Serverless呢?

业务架构角度包含三点:

l  微服务化,首先进行业务拆分,然后服务拆分,拆分之后进行云函数的设计。

l  提升组装能力,拆分之后再进行组装,能够通过各个服务模块、云函数、后端服务例如云数据库、云缓存、对象存储等,组装出新的业务。

l  利用 Serverless,业务快速上线和快速迭代,加快反馈速度,加快业务调整速度。

从开发和运维的角度来说,DevOps 是最优的发展方向:

l  做好 CI/CD,配置管理,实现 X as Code

l  维方面要进行云集成和云能力的探索,充分利用云监控、云日志、告警事件来提升运维能力。

l  提升整个团队的跨界思考能力,开发在最初写代码的时候就要考虑到维护性、安全性,资源利用和费用支出;运维人员要从业务场景、业务瓶颈、业务配置角度提升运维能力。

对于初创团队来说一开始推行微服务架构是最合适的,因为他们没有历史包袱,能够直接利用云函数和后端服务计算,直接打造整个云化业务,充分利用云计算能力,来节省宝贵人力,加快业务发展,快速迭代、快速反馈。

4. ServerlessSilverLining中的实践

御云者CloudEasy)是上海冠SilverLining自主开发所推出的一款基于AWS的监控管理平台软件,包含e-Billing以及e-ITILining两大模块,目前e-ITILing模块绝大部分功能已经完成向Serverless架构的转型,

比如邮件服务,定时开关机服务,日志处理及分析服务等。

 

基于Config RulesLambda资源合和生周期管理

 

选择Serverless无服务架构,是因为经过大量的测试和对比,serverless比起传统的服务器环境,具有更大的优势。对于开发人员而言,可以自动运行您的代码,无需预置或管理服务器。您只需编写代码并将

其上传至 Lambda,可以增加我们产品的开发和迭代速度;对于运维人员而言,AWS Lambda运行代码以响应每个触发程序,从而实现自动扩展您的应用程序。您的代码将并行运行并独立处理每个触发程序,

使其按照工作负载的大小精密扩展,可以大幅度减少运维管理的工作量。