首页 文章 精选 留言 我的

精选列表

搜索[禅道],共6179篇文章
优秀的个人博客,低调大师

『千举万变,其道一也』教你一招玩转阿里云

前言 在开始正文之前,我们先看下面几个问题: 阿里云刚刚开放了新一个产品,还没有发布SDK,直接接入API签名逻辑太复杂了搞不定怎么办? 我们的应用非常轻量,但阿里云的SDK比较重(API请求/应答类非常多),有没有轻量的使用方法? 阿里云的XX产品刚刚开放了一个新的API,但SDK还没有更新怎么办? 以上所有问题的答案,都是:“用SDK的CommonRequest!” CommonRequest是什么? CommonRequest,是阿里云官方推出的、泛用型的OpenAPI调用接口,您可以使用CommonRequest,实现任意OpenAPI接口的调用,CommonReques有如下特点: 轻量:只需Core包即可发起调用,无需下载安装各产品线SDK。 简便:无需更新SDK即可调用最新发布的API。 泛用:只需传入OpenApi标识信息,就可以调用任意OpenApi。 CommonRequest支持哪些语种? CommonRequest是阿里云SDK核心包中的功能,也就是说,SDK支持哪些语种,CommonRequest就支持哪些语种。目前,可以支持的语种有:Java、Go、Python、C#、C++ 什么场景下,我该使用CommonRequest? 任何场景下,都可以使用CommonRequest,您可以自由选择调用方式。除了前言中提到的场景外,下列场景下,我们建议您选用CommonRequest: 平台开发,用户可能会调用任意一个Api,CommonRequest可以免去您反射SDK代码或穷举编写的麻烦。 经典用法下,SDK的请求/应答字段与实际不符时。当然这种场景下也希望您能将具体的情况反馈给我们。 我该如何使用CommonRequest? 阿里云SDK文档中,提供了详细的使用方法和示例代码,具体的链接如下: Java:https://help.aliyun.com/document_detail/61469.html Go:https://help.aliyun.com/document_detail/66221.html Python:https://help.aliyun.com/document_detail/61476.html C#:https://help.aliyun.com/document_detail/61473.html C++:https://help.aliyun.com/document_detail/65189.html CommonRequest的原理是什么? 简单来说,从代码结构上讲,各产品的SDK,其实是对CommonRequest的一种封装。 CommonRequest实现了所有阿里云 OpenApi的底层共用逻辑,例如:身份凭据维护、签名校验、域名路由等等,而特定的每个Api的请求与应答结构,则是基于CommonRequest的基础上,进行的开发/封装。 当然,"Talk is cheap, show me the code.",您可以直接在github上查看SDK以及CommonRequest的源码 Java:https://github.com/aliyun/aliyun-openapi-java-sdk Go:https://github.com/aliyun/alibaba-cloud-sdk-go Python:https://github.com/aliyun/aliyun-openapi-python-sdk C#:https://github.com/aliyun/aliyun-openapi-net-sdk C++:https://github.com/aliyun/aliyun-openapi-cpp-sdk

优秀的个人博客,低调大师

编程大神一道题带你搞定Python函数中形参和实参问题

昨天在Python学习群里有位路人甲问了个Python函数中关于形参和实参一个很基础的问题,虽然很基础,但是对于很多小白来说不一定简单,反而会被搞得稀里糊涂。人生苦短,我用Python。 为了解答大家的这个疑惑,小编在此举个栗子,希望大家能够彻底的理解实参和形参在Python中的用法。 首先,大家一起看个栗子。 不可更改的对象 这个函数的输出值是多少?很多人会回答7,其实程序运行之后,其答案是6,点解呢? 为什么在这里形参的数值并不改变实参的数值? 这里需要给大家普及一个Python中的基础,在python中,string(字符串), tuples(元组), 和number(数值)是不可更改的对象,而list(列表),dict(字典)等则是可以修改的对象。 也就是说,这里形参的数值对于外部的实参的数值(number类型,不可变)来说是没有任何关系的,他们虽然是同一个名字,但是其指向对象是不一样的。所以当在程序最后进行打印a输出值的时候,其输出仍然是6。 下面这个栗子我们来看看可变的对象,以list(列表)作为实验对象。 可更改的对象 这个函数的输出值是多少?很多人会回答[1,2],其实程序运行之后,其答案是[2,1]。 与第一个栗子刚刚相反,这里形参的数值调用把实参改变了。因为本例中参数传递的是列表,其是可更改的对象,在函数内部经过系列赋值变化之后,所以在程序运行之后其输出值产生了变化。 山重水复疑无路,柳暗花明又一村。这道题经常会被招聘公司和企业拿去作为面试题,考察面试狗的Python基础知识,希望大家好好参详,日后碰到类似的问题加以注意,少走弯路! 最后感谢在Python群中积极提问的好学者,然我们大家一起为学好Python而奋斗吧!

