• 简介: 跟郭旭东聊过之后,我对程序员的敬佩又多一分。这个92年的开发者,难能可贵地兼备朝气蓬勃的技术能量与长远深刻的行业洞见。独自承担DevOps平台从0到1的所有工作,我打趣说超级开发者不过如此,他却谦虚地表示差得还远,始终在学习。业余生活几乎都在撸猫遛狗的铲屎官,在云原生也有自己的一片天地。

以下为郭旭东的专访内容,欢迎收看(约4分钟)。

自我驱动,成就非凡

我负责开发自研的DevOps平台Varian,可以说是工作中遇到过的最大难题了。整个平台由我一手搭建,从技术选型、产品设计,到代码编写、开发测试,甚至营销宣传的工作也要自己来做。对于一个习惯根据需求文档来写代码的程序员来说,是很恐怖的一件事,甚至接到任务的第一天就怕到想跑路了。但是领导的一句话:“怕什么,放手去干,做砸了也不会怪你”,给了我很大的信心,于是就放开手脚,大胆去干,反而后来越做越好了。

当时整个项目只有我一个人做,准确点说,整个部门只有我一个运维开发,其他都是从事业务开发的Java程序员,我兼任了产品、开发、测试、运维等所有角色。本身我只是一名后端开发,前端的内容也要捡起来现学,从页面的设计到实现的功能,都要一个人解决。这些技术的问题还好解决,最难的角色转换其实是产品,每天都要想方设法地给自己提需求,甚至睡觉做梦的时候都在画页面原型,同时疯狂地参加各种技术交流会,企图从别人的实践那里获得灵感。而我们的系统又是内部系统,是提供给开发和运维同学来使用的,大家都有自己的使用习惯,所以也要经常向内部团队收集需求等等。

一开始就是普通程序员,只会业务代码,没什么深入研究。负责整个平台后,要考虑整个项目流程管理,成长速度是非常快的。在不断的分享交流中,视野慢慢打开了,想做的也就越来越多了。

现在项目越做越大,团队人也很多,但运维人数只有5个,通过DevOps平台负责公司所有云资源的管理和维护,基础设施组件(代码管理平台、CI/CD 系统、资源监控系统、Kubernetes 容器管理平台、办公OA系统、项目跟踪&文档管理系统等)的开发和维护,同时也负责公司所有的IT设备的维护。DevOps平台也是随着团队的壮大不断迭代,由最初的一个由Django开发的单体应用,发展成由核心服务、CMDB服务、监控服务、消息通知服务和 CI/CD 服务组成的云原生应用。

DevOps平台现在着力于提升开发效率,降低开发与运维之间的沟通成本,由机器处理大量繁琐的运维任务,节约人力成本,使开发和运维能更专注于业务开发与维护,同时借助 Kubernetes 的容器编排和弹性能力更是释放出了大量的运维时间。2019年在业务不断增加、服务数量直线上升的情况下,ECS服务器数却在负增长,真正达到了降本增效的目的。

云原生是未来趋势

我觉得云原生是开源精神最完美的体现,把各个大厂、曾经的竞争对手拉到一起共同解决问题,对推动软件发展是非常有利的。我们自己也在坚持云原生项目的输出,实践并反馈问题解决方案给上游,大家一起讨论、协调、修复。最近一年在开源方面,我为sig-cli 的子项目 Kustomize提供了完整的中文文档,让更多的中文开发者可以更接近云原生生态。同时 Istio 和 Kubernetes 也有中文文档的贡献。以前大家只关注自己的代码和项目,现在提交后共同建立项目,减少竞争和许多不必要的麻烦,社区的声音被重视,反而人越来越多,生态越来越好,算是真正发挥了开源精神。

