【编者的话】2016年将是物联网蓬勃发展的一年,物联网发展的核心其实是数据驱动的智能体验。韩国三星公司通过将其物联网平台部署在基于Mesos的云操作系统之上,提高了研发团队的效率,简化了Spark大数据集群的部署和管理成本,并通过提高资源利用率降低了整体成本。
物联网在重新确立消费者与物理世界间的交互方式之余,也彻底转变了应用程序开发人员与产品工程师在处理日常工作时的指导方针。
如今,单纯在产品的外观与功能上下功夫已经远远不够。消费者希望拥有的是智能化产品,其需要有能力创造、访问并分析数据,而后利用相关结果以实现更具意义的用户体验优化效果。更出色的油耗节约、更理想的牙齿清洁效果、更好的减重成果乃至可由语音控制的电视——所有这些最终用户产品都应当由数字化数据进行支持。
三星公司几前就意识到了这种需求转变,并开发出一套名为SAMI的平台以帮助开发人员通过智能数据分析机制在联网设备上提供更加卓越的用户体验。这套平台能够接收来自几乎任意来源的数据,而SAMI支持下的应用程序则能够将这些多源数据加以整理——这意味着数据源孤岛问题不复存在。除了数据访问能力,SAMI还能够对设备连接、云存储与处理乃至安全性及隐私保护等复杂性因素进行抽象化处理。
三星公司于2014年11月正式发布SAMI平台,而且其自诞生起就吸引到了众多支持者的关注,包括多家初创企业乃至大型厂商。三星方面预计物联网技术将重新定义用户同技术成果之间的交互方式,并因此在接下来的几年中向物联网领域投入了大量研发资源——SAMI正是这一愿景的具体表现之一,SAMI工程技术高级主管Jerome Dubreuil解释称。举例来说,三星公司目前正着手打造一套名为ARTIK的嵌入式物联网模块集合,而SAMI也已经成为其现场生成数据的默认处理后端。
“我们直接推出了完整的堆栈,涵盖由硬件到软件的全部相关元素,”Dubreuil解释称。“硬件正是ARTIK,而软件——或者说云环境——则由SAMI充当。在此之后,大家的惟一任务就是将该模块整合进用户设备当中,并以SAMI为基础进行应用程序构建。”
图片来源:三星公司
迈向Mesos
SAMI自立项之初就以微服务架构为基础,但2015年年初团队工程师们决定将其推向发展的下一阶段——立足于容器机制。当时,SAMI工程团队着力审视了一系列潜在系统选项,希望确保其能够让三星DevOps经理Niranjan Hanumegowda实现Docker容器在生产环境下的“快速增量”目标。最终,他们选择了Mesos、Marathon与Chronos——也就是云操作系统(或称为数据中心操作系统、简称DCOS)的三大核心组件,而它们也成为了SAMI平台的坚实开发根基。
这一举措的主要目标在于设计出一项具备高度可扩展能力的平台即服务(简称PaaS)方案,从而支持日益增长的微服务架构应用,并在其间改进SAMI的内部持续交付与集成(简称CI/CD)流程。三星公司希望借此帮助其它部门(包括QA及开发部门)得以快速将代码推送至生产环境,同时无需担心底层基础设施资源的配置难题。早期成功案例之一正是将Jenkins CI/CD平台运行在Mesos之上,这使得开发人员能够在几乎完全顺畅的情况下每天将数十套代码发布成果推送至生产环境中,且完全符合高质量要求。
SAMI团队最初于2015年2月对Mesos堆栈进行了调查,而SAMI则于今年5月将其运行在生产环境当中。Hanumegowda在今年7月发布的两篇博文当中解读了向Mesos的迁移过程及其采用的Jenkins架构:
· 物联网规模化工作负载容器解决方案:第一部分
· 物联网规模化工作负载容器解决方案:第二部分
面向内部SAMI开发人员的总体部署工作流程示意图。图片来源:三星公司
由于数据在三星的物联网发展战略中扮演着核心角色,因此SAMI的架构天然强调数据处理与存储系统。在最初发布的几篇博文当中,Hanumegowda指出这套平台由超过40项不同后端服务共同组成,其中包括“NoSQL数据存储、消息中转、服务注册、配置存储、图形数据库、HDFS、大数据处理工具、内存内缓存以及传统SQL数据库等等。”
不过,SAMI的永久数据存储机制尚未正式运行在Mesos当中,但三星已经计划随时间推移完成这一迁移工作。尽管SAMI团队已经拥有相当丰富的规模化分布式数据系统运行经验,但Hanumegowda表示该团队更倾向于通过将其部署在Mesos上以降低相关处理难度。作为规模庞大的Mesos技术社区,Mesosphere一直在为各类现有框架提供强有力的支持,具体包括Kafka、Cassandra、HDFS以及Elasticsearch,并不断为其添加新的集成选项。国内数人云也在为Mesos社区贡献着力量,即将推出可一键部署的Spark、Kafka、HDFS、Cassandra等分布式服务。
SAMI工作原理概括图。图片来源:三星公司
一套高效且持续扩展的集群
尽管仍未完善,不过三星的Mesos环境已经极为庞大且仍在不断扩展。目前其以Marathon任务形式运行有超过50项微服务,同时利用Chronos进行着批量任务管理。Jenkins目前作为自有Mesos框架——类似于Apache Spark——加以运行,SAMI团队利用其运行面向大规模数据集的临时性分析任务。在这套框架的帮助下,技术人员得以回避了独立Spark主节点所带来的部署与管理难题。
从无状态应用到任务构建再到面向MapReduce的任务处理,这一切都运行在立足于公有云环境下的一套共享式集群。这套SAMI生产集群目前由约500个CPU计算核心与800 GB内存构成,且随时运行着约400套容器系统。其预生产集群则由约300个CPU计算核心及500 GB内存构成,随时运行着超过250套容器系统。
总体而言,Mesos与Marathon已经帮助SAMI团队节约了约60%的基础设施使用成本,而这要归功于其出色的规模化成本效益。三星公司已经拥有良好的整体资源水平掌控能力,足以准确预测何时需要对设施进行扩展,同时通过添加容器而非物理设备的方式在规模扩展当中实现资源节约。
“我们认为物联网技术的真正价值在于数据本身,而非那些物联网设备,”Dubreuil指出。“在我们看来,SAMI将确切为IT的下一轮革命提供助力。如果像Mesos这样的新型技术能够帮助我们打造出一套更出色的平台,从而允许开发人员构建起更接近理想效果的数据驱动型应用程序,那么我们非常乐意加以采纳。”
活动预告:
Hold 住高并发,唯架构与运维不可以辜负
主题:高并发,架构,运维,解决方案
时间:2016年01月10号下午14:00 - 17:00
地点:P2 联合创业办公社 • 北京市海淀区中关村 E 世界 A 座 B2
不管你是架构还是运维,抑或是产品,会不会经常遇到“高并发”问题的困扰?别担心,基于Mesos的云操作系统"数人云"带你一场活动看完所有你关心的“高并发”问题。
「宜人贷」讲述系统演化
「当当网」谈谈交易系统重构上线的经验
「京东网」解读京东分布式数据库支撑百亿数据量探索与实践
「数人云」分享使用 Go 开发秒杀系统的实践
不只是一次技术交流,他们多年的经验都在这里了,只等你来。