1、SaaS,PaaS,IaaS分别指什么?
2、作为一个leader如何进行合适的云计算服务模式设计?
3、传统和云计算服务的优势和劣势?如果是你来负责技术团队,应该如何决策?
一个猎头挖你到一家公司作为技术leader,或者你是初创团队的CTO/技术总监。可能会面临的如下问题:
这个时候的你可能会可能如下图片:你会怀念原来的团队,和原来的公司基础设施,以及自己游刃有余的工作场景,但是面对现在高额的薪酬,却无法解决问题的能力而焦头烂额。
1、业务方案:调研现在业界的流行框架,适配业务的方案,可能会遇到的困难点,以及根据业务需求,画出原型,画出领域模型,进行数据建模,进行系统概要设计,详细设计,不断勾勒和交流业务领域专家,达到目标一致。
2、人力安排:另外一方面可能招聘相关技术人员,产品人员,设计人员,测试人员,运维人员,运营人员等来协助。
3、硬件支持: 其他方面可能购买服务器等硬件资源。
一切就绪,跟着原型和系统详细设计进行开发,并交付给领导或者最终用户。
比如阿里的第一版淘宝一个月完成了上线,很多其他公司产品也是,对于一个核心技术不能掌握,以及自己的业务模式不知道是否正确的情况下,最快的方式便是兼并或者收购,或者外采。
说起托管,大家都了解的github代码托管仓库。其实云服务也是一种托管,比如阿里云,腾讯云,亚马逊云等。我们可以通过按需付费,不花冤枉钱,直接通过阿里云购买服务器,域名解析器,负载均衡器,数据库,以及享受专业团队的技术支持和解决方案的共享。另外对于团队,只需要关注自己的业务应用系统如何设计更好的满足用户需求就可以了。
所以这里我们能够看到的是如果说在团队初期,我们开始搭建团队并开始项目旅程的时候,应该是外采-》托管-》自研的这个过程会比较合适。那么我们接下来重点说明下云服务下的托管决策。
SaaS全称为Software-as-a-service, 软件解决方案(Saas),意思是“软件即服务”。 在业内,SaaS被 称为软件运营或简称软营。 SaaS是一种基于互联网提供软件服务的应用模式。
PaaS 全称是 Platform as a Service ,中文含义是 平台即服务
IaaS 全称是 Infrastructure as a Service ,中文含义是 基础设施即服务
也许对于上面你可能会有一种疑问,似懂非懂的感觉。我们可以看下如下的一张图:
基础设施,比如数据中心,磁盘存储,网络,服务器,防火墙,负载均衡等等就是阿里云,亚马逊云服务厂商提供出的IAAS服务产品。
操作系统,编程语言SDK,应用服务器,中间件MQ,Redis,数据库MySQL等,则是这些服务厂商提供出的PAAS服务产品。
认证,登陆授权,用户界面,控制面板,管理,事务控制则是这些服务厂商提供出的SAAS服务产品。
现在的你是否有一丝了解了呢?
这里的云计算服务的特征必须满足如下要求:
总的一句话概括就是,按需付费,我的业务发展好,数据量上来了你可以给我弹性扩容,我的业务不好,你可以给我弹性缩容,计费方式根据我使用情况来计算。比如新浪微博的热点一旦挂掉,就需要赶紧和阿里云申请扩容。之前的钉钉由于疫情在线直播的数据量导致的系统不稳定,无法扛住流量,也是紧急和阿里云申请机器扩容。
公有云,一种多租户环境,最终用户与其他消费者一起,在一个共享的商业资源网络上为自己所使用的资源付费。
好处:
缺点:
那么既然根据好处和缺点,我们便能够决策出,涉及到的隐私数据,我们应该部署到私有云,而普通的数据可以部署公有云。
对接触点和业务功能要有很深的了解,可以画一张业务架构示意图来开始,来尝试问如下的问题:
这里的每一项内容都决定了,是否你的云服务模式适合你当前的场景,你的上云之路是否是正确道路。
除了上述内容之外,你还需要对当前现状有个充分了解,例如如下的因素也应该是你作为技术leader应该考虑的方向:
如果上述我们的顾虑都已经考虑完毕,并且已经通晒全员达成相同认知,那么就要选择合适的云服务模式了。
云服务模式的可行性考虑因素:
最常见的是CRM、ERP、审计、人力资源和工资单等企业业务应用,这些软件已经有成熟的业界解决方案,我们并不需要再自己研究一套。另外对于如下的服务应用也可以考虑:
数据库,中间件,操作系统等要求的如下因素多语言支持SDK,安全补丁,日志,监控,弹性扩展,故障转移,灾难恢复等,都应该由供应商负责,我们可以直接选择云厂商的产品。
如果对于要求开发管理内存,配置数据库,应用服务器,最大化吞吐量,明确数据如何在磁盘之前分布和操作系统有个自己的把控能力的团队可以不考虑了,如果说对于这些没有人力和能力来把控,则可以交给服务厂商。
审计的核心是保护公司和客户的数据安全,这里会经常有人说云中的数据不安全。数据在哪里都会面临网络威胁,我们不应该关注云中数据安全不安全问题,应该专注哪些有关审计,法律合规,客户需求以及风险等真正的问题和约束。
在我们项目开发初期就应该考虑审计需求比如消费者的成熟度。另外对有关安全,日志,监控,SLA管理,灾难恢复和其他合规云服务的关键组件进行策略设计。
数据首先需要区分是否是隐私需要保护的数据,如果是的话,我们需要利用开源的OpenStack来搭建自己的私有云,而对于非需要保护的数据,我们可以直接使用公有云来提供服务。
在对云服务进行选择的时候,数据因素的考察也决定了你选择哪个厂商,具体的因素可以参考如下几点:
除上述因素外,还需要考虑所有的数据需求都会对如何存储底层数据造成决策影响,比如数据是否需要隔离,以及数据存储格式:
多租户分为完全隔离和数据隔离。
完全隔离:
优点:提供独立性,隐私,高扩展性
缺点:费用最高,复用性最低,最复杂。
数据隔离:
优点:成本效率最高,复杂度最低,复用性最高
缺点:缺乏独立性,性能最低,扩展性最差
如何选择,根据流量的大小来抉择,如果流量大则完全隔离,如果流量小则数据隔离。
联机事物处理OLTP行为。
需要根据自己的用户人群以及自己的数据和产品成熟度,公司业务和风险承受能力来进行综合衡量。
比如我们通常关心的 RT响应时间,运行时间。页面加载时间,网络性能,应用程序接口性能等。线程,缓存,内存和CPU利用率,每秒请求数RPS,磁盘空间容量,以及CPU和内存利用率,访问数量PV,UV,新用户数,单用户成本,以及其他业务相关指标。
应该监控的类别:
监控在云堆栈的不同层进行:
不同的领域监控
定义参考的因素来源于不同的服务,不同的客户人群,不同的业务。
不同的服务,客户,业务对于SLA类型也不同常用的如下:
消费方和企业云服务厂商的要求:
对于供应商的直接SLA服务要求:正常的运行时间SLA介乎99.9%~100%
我们根据故障时间成本来制定不同的云服务的恢复计划。
举个例子:亚马逊分为地区和可用区域概念:地区坐落全球范围,区域是地区之内的独立的虚拟数据中心。
为了不避免系统失效,通常会跨区域冗余部署。跨地区冗余部署,或者混合云部署。
所以为了避免系统故障而可以采用这两种方式来进行处理。
从数据中心防备主数据中心发生灾难的恢复方法:
最好的方式是公有云和私有云都有部署,方便自己把控私有云,出了问题以后不需要一直等待其他人的修复。
数据进行定时归档,并定期计划性的抽取数据
当应用全部部署云服务以后,后续团队就需要更加关注业务需求和设计以及用户体验,从而给用户带来更好的价值和使用感受。那么未来的演化方式就会变成逐步的PAAS平台即服务,提供不同的服务平台化的能力来帮助你更好的专注的关心自己的产品或者系统。
5W1H的重要性,应该在云服务模式抉择中深度思考,进而能够更好的抉择云服务设计架构。
领取专属 10元无门槛券
私享最新 技术干货