从今天开始,小胡开始用实际案例,为大家介绍上云的实践,帮助大家通过具体的应用场景去了解云计算的特点和好处。
我们用知乎举例,如果要搭建和运营一个用户2亿多的内容社交大平台,需要解决哪些技术和运维的问题。
首先就是架构设计,不知道知乎的服务端的主要开发语言是什么,可能是Java,应该还会用到python和go。公司在早期如果技术人员不够,或者说技术实力有限时,推荐大家使用成熟的框架,像腾讯云的微服务平台TSF和阿里云的分布式应用服务EDAS都是可以的,目前都支持spring cloud微服务框架,容器服务也不应该被技术忽视,
基本云化架构
说完架构,再从头说起,网站app等都需要域名,就需要用到DNS云解析,专业的解析服务器,好处包括多节点、多线路、安全、快速,还有目前云解析基本都是免费赠送的,不用白不用。
继续说域名相关的,为了防止网站被窃听和用户身份篡改,那么就要用到SSL证书,去实现https安全访问,现在主流网站过渡到https机制了,相比http,https会增加一点费用,但是目前都价格不算太高,一般可以接受,并且现在据说小程序必须要有SSL证书才能上线了。
说完域名我们说用户注册登录,短信验证不可避免,政府要求社交类网站必须要求用户绑定手机号,腾讯云、阿里云、百度智能云等等大大小小提供短信验证服务的供应商数不胜数,上面几家的价格不算划算,但是都很稳定,接入也很简单好用。现在有更便捷的方式了,阿里云联合运营商推出了号码认证服务,可以直接用户输入手机号,通过运营商系统识别号码是否是当前手机装载,如果是就已经完整验证通过,不需要短信验证码了,是不是很方便,现在阿里云正式邀请公测阶段,费用很低(可能初期免费),大家不妨去试试。
继续说注册登录,为了防止用户恶意注册和甄别是否是机器人注册,常用图片验证码验证已经很容易被破解了,可以考虑极验推出的卡片拖拉式的生物行为安全识别,网易云也有对应的产品解决方案,都比较可靠。
注册登录安全这块要求更高的朋友,可以用下腾讯云的注册保护RP产品等产品,腾讯把自己的安全策略拿出来共享,大家不妨一试。
说完注册登录,我们说登录访问之后的事。
先说安全。作为一个内容平台,引流非常的重要,那肯定要把内容开放给搜索引擎,那么就要有web端,最好是PC和移动web都有,方便站外用户通过搜索引擎找到内容后进入站内,因此web应用的防火墙是不可或缺的。如果量大了或者防止恶意竞争对手的攻击,就要考虑防DDOS攻击的高防IP。
继续说安全,因为它太重要了,作为一个国民级的内容社交平台,无疑将会产生大量的UGC,文字、头像、图片、音视频,这些用户上传的内容都有可能违反国家法律法规,如果平台的治理能力有限或者完全依靠人力运维,几乎是不可能的,所以内容安全,合规运营是平台能长治久安的基础,腾讯云、阿里云、百度云、网易云等等厂商都推出了一些内容安全的产品,都是他们用于应对自身超大量的UGC内容的安全策略,而且还在不断的迭代进化,对不合规的内容辨识将会越来越smart,建议大家直接用,自己研发是不可能的,也没有海量内容来支撑咱们自研产品的可靠性测试。
当然,个性化的安全方面需求还有很多,我们就不深入列举了,大家遇水搭桥就行。
接着说一些可用的常规技术云产品。
消息推送(消息队列),腾讯云、阿里云、华为云、极光、个推等等,都做得很好了,都做了for Kafka,还有自研的技术开放,阿里云的开放的最多,大家可以去看看,找到适合自己的用。
智能推荐,阿里云的最新大数据&AI技术成果,咱们要用到个性化的推荐算法但是又请不起大牛算法工程师的时候,先用这个,不失为一个good choice。微博这么多年的算法都那么烂,希望微博能先用上:)。
站内要用到搜索,就需要搜索引擎框架,这个经验丰富的技术主管都知道,Lucene、lasticSearch等等都可以拿来用,很成熟了。
现在知乎等内容社交平台都开始有视频内容了,视频技术中的云点播、云转码都是必须要用到的,这块腾讯云全部开放了自己的能量,阿里、声网、Ucloud也是强有力的竞争对手。
现在移动端都要上APP Store,那就必须要让APP支持IPv6才能上架,这块一些没有经验的技术或者发布人员可能做起来很慢影响进度,阿里云、腾讯云、华为云都提供了完整的技术解决方案,接入也很方便,大家直接用就行。
云服务器、SLB负载均衡、CDN内容分发网络加速、云数据库、对象存储、shareSDK一站式分享开发、移动用户反馈,这些基本的我就不多说了,大家看我上图的架构设计,也是必然要用到的。
我最喜欢说的是下面这些地方,大家平时在意比较少的地方的。
可靠性测试、Devops、团队协作、敏捷开发、技术运维、用户行为分析和数据分析。
现在的测试已经云化程度很高了,但是还有很多技术不了解,我多说一些,阿里云的移动测试、性能测试PTS;腾讯云的压测大师、兼容测试、手游测试;华为云的云测和移动测试等等都提供覆盖面广,力度高的测试服务,上线产品之前,大家不妨去测试一把,看看自己的应用过了他们的关没。
Devops,应该是从只有两个技术人员的时候就要开始实践起来,无关团队大小,良好的开发流程和项目管理是进度的可靠保证,程序员996普遍的原因我个人觉得很大程度上是Devops没有强力执行和践行的产物。
团队协作、敏捷开发的辅助工具很多,有道云笔记、石墨文档、蓝湖、禅道、teambition、腾讯云的TAPD平台、华为云提供的Devcloud ProjectMan、阿里云的云效平台都提供了很好的协作工具,我觉得凡是能有助于开发协作的工具,不管是收费还是免费的,项目主管们要主动使用和摸索,以免管理不善影响进度还导致带的团队抱怨管理混乱。
技术运维,实时监控,用户行为和数据分析,我直接推荐产品了,友盟的app+、growing IO、Talking Data、腾讯云蓝鲸一站式运维平台、云监控;阿里云的云监控、实时监控、日志服务等等,都是很好的技术运维的工具。
最后说下,现在做担任技术总监、项目主管或者产品总监,真的是时候学会云化思维了,不习惯云化思考的技术项目总监,团队将会很累,做了很多工作,但是问题频出,没法把精力集中在核心业务的研发上。
本文作者介绍:小胡说云(vx:avatarhoo),云计算技术传道士,原产品经理,目前正在做云产品的整合营销服务,可以免费提供产品上云的架构设计咨询服务。