微服务开发人员的七个基本技能

微服务越来越受欢迎,越来越多的开发人员开始使用微服务。如果你是一个开发微服务体系结构的开发人员,或者是想要雇佣一个人的雇主,那么,微服务开发人员最重要的技能是什么?继续往下读,找出答案。

与任何新兴的技术和趋势一样,要掌握它还需要学习一些东西。作为开发人员,我们的工作的本质是——紧跟最新、最伟大的模式和体系结构。那么,要想做好这些微服务,你现在能做些什么呢?您应该寻找谁加入您的面向微服务的团队?在这里,我总结了七个基本技巧,它们可以帮助开发人员在使用微服务时感到自在:

架构

熟悉常用的微服务模式是非常必要的。我建议去官网看看Spring Cloud提供的内容,您将会对微服务的架构有更好的理解。如果您不了解标准模式,您将尝试解决已经解决的问题,您将不可能选择最佳的解决方案。

我也强烈建议在看这篇文章之前,先看看Sam Newman的《构建微服务》。通过阅读本文,您一定会了解模式和最佳实践,尽管是以一种无框架的方式。

结合了解Spring Cloud这样的微服务框架和构建微服务的好书知识,您将在微服务世界中获得一个良好的开端。

领域建模

即使您非常理解您的体系结构和模式,但是要在微服务上取得成功仍然不是那么容易。在系统的不同部分之间分担责任会很快变得非常困难。你需要擅长领域建模和理解如何分配责任。我可以推荐的一个技巧是多画一些。与您的团队和参与该项目的其他人一起绘图是促进对该领域的共享理解的一个很好的工具。

对软件开发人员来说,善于链接领域和设计是一项普遍有用的技能。如果您想深入了解这个主题,您可能需要检查域驱动设计。有很多关于这个主题的书籍和文章,你也可以去看看!

Devops和容器

成功的微服务背后的理念是以Devops的方式工作。就本文而言,这意味着从编写代码到在生产环境中部署,都要拥有服务的所有权。即使您不打算部署它,您也应该知道如何部署它。您将不得不对容器、Docker、Kubernetes等有所了解。好消息是您可以在您的机器上安装Docker,它是一个非常有用的工具!

除了容器,你还需要知道什么?队列、消息、数据库、一些云(AWS, Azure)……哇,好像很多!别担心,如果你在Devops团队工作,可能会有一些经验丰富的同事可以帮助你。没有人会在一夜之间成为专家,但是如果你没有接触过操作方面的知识,学习其中的一些技术对你来说可能是全新的。

好消息是——这些可以是有趣的、有挑战性的、有用的!

如果有一本书我可以推荐你去看看,以便对你的Devops思维和技能有更大的信心,它将是Devops手册,基于非常有趣的Phoenix Project书。

安全

正如您所想象的,保护许多事情比保护一件事情要困难得多。随着微服务的出现,安全问题在每个人的脑海中所占的比例要比在所有人都在使用单体架构应用的时候高得多。您应该学习哪些特定的安全知识?我确实建议您查看常见的单点登录(SSO)实现,特别是在OAuth2相关的技术上。Spring Cloud Security专门可以教给您一些最佳实践,并为您提供实现安全微服务的好主意。

在处理分布式架构时,还有什么其他的安全问题?在rest中保护数据,保护配置——微服务有自己的配置和数据。这些地方的安全常常受到威胁。

引用山姆·纽曼的书中的一条规则,我认为非常重要:不要发明你自己的安全协议。

测试

我注意到,由于微服务比大型单片应用程序更小,看起来也不那么严肃,也不那么商业化,一些开发人员忽略了测试。请不要这样做!微服务为创建经过良好测试和健壮的解决方案提供了大量的机会,所以不要仅仅因为它不是微不足道的,或者单元测试似乎不是答案,就把它传递出去。那么你应该考虑什么样的测试呢?

我的观点是:

单元测试(是的,这些仍然很重要!)

服务/ API测试——您希望尽可能彻底地测试您的端点

集成系统的端到端测试(持续集成在这里非常有用)

持续集成

正如我在前面提到的,端到端测试非常重要。通过微服务系统,确保一切正常工作,您应该看到微服务能够正确地交互。您只能在单独测试这样复杂的系统时走这么远。处理这个问题的最好方法是建立持续集成。无论何时您将代码合并到master(我希望您正在执行拉取请求!),您都应该自动部署到运行不同测试的集成环境中(并且团队成员可以参与一些探索性测试)。