阿里云和微软合作的OAM项目和阿里开源的混沌实验实施工具 chaosblade 是我最近比较关注的。全球首个云原生应用标准定义与架构模型,应用点分离,让管理更轻松,交付更可控;应用定义与平台层实现解耦,应用描述支持任意扩展和跨环境实现;可以自由组合和支持模块化实现的运维特征描述。可以大大降低 k8s 的入门成本。混沌工程属于一门新兴的技术学科,行业认知和实践积累比较少,大多数IT团队对它的理解还没有上升到一个领域概念。阿里开源的 chaosblade 则很好的提供了一款简单易用、功能强大的混沌实践注入工具。

进一步海阔天空

当初因为独立负责项目,心里发虚,就经常去参加各种技术分享,包括网络交流,在学习的同时增长见识,渐渐就能参与其中。在学习技术方面,我推荐走出去和别人讨论、分享,当给别人讲明白,讲透彻了,自己也就精通了,这样学习的知识就很不容易忘记。而学习的过程中难免要跟外籍小伙伴交流,比如Github讨论,不要因为英语不好而退缩,英文本非我们的母语,只要表达意思明确,问题描述详细,即使是使用 Google 翻译也不是什么丢人的事情。

现在国内有很多人在把优秀开源项目的文档翻译成中文文档,同时越来越多的中国人在著名项目中起着重要作用,我们比自己想象得更优秀。克服了接触新事物的本能恐惧之后,就是另一片天地了。

代码成就人生,程序员改变世界。阿里云 MVP郭旭东也在用他的努力,让我们的生活更加便利。

