公司VSCO 位置奥克兰 行业照片手机应用程序

挑战

后从RackspaceAWS在2015年,VSCO开始建造node . jsmicroservices除了运行它PHP庞然大物。团队集装箱microservices使用码头工人,但“他们都在不同的组EC2专用的每个服务实例,“梅林达鲁说,工程经理机器学习团队。Naveen Gattu补充道,高级软件工程师对社区团队:“这产生了大量的资源浪费。我们开始寻找一种巩固和更有效率的AWS EC2实例。”

解决方案

团队开始探索一个调度系统的想法,看着几个解决方案包括便和群,然后再决定Kubernetes。VSCO也使用gRPC特使在他们的原生云栈。

影响

之前,部署需要“大量的手动调整,内部我们写脚本,因为我们不同的EC2实例,操作必须照顾整个事情从开始到结束,”高级软件工程师丹瑞恩说。“我们没有一个故事在有条不紊的测试,并使用可重复使用的容器或构建标准化的方式。”现在是一个更快的新员工培训的过程。之前,首先部署的时间是两天的实践时间设置;现在是两个小时。以持续集成、集装箱化和Kubernetes,速度是急剧增加。从编码完成的时间部署在生产实际基础从一到两周为一个典型的服务两到四个小时。Gattu补充说:“在人小时,这是一个人与一个开发者和个人同时DevOps。”With an 80% decrease in time for a single deployment to happen in production, the number of deployments has increased as well, from 1200/year to 3200/year. There have been real dollar savings too: With Kubernetes, VSCO is running at 2x to 20x greater EC2 efficiency, depending on the service, adding up to about 70% overall savings on the company's EC2 bill. Ryan points to the company's ability to go from managing one large monolithic application to 50+ microservices with "the same size developer team, more or less. And we've only been able to do that because we have increased trust in our tooling and a lot more flexibility, so we don't need to employ a DevOps engineer to tune every service." With Kubernetes, gRPC, and Envoy in place, VSCO has seen an 88% reduction in total minutes of outage time, mainly due to the elimination of JSON-schema errors and service-specific infrastructure provisioning errors, and an increased speed in fixing outages.

摄影应用移动,VSCO出生于2011年的云。一开始,“我们使用Rackspace和有一个PHP庞然大物应用程序与MySQL数据库,与FTP部署,没有集装箱化,没有编制,“软件工程师丹瑞恩说,“这是足够的。”

VSCO搬到AWS 2015年及其后用户超过了3000万,团队很快意识到设置不工作了。开发人员已经开始建立一些节点和microservices,码头工人的团队尝试代理。但“他们都在不同的组织专门的EC2实例/服务,”梅林达鲁说,机器学习的工程经理团队。Naveen Gattu补充道,高级软件工程师对社区团队:“这产生了大量的资源浪费。我们开始寻找一种巩固和更有效率的EC2实例。”

一个清单,包括易用性和实现,支持水平,是否它是开源的,团队评估几个调度解决方案,包括便和群,最后决定用Kubernetes。“Kubernetes似乎最强大的开源社区,”陆说。另外,“我们已经开始规范很多谷歌堆栈上,与作为一种语言,和gRPC几乎所有我们自己的服务之间的通信在数据中心。所以对我们来说似乎很自然选择Kubernetes。”

当时,几乎没有管理Kubernetes产品和工具中可用的生态系统,因此,团队站起来自己的集群和建造一些自定义组件的特定的部署需求,如自动进入控制器和政策为金丝雀部署结构。“我们已经开始破裂的庞然大物,我们感动的事情一个接一个,从很小开始,低风险服务,”陆说。“每一个新服务部署。”The first service was migrated at the end of 2016, and after one year, 80% of the entire stack was on Kubernetes, including the rest of the monolith.

影响是巨大的。部署用于需要“大量的手动调整,内部我们写脚本,因为我们不同的EC2实例,操作必须照顾整个事情从开始到结束,”瑞安说。“我们没有一个故事在有条不紊的测试,并使用可重复使用的容器或构建标准化的方式。”There's a faster onboarding process now. Before, the time to first deploy was two days' hands-on setup time; now it's two hours.

以持续集成、集装箱化和Kubernetes,速度是急剧增加。从编码完成的时间部署在生产实际基础从一到两周为一个典型的服务两到四个小时。另外,Gattu说,“在人小时,这是一个人与一个开发者和个人同时DevOps。”With an 80% decrease in time for a single deployment to happen in production, the number of deployments has increased as well, from 1200/year to 3200/year.

有真正的美元储蓄:与Kubernetes VSCO运行2 x - 20 x EC2效率更高,这取决于服务,加起来大约70%总节省公司的EC2法案。

Ryan指出公司从管理一个大的整体的能力应用到50 + microservices”同样大小的开发者团队,或多或少。我们只能这样做,因为我们增加了信任在我们的工具和更多的灵活性,当有压力点在我们的系统。你可以增加CPU内存需求的服务,而无需打开和拆除实例,并通过AWS阅读页面要熟悉很多术语,这并不是真的站得住脚的公司在我们的规模。”

特使和VSCO gRPC也有积极的影响。“我们从gRPC得到很多好处的:在多种语言类型安全,易于与gRPC IDL定义服务,内置的建筑像拦截器,在HTTP / 1.1和JSON和性能改进,”陆说。

VSCO特使是第一批用户,让它在生产五天后是开源。“我们想为gRPC和HTTP / 2直接移动客户通过我们的负载平衡器,和特使是我们唯一合理的解决方案,”陆说。发送一致的“能力和详细数据默认情况下所有服务的可观察性和标准化仪表盘更容易。”The metrics that come built in with Envoy have also "greatly helped with debugging," says DevOps Engineer Ryan Nguyen.

Kubernetes、gRPC和特使,VSCO见证了一个总分钟的停机时间减少88%,主要是由于消除JSON-schema错误和特定于服务的基础设施配置错误,在修复中断和增加速度。

鉴于其成功使用CNCF项目,与他人VSCO开始实验,包括CNI经过和普罗米修斯。”有一个大的组织支持这些技术,我们更有信心在这个软件生产和部署,“阮说。

团队做出了贡献gRPC特使,并希望在CNCF社区更加活跃。“我一直印象深刻观察我们的工程师们想出创造性的解决方案就可以结合很多事情Kubernetes原语,”陆说。“露Kubernetes结构作为服务,我们的工程师而不是暴露高阶构造为我们工作得很好。它让你熟悉的技术和做更多有趣的事情。”

Baidu