Golang大规模云原生应用管理实践云原生是以容器技术为基础围绕着Kubernetes进行的一场技术标准化演进。通过标准可扩展的调度,网络, 存储,容器运行时接口来提供基础设施;通过标准可扩展的声明式资源和控制器来提供运维能力。两层标 准化推进了细化的社会分工,各领域进一步提升规模化和专业化,全面达到成本,效率,稳定性的优化。 4 6 7 2 3 5 1 1 Kubectl plugins 2 Apiserver extension 3 负载均衡 控制器 限流降级 控制器 监控 控制器 … 应用模型 控制器 平台应用模型 平台特定业务 用户应用模型 云原生生态 EDAS 1、应用管理策略 2、应用管理机制 3、平台构建策略 4、平台构建机制 PaaS 内核(3,4) PaaS 业务(2) 用户界面(1) EDAS的平台构建策略-OAM应用模型 https://github.com/oam-dev/spec 组件1(工作负载) • 运维特征1 • 运维特征2 • … • 组件2 (工作负载) • 运维特征1 • 运维特征2 • … • … 作用域 能力定义 依赖编排 组件版本 服务绑定 OAM应用模型 apiVersion: core.oam.dev/v1alpha2 kind: ApplicationConfiguration metadata: name: helloworld spec:0 码力 | 23 页 | 7.70 MB | 1 年前3
GoFrame框架介绍及设计• 模块化、松耦合 • 模块丰富、开箱即用 • 简洁易用、快速接入 • 文档详尽、易于维护 • 自顶向下、体系化设计 • 统一框架、统一组件、降低选择成本 • 开发规范、设计模式、代码分层模型 • 强大便捷的开发工具链 • 完善的本地中文化支持 • 设计为团队及企业使用 特点 框架介绍-框架架构 • 发布方式:Docker、二级制、源码模块 • 模块管理: • 核心模块、社区模块、三方模块 的 WEB页面,也可以是API接口。 业务逻辑层 - BLL 对具体问题进行逻辑判断与执行操作。 数据访问层 - DAL 实现数据的增删改查等操作,并将操作结果反馈到业务逻辑层 BLL。 模型定义层 - Model 也常用Entity实体对象来表示,主要用于数据库表的映射对象。 代码分层设计-项目代码结构 对象封装设计 第五部分 • 包与对象封装 • 资源明明规范 • 对象封装示例 • 包命名困难,易出现重复包名, 使用困惑,开发效率低 • 包管理困难,容易出现 cycle import 循环引用问题 改进: • 代码分层设计,降低代码耦合 • 功能逻辑按照对象封装,细化封 装粒度,降低单包职责 • 规避了同名包名的问题 • 规避了 cycle import 问题 常见项目架构示例2 常见项目架构示例1 对象封装改进 对象封装设计-资源命名规范 在三层架构设计模式下,我们的业务包命名0 码力 | 37 页 | 8.84 MB | 1 年前3
Go Web编程欢迎来到Go的世界,让我们开始探索吧! Go是一种新的语言,一种并发的、带垃圾回收的、快速编译的语言。它具有以下特点: 它可以在一台计算机上用几秒钟的时间编译一个大型的Go程序。 Go为软件构造提供了一种模型,它使依赖分析更加容易,且避免了大部分C风格include文件与库的开头。 Go是静态类型的语言,它的类型系统没有层级。因此用户不需要在定义类型之间的关系上花费时间,这样感 觉起来比典型的面向对象语言更轻量级。 种通过网络从远程计算机程序上请求服务, 而不需要了解底层网络技术的协议。它假定某些传输协议的存在,如TCP或UDP,以便为通信程序之间携带信息数据。 通过它可以使函数调用模式网络化。在OSI网络通信模型中,RPC跨越了传输层和应用层。RPC使得开发包括网络分布 式多程序在内的应用程序更加容易。 RPC工作原理 RPC工作原理 图8.8 RPC工作流程图 运行时,一次客户机对服务器的RPC调用 error a timeout? Temporary() bool // Is the error temporary? } 在调用的地方,通过类型断言err是不是net.Error,来细化错误的处理,例如下面的例子,如果一个网络发生临时性 错误,那么将会sleep 1秒之后重试: if nerr, ok := err.(net.Error); ok && nerr.Temporary()0 码力 | 295 页 | 5.91 MB | 1 年前3
Go 2 Generics? A (P)review14 func F() { 15 _ = Max(0, Int(1)) // 推导为 Int 16 } 关键设计 ● 直接在类型、接口、函数名前使用 [T] 表示类型参数 ● 进一步细化了类型推导作为约束的可能性 评述 ● 目前为止最好的设计 ● 无显式类型参数的类型推导非常复杂 ● 常量究竟应该被推导为什么类型? ● [T] 的位置很诡异,声明在左,使用在右,例如: ○0 码力 | 41 页 | 770.62 KB | 1 年前3
Go基础语法宝典(需科学上网) 上面例子简单的演示了如何自定义Error类型。但是如果还需要更复杂的错误处理呢?此时,来参考一下 net包采用的方法: 在调用的地方,通过类型断言 err 是不是 net.Error ,来细化错误的处理,例如下面的例子,如果一个 网络发生临时性错误,那么将会sleep 1秒之后重试: 错误处理 Go在错误处理上采用了与C类似的检查返回值的方式,而不是其他多数主流语言采用的异常方式,这造0 码力 | 47 页 | 1020.34 KB | 1 年前3
3.云原生边云协同AI框架实践应用对实时性、准确性和强交互性的需求 Edge: geographically distributed Cloud: Centralized Client devices Edge AI • 随着大模型的发展,AI 计算对算力需求大 幅且快速增长 AI应用到越来越多的边缘场景 分布式协同AI 概念 将人工智能相关的部分任务部署到边缘设备,基于边缘设备、边缘服务 器、云服务器,利用分布式乃至分布式协同方式实现人工智能的技术 应用无缝下沉到边缘 为分布式协同机器学习服务 ✓ 降低构建与部署成本 ✓ 提升模型性能 ✓ 保护数据隐私 SIG成员近年发表分 布式协同AI顶会论文 10+ SIG成员在AI顶会IJCAI 上分享分布式协同AI论文 Sedna斩获中国信通院云边协 同应用创新大赛最佳创新奖 ✓ 数据集管理 ✓ 模型管理 ✓ …… 基础框架 ✓ 协同推理 ✓ 增量学习 ✓ 联邦学习 ✓ 终身学习 GlobalCoordinator ⚫ 统一边云协同AI任务管理 ⚫ 跨边云协同管理与协同 ⚫ 中心配置管理 2. LocalController ⚫ 特性本地流程控制 ⚫ 本地通用管理: 模型, 数据集等 3. Worker ⚫ 执行训练或推理任务, 训练/推理程序, 基于现有AI框 架开 ⚫ 按需启动, docker容器或function ⚫ 不同特性对应不同的worker组0 码力 | 37 页 | 2.36 MB | 1 年前3
大规模高性能区块链架构设计模式与测试框架-李世敬版权所有 ©2016-2021 11 趣链科技 版权所有 ©2016-2021 11 趣链科技 版权所有 ©2016-2021 11 公有�架构(⾮�可�架构) 应⽤层 数据层 块链式结构 账户模型 时间戳 ⽹络层 共识层 激励层 发⾏机制 分配机制 PoW PoS DPoS 可编程货币 可编程⾦融 可编程社会 合约层 智能合约脚本 算法机制 合约执⾏引擎 哈希算法 数字签名 P2P⽹络 分布式⼀致性算法 典型共识算法 新型共识算法 合约层 智能合约脚本 合约执⾏引擎 分布式应⽤DApp ⽹络层 P2P⽹络 区块链⽹络模型 区块链⽹络协议 扩 展 层 扩展操作 跨链协议 链上链下计算 预⾔机 扩展组件 消息队列MQ 证书管理 测试框架 治理层 权限体系 治理模型 区块链审计 BaaS运维治理 应⽤层 司法存证 供应链⾦融 智慧政务 物联⽹ 能源电⼒ 跨境贸易 ⼯业物联⽹ 分布式⼀致性算法 典型共识算法 新型共识算法 合约层 智能合约脚本 合约执⾏引擎 分布式应⽤DApp ⽹络层 P2P⽹络 区块链⽹络模型 区块链⽹络协议 扩 展 层 扩展操作 跨链协议 链上链下计算 预⾔机 扩展组件 消息队列MQ 证书管理 测试框架 治理层 权限体系 治理模型 区块链审计 BaaS运维治理 应⽤层 司法存证 供应链⾦融 智慧政务 物联⽹ 能源电⼒ 跨境贸易 ⼯业物联⽹0 码力 | 39 页 | 56.58 MB | 1 年前3
2.1.7 谈如何构建易于拆分的单体应用合理,为了微服务⽽微服务) • 监控,告警,CI/CD,服务治理,分布式追踪等基础 设施不完善,维护成本⾼(⾃建—>云原⽣) 02 困境 MVC架构 微服务架构的困境与突破 ➢ 构建合理的业务模型(Monolith or Microservice) 1. 建模⽅法不只有领取驱动设计-DDD,还有⽤例驱动 设计-UDD等; 2. 并不是开始进⾏微服务拆分的时候才⽤到对应的建 模⽅法,在设计单体架构下同样也需要; 建模:通过表象看本质 ➢ 软件开发过程:描述软件开发全过程、软件开发活动以及他们之间关系的结构框架。 。。。 常⻅的软件开发模型 RUP开发模型 业务建模 01 软件开发过程 建模:通过表象看本质 ➢ 建模:对现实世界特征的模拟和抽象,⽐如机械模型,汽⻋模型等。 02 何为建模 ➢ 不同的想法 1. 不⽤建模,搞出来的系统照样跑的好好 的; 2. ⼈⼒不⾜,先顶住再优化; 3 晦涩难懂的概念,有时为了说明⼀些概念引⼊⼀些新的概念(领域服务/领域对象/领域 模型/值对象/聚合根/实体/⽤例等); 2. ⽅法这么多,到底谁更值得信赖; 3. 案例过于陈旧,如银⾏系统,电⼒系统等,⾥⾯阐述的⽅法和步骤到较难运⽤到互联⽹ 的业务中; 忘掉⼀些晦涩难懂的概念和复杂的步骤,从⽣活的视⻆出发,来思考我们的业务模型 DDD并⾮唯⼀ 的建模⽅法! 从建模到放弃! 建模:通过表象看本质0 码力 | 27 页 | 13.04 MB | 1 年前3
03. Golang 在隐私计算平台建设中的实践 - 刘敬翁 问 题 , 安 全 多 ⽅方 计 算概念被提出 1986年年姚期智提出 基于混淆电路路的通 ⽤用解决⽅方案 2016年年⾕谷歌提出联 邦学习,解决安卓 ⼿手机终端⽤用户的联 合模型训练 2009年年Gentry⾸首 次提出了了全同态 算法 2013年年Intel推出SGX指 令集扩展,提供软硬件 ⼀一体的可信执⾏行行环境 2016年年发布的《隐私计 算研究范畴及发展趋势》 趣链科技版权所有©2016 – 2021 7 隐私计算技术分类 • 安全多⽅方计算 纯密码学技术实现数据的可 ⽤用不不可⻅见 • 可信执⾏行行环境 基于TEE硬件保障计算环境安全 可信,提供计算模型及数据双维 度安全 • 联邦学习 结合机器器学习和密码学算 法,数据联邦化训练,充 分释放数据价值 02 隐私计算平台 架构 趣链科技版权所有©2016 – 2021 9 平台体系 隐私计算节点 本地数据库 发起⽅方节点 隐私计算节点 本地数据库 参与⽅方节点A 隐私计算节点 本地数据库 参与⽅方节点B 1.创建任务 2.完善⼦子模型 并分发 3. 权限校验 5. 执⾏行行隐私计 算算法 4.模型审核 6.返回隐私计算结果 7.记录上链 趣链科技版权所有©2016 – 2021 11 匿匿踪查询 集合运算 矩阵运算 基础运算 统计分析 ⽐比较排序0 码力 | 37 页 | 6.20 MB | 1 年前3
2.5 Go在猎豹移动的应用毛剑 Why Go? 优雅简洁,少就是多; 性能好、系统级语言; 静态语言、强类型约束; 交叉编译&部署; 网络模型&并发同步模型; 标准库、内置工具强大支持; 开源&社区活跃; 我们做了啥? 业务 猎豹移动全球passport体系; 游戏开放平台; 游戏支付体系; 平台 goconf xml,yaml,json,ini? 阶段1:逐idc,逐机器配置修改; 阶段2:svn统一提交修改,每个idc一份; 阶段3:配置统一管理化(agent模型); 一处修改,统一管理; 节点状态查看、回滚配置; 数据安全、强一致性; goconf /config/ | service/ | idc1/0 码力 | 24 页 | 4.26 MB | 1 年前3
共 45 条
- 1
- 2
- 3
- 4
- 5