怀里橘猫柴犬,掌上代码江湖——对话阿里云 MVP郭旭东的更多相关文章

  1. “不是不需要运维工程师,是人人皆是运维”|对话阿里云MVP蒋烁淼(上)

    摘要: 与湖畔大学首期学员.阿里云MVP.驻云创始人蒋烁淼面对面 [三位阿里云MVP(驻云CEO.首席架构师.大数据总监)<MVP时间>首次同台授课,“湖畔第一大脑” 蒋烁淼领头线上精讲, ...

  2. 将nodejs代码部署到阿里云服务器

    概述 最近在做一个小项目,其中用nodejs做了个数据转发的接口,之后需要将这部分代码部署到服务器上面,并使用Nginx做反向代理.期间使用搜索引擎大量查阅了其他同鞋的经验,不过写的大多很笼统,因此踩 ...

  3. OSS上传文件到阿里云

    最近做项目,需要上传文件,因为上传到项目路径下,感觉有时候也挺不方便的,就试了一下上传文件到阿里云oss上去了, oss的使用网上有很多介绍,都是去配置一下需要的数据,然后直接调用他的api就可以了. ...

  4. 将html代码部署到阿里云服务器,并进行域名解析,以及在部署过程中遇到的问题和解决方法

    本博客主要是说一下,,如何将html代码部署到阿里云服务器,并进行域名解析,以及在部署过程中遇到的问题和解决方法. 1.先在阿里云上购买一台阿里云服务器(ECS云服务器): 2.远程连接上该服务器,在 ...

  5. PHP 上传文件至阿里云OSS对象存储

    简述 1.阿里云开通对象存储服务 OSS 并创建Bucket 2.下载PHP SDK至框架扩展目录,点我下载 3.码上code 阿里云操作 开通对象存储服务 OSS 创建 Bucket 配置Acces ...

  6. Docker-生成镜像、服务搭建(redis集群、kibana、运行项目jar包)、上传镜像至阿里云

    目录 生成自己的镜像 1.下载官方tomcat镜像 2.运行镜像后将webapp目录里新增文件(官方镜像是没有页面的 具体操作见) 3.使用docker ps -a 查看刚刚修改后的容器id 4.执行 ...

  7. 关于富文本编辑器ueditor(jsp版)上传文件到阿里云OSS的简单实例,适合新手

    关于富文本编辑器ueditor(jsp版)上传文件到阿里云OSS的简单实例,适合新手   本人菜鸟一枚,最近公司有需求要用到富文本编辑器,我选择的是百度的ueditor富文本编辑器,闲话不多说,进入正 ...

  8. 如何在IIS上发布网站 在阿里云服务器windows server2012r iis上部署.net网站

    如何在IIS上发布网站   本片博客记录一下怎么用IIS发布一个网站,以我自己电脑上一个已经开发完成的网站为例: 1.打开项目 这是我电脑上的一个项目,现在我记录一下将这个项目发布到iis上的整个过程 ...

  9. 上传文件到阿里云 oss,前端 browser.js 笔记

    Web端常见的上传方法是用户在浏览器或App端上传文件到应用服务器,应用服务器再把文件上传到OSS. 和数据直传到OSS相比,有以下缺点 上传慢:用户数据需先上传到应用服务器,之后再上传到OSS 费用 ...

  10. 【UEditor】 UEditor整合项目上传资源到阿里云服务器

    目录 关于此文 下载源码 JSP代码 Java代码 阿里云jar包引入配置 成功啦! 回到顶部 关于此文 项目中要实现编辑器生成带格式的html文档,存入模板,最后生成html的URL,所以选择了UE ...

随机推荐

  1. Android Studio虚拟机文件默认C盘转移其他盘

    原文地址:Android Studio虚拟机文件默认C盘转移其他盘 - Stars-One的杂货小窝 某天发现,新创建的Android13模拟器,把我C盘搞得只剩下9G了,于是折腾了下,把模拟器相关文 ...

  2. 移植openssh-7.5p1(包括openssl-1.0.2l、zlib-1.2.11)到HISI3520d(部署篇)

    PS:要转载请注明出处,本人版权所有. PS: 这个只是基于<我自己>的理解, 如果和你的原则及想法相冲突,请谅解,勿喷. 前置说明   本文作为本人csdn blog的主站的备份.(Bl ...

  3. java的接口和抽象类区别

    转自:深入理解Java的接口和抽象类 对于面向对象编程来说,抽象是它的一大特征之一.在Java中,可以通过两种形式来体现OOP的抽象:接口和抽象类.这两者有太多相似的地方,又有太多不同的地方.很多人在 ...

  4. 喜讯!瑞云科技被授予“海上扬帆”5G融合应用专委会成员单位

    2022年7月19日,5G应用"海上扬帆"行动计划云启航大会暨"海上扬帆"融合应用专委会成立大会在沪成功举办. 受上海信通院工创中心邀请和信任,深圳市瑞云科技有 ...

  5. .Net MinimalApis响应返回值

    前言 文本主要讲 MinimalApis 中的使用自定义IResultModel和系统自带IResult做响应返回值. MinimalApis支持以下类型的返回值: string - 这包括 Task ...

  6. rust结构体包含另一个结构体引用时,serde序列化问题

    代码如下 use serde::{Deserialize, Serialize}; #[derive(Serialize, Deserialize)] struct Person { id: Stri ...

  7. AI实用指南:5分钟搭建你自己的LLM聊天应用

    今天,我们将迅速着手搭建一个高效且富有创意的混元聊天应用,其核心理念可以用一个字来概括--快.在这个快节奏的时代,构建一个基础的LLM(Large Language Model,大型语言模型)聊天应用 ...

  8. hadoop集群查看所有主机的jps进程情况脚本文件

    jpsall代码 #!/bin/bash for host in hadoop102 hadoop103 hadoop104 do echo =============== $host ======= ...

  9. python 国家标准行业编码标准格式化处理

    代码在上次的基础上做了一点优化,之前对项目要的最终结果理解有些偏差: 原始数据的那一列行业编码是存在三位数和四位数的,我上次理解的三位数就是分割成两位数进行查找,其实三位数的编码是由于第一位的0没有显 ...

  10. 【已解决】hive导出mysql报错:Container [pid=3962,containerID=container_1632883011739_0002_01_000002] is running 270113280B beyond the 'VIRTUAL' memory limit.

    问题描述 Container [pid=3962,containerID=container_1632883011739_0002_01_000002] is running 270113280B b ...