优秀的个人博客,低调大师

边缘计算将在2017年大行其道,细数其中的价值、机遇与挑战!

边缘计算是在靠近物或数据源头的网络边缘侧,融合网络、计算、存储、应用核心能力的开放平台。边缘计算与云计算互相协同,共同助力各行各业的数字化转型。它就近提供智能互联服务,满足行业在数字化变革过程中对业务实时、业务智能、数据聚合与互操作、安全与隐私保护等方面的关键需求。 根据国际电信联盟电信标准分局ITU-T的研究报告,到2020年,每个人每秒将产生1.7MB的数据,IoT可穿戴设备的出货量将达到2.37亿。IDC也发布了相关预测,到2018年,50%的物联网网络将面临网络带宽的限制,40%的数据需要在网络边缘侧分析、处理与储存,到2025年,这一数字将超过50%。 图1:边缘计算与云计算的关系 一、边缘计算的巨大价值 美国部署了3000余万个监控摄像头,每周生成超过40亿小时的海量视频数据。物联网领域拥有海量的终端设备,如果这些设备产生的数据聚在一起,会是个天文数字。 海量数据的分析与储存对网络带宽提出了巨大的挑战,而边缘计算的诞生,就是为了解决这一问题。 图2:边缘计算的特征 1).分布式和低延迟计算 云计算往往并不是最佳策略,计算需要在更加靠近数据源的地方执行。这个优点可以扩展到任何基于Web的应用程序上:包括 Foursqure和Google Now在内的APP能更快的做出响应,所以在移动用户中变得越来越受欢迎。这说明在更靠近用户的边缘节点上,边缘计算可以用于改进服务。 图3:数据传输需要时间和代价,边缘计算提供高效、低成本的数据处理 许多数据流由边缘设备生成,但是通过“远处”的云计算处理和分析,不可能做出实时决策。例如使用可穿戴式摄像头的视觉服务,响应时间需要在25ms至50ms之间,使用云计算会造成严重的延迟;再比如工业系统检测、控制、执行的实时性高,部分场景实时性要求在10ms以内,如果数据分析和控制逻辑全部在云端实现,则难以满足业务要求;还有那些会生成庞大数据流的多媒体应用,如视频或是基于云平台的网络游戏,依赖云计算也会为玩家造成类似于等待时间过长的问题,无法满足用户的需求。 作为云计算的有益补充,可以利用边缘节点(例如,路由器或离边缘设备最近的基站),用以减少网络等待时间。 2).超越终端设备的资源限制 与数据中心的服务器相比,用户终端(例如智能手机)的硬件条件相对受限。这些终端设备以文本、音频、视频、手势或运动的形式获得数据输入,但由于中间件和硬件的限制,终端设备无法执行复杂的分析,而且执行过程也极为耗电。因此,通常需要将数据发送到云端,进行处理和运算,然后再把有意义的信息通过中继返回终端。 然而,并非来自终端设备的所有数据都需要由云计算执行,数据可以利用适合数据管理任务的空闲计算资源,在边缘节点处过滤或者分析。 3).可持续的能源消耗 大量研究显示,云计算会消耗庞大的能源,未来十年数据中心所消耗的能源量可能是如今消耗量的3倍。随着越来越多的应用转移到云,能量需求会日益增长,甚至无法满足。因此,采用能量效率最大化的计算策略显得尤为迫切。 一些嵌入式小型设备的基础信息采集处理完全可以在端完成,即手机传感器把数据传送到网关后,就通过边缘计算进行数据过滤和处理,没必要每条原始数据都传送到云,这省去了大量的能源成本。 4).应对数据爆炸和网络流量压力 边缘设备的数量正在超速增长——到2018年,世界上三分之一的人口将拥有智能手机或者可穿戴设备,到2020年,这些设备将生成43万亿GB的数据。处理这些数据需要进一步扩展数据中心,这再次引起了人们对网络流量压力的广泛关注。 通过在边缘设备上执行数据分析,可有效应对数据爆炸,减轻网络的流量压力。边缘计算能够缩短设备的响应时间,减少从设备到云数据中心的数据流量,以便在网络中更有效的分配资源。 5).智能计算 不仅是消费级的物联网终端,边缘计算还将在工业应用中发挥重要作用。计算可以分层执行,利用网络远端的资源完成。例如,典型的生产流水线可以过滤设备上生成的数据,在传输数据的边缘节点上执行部分分析工作,之后再通过云端执行更加复杂的计算任务。边缘节点可以通过分担云计算的部分任务,增强数据中心的计算能力。 业务流程优化、运维自动化与业务创新驱动业务走向智能,边缘侧智能能够带来显著的效率提升与成本优势。事实上,对于从事工业自动化工作的人而言,边缘计算并不陌生。比如,在目前普遍采用的基于PLC、DCS、工控机和工业网络的控制系统中,位于底层、嵌于设备中的计算资源,或多或少都是边缘计算的资源。 图4:霍尼韦尔公司Honeywell将工业领域划分为6层架构 目前规模以上冶金企业,其信息化已经做得颇具成效,但缺少的恰恰是末端智能。冶金方面的数据经常会出现完整性和一致性的问题,俗称“脏”数据。解决不好这方面的问题,会给能源管理和智能管理环节造成很大的困扰。边缘计算在其中发挥着重要作用,成为工业物联网技术的有效补充。 图5:推进边缘计算需要打破管理(IT)与控制(OT)的分层模式 二、边缘计算所面临的挑战 边缘计算仍处于起步阶段,当前的云计算服务(如Amazon Web Service,Microsoft Azure和Google App Engine)可以支持数据密集型的应用程序,但在网络边缘进行实时的数据处理仍是一个有待开拓的领域。 此外,若想更好的在边缘节点上部署应用程序的工作负载,需要考虑以下几个方面: 部署策略:如何部署工作负载 连接策略:何时使用边缘节点 异构性:如何处理不同类型的节点 图6:边缘计算面临的机遇与挑战 为了实现边缘计算,我们认为在硬件、中间件和软件层面,有以下5个挑战需要解决。 挑战1:边缘节点上的通用计算能力 理论上,可以在位于边缘设备和云平台之间的某几个节点上完成边缘计算,包括接入点、基站、网关、业务节点、路由器、交换机等。例如,基站可以根据工作负载能力,执行数字信号处理(DSP)。但是在实践中,基站可能并不适合处理分析工作,因为DSP并不是为通用计算设计的。此外,这些节点是否可以执行除了现有工作之外的计算还不太清楚。 由CAVIUM提供的OCTEON Fusion? Family是一个小型“芯片上基站”单元,可扩展从6个到14个的内核,以支持32到300+的用户。这种基站可在非高峰时间使用多个计算核心的运算能力。 许多供应商也已经迈出了使用软件解决方案实现边缘计算的第一步。例如,诺基亚针对移动边缘计算(MEC)的软件解决方案旨在为基站站点提供边缘计算能力。同样,思科的IOx为其集成的服务路由器提供了一个边缘计算环境。这些解决方案应用于特定硬件,因此不适合部署在异构环境中。 软件解决方案面临的一个挑战是如何开发跨越不同环境的可移植的解决方案。某些公司正在研究升级边缘节点,以支持通用计算需求。例如,可以升级无线家庭路由器以支持额外的计算任务。英特尔的Smart Cell Platform使用虚拟化技术,支持额外的计算任务。通用CPU替换专用DSP提供了另一种解决方案,但却需要巨大的投资。 图7:英特尔的物联网网站www.Intel.com/IoT 挑战2:发现边缘节点 到2020年将有500亿的终端和设备联网,除了边缘设备与终端联网最大的“异构”特征之外,产品生命周期越来越短、个性化需求越来越高、全生命周期管理和服务化的趋势越来越明显,这些新趋势都需要边缘计算提供强大的技术支撑。 如何在分布式计算环境中发现资源和服务是一个有待拓展的领域。为了充分利用网络的边缘设备,需要建立某种发现机制,找到可以分散式部署的适当节点。因为可用设备的数量庞大,这些机制不能依靠人工手动。此外,还需要使用多种异构设备满足最新的计算需求,比如大规模的机器学习任务。 这些机制必须在不增加等待时间或损害用户体验的前提下,实现不同层次和等级的计算工作流中无缝集成,原有的基于云计算的机制在边缘计算领域不再适用。 挑战3:分区和拆分任务 对于边缘计算来说,最大的难点在于如何动态、大规模地部署运算和存储能力以及云端和设备端如何高效协同、无缝对接。 不断发展的分布式计算已经催生了许多技术用来促进在多个地理位置分区执行任务。任务分区通常在编程语言或管理工具中明确表示。 然而,利用边缘节点来实现分区计算不仅仅带来了有效分割计算任务的挑战,对于如何能在不需要明确定义边缘节点的能力或位置,以自动化的方式进行计算的问题上,也遇到了瓶颈。因此,需要一种新型的调度方式,以便将分割的任务部署到各个边缘节点上。 挑战4:高水准的服务质量(QoS)和服务体验(QoE) 另一个挑战是需要确保边缘节点实现高吞吐量,并且在承接额外计算工作量时运行可靠。例如,当基站过载时,可能影响连接到基站的其他边缘设备。 因此需要对边缘节点的峰值时间全面了解,以便可以用灵活的方式来分割和调度任务。复杂的算法如何在云端和边缘设备之间合理分解和整合,需要一个对云管端三者都有控制力的技术来实现。 挑战5:开放和安全的使用边缘节点 安全横跨云计算和边缘计算,需要实施端到端的防护。由于更贴近万物互联的设备,网络边缘侧访问控制与威胁防护的广度和难度因此大幅提升。边缘侧安全主要包含设备安全、网络安全、数据安全与应用安全。此外,关键数据的完整性、保密性是安全领域需要重点关注的内容。 如果把终端设备(例如交换机、路由器和基站)当作可共享接入的边缘节点,则需要解决许多问题: 首先,需要定义边缘设备使用者和拥有者相关联的风险。 其次,当设备用于边缘计算节点时,设备的原有的功能不能被损害。 第三,边缘节点上的多重用户都需要将安全性作为首要关注指标。 第四,需要向边缘节点的用户保证最低服务水平。 最后,需要考虑工作负载、计算能力、数据位置和迁移、维护成本和能源消耗,以便建立合适的定价模型。 三、边缘计算的潜在机会 边缘计算仍处于起步阶段,有可能为更高效的分布式计算铺平道路。尽管在实现边缘计算时出现了不少挑战,但边缘计算将会催生更多的发展机遇,在此我们明确了5个潜在机会: 机会1:标准、基准和市场 统一数据连接和数据聚合是业务智能的基础,面对当前工业现场存在的多样化与异构的技术和标准,离不开跨厂商、跨领域的数据集成与互操作。网络边缘侧的本地计算服务无疑会在异构环境中迎来IT厂商、IT方案商以及开发者集成融合服务的挑战,标准化亟待形成。 许多组织正在定义各种边缘计算标准,例如美国国家标准和技术协会(NIST)、IEEE标准协会、国际标准化组织(ISO)、云计算标准客户委员会(CSCC)和国际电信联盟(ITU)等。只有当边缘节点的性能可以根据广泛认可的度量指标可靠的进行基准测试时,才能形成标准。 机会2:架构和语言 随着支持通用计算的边缘节点不断增加,开发框架和工具包的需求也会随之增长。边缘分析与现有流程不同,由于边缘分析将在用户驱动的应用程序中实现,现有框架可能不适合表达边缘分析的工作流。 编程模型需要利用边缘节点支持任务和数据的并行,并且同时在多个层级的硬件上执行计算。编程语言需要考虑工作流中硬件的异构性和各种资源的计算能力。这比云计算的现有模型更加复杂。 机会3:轻量级库和算法 与大型服务器不同,由于硬件限制,边缘节点不支持大型软件。例如,Intel T3K并发双模SoC的小型基站具有4核ARM的CPU和有限内存,不足以执行复杂的数据处理工作。再比如Apache Spark需要至少8核的CPU和8 GB的内存以获得良好的性能。边缘分析需要轻量级算法,可以进行合理的机器学习或数据处理任务。 例如,Apache Quarks是一种轻量级库,可以在小型边缘设备(如智能手机)上使用,以实现实时数据分析。但是Quarks支持的基本数据处理,例如过滤和窗口聚合,不足以满足高级分析任务。消耗更少内存和使用更小磁盘的机器学习资源库有利于实现边缘节点的数据分析。TensorFlow是另一个支持深度学习算法并支持异构分布式系统的示例框架,但其边缘分析的潜力仍有待探索。 机会4:微型操作系统和虚拟化 基于微型操作系统或微型内核的研究可以解决在异构边缘节点上部署应用的挑战。 图8:开放OS简化智能应用的开发和部署 有研究表明,跨越多个虚拟设备复用设备硬件的移动容器可以提供与本地硬件接近的性能。容器技术(如Docker)正在成熟,并且能够在异构平台上快速部署应用程序。 图9:ARM可以提供全平台、全过程、全要素的设备管理能力 机会5:产学研合作 边缘计算为产业界和学术界提供了独特的发展机会。边缘计算领域的研究可以由行业合作伙伴(例如移动运营商和开发人员、软件工具开发商和云服务提供商等)以及感兴趣的学术合作伙伴共同驱动,以实现双方的共同利益。 本文转自d1net(转载)

