首页 > 其他分享 >Go语言Golang DevOps运维开发实战

Go语言Golang DevOps运维开发实战

时间:2022-12-14 11:15:09浏览次数:54  
标签:实战 运维 DevOps Golang 开发 Go

Go语言Golang DevOps运维开发实战

提高运维意识。
从下到上,从上到下的工作都要做好,对上运维工作的价值和含金量可以得到认可,对下我们的工作能够提高效率解放运维。
运维意识是很重要,并不是你技术很牛,学的技术很多很熟,就不代表你不需要运维意识。
其实领导很看重运维意识的,例如有没有做好备份,权限分配问题,平台测试情况,故障响应时间等,这些都是意识,而不是你学了很多技术自认大牛了,平台发现故障你又没什么大不子,以为很简单的问题喜欢处理就处理,不需要向其它部门反馈等,领导不是看你的技术如何,而是看你的运维意识如何,你没运维意识,技术再牛也没用,只会让其它部门的人跟你不协调。
了解业务场景
DevOps平台最终服务于运维部和开发测试部同事,因此只有熟悉了解了每一项业务的运维场景,才能更好去设计功能与代码开发,熟悉业务场景才能方方面面考虑周全,开发出来的代码才能满足各类场景应用。
拒绝重复犯错
人难免会犯错,这是无法避免的,我们应当根据已有的犯错经验,总结犯错的原因,以及如何避免同类情况再次发生,甚至可以把一些典型的错误在团队中分享,把一个人的错误得到的经验传播于整个团队。
凡事有备份,可回退
运维工作中经常有一些发布,迁移,备份等复杂操作,因此,在研发DevOPs平台的时候,要做好全面的操作计划,思考每一步可能的回退与备份。
平台操作尽量简化
DevOps平台目的就是为了能够提高运维的工作效率,解放运维,因此在设计与开发的时候,应当保持操作简单,不要让事情变得太复杂,能点一下到位的,尽量不要让人点五六下才能完成操作。
注重优化用户体验
DevOps开发是一个迭代的过程,虽然我们常说以功能开发为主,但是用户体验也同等重要,试想一下,纵使你开发的功能众多,如果体验不友好,用户便失去了再次使用的欲望,如果用户拒绝,抵触使用平台,做再多功能也是失败,最终平台推广失败。因此,在研发的过程中,我们应当深入体验自己开发的产品,把自己当成用户去体验平台操作。尽可能的去优化用户体验。这是一个优秀的运维开发工程师必需要懂的。
在设计与开发的过程中经常会碰到复杂,繁琐的场景,这个时候我们很容易失去耐心,我们要时刻提醒自己,必须严格履行自己的工作职责,端正自己的工作态度,做一件事,要么不做,既然做了就要做好:当你想要放弃的时候,想想当初为什么要开始。
对运维开发以及其职业发展的一些浅薄理解,总的来说,运维开发还是一个比较有意思且有良好发展的职业分支,虽然偶尔也要背黑锅,但也欢迎更多努力、聪明、有才华的同学加入运维开发行业。

无产品、无设计、需求也是靠业务运维和开发们的口头描述。

其中的核心功能:应用部署界面,在参考其它同类产品后,发现都不适合业务场景,要么功能太分散,要么就仅是流程控制。于是前端功能里,我们做了这些:

区分不同环境下的包,实现有序管理。
应用的状态可以通过界面做启停、查看配置等任务。
Jenkins服务操作可通过界面完成,简化配置工程师的工作。
业务运维与开发团队的日常发包工作界面化

此时一个优秀的运维开发需具备以下技能:产品规划、产品设计、面向对象、需求模型、领域模型、设计模型、设计原则、设计模式、产品工具和文档能力等。
所以,当运维需求被理解、分析得足够透彻,以及运维开发获得了「产品经理」能力后,运维开发就是一种普通的开发分支,按需求文档编码即可

