阿里云我是程序员

对话阿里云 MVP:怀里橘猫柴犬,掌上代码江湖

2020-01-15  本文已影响0人  阿里云云栖号

阿里妹导读:郭旭东是阿里云MVP,这个92年的开发者,难能可贵地兼具朝气蓬勃的技术能量与长远深刻的行业洞见。独自承担DevOps平台从0到1的所有工作,并且始终在学习。业余生活几乎都在撸猫遛狗的铲屎官,在云原生也有自己的一片天地。今天,我们专访阿里云 MVP 郭旭东。

自我驱动,成就非凡

我负责开发自研的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 翻译也不是什么丢人的事情。

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

给年轻人的建议

1.不给自己设限

不要给自己设限,将自己限制为“Java开发工程”、“运维工程师”这样的角色中,只把自己圈在有限的圈子中。在工作之外,尝试去做一些自己本职工作以外的事情,尤其是那些能给你带来巨大成就感和收获的事情,有时候“出圈”可能收获的更多。就像之前4岁小女孩给Linux内核贡献提交的事情,社区是开放的,任何人都可以参与进来;社区又是严谨的,只要有错误,任何人都可以修改它,并不是“大神”们的专利。

2.寻找新的东西来学习

软件行业日新月异,尝试去接触新的东西,不断的学习才能不被时代抛弃,而在学习的同时可以很自然的了解到自己的不足,这样就不会陷入对新事物的恐惧,或对已有知识的满足的泥潭当中。而在不断学习新东西的时候,很可能发现自己真正感兴趣的东西,从而投身其中,这对我们这一代在应试教育中成长起来的“迷茫青年”很有帮助,至少对我是这样的。

3.提升效率

不要放过任何一个提升效率的事情,我是一个很懒的人,面对繁琐重复的工作,都会想方设法将其做成自动化的;工作时记得给自己列TODOList,合理分配时间,不要将工作都堆到deadline的时候。

4.乐于分享

这是我学习的秘诀,通过不断的分享,在分享中知识很容易被牢记。可能是因为我比较笨,光阅读或者背诵的内容很快就会遗忘,但是在分享中,那些不易记忆同时又零散不堪的知识却奇迹般的留存于脑海之中,很难遗忘。以上是来自于阿里云 MVP 郭旭东的的分享,代码成就人生,程序员改变世界。阿里云 MVP郭旭东也在用他的努力,让我们的生活更加便利。

“点击此处”,申请成为阿里云 MVP。



本文作者:阿里云 MVP

阅读原文

本文来自阿里云合作伙伴“阿里技术”,如需转载请联系原作者。

上一篇下一篇

猜你喜欢

热点阅读