IoT创新不断Notion创新背后

日期: 2015-08-10 作者:George Lawton翻译:崔婧雯 来源:TechTarget中国 英文

前文我们介绍了Notion公司创新的定制传感器,接下来我们继续为读者介绍其背后的故事。

使用微服务分离开发和部署

应用基础架构本身基于一系列微服务构建,这些微服务负责数据生命周期的不同部分。Docker被用来作为每个微服务的容器。比如,一个应用程序从感应器得到事件数据,并将其发送给另外一个应用来决定烟雾报警器停止了。类似的微服务用来决定是否需要分析动作数据。可以告诉你门是打开还是关闭的,或者是否有人在敲门。Docker使得开发人员可以利用现有的维护、监控工具,并且和容器整合在一起。“使用Docker的一大好处就是能够将平台依赖从开发中移除,因此可以更有效得推出软件新版本。”Jordan Stone,Notion的首席软件架构师说。

Notion的开发团队从Ruby on Rails开始,构建了一个巨大的应用程序。团队仍然在使用Ruby和Ruby on Rails来实现很多服务。R用来做统计模型。团队还使用Postgres做用户账号数据库。

利用IoT后台服务

Notion的开发团队重度使用云集成,因此他们能够更加专注在增加产品价值的开发上,而无需从头开始。“集成很长时间以来就是成为连接蓝图一部分的方式,”Stone说。“首先需要确保和声誉良好的公司合作,你得知道他们的现状和前景。”

Notion选择了名为TempoIQ的第三方感应器数据库,因为它为大规模存储感应器数据做了优化。使用这个数据库使得Notion可以更快得构建产品。“我们不是数据库公司,”Stone说。“除了技术挑战,构建IoT应用所需的数据库得应用程序花费巨大。”名为Crashlytics的嵌入式设备crash报告服务,会收集该感应器节点的问题数据。Crowsnest帮助定位这些问题。后台部署在Digital Ocean云上,该云花费不多,性能良好。“比起其他云供应商,这让我们能够弹性扩展的同时花费更少。”Stone说。

和Nest、Home Kit和IFTT平台的后台集成已经完成,使得可以在这些生态系统上开发混合应用程序。“我们和Nest这样的平台集成,我们自己完成之上的功能开发。”Stone说。“我们还要通过自己的受OAuth保护的API来支持和其他云的集成。如果有人被盗用了,并且集成是从他们到我们的,我们就可以撤销他们访问我们云的权限。”

云服务加速开发

整个软件开发交付流程都自动化了,并且对交付加以控制。开发团队使用一系列环境来提供本地开发环境,以及大规模运行的用户可接受测试运行的环境。Jira提供软件开发功能来支持敏捷,sprint,backlog和新功能。Trello用来支持新功能请求。

一旦新代码完成,就会被推送到GitHub上,如果单元测试通过,代码会推送到Quay.io,一个管理私有Docker仓库的服务。然后使用Codeship通知所有运行着Docker镜像的服务器来下载新的包含更新代码的镜像,Codeship是一个持续集成和交付的服务。新代码能够在四分钟内推送到最大的应用里,在60秒之内就能推送到其他微服务上。目前,Notion每天会推送一个到五个新的包含交付代码的更新到生产环境或者UAT环境里。

用户反馈

Notion愿景的核心部分是最大限度地利用用户和开发人员来支持新应用程序和服务。对于移动应用,团队主要关注用户测试来确保应用程序提供了合适的功能。“所有人都在为此而努力,了解所有需要构建的东西。如果我们认为完全理解了行业以及用户真实需求,那就太自我为中心了,”Margoles说。“我们的目标是成为不可知论者的平台,”他补充道。“Notion想扩展这个平台,并且允许家庭里已有的其他设备和服务与之集成。我们的立场是认为行业已经过于拥挤了。我们不想成为控制一切的平台,而想要提供能为你提供所需信息的感应器。”

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

相关推荐