架构设计

什么是服务网格?

1 什么是服务网格? 服务网格是分布式软件系统内部用于管理所有“服务到服务”通信的一个系统。 聊服务网格为什么会出现之前,可以聊聊服务架构的演进过程。起初,我们使用一个单体应用来提供服务。 比如我们在做一个电商系统,采用典型的MVC三层架构,在单体架构中,组成这个系统的购物车功能,库存查询功能,订单功能等都是这个服务内部的一个函数或接口。所以这些操作都是进程内的函数调用,不涉及诸如RPC等服务与服务的跨进程通信。但随着时间的增加,我们发现单体架构越来越不能满足我们的需求,比如用户访问暴增,业务逻辑愈加复杂,一个单体的服务已不能满足功能及性能的要求。我们需要将其按业务领域拆分为几个独立的服务来对外提供服务,这就是微服务架构。比如原来的购物车功能,库存查询功能,订单功能被拆分为独立的服务。这时接收到一个购物请求,我们需要分别查询不同的微服务来进行业务处理,这就涉及跨进程通信。

阅读更多

威胁建模

威胁建模是一个识别潜在威胁的过程。通过威胁建模以期找出攻击者的画像及其最可能的攻击路线,以及最易遭受攻击的资产。所以威胁建模做的即是找到最易攻击的地方并制定出应对方案。 概念上讲,威胁建模就在我们的日常生活中,只是我们未察觉而已。上班早高峰规避危险的操作及地方等以防可能出现的事故。在操场玩耍的孩子们找出最佳路径直奔目的地以规避校霸围追堵截。在更正式的场景,威胁建模从远古起即已用于军事防卫等备战规划上了。 威胁建模的演进 主要有如下几个。 1999,微软提出STRIDE模型识别攻击。

阅读更多

构建SaaS应用的十二因子指导原则

现代软件通常以Web服务的方式交付,称为软件即服务(SaaS),十二因子指导原则即是构建SaaS应用的一套方法论。其不仅是构建SaaS应用的指导原则,也是微服务,云原生应用开发须遵循的指导原则。 十二因子指导原则或者最佳实践以期达到: 使用统一的规范,可以使新进开发人员节省时间成本,按照最佳实践走即可; 应用应与底层操作系统解耦,以在各种运行环境之间提供最大的可移植性; 应用应适于部署在现代化云平台上,摒弃对服务器和系统管理的依赖;

阅读更多

OpenID Connect 1.0 协议要点梳理

OpenID Connect 1.0协议是基于OAuth 2.0授权框架之上的一个身份鉴别层。其使得客户端可以基于授权服务的鉴权能力来验证及识别终端用户的身份。此外,还可以一种类REST的方式来获取终端用户的基本画像信息。 OpenID Connect 1.

阅读更多

OAuth 2.0 授权框架梳理

OAuth 2.0是一个委托访问授权框架。 即,若有三方应用想访问我在某网站的一些资源,我不必将用户名密码给它,而是采用OAuth 2.0授权流程,让资源网站通过我的授权给其下发一个访问令牌来实现该功能。 这样即省去了直接将密码交给三方网站的诸多风险,还可以很好的实现资源限制,令牌过期等细粒度控制。

阅读更多