1.3 MOSN 在云原生的探索及实践技术调研,到产品孵化,历经重重困难,最终通过双 11 规模化验证。借力开源、反哺开 源,进行 Cloud Native 生态融合,在实践的道路上一步步的走向云原生。 2018年3月 MOSN 诞生 支持 Service Mesh 核心支付链路覆 盖 MOSN 宣布独立运营 CNCF landscape V0.13.0 发布, 进行云原生组 件生态融合 Istio 官方推荐 数据面 MOSN Xprotocol 框架 • 支持 WASM • 区块链网络框架 • 代码热更新 • 高性能网络层扩展 • fastGRPC • 协程收敛 epoll 模型 • CGO 性能优化 • 支持 zipkin,Jaeger 等 • 支持 ZK,Nacos 等 • 支持 Dubbo 3.0 • 支持 thrift, kafka 等 协议 • 支持 Istio 1.10 • 支持 Ingress Lua 编写简单业务处理方便 Lua 脚本语言,开发复杂功能不 方便;支持的库(SDK)相对较 少 WASM Extension 跨语言语言支持 (C/C++/Rust)、隔离性、安 全性、敏捷性 处于试验阶段,性能损耗较大; WASM 目前仅对C/C++/Rust 友好,对 GoLang Runtime 还未 完全支持; 不能复用已有的 SDK,需要做网 络 IO 适配改造 External-Proc0 码力 | 36 页 | 35.61 MB | 1 年前3
01. MOSN 高性能网络扩展实践 - 王发康开发复杂功能不方便 支持的库(SDK)相对较少 WASM Extension 跨语言语言支持(C/C++/Rust)、 隔离性、安全性、敏捷性 处于试验阶段,性能损耗较大; WASM 目前仅对C/C++/Rust 友好, 对 GoLang Runtime 还未完全支持; 不能复用已有的 SDK,需要做网络 IO 适配改造 External-Proc Extension 跨语言支持、隔离性 需要跨进程通信性能低(UDS gRPC server 能力, 多进程管理复杂 MOSN(GoLang) Extension 可复用 MOSN 现有的 filter 能力, 改造成本低; 研发效率高,灵活性高; GoLang 支持的库比较多(Consul、 Redis、Kafka etc),生态较好 引入 GoLang 扩展后,有一定性能损 耗,业务场景可接受,另外有优化 空间 扩展方案调研 MoE 背景介绍 — 方案分析 trailers, optionFlags} …… 同时,我们也会将其剥离出来形成一套 标准的扩展: proxy_golang,类似 proxy_wasm ,方便 Nginx、OpenResty 等也能够支持 GoLang 扩展。 MoE 方案介绍 — 功能职责 Envoy MOSN MoE Data Plane HTTP(L7) HTTP Filter GoLang L7 extension0 码力 | 29 页 | 2.80 MB | 1 年前3
云原生安全威胁分析与能力建设白皮书(来源:中国联通研究院)DevOps、持续交付、微服务和容器技术为代表,符合云 原生架构的应用程序应该:采用开源堆栈(k8s+Docker)进行容器化,基于微 服务架构提高灵活性和可维护性,借助敏捷方法、DevOps 支持持续迭代和运维 自动化,利用云平台设施实现弹性伸缩、动态调度、优化资源利用率。 云原生安全威胁分析与能力建设白皮书 12 1.1.2 云原生安全 云原生安全作为云原生的伴生技术,旨在解决云原生技术面临的安全问题, Daemon 是 Docker 架构中一个常驻后台的 Docker 守护进程,用 于监听 REST API 请求并相应地执行容器操作,只有信任的用户才能向 Docker Daemon 发起请求。默认情况下,对于 Docker Daemon 的访问请求未经加密 和身份验证,攻击者可能通过伪造请求的方式,来达到欺骗 Docker Daemon 端执行危险的操作。 云原生安全威胁分析与能力建设白皮书 务。 计算型 DoS 攻击:Fork Bomb 是一类典型的针对计算资源的拒绝服务攻击 手段,其可通过递归方式无限循环调用 fork()系统函数,从而快速创建大量进程。 由于宿主机操作系统内核支持的进程总数有限,如果某个容器遭到了 Fork Bomb 攻击,那么就有可能存在由于短时间内在该容器内创建过多进程而耗尽宿 主机进程资源的情况,宿主机及其他容器就无法再创建新的进程。 存储型 DoS0 码力 | 72 页 | 2.44 MB | 1 年前3
36-云原生监控体系建设-秦晓辉如30s或60s • 所有的拉取请求都走 apiserver,如果是几千个node的大集群,对 apiserver 可能会有较大压力 Kubernetes Node - 容器负载监控 抓取方案 { 抓取方案二 } • 直接调用 kubelet 的接口 /metrics/cadvisor ,不走 apiserver 这个 proxy,避免对 apiserver 的请求压力 • 采用 Daemonset 的存活性,应该和 node 节点的数量相等 • rest_client_request_duration_seconds 针对 apiserver 的请求延迟的指标 • rest_client_requests_total 针对 apiserver 的请求量的指标 • kubeproxy_sync_proxy_rules_duration_seconds 同步网络规则的延迟指标 以及通用的进程相关的指标,进程的 k8s/deployment.yaml,大盘可以参考 k8s/apiserver- dash.json • apiserver_request_total 请求量的指标,可以统计每秒请求数、成功率 • apiserver_request_duration_seconds 请求延迟统计 • process_cpu_seconds_total 进程使用的CPU时间 • process_resident_memory_bytes0 码力 | 32 页 | 3.27 MB | 6 月前3
12-从数据库中间件到云原生——Apache ShardingSphere 架构演进-秦金卫计算机领域的任何问题都可以通过增加一个中间层来解决。 数据库框架技术:在业务侧增强数据 库的能力。 直接在业务代码使用。 支持常见的数据库和JDBC。 轻量级,不需要额外的资源和机器。 1.数据库框架 1、改造对业务系统具有较大侵入性; 2、对于复杂的SQL,可能不支持; 3、对于跨库和跨分片的数据,需要额外机制保障一致性; 4、缺乏较好的数据平滑迁移和过渡方案; 5、Java Only(或其他)。 对业务系统侵入性小。 透明化的引入中间件,像一个数据库一样提供服务能力。 2.数据库中间件 1、框架本身的一些问题; 2、需要单独的资源部署,以及维护; 3、接入端需要实现数据库协议,对非开源数据库无法支持。 数据库中间件使用的约束: 3.分布式数据库 3.分布式数据库 类库/框架 数据库中间件 分布式数据库 数据网格 TDDL Sharding-JDBC DRDS Sharding-Proxy GaussDB PolarDB OceanBase TiDB Cockroach DB …… 3.分布式数据库 1.水平扩展性 2.计算存储分离 3.分布式事务 4.多副本机制 5.SQL接入支持 6.云原生支持 容量 性能 一致性 可高用 易用性 伸缩性 代替单机数据库(注意,主要解决容量问题)。 3.分布式数据库 1、需要较多的机器资源; 2、对于替换数据库技术的公司,代价较大,放弃多年积累;0 码力 | 23 页 | 1.91 MB | 6 月前3
22-云原生的缘起、云原生底座、PaaS 以及 Service Mesh 等之道-高磊台,去应对上述问题。 微服务应 用 大型 单体 应用 VM/服务器 VM/服务 器 VM/服务 器 VM/服务 器 目 标 支持微服务级别的细粒度资源隔离 支持快速扩缩容 支持热升级,服务更新不影响业务可用性 支持服务的快速地部署、扩展、故障转移 支持更细致、自动化的运维,快速恢复 …… 过去 现在 未来 云原生的业务承载平台? 什么是云原生->为云而生 9 9 6 年 戴 尔 提 出 云 计 算 理 念 2006年亚马逊率先推出 了弹性计算云(EC2) 分水岭 云原生 Docker: 抽象云资源,使 得更容易使用 微服务: 加快业务迭代更新 从支持应用不同维度发展,最终走在了一起 2010年WSO2提出 类云原生的概念 云原生应用相比传统应用的优势 低成本 高敏捷 高弹性 云原生应用 传统应用 部署可预测性 可预测性 不可预测 抽象性 操作系统抽象 分布式应用服务EDAS、微服务引擎MSE、应用监控服 务ARMS等数十款云原生产品全面支撑双11。技术侧,云原生四大核心技术实现规模和创新的双重突破,成为从技术能力向业务 价值成果转变的样本: • 支持全球最大容器集群、全球最大Mesh(ASM)集群,神龙架构和ACK容器的组合,可以实现1小时扩容1百万个容器,混部利用 率提升50%,万笔交易成本4年下降80%。 • 拥有国内最大计算平台、顶级实时0 码力 | 42 页 | 11.17 MB | 6 月前3
构建统一的云原生应用 可观测性数据平台,NFVGW? ⑥ 看云网更清晰 Simplify the growing complexity. 我们需要哪些Tag?OpenTelemetry的答案 服务属性 代码属性 实例属性 请求属性 业务属性 看云网更清晰 Simplify the growing complexity. 混合云环境下的资源属性还有哪些 HOST KVM KVM VM L2GW、OvS iptables、ipvs gyang …… 看云网更清晰 Simplify the growing complexity. Stage-3:查询时的编、解码 • Querier编码自定义标签的Filter和Group查询请求 • Filter:利用CK字典依据系统标签过滤 • Group:利用CK字典依据系统标签翻译 • Querier将系统标签解码为可读字符串 • 使用CK字典解码Int化的系统标签 SELECT 直接存索引 16B 1 1 1 使用LowCard(String) Tag 索引和标签分离 16B 10 1 1.5 (Card.=5000) 5 (Card.=10000) 使用String Tag 支持存标签 16B 5 1.5 7.5 (Card.=5000) 25 (Card.=10000) int LowCard 看云网更清晰 Simplify the growing complexity0 码力 | 35 页 | 6.75 MB | 1 年前3
consul 命令行consul命令行 ● advertise:广告地址用于将我们通告的地址更改为群集中的其他节点。默认情况下,-bind通告地 。但是,在某些情况下,可能存在无法绑定的可路由地址。此标志允许闲聊不同的地址以支持此功能 如果此地址不可路由,则该节点将处于恒定的振荡状态,因为其他节点将不可路由性视为故障。在Co sul 1.0及更高版本中,可以将其设置为 go-sockaddr 模板。 ● -adverti data-dir:此标志为代理程序存储状态提供数据目录。这是所有代理商都需要的。该目录在重新启 后应该是持久的。这对于在服务器模式下运行的代理尤其重要,因为它们必须能够持久化群集状态。 外,该目录必须支持使用文件系统锁定,这意味着某些类型的已安装文件夹(例如VirtualBox共享文 夹)可能不适合。注意:服务器代理和非服务器代理都可以在此目录中的状态中存储ACL令牌,因此 访问可以授予对服务器上的 户执行。在Windows上,您应确保该目录具有适当的权限,因为这些权限将被继承。 ● datacenter:此标志控制代理程序运行的数据中心。如果未提供,则默认为“dc1”。Consul拥有 多个数据中心的一流支持,但它依赖于正确的配置。同一数据中心中的节点应位于单个LAN上。 ● dev:启用开发服务器模式。这对于快速启动Consul代理并关闭所有持久性选项非常有用,可以启 内存服务器,该服务器可用于快速0 码力 | 5 页 | 346.62 KB | 1 年前3
24-云原生中间件之道-高磊大优化整体效率和成本 可以无视环境随时可以进行,覆盖漏洞类型全面, 可以精确定位到代码段 路径爆炸问题,并一定与实际相符合,误报率较 高。 DAST(动态安全应用 程序安全测试) 黑盒测试,通过模拟业务流量发起请求,进行模糊测试,比如故障注入 或者混沌测试 语言无关性,很高的精确度。 难以覆盖复杂的交互场景,测试过程对业务造成 较大的干扰,会产生大量的报错和脏数据,所以 建议在业务低峰时进行。 IAST(交互式应用程序 数据源 数据日志 消息数据 订单数据 云原生 DB 高并发写入 用户 MR 云DB 用户 日志消息类数据实时分析 支持企业低成本、大容量存储和查询各类日志、消息、交易、用户行为、画像等 结构化/半结构化数据,支持高吞吐量实时入库及数据实时查询,实现数据资源 智慧化运营。 优势 低成本存储: 支持PB级数据存储 高并发: 千亿数据实时分析 数据源 设备监控 传感器 轨迹数据 车联网 业务集群 物联网套件写入 B C 多模云原生数据 库 用于云原生DB的 JDBC 极少量 改动 修改驱 动包 数据迁 移 • 由于云原生数据库支持多模,所以通过 ETL或者DTC等工具迁移数据是非常方便的 • 应用程序只需要修改JDBC的依赖即可以在 新环境中运行,迁移成本低。 • 或者由于云原生数据库支持多协议能力, 比如原生APP使用MYSQL协议访问传统数 据库,可以不加修改的,还是使用老的 MYSQL协议驱动,依然可以和云原生数据0 码力 | 22 页 | 4.39 MB | 6 月前3
(四)基于Istio on Kubernetes 云原生应用的最佳实践 - Alibaba Cloud K8S Playground当前v1和v2的流量量分别为50%. 然后,通过以下命令v2接管所有流量量: 1 kubectl apply -f virtualservice-v2.yaml 完成灰度发布,切换到v2。 请求路路由 接下来会把特定⽤用户(登录名称以yunqi开头的)的请求发送给 v3 版本,其他⽤用户则不不受影响。 运⾏行行以下命令部署v2: 1 kubectl apply -f addedvalues-v3.yaml 部署DestionationRule:0 码力 | 6 页 | 1.33 MB | 1 年前3
共 21 条
- 1
- 2
- 3













