公有云技术随着互联网的不断发展而被越来越多的程序员掌握,今天我们就通过案例分析来简单了解一下,公有云技术应用都需要注意哪些问题。
成本:
自建,需要人员维护和优化的成本,需要自行考虑高可靠(可能需要购买多台服务器)和高性能(可能需要购买高性能存储),使得成本偏高。
云上服务,通过规模效应、资源池化、参数调优等实现成本相对不高。
性能:
自建,不一定知道所有的参数优化项,也不一定同价位能买到专用的高性能硬件。
云上服务,性能明码标价,按需选择适合自己的性能配置。
伸缩性
自建,伸缩较麻烦,要不手动,要不通过历经检验的DevOps脚本,伸缩性弱。
云上服务,很多PaaS类服务可以一键升配。
维护方
自建,我方自行兜底
云上服务,云提供商提供SLA兜底。
可靠性
自建,不一定能实现该组件的集群模式或高可用模式的全部佳实践。
云上服务,会做好网络高可用(甚至是跨AZ的高可用)、存储多副本、计算跨物理服务器/机架/AZ甚至region、服务监控及自愈、备份等多种措施保障可靠性。
监控:
自建,要不没监控,要不监控需要从头(采集端)到尾(告警通知)实现一遍
云上服务,监控具备,且和公有云监控无缝对接。
易用性:
自建:一般没有Web界面,需要通过线下或流程平台或CLI来申请和操作
云上服务:有易用的web界面,可以在web界面上完成大部分功能。
比如云数据库:
运维架构:
存储的数据规模及后期扩展,采用的高可用架构;
异常切换
硬件及基础环境部署
选择什么配置的服务器,服务器型号及对应磁盘阵列;
操作系统环境及内核设置;
数据库安装及优化
数据库版本安装部署及配置;
数据库配置参数调优;
SQL语句优化;
慢查询,对SQL语句及索引做优化
数据库日常备份及恢复。
备份;
热备还是冷备?物理备份还是逻辑备份?
备份策略、周期、频率
使用云数据库,这些步骤云数据库都帮你做了。其他PaaS(中间件、大数据、微服务、DevOps等)也类似。
做好安全防护
公有云大的风险就是数据泄露。所以一定要做好安全防护。这个安全防护是多方面的。详细见安全部分。
云的优势是「分布式」
如果对比单台服务器,可能云主机的性能差一些。「分布式」是云计算的大优势。在实践中,不要只追求单台机器的性能,而是要通过分布式的设计思想来保障业务的高性能。佳实践推荐,服务器标配4C8G,低配也可以采用2C4G的配置。通过分布式充分压榨了单台服务器的资源,从而大限度地保障了终的低成本。
所以,在云上,一般情况下应用服务器的选择条件是:更多的低配的云服务胜于更少的高配的云服务器。
所以,在云上,对于数据库来说,如果数据量非常大,也推荐使用「分布式数据库」,而非在云上自建Oracle。
云的优势是「弹性」
所以,在云上,不要按照业务峰值购买全量的资源,而是推荐:
买满足日常需求的资源
高峰时,再提前购买一些弹性的资源,弹性扩容。
另外,不仅仅是服务器资源,对于网络也适用,如果您的系统经常搞活动,网络负载差距很大,那么推荐:「大带宽按量付费」而不是「固定带宽固定计费」。
动静分离
静态:放CDN+对象存储上,或者放NGINX服务器上也好,不要直接用应用服务器(如tomcat或nodejs)来处理静态资源。(浪费,术业有专攻)
动态:架构是LB-NGINX-应用服务器-redis-数据库。