首页 文章 精选 留言 我的

精选列表

搜索[CNCF孵化],共3564篇文章
优秀的个人博客,低调大师

天猫启动“中国匠人”计划,一年孵化20个千万级匠人品牌

运维是干什么的 「运维」二字可能有几层意思,分别可以指代运维工程师、运维团队或者是整个运维服务体系。 我们可以看出,这三层是从狭义到广义的递进。相信绝大部分人问的都是运维工程师,只有极少数人能意识到还有运维服务体系这一层含义。 我们经常会听到一些言论,比如: 云服务普及了,运维工程师就要失业了。 等 DevOps 或者 SRE 落地了,运维工程师也要失业了。 容器技术普及了,运维工程师也该失业了…… 也记不清运维工程师到底被失业了多少遍,但我认为就算运维工程师被取代了,运维服务也不会消亡,它将伴随并支撑着业务发展的整个生命周期。 为何这样说?我们还是用业务的诞生过程来分析。 一个站点或者 App,大致经历着这样的诞生过程:PM 设计出产品原型,交给 Dev 开发实现、QA 测试,然后交付给 Ops 部署到线上运行,最后供用户使用。 在这几个简单步骤中涉及了众多的人、角色、交付过程等对象,这是一个完整、复杂的系统工程,而任意一个环节的失误都可能影响最终呈现给用户的体验以及效果。 我们重点考虑从 Dev 把业务产品完成后交付给 Ops 到线上运行的这个阶段,Dev 同事主要负责业务产品的功能完整、逻辑正确等业务指标,而 Ops 同事主要负责业务产品的运行质量、稳定性、可用性等系统指标。 无论后面的交付步骤是用 DevOps 还是 SRE 的实现方式,都离不开一个广义的运维服务的执行环节。 所以说, Dev 还是 Dev,Ops 还是 Ops,没有谁被取代,只是运维服务的执行方式升级为更加软件工程化的手段,减少人肉操作,DevOps 强调自动化、拉动式来提高团队交付效率与质量。 而传统的运维需要谋求技术转型,从原来只关注操作系统层面的技术已经不够了,还要增加对程序代码的性能调优、持续交付、容器化等软件基础架构方面的技能提升,也需要持续关注整个业务、应用、服务的生命周期管理。 简单来说,就是把过去传统的黑盒运维的思维方式抛弃,进入白盒运维的时代,我们必须更加深入代码、深入业务运营,让整个线上服务运行于更优质高效的状态。 至于运维是否会被取代,取决于你属于哪种运维。 运维工程师和运维开发工程师 要建设运维自动化或者实践 DevOps 离不开运维开发工程师的参与,但要怎样才能更好地发挥运维开发的作用呢? 我曾作为运维产品经理的角色和各种类型的运维开发一起协作过,团队中有本来就做运维开发的,也有本来做其他业务(电商、平台)的开发转来协助运维团队的。 和他们协作一段日子后,总体感觉如下: 运维开发首先是一个程序员,不是运维工程师。 一个好的运维开发需要具备 「运维理解」+「开发能力」。 对「开发能力」的技术要求低于其他业务形态(如游戏、电商、搜索等)。 对运维业务的理解难度会低于电商、游戏等业务形态,即对「运维理解」的要求不高。 对运维相关技术栈的掌握程度要求高,如 Linux、Git、Nginx、Zabbix、Docker、K8S 等。 综上所述,运维开发是一个深度不算太深的职业分支,而现在之所以对运维开发需求量热起来了,主要由于老一辈的资深运维普遍研发能力有限,而这是有历史原因的。 对于从业 8 年以上的资深运维来说,他们刚开始做运维的时候更多的是接触机房、机架、主机、交换机、防火墙等硬件设备。然后对接业务运维后,一般通过 Shell、Python 等脚本来辅助工作。 等到业界提出 DevOps 的时候,他们往往已经专注于团队管理、容量规划、架构调优、运维服务质量等高级范畴,所以基本不太可能抽出大块的时间来重新学习编码并开发自动化系统。 所以,当我们有自动化系统的建设需求时,需要更专业的程序员来协助。 但一般的非专职运维开发的程序员做出来的系统对于运维来说往往不太好使,这时候有部分年轻的运维工程师升级了研发技能,转型运维开发,把好使的运维系统做出来了,赢得了运维团队的好评,大家都为「运维开发」点赞。 所以,大家将 「好使的运维系统」 和 「运维开发」 等价起来,以为我们只要招来一个运维开发,那么一套完美的运维平台就能自动诞生出来,这是个很大的误区。 其实「好使的运维系统」真正等价于「运维理解」+「开发能力」,这两种能力也是可以分离的,不一定要强加在运维开发工程师一个人的身上。 类似其他业务形态的开发过程,需要产品经理和程序员两种角色分离,企业也不会说要招聘既会写代码、又会出需求的程序员。 所以,当资深运维能把运维自动化的需求细致地文档化下来,把自动化系统的设计、架构等关键环节确立下来,这就是最好的「运维理解」。 这时把这份靠谱、好使、细致的需求文档交给具备强「开发能力」的程序员,最终就可以得到「好使的运维系统」。 当然,资深运维要获取产品经理能力也不是那么简单,而且也需要和运维开发无障碍地探讨技术,个人觉得必须具备且不限于以下技能包: 产品规划、产品设计、面向对象、需求模型、领域模型、设计模型、设计原则、设计模式、产品工具和文档能力等。 所以,当运维需求被理解、分析得足够透彻,以及资深运维获得了「产品经理」能力后,运维开发就是一种普通的开发分支,按需求文档编码即可。 再往高级发展的话,运维开发也可以替代资深运维出需求,升级为运维产品经理,以程序员的思维角度来解决运维服务的工程效率和质量问题,我认为这也是类似 Google 所提倡的 SRE 文化。 最后,很多运维可能考虑要不要转运维开发,当你觉得编码的乐趣远远大于其他运维技能的时候,尽管争取努力去转! 把自己当成一个真正的程序员,以程序员的评价标准来要求自己,不要觉得运维能力和编码能力各自半桶水是好事,正如我前面的那句话:“运维开发首先是一个程序员,不是运维工程师 。” 运维服务体系与技能水平量化 每个运维工程师心中其实都有自己的想法,不妨用思维导图的形式将其列出来,找出自己感兴趣的点,持续深入,打造自己的核心竞争力。 而思维导图也可以继续往横向纵向扩展,形成自己心中完整的一套运维概念。 下面跟大家分享一张思维导图,展示我个人心中的运维服务体系。当然,这里面还有很多可以展开,但细节就不方便透露了,这属于个人经验未必能适用其他运维团队。 由于运维一般讲究广度而忽略了深度,所以容易导致自身的技术栈广而不精的情况,那怎么量化自己的技能水平足够深入呢? 举一个大家都熟悉的 MySQL 技能作为例子,如果把 MySQL 水平定义成 1~10 级,下面是我对各种级别水平的理解。 为何要量化技能呢?因为人的时间、专注力毕竟有限,如何把精力分配到不同的技能上,需要一定的策略。 正常情况下,大家把精力平均分配到各种具体技能,希望可以做到面面俱到,但不会太深入某项技能,所以技能水平达到的级别落在 1~3 之间。 如路人 A 的技能水平表是这样的:(当然还有其他技能项,如网络、安全等等,这里只是简化了方便讨论)。 最低要求 运维是一种需要技能面比较广的工种,大家普遍都是处于技术面广但不深的状态,我把 2 级定义为科普级,意思是达到该级就可以满足各种日常工作要求。 所以说上面的路人 A,最好尽快争取把还在1级水平的 Shell 和 MySQL 都提升到 2 级,就可以满足日常工作要求,这也是我们对运维工程师的最低要求。 进阶要求 除了满足最低要求之外,培养自己的核心竞争力,为日后的发展打下基础,推荐大家对 1~2 项深入学习,达到 4、5 级甚至更高的水平。 随着互联网运维行业的各种 PaaS、IaaS 普及后,自动化程度越来越高,现在已经不像以前那样需要那么多「操作员」。 也就是说,技能水平偏低的运维急需技能升级或者技能转型,能支撑你走多远的不是那些 1、2 级的技能,而是 4、5 级以上的技能。 写在最后 本文是笔者个人对运维以及其职业发展的一些浅薄理解,总的来说,运维还是一个比较有意思且有良好发展的职业分支,虽然偶尔也要背黑锅,但也欢迎更多努力、聪明、有才华的同学加入运维行业。 原文发布时间为:2018-03-28 本文作者:温峥峰 本文来自云栖社区合作伙伴“ 数据和云”,了解相关信息可以关注“ 数据和云”微信公众号

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

