前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >微服务开发人员的七个基本技能

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

作者头像
程序你好
发布2018-07-23 09:29:27
4350
发布2018-07-23 09:29:27
举报
文章被收录于专栏:程序你好程序你好

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

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

架构

熟悉常用的微服务模式是非常必要的。我建议去官网看看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,这可能会颠覆我们曾经的工作方式!我认为对于我们所有人,软件开发社区的成员来说,这是一个伟大的机会,让他们学到更多的东西,并比以往更加有效!不要害怕这种变化——要激动!

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-06-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 程序你好 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
持续集成
CODING 持续集成(CODING Continuous Integration,CODING-CI)全面兼容 Jenkins 的持续集成服务,支持 Java、Python、NodeJS 等所有主流语言,并且支持 Docker 镜像的构建。图形化编排,高配集群多 Job 并行构建全面提速您的构建任务。支持主流的 Git 代码仓库,包括 CODING 代码托管、GitHub、GitLab 等。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档