16-Nocalhost重新定义云原生开发环境-王炜
Nocalhost - 重新定义云原⽣开发环境.md 2021/1/20 1 / 7 Nocalhost - 重新定义云原⽣开发环境 前⾔ 随着业务的快速发展,技术部⻔的组织架构在横向及纵向不断扩⼤和调整,与此同时,企业的⽣产资料:应 ⽤系统,也变得越来越庞⼤。为了让应⽤系统适配企业组织架构的调整,梳理组织架构对于应⽤权责的边 界,⼤部分组织会选择使⽤“微服务”架构来对应⽤系统进⾏横向拆分,使得应⽤系统的维护边界适配组织架 “微服务”带来便利的同时,对开发⼈员⽽⾔,还带来了额外的挑战:如何快速启动完整的开发环境?开发的 需求依赖于其他同事怎么联调?如何快速调试这些微服务? ⽽对于管理⼈员来说,也同样带来了⼀系列的挑战:如何管理开发⼈员的开发环境?如何让新⼊职的同事快 速进⾏开发? 试想⼀下,要开发由 200 个“微服务”组成的云原⽣应⽤,会遇到哪些困难呢? Localhost 时代 在单体应⽤的时代,对于开发者来说是极为友好的 ,�开发者使⽤本机运⾏应⽤,修改代码后实时⽣效,通过 浏览器访问 Localhost 实时查看代码效果。 单体应⽤和“微服务”应⽤不同,单体应⽤是 “ALL-IN-ONE” 组织⽅式,所有的调⽤关系仅限于在⾃身的类和函 数,应⽤对硬件的要求⼀般也不会太⾼。 ⽽开发“微服务”应⽤则⼤不相同,由于相互间的依赖关系,当需要开发某⼀个功能或微服务时,不得不将所 有依赖的服务都启动起来。随着微服务数量的增0 码力 | 7 页 | 7.20 MB | 5 月前3探讨和实践基于Istio的微服务治理事件监控
9年的工作经验和5年的云计算领域工作经验,带领团 队完成公司第一代基于Kubernetes的云平台开发和第 二代基于Kubernetes的DevOps云平台开发。目前致力 于公司基于Istio的微服务平台打造。 来自于浙江大学SEL实验室目录 CONTENTS 微服务平台的监控演进 Mixer组件的功能介绍 基于Mixer的开发流程和实例微服务平台的监控演进典型的运维场景 传统的监控面临容器化和微服务化的困境 • Quota:访问次数 • Report: 日志。Mixer的二次开发流程Mixer插件工作模型 上述的过程中,Envoy所做的数据收集、上传是自动完成的,而Mixer生成模版实例则 可以通过配置来完成。因此,所谓的Mixer插件实际上就是Adapter,开发Mixer插件 也就是开发Adapter。两种开发模式 几种开发模式,以及写一下两种方式的区别 Compiled In Adapter Mixer通过通过rpc调用,将属性与日志发送给Adapter。基于Mixer的二次开发的流程 • 编写grpc服务端程序,接收来自mixer的数据,并实现自身业务逻辑 • 编写handler、instance、rule配置文件 • 编译打包adapter,上传至docker仓库 • 编写k8s的deployment和service配置文件 • 部署应用基于Mixer的二次开发Hanlder Handlers 。为适配器提供配置。例如,到后端的0 码力 | 29 页 | 8.37 MB | 5 月前3CurveFS方案设计
可行性分析 方案对比 对比结论 架构设计 卷和文件系统 元数据架构 文件系统快照 方案一:文件/目录级别快照 方案二:文件系统快照 关键点 元数据设计 数据结构 索引设计 文件空间管理 开发计划及安排 背景 为更好的支持云原生的场景,Curve需要支持高性能通用文件系统,其中高性能主要是适配云原生数据库的场景。当前Curve是实现了块存储,向上提供块设备服务,CurveFS会基于此实现。第一阶段的目标是实现 netease.com/team/km_curve/article/27909 性能对比 并对以上文件系统在相同环境进行了元数据节点性能测试: 。测试结果c开发的moosefs和fastcfs元数据性能远优于go开发的chubaofs和c开发的cephfs,理论上分析这个结果是合理的,分布式的元数据设 调研测试 计会涉及到多次rpc的交互。这里需要确认的一点是:我们需要怎样的元数据节点的性能? namespace 方式,namespace 已经实现了 fs 元数据管理的雏形,具备了基本的元数据管理功能。(当时为什么要设计为 namespace 的管理形式?留有租户这个概念),直接基于 namespace 开发: a. 功能 软/硬链接:目前是都不支持的。软链接可以通过标识文件类型解决;由于 prefix + parentid + filename 作为 key , filename 直接和 fileInfo0 码力 | 14 页 | 619.32 KB | 5 月前3人工智能安全治理框架 1.0
………………………… 7 4.2 针对人工智能应用安全风险 ………………………… 9 5. 综合治理措施 ……………………………………………… 10 6. 人工智能安全开发应用指引 ……………………………… 12 6.1 模型算法研发者安全开发指引 ……………………… 12 6.2 人工智能服务提供者安全指引 ……………………… 13 6.3 重点领域使用者安全应用指引 ……………………… 14 6 应用场景,提出通过安全软件开发、数据质量提升、安全建设运维、测评监测 加固等技术手段提升人工智能产品及应用的安全性、公平性、可靠性、鲁棒性- 3 - 人工智能安全治理框架 的措施。 2.3 综合治理措施方面。明确技术研发机构、服务提供者、用户、政府 部门、行业协会、社会组织等各方发现、防范、应对人工智能安全风险的措施 手段,推动各方协同共治。 2.4 安全开发应用指引方面。明确模型算法研发者、服务提供者、重点 安全开发应用指引方面。明确模型算法研发者、服务提供者、重点 领域用户和社会公众用户,开发应用人工智能技术的若干安全指导规范。 3. 人工智能安全风险分类 人工智能系统设计、研发、训练、测试、部署、使用、维护等生命周期 各环节都面临安全风险,既面临自身技术缺陷、不足带来的风险,也面临不当 使用、滥用甚至恶意利用带来的安全风险。 3.1 人工智能内生安全风险 3.1.1 模型算法安全风险 (a)可解释性差的风险。以深度学习为代表的人工智能算法内部运行逻0 码力 | 20 页 | 3.79 MB | 28 天前3Curve质量监控与运维 - 网易数帆
软件生命周期内更好地为用户服务: 质量——向用户交付稳定可靠的软件; 监控——直观地展示Curve运行状态; 运维——保障Curve始终稳定高效运行。 质量 ✓ 质量管理体系(设计、开发、review、CI) ✓ 测试方法论(单元测试、集成测试、系统测试) 监控 ✓ 监控架构 ✓ 指标采集、后端处理、可视化展示 运维 ✓ 运维特性 (易部署、易升级、自治) ✓ 运维工具(部署工具、管理工具) 为了确保最终交付的软件满足需求,必须将质量控制贯穿于设计、开发到测试的整个流程中。 设计 设计流程 文档规范 开发 编码规范与提交流程 版本管理 测试 测试方法论 CI与异常测试 6/33设计流程 Curve团队采用敏捷开发模式,负责人在制定迭代计划时,确认哪些任务需要设计 文档: 小需求(改动小)将实现思路记录到任务管理系统中(JIRA),即可进行开发; 大需求(新模块 大需求(新模块、复杂功能)需要输出独立设计文档,并进行评审;对于功能或 性能影响较大的功能,还需要进行POC验证;评审和验证通过后才能启动开发 工作。 小需求 实现思路 开发 大需求 设计文档 POC 开发 7/33设计文档规范 设计文档需要具备以下内容: 修订记录 审批记录 系统介绍 相关调研 架构 重要流程 关键算法 接口 数据库设计 非功能特性设计0 码力 | 33 页 | 2.64 MB | 5 月前3SOFAMesh的通用协议扩展
框架的注册中心 • 开发 ZK Platform Adapter for DUBBO • 开发 DUBBO 服务的 XDS 配置下发 • 开发 DUBBO 服务的路由规则 XDS 适配 • 开发 DUBBO 协议支持SOFA MESH 的统一解决方案 • 采用 Kubernetes Native 方式落地微服务应用 • 使用 INTERFACE 作为 DNS 来寻址服务 • 开发一个通用协议处理框架 为微服务框架提供轻量化客户端落地一个微服务框架需要的工作 • 部署 ZK 集群作为 RPC 框架的注册中心 • 开发 ZK Platform Adapter for DUBBO • 开发 DUBBO 服务的 XDS 配置下发 • 开发 DUBBO 服务的路由规则 XDS 适配 • 开发 DUBBO 协议支持(开箱即用模式下也可以省掉)DNS 寻址目标 • 允许应用把接口当做域名来访问远端服务 •0 码力 | 28 页 | 4.73 MB | 5 月前3Rust 程序设计语言 简体中文版 1.85.0
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255 12.4. 采用测试驱动开发完善库的功能 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 552 22.4. D - 实用开发工具 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 559 22.7. G - Rust 是如何开发的与 “Nightly Rust” . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .0 码力 | 562 页 | 3.23 MB | 9 天前3Service Mesh Meetup #3 深圳站
微服务架构 • 各种语言、各种框架或子系统 • 各种数据源 • ServiceMesh一般的开发流程 • 1. 开启一个新的 feature; • 2. Developer 从 develop 分支新建一个 feature/new_branch 来做特定 feature 的开发; • 3. 开发并自测后,提交 merge request(MR)请求合并到 develop 分 支;(执行单元测试,测试状态呈现 没有自动化测试(包括单元测试); • 沟通成本高 • 开发需要通知负责人、测试、产品等;(而且是每次构建/部署 都需要) • 依赖多较好的开发流程(流程化、自动化) • 1. 开启一个新的 feature; • 2. Devloper 从 develop 分支新建一个 feature/new_branch 来做特定 feature 的开发; • 3. 开发完成后,提交 merge request(MR)请求合并到 Jenkins/Drone 自动构建; • 9. 构建成功就执行你定义的工作流:打包镜像,触发 deploy 以及其他后续的 Automation Testing 等流程; • 10 . Drone 通知工作流程情况给开发/或者交付 QA 测试;如何提升工程效率?我是作者名称2017 年 DevOps 现 状调查报告DevOpsDevOps DevOps 不是一种新工具; DevOps 不是一种新团队; DevOps0 码力 | 45 页 | 18.62 MB | 5 月前303-基于Apache APISIX的全流量API网关-温铭
Skywalking开源项目的贡献者(commiter)。在创业之前, 在360做企业安全, 360开源委员会的发起人, 腾讯的TVP, TARS基金会的TOC成员, 在安全领域有四十多个专利, 最近三年全 职在做服务端的开源项目开发。在极客时间专栏著有OpenResty从入门到实战。 我们发现很多应用和服务都在向微服务、容器迁移, 形成新的云原生时代。云原生是未来五到十年一个 非常大的一个技术的一个颠覆, 云原生重写了传统的一些企业的技术架构 任一请求都会负载到整个的单体服务集群上 在微服务架构上, 对应请求会负载到对应的微服务子服务集群上 微服务的精细管理带来服务的弹性伸缩、开发团队变得敏捷、服务之 间隔离、降低故障率 但是同样的带来的一些问题: 接口之间通用的功能重复开发、膨胀的 服务数量、难以管理 使用API网关模式 使用API网关进行API聚合 使用API网关实现灰度发布 使用API网关实现服务熔断 全动态:路由、SSL 证书、上游、插件… • 40 多个插件,覆盖:身份认证、安全、日志、可观测性… Apache APISIX 设计思路 • API 网关的数据面和控制面分离 • 通过插件机制来方便二次开发和运维 • 高可用,没有单点故障 • 安全和稳定第一:基于 Nginx 实现;mTLS 认证;敏感信息加密加盐(salt)保存 • 高性能:单核心 QPS 1.5 万,延迟低于 0.7 毫秒 • 运维友好:Prometheus,0 码力 | 11 页 | 6.56 MB | 5 月前325-云原生应用可观测性实践-向阳
the growing complexity © 2021, YUNSHAN Networks Technology Co., Ltd. All rights reserved. 问题1:团队耦合 开发团队100%驱动力 运维团队100%驱动力 服务 数据 ??团队??%驱动力 谁来承担业务稳定的职责? 谁来承担业务交付的职责? 谁来升级“观测Library”? 谁来观测“观测Library”? APIGW/ … 问题2:观测盲点 KVM switch VM iptables POD envoy 服务 KVM switch VM iptables POD envoy 服务 开发兄弟们辛苦打桩 全链路到底有多全? 业务 开发 桩 simplify the growing complexity © 2021, YUNSHAN Networks Technology Co., Ltd. All rights (Overlay) 传统应用 云原生应用 è规模100xè è速度1000xè è距离10xè 80%看代码 20% 看流量 20% 看代码 80%看流量 应用连接方式的变化 应用监控的变化 传统的方法: 开发人员埋点, 标准SDK/JavaAgent, 流量分光镜像。 云原生下的难题: 微服务迭代快, 侵入式监控效率低; 云网络虚拟化, 东西向流量监控难。 挑战/必要性:网络的动态性和复杂性,不监控流量谈何应用可观测0 码力 | 39 页 | 8.44 MB | 5 月前3
共 59 条
- 1
- 2
- 3
- 4
- 5
- 6