联系我们
- 全国服务热线:
National Service
Hotline:
062-19545700
- 手机:17907006687
- 电话:062-19545700
- 邮箱:admin@haifang123.com
- 地址:北京市北京市北京区来升大楼372号
威斯尼斯wns888入口_ 杀死微服务
只管这是一种常见的REST做法但在Django REST框架中并不是一个很好的选择。
只管这是一种常见的REST做法但在Django REST框架中并不是一个很好的选择。在不更改接口的情况下将这些端点从Express迁移到Django包罗大量改写了Django REST框架行为以匹配我们在Express中实现的行为。我们没有修改HTTP状态代码的错误而是对其举行了修改以便可以使用相同的响应键返回200个状态代码。
虽然令人沮丧但并非世界末日。这种差异会带来一些问题如果我们认为有须要我们会将其作为我们一连的“Kitchen”(读作技术债务)的一部门举行修复。
我们想通过尽可能少的改动来“杀死”客户乐成后端这意味着需要模拟微服务的行为在单体应用中逐一实现API接口并逐步切换路由。
这样更改只会影响API而不会影响前端因此制止了恐怖的同步部署或API版本控制。
我们颠覆了驱动我们迁移到微服务的最初规范。
"code": 404,
我们遇到的最令人沮丧的问题实际上是我们自己引入的一个问题:构建“客户乐成”后端时我们选择了无论REST挪用效果如何始终以200响应的计谋并带有一个布尔值和statusCode响应键用于展示更富厚的错误信息:
首先我需要普及一些我们公司和技术栈的历史。
Botify建立于2012年基于Python/Django技术栈构建。在2016年头整个Botify平台都通过我们的Django应用的负载平衡集群提供服务。其时我们拥有一支约莫15人的产物和工程团队。
为什么选择微服务?
有两个主要目的促使我们评估在技术栈中使用微服务的可能性:
提高开发上线的速度:我们希望淘汰前端和后端之间的依赖并增加团队对自身项目和技术栈的“所有权”以在一个小型团队中提高生产力。统一技术栈:我们在巴黎聘用Python/Django工程师时遇到了越来越多的难题。我们认为在前端和后端统一使用Java会使招聘越发容易因为我们将全面拥抱“全栈”的Java。
仰望星空实事求是
我们认为是时候去认真地(重新)思量我们的微服务架构和我们的“客户乐成”的后端了。
痛点
组织
从好的方面来说我们的微服务界说了一个(更)智慧的跨源资源共享计谋该计谋必须在我们的单体应用上重新实现。纵然一开始就很贫苦但我们认为它能够更好地掩护应用法式免受恶意攻击。
隔离性
我们花费了大量的时间和人力学习了如何稳健地构建和部署Django应用法式可是我们之后必须为每个新的技术栈重新学习一遍。在微服务情况中独立部署是焦点优势与微服务相比我们仍然对部署单体应用越发自信。我们花了更多的时间来为我们的微服务构建一套可靠流通的自动化部署系统。
}
工具
大家可能注意到在上面的服务架构中“客户乐成”的微服务并不是完全隔离的。
后端服务之间存在从单体应用到微服务的通信反之亦然。这并不算很糟糕甚至可以说相当普遍。但我们仍然认为这会故障性能并会导致将服务之间的耦合。
从久远来看这还意味着需要更庞大的机制来确保正常运行和服务的可用性例如断路器和正常的服务降级。
开始微服务之旅
],
去而复返:回到单体应用的未来
我们的团队组织也不停在生长现在分为团队独立实体由前端和后端工程师产物司理和测试工程师来处置惩罚产物功效和技术挑战。从已往的履历中学到履历和教训每个团队都以近乎独立的方式设计和实现其功效可是代码库是共享的跨团队的Botify的所有工程师都能够举行代码审查。
这使我们能够分享技术栈的所有权共享各个团队的知识储蓄、实践履历同时对其举行的不停的更新维护也能使所有人受益。作为一个团队我们希望借此配合到达卓越的技术水平。
逐日在Java身份验证服务和Django单体应用之间重复往返切换、做着枯燥乏味的事情我们终于和工程师们围坐在桌子旁开始权衡我们架构的利弊以及迁移的潜在成本。
我们斗胆地选择将身份验证后端服务嵌入到Django应用中这意味着我们将把Node服务迁移到Django就如同我们在2016年把API从Django迁移到Node一样。以下是为什么我们。
本文关键词:威斯尼斯wns888入口app,威斯尼斯wns888入口,威斯尼斯wns888入口下载
本文来源:威斯尼斯wns888入口app-www.haifang123.com