website/content/zh-cn/case-studies/wink/index.html

147 lines
27 KiB
HTML
Raw Blame History

This file contains invisible Unicode characters!

This file contains invisible Unicode characters that may be processed differently from what appears below. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to reveal hidden characters.

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

---
title: 案例研究Wink
case_study_styles: true
cid: caseStudies
css: /css/style_wink.css
---
<div class="banner1">
<!-- <h1>CASE STUDY: <img src="/images/wink_logo.png" width="13%" style="margin-bottom:-4px"><br>
<div class="subhead">Cloud-Native Infrastructure Keeps Your Smart Home Connected</div>
</h1> -->
<h1>案例研究: <img src="/images/wink_logo.png" width="13%" style="margin-bottom:-4px"><br>
<div class="subhead">云原生基础设施让你的智能家居互联</div>
</h1>
</div>
<!-- <div class="details">
Company &nbsp;<b>Wink</b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Location &nbsp;<b>New York, N.Y.</b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Industry &nbsp;<b>Internet of Things Platform</b>
</div> -->
<div class="details">
公司 &nbsp;<b>Wink</b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;位置 &nbsp;<b>纽约,纽约州</b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;行业 &nbsp;<b>物联网平台</b>
</div>
<hr>
<section class="section1">
<div class="cols">
<div class="col1">
<h2>挑战</h2>
<!-- Building a low-latency, highly reliable infrastructure to serve communications between millions of connected smart-home devices and the companys consumer hubs and mobile app, with an emphasis on horizontal scalability, the ability to encrypt everything quickly and connections that could be easily brought back up if anything went wrong. -->
构建低延迟、高度可靠的基础设施,为数百万互联智能家居设备、公司消费者中心、移动应用之间的通信提供服务,强调水平可扩展性,能够快速加密所有内容和强健的连接。
<br><br>
<h2>解决方案</h2>
<!-- Across-the-board use of a Kubernetes-Docker-CoreOS Container Linux stack.<br><br> -->
全面使用 Kubernetes-Docker-CoreOS 容器的 Linux 系统。<br><br>
</div>
<div class="col2">
<h2>影响</h2>
<!-- "Two of the biggest American retailers [Home Depot and Walmart] are carrying and promoting the brand and the hardware,” Wink Head of Engineering Kit Klein says proudly though he adds that "it really comes with a lot of pressure. Its not a retail situation where you have a lot of tech enthusiasts. These are everyday people who want something that works and have no tolerance for technical excuses.” And thats further testament to how much faith Klein has in the infrastructure that the Wink team has built. With 80 percent of Winks workload running on a unified stack of Kubernetes-Docker-CoreOS, the company has put itself in a position to continually innovate and improve its products and services. Committing to this technology, says Klein, "makes building on top of the infrastructure relatively&nbsp;easy.” -->
“美国最大的两家零售商 [Home Depot 和 Walmart] 正在使用和推广 Wink 品牌和硬件,” Wink 工程主管 Kit Klein 自豪地说,不过他补充道,“这确实带来了很大的压力。这不是普通的零售商客户像技术狂热者一样追求前沿技术。这些人每天都在想要一些行之有效的东西,并且不会容忍技术方面的借口。”这进一步证明了 Klein 对 Wink 团队所构建的基础设施有多大的信心。由于 Wink 80% 的工作量在 Kubernetes-Docker-CoreOS 的统一堆栈上运行,公司已使自己能够不断创新和改进其产品和服务。克莱因说,致力于这项技术“使得在基础设施之上的建设相对容易。”
</div>
</div>
</section>
<div class="banner2">
<div class="banner2text">
<!-- "Its not proprietary, its totally open, its really portable. You can run all the workloads across different cloud providers. You can easily run a hybrid AWS or even bring in your own data center. Thats the benefit of having everything unified on one open source Kubernetes-Docker-CoreOS Container Linux stack. There are massive security benefits if you only have one Linux distro/machine image to validate. The benefits are enormous because you save money, and you save time.”<br><br><span style="font-size:15px;letter-spacing:0.08em">- KIT KLEIN, HEAD OF ENGINEERING, WINK</span> -->
“它不是专有的,它是完全开放的,它非常可移植。你可以跨不同的云提供商运行所有工作负载。你可以轻松地运行混合形式的 AWS甚至引入你自己的数据中心。这就是在一个开源 Kubernetes-Docker-CoreOS 容器 Linux 系统上统一所有内容的好处。如果你只有一个 Linux 发行版/计算机映像进行验证,则具有巨大的安全优势。好处是巨大的,因为即省钱又省时间。<br><br><span style="font-size:15px;letter-spacing:0.08em">- KIT KLEIN, WINK 工程主管</span>
</div>
</div>
<section class="section2">
<div class="fullcol">
<!-- <h2>How many people does it take to turn on a light bulb?</h2> -->
<h2>打开一个灯泡需要多少人?</h2>
<!-- Kit Klein whips out his phone to demonstrate. With a few swipes, the head of engineering at Wink pulls up the smart-home app created by the New York City-based company and taps the light button. "Honestly when youre holding the phone and youre hitting the light,” he says, "by the time you feel the pressure of your finger on the screen, its on. It takes as long as the signal to travel to your brain.”<br><br> -->
Kit Klein 拿出他的手机进行演示。只需轻扫几下Wink 的工程主管打开由一家纽约公司开发的智能家居应用程序,然后轻触灯光按钮。“老实说,当你拿着手机,意味着你控制着灯光,”他说,“当你感觉到你的手指在屏幕上的压力,灯就打开了。开灯就和触觉反馈到你的大脑一样快。”<br><br>
<!-- Sure, it takes just one finger and less than 200 milliseconds to turn on the light or lock a door or change a thermostat. But what allows Wink to help consumers manage their connected smart-home products with such speed and ease is a sophisticated, cloud native infrastructure that Klein and his team built and continue to develop using a unified stack of CoreOS, the open-source operating system designed for clustered deployments, and Kubernetes, an open-source platform for automating deployment, scaling, and operations of application containers across clusters of hosts, providing container-centric infrastructure. "When you have a big, complex network of interdependent microservices that need to be able to discover each other, and need to be horizontally scalable and tolerant to failure, thats what this is really optimized for,” says Klein. "A lot of people end up relying on proprietary services [offered by some big cloud providers] to do some of this stuff, but what you get by adopting CoreOS/Kubernetes is portability, to not be locked in to anyone. You can really make your own fate.”<br><br> -->
当然,只需一根手指,不到 200 毫秒即可打开灯,或锁上门或更换恒温器。但是,让 Wink 能够帮助消费者以如此快速和轻松的速度管理其互联智能家居产品的是一个复杂的云原生基础架构Klein 和他的团队使用开源的 CoreOS 统一系统构建并继续开发专为集群部署设计的操作系统和 KubernetesKubernetes 是一个开源平台用于跨主机集群自动部署、扩展和操作应用程序容器提供以容器为中心的基础结构。Klein 说:“当你拥有一个庞大而复杂的相互依赖的微服务网络,需要能够发现彼此,并且需要水平可伸缩和对故障的容忍度时,这就是真正优化的原因。”“很多人最终依靠一些大型云提供商提供的专有服务来执行某些操作,但通过采用 CoreOS/Kubernetes 获得的是可移植性,而不是依赖于固定的某人。你真的可以决定自己的命运。“”<br><br>
<!-- Indeed, Wink did. The companys mission statement is to make the connected home accessible that is, user-friendly for non-technical owners, affordable and perhaps most importantly, reliable. "If you cant trust that when you hit the switch, you know a light is going to go on, or if youre remote and youre checking on your house and that information isnt accurate, then the convenience of the system is lost,” says Klein. "So thats where the infrastructure comes in.”<br><br> -->
事实上Wink 做到了。公司的使命是使家庭互联无障碍即对非技术业主来说用户友好价格合理也许最重要的是可靠。Klein 说:“如果你不相信,当你点击开关时就可以打开一盏灯,或者你在远处使用手机检查你的房子,但是反馈信息不准确,那么系统的便利性就会丧失。”这就是基础架构的用处。<br><br>
<!-- Wink was incubated within Quirky, a company that developed crowd-sourced inventions. The Wink app was first introduced in 2013, and at the time, it controlled only a few consumer products such as the PivotPower Strip that Quirky produced in collaboration with GE. As smart-home products proliferated, Wink was launched in 2014 in Home Depot stores nationwide. Its first project: a hub that could integrate with smart products from about a dozen brands like Honeywell and Chamberlain. The biggest challenge would be to build the infrastructure to serve all those communications between the hub and the products, with a focus on maximizing reliability and minimizing latency.<br><br> -->
Wink 是在 Quirky 公司孵化的该公司开发众包产品。Wink 应用程序于 2013 年首次推出,当时,它只控制了少数消费类产品,如 Quirky 与 GE 合作生产的 PivotPower Strip。随着智能家居产品的激增Wink 于 2014 年在全国的 Home Depot 商店推出。其第一个项目:可以与 Honeywell 和 Chamberlain 等十几个品牌的智能产品集成的平台。最大的挑战是构建基础设施,为信息中心和产品之间的所有这些通信提供服务,重点是最大限度地提高可靠性和最小化延迟。<br><br>
<!-- "When we originally started out, we were moving very fast trying to get the first product to market, the minimum viable product,” says Klein. "Lots of times you go down a path and end up having to backtrack and try different things. But in this particular case, we did a lot of the work up front, which led to us making a really sound decision to deploy it on CoreOS Container Linux. And that was very early in the life of it.” -->
Klein 说:“当我们最初推出时,我们正以非常快的速度尝试将第一个产品推向市场,即最低可行产品。”“很多时候,你走一条路,最终不得不回头尝试不同的东西。但是在这个特殊的情况下,我们预先做了许多工作,这导致我们作出了一个真正明智的决定,将其部署到使用 CoreOS 容器的 Linux 上。而且是在项目伊始时就这么做了。”
</div>
</section>
<div class="banner3">
<div class="banner3text">
<!-- "...what you get by adopting CoreOS/Kubernetes is portability, to not be locked in to anyone. You can really make your own fate.” -->
“...通过 CoreOS/Kubernetes 带来的可移植性,你可以不依赖于任何人。你真的可以决定自己的命运。”
</div>
</div>
<section class="section3">
<div class="fullcol">
<!-- Concern number one: Winks products need to connect to consumer devices in peoples homes, behind a firewall. "You dont have an end point like a URL, and you dont even know what ports are open behind that firewall,” Klein explains. "So you essentially need to have this thing wake up and talk to your system and then open real-time, bidirectional communication between the cloud and the device. And its really, really important that its persistent because you want to decrease as much as possible the overhead of sending a message you never know when someone is going to turn on the lights.”<br><br> -->
关注第一Wink 的产品需要连接到人们家中在防火墙后面的消费设备。Klein 解释道:“由于没有 URL 这样的端点,你甚至不需要知道防火墙后面打开了哪些端口。”“因此,你基本上需要唤醒这些设备,然后与你的系统通信,然后在云和设备之间打开实时、双向通信。持续的连接真的非常重要,因为你希望尽可能减少发送消息的开销,你永远不知道什么时候有人会开灯。”<br><br>
<!-- With the earliest version of the Wink Hub, when you decided to turn your lights on or off, the request would be sent to the cloud and then executed. Subsequent updates to Winks software enabled local control, cutting latency down to about 10 milliseconds for many devices. But with the need for cloud-enabled integrations of an ever-growing ecosystem of smart home products, low-latency internet connectivity is still a critical consideration. -->
使用 Wink Hub 的最早版本当你决定打开或关闭灯光时请求将发送到云然后执行。Wink 软件的后续更新启用了本地控制,将许多设备的延迟缩短到大约 10 毫秒。但是,由于需要云支持的智能家居产品生态系统的集成,低延迟互联网连接仍然是一个关键的考虑因素。
<br><br>
<!-- <h2>"You essentially need to have this thing wake up and talk to your system and then open real-time, bidirectional communication between the cloud and the device. And its really, really important that its persistent...you never know when someone is going to turn on the&nbsp;lights.”</h2> -->
<h2>“你基本上需要唤醒此设备,然后与你的系统通信,然后在云和设备之间打开实时、双向通信。持续的连接真的非常重要,你永远不知道什么时候有人会开灯。”</h2>
<!-- In addition, Wink had other requirements: horizontal scalability, the ability to encrypt everything quickly, connections that could be easily brought back up if something went wrong. "Looking at this whole structure we started, we decided to make a secure socket-based service,” says Klein. "Weve always used, I would say, some sort of clustering technology to deploy our services and so the decision we came to was, this thing is going to be containerized, running on Docker.”<br><br> -->
此外Wink 还有其他要求水平可扩展性、快速加密所有内容的能力、在出现问题时可以轻松恢复的连接。Klein 说:“从一开始的整个结构来看,我们决定提供基于套接字的安全服务。”“我们总是使用某种集群技术来部署我们的服务,因此我们决定,这东西将被容器化,在 Docker 上运行。”<br><br>
<!-- At the time just over two years ago Docker wasnt yet widely used, but as Klein points out, "it was certainly understood by the people who were on the frontier of technology. We started looking at potential technologies that existed. One of the limiting factors was that we needed to deploy multi-port non-http/https services. It wasnt really appropriate for some of the early cluster technology. We liked the project a lot and we ended up using it on other stuff for a while, but initially it was too targeted toward http workloads.”<br><br> -->
当时就在两年多前Docker 还没有被广泛使用,但是正如 Klein 指出的,“技术前沿的人们当然理解它。我们开始研究现有的潜在技术。限制因素之一是我们需要部署多端口非 http/https 服务。它并不真正适合某些早期的集群技术。我们非常喜欢这个项目,最后在其它东西上使用了一段时间,但最初它过于针对 http 工作负载。”<br><br>
<!-- Once Winks backend engineering team decided on a Dockerized workload, they had to make decisions about the OS and the container orchestration platform. "Obviously you cant just start the containers and hope everything goes well,” Klein says with a laugh. "You need to have a system that is helpful [in order] to manage where the workloads are being distributed out to. And when the container inevitably dies or something like that, to restart it, you have a load balancer. All sorts of housekeeping work is needed to have a robust infrastructure.” -->
Wink 的后端工程团队决定使用 Docker 化的工作负载后就不得不就操作系统和容器编排平台做出决定。Klein 笑着说:“很明显,你不能只是启动容器,希望一切顺利。”“你需要有一个有用的系统,以便管理工作负载的分发位置。当容器不可避免地死亡或类似的东西,重新启动它,你得有一个负载平衡器。要拥有强大的基础设施,需要进行各种内部事务管理工作。”
</div>
</section>
<div class="banner4">
<div class="banner4text">
<!-- "Obviously you cant just start the containers and hope everything goes well,” Klein says with a laugh. "You need to have a system that is helpful [in order] to manage where the workloads are being distributed out to. And when the container inevitably dies or something like that, to restart it, you have a load balancer. All sorts of housekeeping work is needed to have a robust infrastructure.” -->
Klein 笑着说:“很明显,你不能只是启动容器,希望一切顺利。”“你需要有一个有用的系统,以便管理工作负载的分发位置。当容器不可避免地死亡或类似的东西,重新启动它,你得有一个负载平衡器。要拥有强大的基础设施,需要进行各种内部事务管理工作。”
</div>
</div>
<section class="section4">
<div class="fullcol">
<!-- Wink considered building directly on a general purpose Linux distro like Ubuntu (which would have required installing tools to run a containerized workload) and cluster management systems like Mesos (which was targeted toward enterprises with larger teams/workloads), but ultimately set their sights on CoreOS Container Linux. "A container-optimized Linux distribution system was exactly what we needed,” he says. "We didnt have to futz around with trying to take something like a Linux distro and install everything. Its got a built-in container orchestration system, which is Fleet, and an easy-to-use API. Its not as feature-rich as some of the heavier solutions, but we realized that, at that moment, it was exactly what we needed.”<br><br> -->
Wink 考虑直接在通用 Linux 发行版(需要安装工具来运行容器化工作负载)和集群管理系统如 Mesos面向拥有较大团队的企业的基础上构建但最终将目光投向了使用 CoreOS 容器的 Linux。“一个容器优化的Linux分发系统正是我们需要的”他说。“我们不必为了尝试采用 Linux 发行版之类的东西来安装所有内容而四处奔波。它有一个内置的容器编排系统Fleet ,和一个易于使用的 API。它不像一些较重的解决方案那样具有丰富的功能但我们意识到在那一刻这正是我们需要的。”<br><br>
<!-- Winks hub (along with a revamped app) was introduced in July 2014 with a short-term deployment, and within the first month, they had moved the service to the Dockerized CoreOS deployment. Since then, theyve moved almost every other piece of their infrastructure from third-party cloud-to-cloud integrations to their customer service and payment portals onto CoreOS Container Linux clusters. <br><br> -->
Wink 的核心(以及经过改进的应用程序)于 2014 年 7 月推出,并进行了短期部署,并在第一个月内将服务转移到 Docker 化的 CoreOS 上部署。自那时以来,他们几乎将基础设施的其他所有部分(从第三方云到云的集成迁移到其客户服务和支付门户)迁移到使用 CoreOS 容器的 Linux 集群上。<br><br>
<!-- Using this setup did require some customization. "Fleet is really nice as a basic container orchestration system, but it doesnt take care of routing, sharing configurations, secrets, et cetera, among instances of a service,” Klein says. "All of those layers of functionality can be implemented, of course, but if you dont want to spend a lot of time writing unit files manually which of course nobody does you need to create a tool to automate some of that, which we did.”<br><br> -->
使用此设置确实需要一些额外的配置。Klein 说:“ Fleet 作为一个基本的容器编排系统确实很好,但它不负责服务实例之间的路由、配置共享、加密等。当然,所有这些功能层都可以实现,但如果你不想花费大量时间手动编写单元文件(当然没有人这样做),则需要创建一个工具来自动执行其中一些文件,我们做到了。”<br><br>
<!-- Wink quickly embraced the Kubernetes container cluster manager when it was launched in 2015 and integrated with CoreOS core technology, and as promised, it ended up providing the features Wink wanted and had planned to build. "If not for Kubernetes, we likely would have taken the logic and library we implemented for the automation tool that we created, and would have used it in a higher level abstraction and tool that could be used by non-DevOps engineers from the command line to create and manage clusters,” Klein says. "But Kubernetes made that totally unnecessary and is written and maintained by people with a lot more experience in cluster management than us, so all the better.” Now, an estimated 80 percent of Winks workload is run on Kubernetes on top of CoreOS Container Linux. -->
Wink 在 2015 年推出并集成了 CoreOS 核心技术时,很快接受了 Kubernetes 容器集群管理器,正如所承诺的那样,它最终提供了 Wink 想要的功能,并计划构建这些功能。“如果不是 Kubernetes我们很可能采用我们为所创建的自动化工具实现的逻辑和库并将它用于更高级别的抽象和工具这些抽象和工具可供命令行中的非 DevOps 工程师使用,以创建和管理集群,” Klein 说。“但 Kubernetes 完全没有必要这样做,并且由比我们在集群管理方面有经验更丰富的人编写和维护,因此更好。现在,估计 Wink 80% 的工作负载是在使用 CoreOS 容器的 Linux 之上的 Kubernetes 上运行。”
</div>
</section>
<div class="banner5">
<div class="banner5text">
<!-- "Stay close to the development. Understand why decisions are being made. If you understand the intent behind the project, from the technological intent to a certain philosophical intent, then it helps you understand how to build your system in harmony with those systems as opposed to trying to work against it.” -->
“同发展保持同步。了解决策原因。如果你了解项目背后的意图,从技术意图到某种哲学意图,那么它可以帮助你了解如何与这些系统和谐地构建系统,而不是试图与之对抗。”
</div>
</div>
<section class="section5">
<div class="fullcol">
<!-- Winks reasons for going all in are clear: "Its not proprietary, its totally open, its really portable,” Klein says. "You can run all the workloads across different cloud providers. You can easily run a hybrid AWS or even bring in your own data center. Thats the benefit of having everything unified on one Kubernetes-Docker-CoreOS Container Linux stack. There are massive security benefits if you only have one Linux distro to try to validate. The benefits are enormous because you save money, you save time.”<br><br> -->
Wink 的去向理由很明确:“它不是专有的,它是完全开放的,它真的很便携,” Klein 说,“它很可移植。你可以跨不同的云提供商运行所有工作负载。你可以轻松地运行混合 AWS甚至引入你自己的数据中心。这就是在一个使用 Kubernetes-Docker-CoreOS 容器的 Linux 系统上统一所有内容的好处。如果你只有一个 Linux 发行版来尝试验证,则具有巨大的安全优势。好处是巨大的,因为既省钱又省时间。”
<!-- Klein concedes that there are tradeoffs in every technology decision. "Cutting-edge technology is going to be scary for some people,” he says. "In order to take advantage of this, you really have to keep up with the technology. You cant treat it like its a black box. Stay close to the development. Understand why decisions are being made. If you understand the intent behind the project, from the technological intent to a certain philosophical intent, then it helps you understand how to build your system in harmony with those systems as opposed to trying to work against it.”<br><br> -->
Klein 承认,每个技术决策都有权衡。他表示:“对一些人来说,尖端技术将非常可怕。”“为了利用这一优势,你确实必须跟上技术。你不能把它当作一个黑盒子。同发展保持同步。了解决策原因。如果你了解项目背后的意图,从技术意图到某种哲学意图,那么它可以帮助你了解如何与这些系统和谐地构建系统,而不是试图与之对抗。”
<!-- Wink, which was acquired by Flex in 2015, now controls 2.3 million connected devices in households all over the country. Whats next for the company? A new version of the hub - Wink Hub 2 - hit shelves last November and is being offered for the first time at Walmart stores in addition to Home Depot. "Two of the biggest American retailers are carrying and promoting the brand and the hardware,” Klein says proudly though he adds that "it really comes with a lot of pressure. Its not a retail situation where you have a lot of tech enthusiasts. These are everyday people who want something that works and have no tolerance for technical excuses.” And thats further testament to how much faith Klein has in the infrastructure that the Wink team has have built.<br><br> -->
Wink 于 2015 年被 Flex 收购,目前控制着全国 230 万台联网设备。公司下一步怎么办去年11月一款新版的 “Wink Hub 2”上架除 Home Depot 外Walmart 商店还首次上市。Klein 自豪地说:“美国最大的两家零售商都正在使用和推广 Wink 品牌和硬件,”不过他补充道,“这确实带来了很大的压力。这不是普通的零售商客户像技术狂热者一样追求前沿技术。这些人每天都在想要一些行之有效的东西,并且不会容忍技术方面的借口。这进一步证明了 Klein 对 Wink 团队所构建的基础设施有多大的信心。”
<!-- Winks engineering team has grown exponentially since its early days, and behind the scenes, Klein is most excited about the machine learning Wink is using. "We built [a system of] containerized small sections of the data pipeline that feed each other and can have multiple outputs,” he says. "Its like data pipelines as microservices.” Again, Klein points to having a unified stack running on CoreOS Container Linux and Kubernetes as the primary driver for the innovations to come. "Youre not reinventing the wheel every time,” he says. "You can just get down to work.” -->
Wink 的工程团队从早期起就呈指数级增长在幕后Klein 对 Wink 使用的机器学习感到非常兴奋。“我们构建了一个数据管道的容器化小段系统这些部分对整个团队都是有益的并且可以有多个输出”他说。“这就像数据管道作为微服务。”同样Klein 指出,在使用 CoreOS 容器的 Linux 和 Kubernetes 上运行统一的系统是未来的创新的主要驱动力。“你不是每次都在重新发明轮子,”他说。“你可以专注于业务进行开发。”
</div>
</section>