所以,不要再找借口和手工部署了,现在是时候为您所使用的CI设置和学习Jenkins/Teamcity或任何工具并充分利用它了!这一点在一定程度上是Devops技能的扩展,但也足够重要,值得一提!

团队合作

最后但并非最不重要的一点是,你确实需要接受团队合作,并学会与人合作。当你在一个非常大的系统中写一小部分的时候,你更容易把自己孤立起来,生活在自己的泡泡里。多重集成系统和Devops文化意味着你必须与人们进行大量的互动!

这强调了全面的大合作是大微服务的先决条件。当人们之间缺乏微服务时,如何在微服务之间进行良好的通信?有了良好的团队合作,一切都会更好!

总结

微服务作为一种趋势,给软件开发者的日常生活带来了很大的变化!有一种新的工作方式——Devops,这可能会颠覆我们曾经的工作方式!我认为对于我们所有人,软件开发社区的成员来说,这是一个伟大的机会,让他们学到更多的东西,并比以往更加有效!不要害怕这种变化——要激动!

原文发布于微信公众号 - 程序你好(codinghello)

原文发表时间:2018-06-24

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏ThoughtWorks

持续交付模式下的安全活动|洞见

在上一篇文章《开发团队面临的三大安全挑战》中,我们对现如今敏捷精益团队所面临的安全挑战进行了总结和分析,这三大挑战分别是: 一次性的安全检查无法匹配持续性的交付...

30360
来自专栏云计算D1net

云计算等新兴技术如何影响服务器市场

在云计算盛行的今天,云计算不可避免会对服务器销售产生影响。一些企业特别是新创企业和小企业,他们往往将选择至少将一部分基础设施移动到云上,而不是维护自己的数据中心...

32250
来自专栏魏艾斯博客www.vpsss.net

记一次与腾讯云客服工单/电话沟通的过程

网站遇到问题发工单到腾讯云客服询问,从开始直到最后解决这个问题,老魏把整个与腾讯云客服工单/电话沟通的过程记录下来,希望能给初期接触云服务器运维的新手提供一些参...

770100
来自专栏大数据挖掘DT机器学习

【方法】理清网站数据分析思路导图

下图是一个网站分析的生命周期示意图,在确认好分析需求并收集好我们所需要的数据后(强调一下,明确分析需求很重要,这可以避免为了分析而分析),我们就可以充分使用网站...

39650
来自专栏云计算D1net

想开发云应用程序?先选择合适的PaaS!

从一个方面来分析,开发云应用程序的平台即服务模式有两种:一种是专用模式,托管在本地或私有云中;另一种是公共模式,由第三方提供商来托管,并采用订阅支付模式。那只是...

43160
来自专栏IMWeb前端团队

前端进阶之路:如何高质量完成产品需求开发

本文作者:IMWeb 陈映平 原文出处:IMWeb社区 未经同意,禁止转载 写在前面 作为一个互联网前端老鸟,这么些年下来,做过的项目也不少。从最初的...

30060
来自专栏张善友的专栏

.NET微服务调查结果

.NET Core就是专门针对模块化的微服务架构而设计, 在2018年国庆时间展开.NET微服务的使用情况,本次调查我们总计收到了来自378个开发者的调查。从落...

43650
来自专栏祝威廉

为什么需要效率督查团队

上周和杭州某司同学面基,发现我们两同一年毕业,同一年出生,还是老乡,真是颇感意外。本来约好了是聊技术的,结果硬生生的聊成了如何提高团队效率的心得交流会。

11020
来自专栏SDNLAB

未来,AI可用于5G网络分析

现在很多博客和供应商的论文,内容涉及5G,涉及从新媒体传输到千兆位速度再到移动设备等各个方面。凭借看似无限的带宽可能性,移动到5G的附加值很明显,但我们需要考虑...

7910
来自专栏ThoughtWorks

钟健鑫:《Docker打造App-Centric交付》

作为一家服务于全球不同类型客户的IT专业服务公司,ThoughtWorks一直追求最卓越的技术,并用它们来解决客户实际的问题。而为了体现技术卓越,Thought...

28680

扫码关注云+社区

领取腾讯云代金券