优秀的个人博客,低调大师

Agent狂飙突进,安全“底座”为何成了企业AI落地的第一道硬门槛?

从Manus的一夜爆红到Claude Code的全面铺开,从开源社区层出不穷的“龙虾”项目到各大云厂商争先恐后的Agent即服务,智能体正在推动模型从“能对话”走向“能办事”,而且不止是能写代码,还能调工具、操作浏览器、访问数据库。随之,行业讨论的重心,也已经从“模型有多聪明”转向了“Agent能创造多少价值”。

优秀的个人博客,低调大师

又拍云邵海杨 - 25年Linux老兵,聊聊运维的“术”与“道”

您好邵总,请您先做个自我介绍吧,聊聊您的履历和现状,让大家更好的认识您,了解您的背景也有助于读者理解后面的采访内容 我是来自又拍云的邵海杨,从1998年开始使用Linux至今快25年了,资深(老鸟)Linux系统运维/架构师,DevOps八荣八耻倡导者,业余撰稿人;精通(心虚)系统优化及网络服务管理,Linux系统定制,CDN加速和安全防御; 擅长互联网高性能网络及架构设计、虚拟化KVM及OpenStack云平台, K8S容器云和Ceph分布式存储等新技术;喜欢交流分享,活跃于社区,一直积极投身于开源活动的组织和传播。 运维领域,每个公司都会制定自己的运维准则或者操作规范,能否分享一下贵司的经验,给我们一些参考? 又拍云是一家提供云存储,云分发,云处理服务的公司,也是国内首创可编程CDN 服务的专业云服务提供商,特点就是7x24全年不间断服务,所以云运维也有一些律条或原则,比如: 先保障稳定,然后再优化 过度设计或过早优化很可能会带来更多的故障停机时间,要先集中精力提高系统的可扩展性和高可用性。坚持 “先完成,再完善,后完美”,项目也是“先能用,再好用,后用好”的实施策略。 提供可靠的测试依据和时间验证 引入新技术到架构之前,要确保新技术的稳定性和足够时间久的考验,更要有运维工程化中开发出来的工具链的完整。一旦线上返工或变更造成的措手不及可能已经是故障的导火索。 使用可控的自动化手段提升效率 自动部署、自动编排、自动巡检、自动升级等自动化手段越来越多应用于云运维。这是适应云计算时代的趋势,但能力越强,责任越大,要谨慎自动化的雪崩和惊群效应,做好灰度/蓝绿部署和各种测试。 保持简单,监控一切 保持简单,别把事搞得太复杂。除了常见的异常问题报警外,面向业务指标,市场指标和销售数据,成本等都可以用来做趋势分析信息。定期的轮询查看各个趋势数据的峰值峰谷有助于见微知著。 面向预算的运维 运维团队通常是最大的花费者,因为预算不足,没有钱的运维是很难兼顾到日益增长的公司业务规模,除非公司业务已经停滞或不再有爆炸式的增长,面对这样的挑战,运维要学会降本增益,开源节流,利用新技术实现能效比的提升。 面向场景的智能运维 各种各样的负载场景,从高并发处理到视频转码,从高性能并行计算到海量的网络请求。这些不同的负载场景,对网络带宽,各种处理和IO的要求也各不相同。智能运维就是需要深入理解业务,合理配置资源和架构来满足不同业务场景的需求。 持续集成和发布系统 持续发布包括灰度发布、测试发布、滚动发布、回滚发布等多种场景,并且确保每种场景都应该是可以可控的。 确保任何人都可以被替换 铁打的营盘流水的兵,人挪活是常态,做好员工的共享文档管理和知识传递和分享,理论上所有人都可以被替换,任何人也不应该成为公司的天花板。 虽说成长是自己的事情,但如果有合适的场域、合适的项目机会、合适的团队、合适的机制,会让工程师的成长更快,团队更有战斗力,您能否系统的谈一下是如何促成运维同学的成长的? 公司一直是积极鼓励员工的技能自我提高和促进成长: 每月开放日:公司内技术委员会会定期举办讲座,分享前沿研究中的一些收获,要求有主题,有重点,有应用场景,最好有实例。 每周分享会:鼓励所有开发者定期分享新的技术,谈论他们面对的问题,或者任何别的他们正思考的东西,分享的内容会形成文档和视频存档,并根据评分给予奖金和积分激励。 公司悬赏项目:无论是公司还是员工自身都可以发起项目,技术委员会评审通过后,自行组队完成,根据产出文档,数据对比,技术分享后获取相应的项目奖金。申请专利还有相应的专利奖金。 培养个人影响力:鼓励员工通过发表文章或演讲的形式,走出去做工程经验分享、工作心得的梳理,提高个人的影响力,并根据受众的反馈给予稿费和讲师费激励。 订阅报刊,杂志等纸质书籍,了解最新动态。以部门为单位,配置一定的购书津贴。 又拍云运维团队内的培养包括: 化“天花板为托板”:把自己放在一个培养新人的管理角色,不让自己成公司瓶颈和员工的天花板,鼓励新人们去尝新和处理故障,增加自身的技能和实战经验;信任,互助,激励,他们会持续不断创造惊喜。 制作“自动化工具”:利用自己的经验抽象业务成程序模型,制作或培训自动化脚本的编写,提高团队的工作效率,让员工节省精力和时间去学习其它新知识; 承担“高精专”项目:提前准备最新知识的研究和可行性分析,整理成文档作公开培训,再交给团队去深入研究和实施,转化成生产力,积累一线经验再反馈完善文档,良性循环; 积极提倡“知识分享”:各种案例和“坑”都会整理成wiki文档,通过文档共享,定期分享讲座,鼓励员工撰写高质量的,可读性很强的文档,开口培训,增加感染力和自信心; 鼓励“参与开源交流”:公司鼓励员工走出去参与技术交流大会,闭门造车耗时耗力,不如专业的人点拨。也会有购书经费,团建活动经费,茶歇文化; 运维工程师其中一个典型的职业路径是做管理者,但管理者和资深运维要解决的问题截然不同,对于那些刚刚步入管理岗的资深运维,是否可以分享一些您的经验? 对于刚步入管理岗的运维来说,我的建议是及时梳理遗留的技术债和人才技能的盘点和培养,先打好基础,后面才能有更大的空间进步,具体可以参考我的《DevOps的八荣八耻》的分享。 一、 以可配置为荣,以硬编码为耻 二、 以互备为荣,以单点为耻 三、 以随时重启为荣,以不能迁移为耻 四、 以整体交付为荣,以部分交付为耻 五、 以无状态为荣,以有状态为耻 六、以标准化为荣,以特殊化为耻 七、以自动化工具为荣,以手动和人肉为耻 八、以无人值守为荣,以人工介入为耻人 才上技能树的盘点,主要是配合人事做好人才九宫格的划分(如果是开发或运维,把左侧的绩效换成潜力,绩效针对销售而言),考查的是管理者对员工的全方面的辨析能力,知人善用。 再结合公司的OKR目标管理来激励员工,它的优点在于聚集目标的同时,还能: 激励个人自驱力,鼓励员工创新和反思; 考查的是相对结果,鼓励有难度的挑战和突破; 考核的协同配合能力,鼓励员工去全方位的协调推进; Kubernetes火了好一段时间了,很多公司也在大规模应用了,但显然,每个技术都不是银弹,无法解决所有场景的问题,这几年观察下来,您觉得哪些公司不适合上Kubernetes?能否给一个这类公司的画像,并说明理由? 虽然Kubernetes代表着目前为止的devops的最佳工程应用实践(真香),但也不是所有场合都能应用,如又拍云的CDN边缘服务器,数据中心的日志分析平台,Ceph分布式存储就以物理机为主。所以,我建议找一些合适的场景先试用起来,如: 机器资源错峰空闲浪费严重的; CPU,磁盘和网络IO都不密集的; 不需要持久化存储的或抢占资源的; 软件架构已经做了微服务改造的; 业务处理程序有周期性、可弹性扩容的; 运维和研发是最亲密的伙伴,贵司是如何做工作边界划分的?另外关于如何让这两个角色保持亲密合作,是否可以分享一些经验? 运维工程师 = 冲锋陷阵的将军 软件工程师 = 坐阵帐中的军师 理论上,优秀的软件工程师是可以把部分(甚至全部)运维工程师的工作做掉,比如说业务软件性能的监控,如果程序员在程序中插入很多的钩子或探针,就可以统计出数据来,不需要运维劳心劳力的监控;比如说程序员在设计程序的时候,考虑到了分库分表,考虑到了大并发和分布式的设计,那运维就可以水平扩展机器就行;如果软件没有那么多bug,还有很多如果......但是,现实是残酷的,这种高水平的程序员太少了,尤其在中国,大家都忙于实现业务功能,连个文档甚至注释都不愿意写,更别提能够考虑这么周全了;同理,运维接触的很多是开源很优秀很成熟的软件,从中是可以借鉴知晓优秀软件是怎么设计的,比如优秀的程序,日志信息会非常详尽,我们可以通过标准的syslog或者日志去监控它,所以,资深的运维会: 积极参与事前的规划,配合开发做演练,自动化部署,协助架构改进 合理提需求,要资源,最好是有预算,做到防患于未燃 线上监控,故障复盘,反馈给整个团队,倒逼上下协调做改进 当然,要达到上述能力的运维管理,肯定需要潜心研究,承上启下,协调团队,任劳任怨的修行多年,到那个时候,运维就不再是对事情的结果负责,而是转变角色,主导和协调整个过程。当然,这里指的能力不仅仅是技能,还包括对业务的理解能力,站在公司管理层面对整个项目和资源的分配和把握。因此,运维工程师其实是现实中的软件工程师的互补,因为大家的能力侧重点不同,所以大家更要团结一体,要能够打胜仗,离开谁都是不行的,这是一个共同修炼进步的过程。 最后,我的个人观点:架构师它可能不是一个人的角色,而是一个团队的统称,它可以: 不必冲锋陷阵,就可以纵观全局,运筹帷幄,调度所有的资源(运维架构师的功能) 可以带领和团结团队,高屋筑瓴,因时制宜的实现解决方案(软件架构师的功能) 可以把握公司业务方向和深度,洽谈合作,控制成本(业务架构师的功能) 运维需要和其他多个部门沟通协作,鉴于各个团队目标关注点未必一致,合作起来可能未必有那么顺畅,针对这个问题您是用什么招来让这个过程更加顺畅的? 其实沟通不顺畅的原因大部分在于对后果的不可预见性,你说冗余他说预算,你说架构他说工期,各有立场又各有苦衷,但就是没人对结果负责。我在工作中发现,当故障发生时,各部门的配合是空前团结,战斗力也是最强的,所以,沟通协作的关键在于: 既要团队协作,也要责任分明 事前部门沟通时,确定好项目预期,成本,影响要素,故障后果及责任方; 事后故障复盘时,根据故障原因,有理有据地“甩锅”,同时要引以为戒,亡羊补牢; 比如说提供在线10W并发的能力,需要冗余带宽冗余服务器数量x2,因为预算不足减半所导致的后果及责任人;再比如软件设计不好,通过性能监控,发现指标异常的后果及责任人;当然,报警处理不及时,人为操作故障也会算到运维亦无可厚非;故障文化就是要关注问题和关注事情本身,对事不对人。大家都在故障中成长,在复盘中变强。 您觉得运维工作最重要的几个目标是什么?您是怎么落地这些目标的? 运维自动化; 监控常态化; 日志可视化! 这个篇幅太多了,不展开讲,可以参考《云运维的启示和架构设计》 工具选型这块,到底是自研,还是使用开源,还是使用商业产品,是如何抉择的? 又拍云通常不会重复造轮子,但一定会先用好轮子,或者把轮子改造得更加称手,选择自研往往具备了一定的开发能力,再加上某些必要原因,如: 找不到符合要求的开源软件,如我们自研的云处理软件… 开源软件有bug或者issue,社区短期内无法推进,但业务又急需,只能通过自研解决,如ats的内存泄露问题… 开源软件的功能特点跟公司的业务不相符合,不得不改造软件,如nginx的防盗链模块,需要与客户对接定制… 开源软件的设计目标过于高大上,通用性好但很臃肿,如果我们只要某个小功能点,就不需要牛刀了,如性能探针的埋点… 有数据保护要求,或者有隐私的场合… 越来越多的公司在迁往公有云,云原生架构下,SRE团队的核心职能是否有些变化?应该如何凸显团队的价值呢? 公有云作为IaaS基座,容器云作为CaaS中间层,云原生作为SaaS应用层,整个云生态日新月异,SRE团队的核心职能会更加注重顶层系统性的容量规划,指标监控,高可用性和分布式的弹性设计,所以跨平台跨部门的职能互补、团队协作、持续精进、勇于承担包括: 积极参与事前的规划,配合开发做演练,协助架构改进; 合理提可用性需求,冗余资源,最好是有预算,做到防患于未燃; 线上监控,故障分析,反馈给整个团队,倒逼上下协调做改进; 团队的价值就在于是否总是能够接受新事物,新的挑战,各施所长,不做井底之蛙,也不是温水煮青蛙,在创新或者颠覆来临的时候,也能保持不被时代脱钩。 对于运维工程师个体,SRE的转型路径是?应该注意些什么? 技术领域 学会抽象业务模型,标准化组件,定制化脚本,自动化部署,提升整体效率; 学会收集日志和日志分析并可视化,提升运维监控和预警报警的效率; 掌握和熟悉一门或若干语言,能够帮助你成长,提升你的战斗力; 勤做笔记,温故而知新,学思结合,要学会沉淀,举一反三; 勇于面对新兴技术的挑战,打不过就学它; 非技术领域 学习能力,要知识面广; 沟通方面,了解客户的精确需求; 技术风险、人工、进度等成本,权衡取舍; 社区活动,积极分享,锻炼口才和交流能力; 提升自己的影响力,学会与人同行,可以交到更多的朋友; 面对当下快速发展的基础技术,您对给刚入行和入行已久的运维人员,分别有什么职业规划的建议吗? 首先不是工作选择人,而是人选择工作,一个人若对某方面有了兴趣,真正用心学习了近10000个小时,其实做什么都是可以的。比如说我毕业那个时候,都是强调复合型人才,根本没有运维这个职业,我们不光自己攒(DIY)机器,自学Linux操作系统,还学习编程,折腾网络,自己动手写论坛聊天室等程序;Linux给我们带来的是每天都有创新的,好玩的,优秀的开源软件让我们保持激情去尽情的折腾和学习,当互联网兴起的机会来临时,做个运维总监其实也是顺理成章的事;其实,除此之外,我还转型做过售前,技术支持,跑过市场,经常做演讲培训,所以真正的高手是什么不会学什么,技多不压身,做个懂业务、会开发的运维工程师。 您觉得运维人员最重要的素养是什么?对新入行的运维人员有哪些寄语? 我认为最重要的能力是表达沟通能力,但不排除运维本身所需的技术储备、实践动手能力、编程能力和学习能力。考虑到运维大部分还是一个成本支出的岗位,如何把深奥隐晦的性能及瓶颈指标,用直观的图表展示来获取上层持续的投入是需要技巧的;然后面对你的同事,你的兄弟部门,也需要你的影响力去协调推进工作,如果能够做到这些,说明你已经具备了领导的才能,这样以后做什么事都会站在更高的水平,用全局观的格局去统筹规划整个项目的目标,人员,工期和资源的合理分配和把握。

资源下载

更多资源
Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册