其实「好使的DevOps系统」真正等价于「运维理解」+「开发能力」,这两种能力也是可以分离的,不一定要强加在运维开发工程师一个人的身上。
类似其他业务形态的开发过程,需要产品经理和程序员两种角色分离,企业也不会说要招聘既会写代码、又会出需求的程序员。
所以,当运维能把运维自动化的需求细致地文档化下来,把自动化系统的设计、架构等关键环节确立下来,这就是最好的「运维理解」。这时把这份靠谱、好使、细致的需求文档交给具备强「开发能力」的程序员,最终就可以得到「好使的运维系统」。
当然, 一般企业不会专门为运维开发配备「产品经理」,所以运维开发想要再往高级发展的话,也可以替代运维出需求,升级为运维产品经理,以程序员的思维角度来解决运维服务的工程效率和质量问题,我认为这也是类似 Google 所提倡的 SRE 文化。

运维开发首先是一个程序员,不是运维工程师。
一个好的运维开发需要具备 「运维理解」+「开发能力」:

对「开发能力」的技术要求低于其他业务形态(如游戏、电商、搜索等)。
对运维业务的理解难度会低于电商、游戏等业务形态,即对「运维理解」的要求不高。
对运维相关技术栈的掌握程度要求高,如Python/PHP/Go/Shell、 Linux、Git、Nginx、Zabbix、Docker、K8S等。
Go语言Golang DevOps运维开发实战Go语言Golang DevOps运维开发实战Go语言Golang DevOps运维开发实战Go语言Golang DevOps运维开发实战Go语言Golang DevOps运维开发实战Go语言Golang DevOps运维开发实战Go语言Golang DevOps运维开发实战Go语言Golang DevOps运维开发实战Go语言Golang DevOps运维开发实战

标签:实战,运维,DevOps,Golang,开发,Go
From: https://www.cnblogs.com/python9090/p/16981519.html

相关文章

  • 「笔记」某移动SRE运维体系交流
    痛点传统竖井式IT架构(封闭、隔离、非标、难运维)X86服务器硬件稳定性不足开源软件可靠性不足,且不可控出了故障,被动救火救不完转型由此催生了转型升级的需求:运维......
  • mysql 将字段复制到另一个字段(数据运维)
    1.将同一个表中的一个字段的值复制给另一个字段UPDATEt_userSETsigned_time=create_time  create_time  是源数据,signed_time是目标数据,之前是空的2.将同一个......
  • 《Redis DevOps》二:API的理解和使用
    概述数据结构与内部编码优点:1)改进内部编码时,对外数据结构与命令无影响2)多种内部编码适配不同使用场景单线程架构单线程访问快速的原因:1)纯内存访问2)非阻塞IO,ep......
  • 《Redis DevOps》一:初识Redis
    初识Redis简介Redis(REmoteDictionaryServer)是一种基于键值对的NoSQL数据库,主要有string/hash/list/set/zset5种基本数据结构,字符串演变出bitmaps位图和HyperLogLog,3.2......
  • golang的net包net.Dial和net.Listen
    在Go中,网络编程主要通过net包实现。支持包括TCP/IP、UDP、域名解析和Unix域socket等连接,此外,还通过net/http,net/rpc等提供了HTTP,RPC等主流应用层的连接协议。TCP服......
  • Go-15 Golang语言中time包以及日期函数
    packagemainimport( "fmt" "time")//Golangtime包以及日期函数funcmain(){ /* 1.time.Now()获取当前时间 2.Format方法会格式化输出日期字符串 3......
  • 入门Linux运维工程师需要掌握的知识点和工具以及技能
    Linux系统的学习,可以选用redhat或centos,特别是centos在企业中用得最多,当然还会有其它版本的,比如Ubuntu等,根据自己的工作情况和兴趣来定。当然不同发行版本主要是包上的区别......
  • golang interface对象的比较会同时比较类型和值
    今天使用以往的工具函数来判断对象是否存在于列表时,发现明明存在的元素,一直返回了false,很奇怪,后来才想起来interface类型的对象除了比较值,还会比较类型,类型不对,同样匹配......
  • golang ast获取注释信息
     packagemainimport( "go/ast" "go/parser" "go/token" "log" "path/filepath")typeVisitorstruct{ fset*token.FileSet}func(v*Visitor)Visit(......
  • golang windows endless 运行报错 undefined: syscall.SIGUSR1
    为了gin服务的热更新,采用了 endless+fresh的方案,安装endless后无法在windows本地调试,采用以下解决方案就好了解决地址:​​golangwindows运行报错undefined:syscall.SI......