【云原生 实践指北】5:真实业务场景下云原生项目落地实践学习_云原生指北
C站这么多大佬都讲了如何去实践Docker或者K8s简单实战,笔者也没有真实做过一些云原生实战项目,都是跟着B站大学学过一些简单概念与基本入门的命令。也就不多写这些知识了!大家学习云原生,肯定都很少听过云原生一些真实的场景下如何去运用如何去落地,只知道Docker能干嘛干嘛,K8s能用来高效能的管理容器编排,云原生能够赋能项目如何如何减小成本等等。那么本期文章就是笔者学习了一些腾讯云/阿里云基于云
真实业务场景下云原生项目落地实践学习
写在前面的话
C站这么多大佬都讲了如何去实践Docker或者K8s简单实战,笔者也没有真实做过一些云原生实战项目,都是跟着B站大学学过一些简单概念与基本入门的命令。也就不多写这些知识了!
大家学习云原生,肯定都很少听过云原生一些真实的场景下如何去运用如何去落地,只知道Docker能干嘛干嘛,K8s能用来高效能的管理容器编排,云原生能够赋能项目如何如何减小成本等等。
那么本期文章就是笔者学习了一些腾讯云/阿里云基于云原生的产品项目开放的落地实践方案的一些感想与学习记录。后续也会多写一些云原生落地实践方案的学习记录!腾讯云和阿里云等多家大厂都有很多云原生实践落地的开放文档或文章介绍,大家感兴趣的可以去百度一下看看多学习一下。不得不说,腾讯在推动国内云原生这条路上真的是走了很远!大家有空可以多去关注阿里云、腾讯云。
前面的文章已经简单介绍了一些云原生的入门知识及简单实战。感兴趣的同学可以跳转进入:云原生学习专栏
1、容器化的落地实践
搜题APP的云上之旅
相信大家都或多或少用过或听过某帮,反正笔者在高中经常使用某帮。确实十分好用,上了大学也经常在用hhhh,答案齐全,查询速度快!在学习云原生的时候,我才发现原来云原生使得项目落地的方案离我们这么近,作业帮就是一个很好的例子。
某帮大家第一想到的业务场景需求肯定是:海量业务、海量的高并发、并且需要极低的延迟来提供广大学生的搜题等其他服务。
某帮累积的激活用户已经超过8亿,并且随着疫情的突发,某帮的系统和基础的平台架构已经无法满足快速增长的各种业务需求和场景。业务对快速发布、调用链追踪、监控日志平台、计算资源利用率等等的各种提升肯定是十分急切的。
经过沟通,腾讯云决定将某帮的核心业务迁移到腾讯云容器服务TKE。但是在这个过程中,遇到了许多技术难题:
- 1、原业务大规模使用Kubernetes原生的负载均衡和服务发现,但Kubernetes在分散的流量调度架构上存在天然的瓶颈,容易导致业务负载严重不均衡。
- 2、原业务对服务间时延依赖,部分业务连接超时时间设置为5毫秒,所以无法承担细微系统调度和
网络波动,如果一旦在未经优化的内核和网络下,容易引起业务大面积超时。服务间访问会带来巨大的DNS并发,极易触发主机的QOS限速和引起主机的conntrack冲突。
那么腾讯云是如何解决的呢?
- 1、解决IPVS模式高并发场景下连接复用引发连接异常(对应issue:https://github.com/kubernetes/kubernetes/issues/81775,内核补丁已被Linux社区接受);在高配节点(核数多)下IPVS规则过多引发网络毛刺问题;大Pod(占用核数多,单核占用高) 在高配节点(核数多) 场景下,CPU负载均衡引发网络毛刺的问题等。
- 2、还基于TLinux2.4(内核4.14),优化了大量容器场景网络收包软中断导致的延迟问题,大幅提升网络性能。同时,结合腾讯云卓越的网络和存储能力,以及TKE,EKS提供的稳定的容器运行时环境,为其提供了整套容器化解决方案。
- 3、将在线业务、大数据离线任务、GPU任务都进行了容器化的改造。某帮开发语言众多,通过Service Mesh实现多语言的服务治理与服务感知。同时某帮也有大量GPU服务容器化部署在TKE里,为提升GPU资源率用率与隔离性,其采用共享GPU模式,并在业务层,通过限制入口流量的方式做了不同Pod GPU使用量的隔离。利用EMR on EKS方案,某帮将紧急的大数据任务或者临时的计算任务运行在EKS弹性集群里,避免了复杂的资源规划及储备工作。
那么通过容器化的云上改造,腾讯云在其开放文档中显示其成本直线下降40%左右,接口响应提升10%,稳定性从99.95%提升到99.995%;并且发布效率提升两个数量级,平稳支撑了疫情期间业务爆发式增长,快速迭代、急速扩缩容的真实业务需求。
2、Serverless的落地实践
某电商APP的Serverless改造之旅
某电商APP是一家知名度很高的互联网公司,其将购物与社区的结合收获了一大批忠实粉丝。那么这样一个大的APP,每天都会产生大量的数据,当APP产生了数据之后,就需要有一个组件获取数据,并将数据写到kafka。该APP以往的办法是,通过Lofstash、Filebeat等开源的数据存储方案处理,二是自己写代码实现这种逻辑。
上述的原方案在数据量小的时候还可以,随着业务扩张,数据越来越多,那么原方案的可靠性、可用性、性能成本就不能够较好的支撑了。
当进行产品迭代或设计新功能时,前期需要做许多新项目的验证,这会涉及海量的数据拉取和数据分析。而这一部分的数据需求会给开发带来很大的压力。不仅需要对已有数据处理的主流程和数据结构有适配成本,需要考虑稳定性的风险,这部分需要投入大量人力和时间成本;而且由于过程时间周期比较长,会影响迭代的速度,赶不上市场上的竞品。
腾讯云使用了Serverless ETL方案来帮助该APP解决上述问题。
ETL是指:业务上需要做数据抽取 (Extract)、数据转换 (Transform)、数据加载 (Load) 的场景。
众所周知,许多大型的APP都使用Kafka做大数据分析、日志收集、流式数据处理等等。腾讯云的Ckafka也借助开源社区的力量与云函数结合,推出了许多优化功能:
- 1、基于Apache Kafka的分布式、高可扩展、高吞吐。
- 2、无需部署,直接使用Kafka所有功能。
- 3、Ckafka封装所有集群细节,无需用户运维。
- 4、对消息引擎优化,性能比社区最高提升50%。
云函数实时读取Ckafka中的消息,用来做数据转存、日志清洗、实时消费等。此外像数据转存的功能集成到了Ckafka的控制台上,可以一键开启使用,降低了使用复杂度。
而腾讯云Serverless云函数也具有许多优势,例如:
- 1、支持多语言。
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
)**
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
更多推荐
所有评论(0)