OAuth2.1授权服务器Spring Authorization Server正式孵化成功进入Spring项目家族

今天Spring官方宣布 Spring Authorization Server 已正式退出实验状态并进入Spring 项目的产品家族! 此举恰逢本周的 0.2.0 版本发布,这是第一个正式支持的生产就绪版本。 自2020 年 4 月Spring Authorization Server公布以来以来,已经实现了OAuth 2.1 授权协议的绝大部分,并为 OpenID Connect 1.0 提供适度支持。随着该项目进入下一个开发阶段,其重点将转向推进对 OpenID Connect 1.0 的支持。 Spring 官方表示: 感谢在这么短的时间内为该项目做出贡献并帮助其发展的所有人。我们对当前构建的项目基石充满信心,并对Spring Authorization Server进入下一个生命周期非常兴奋。我们期待共同继续这项工作,并最终使 Spring Authorization Server 成为 Java 平台上支持 OAuth 2 Authorization Server 的实施标准。 目前Spring Authorization Server初步进入生产就绪状态,在Github上拥有了新的代码仓库: https://github.com/spring-projects/spring-authorization-server 扩展阅读 Spring Authorization Server是由Spring Security团队领导的 专注于向Spring 社区提供OAuth 2.1 Authorization Server支持的项目。 学习使用Spring Authorization Server之前你必须熟悉Spring Security中相关的核心模块: OAuth2.0 核心 OAuth 2.0 客户端 OAuth 2.0 资源服务器 OAuth 2.0 JOSE 类库 关注公众号:Felordcn获取更多资讯 个人博客:https://felord.cn

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

go-zero 进入 CNCF 云原生技术全景图 & v1.2 版本发布

go-zero 1.2 发布了。go-zero 是一个集成了各种工程实践的 web 和 rpc 框架。通过弹性设计保障了大并发服务端的稳定性,经受了充分的实战检验。go-zero 包含极简的 API 定义和生成工具 goctl,可以根据定义的 API 文件一键生成 Go, iOS, Android, Kotlin, Dart, TypeScript 代码,并可直接运行。 本次更新内容包括: 框架: 支持 k8s 服务发现,使用k8s://namespace/service:port作为 RPCTarget配置值即可。更多服务发现方式可以通过插件方式支持,比如 consul, nacos 等。 logx content 字段支持 json 内容,logx.Infov/Errorv/Slowv. logx 可以禁用统计日志,logx.DisableStat(). 更多改进和 bug 修复。 goctl: 优化了 goctl mongodb 在不带 cache 情况下的代码生成 优化了 gRPC 代码生成 优化了 model 生成时的命名 goctl 打印 error 时带上了版本和详细信息 #915解决了 gRPC 内联类型的代码生成 #925,#929优化了 mysql 的 NULL 数据类型转换 #968解决软连接代码生成问题 更新详情查看:https://github.com/tal-tech/go-zero/releases

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

WebStorm

WebStorm

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

用户登录
用户注册