微服务架构在企业内的应用问题探讨(一)

作者:shawn

前言

当前流行的微服务架构是一种将单个应用程序开发成一套小型服务的方法,每个应用程序都在自己的进程中运行,并与轻量级机制(通常是 HTTP 资源 API)进行通信。
这些服务是围绕业务功能而构建的,并可由自动化部署机制来独立部署。微服务只有最低限度的集中管理,可以用不同的编程语言编写,并使用不同的数据存储技术。
简单地说,微服务就是一种面向服务的软件架构,在这种架构中,服务器端应用程序是通过组合许多单用途、小容量的网络服务来构建的。微服务架构让边界设计良好的服务的失效互不影响成为可能。


微服务架构在消费互联网得到了非常良好的应用和验证。随着企业数字化转型的需求兴起,微服务的很多优势和特性也受到了企业IT团队的关注:更快的开发、更好的可扩展性、更小的独立团队、独立的部署、使用正确的技术来完成工作等等。

但是,微服务与炙手可热的分布式系统架构是否适合企业级应用,这在业内一直是有不同的声音的。很多企业IT部门在自建微服务架构系统时,往往会碰到各种各样的问题。

在这里我们总结和列举了常见的8个问题供大家参考——

01 企业开发负责人低估了开发微服务的复杂性

许多非常看好微服务的企业IT经理人认为微服务就是解决他们所有问题的灵丹妙药,但大多数技术团队及其管理者低估了微服务开发的复杂性。
在这里插入图片描述

要开发微服务,开发人员需要一个高效的本地环境设置。随着系统中的服务数量开始增加,在一台机器上运行应用程序的子集变得越来越困难。特别是当你使用消耗较多内存的语言(如 Java)构建应用程序时,更是如此。

下面是与本地开发设置相关的要点:

  1. 本地开发的第一个重要方面是要有一个好的开发机器。我发现,大多数组织想要使用所有最新的、最先进的技术,但却不想替换掉糟糕的 Windows 开发机器。开发人员受限于他们的开发机器。我曾见过开发人员使用 VDI 映像或配置交叉的机器来构建基于微服务的系统。这降低了他们的工作效率,使他们无法完全投入工作。使用糟糕的开发机器带来的副作用就是,开发人员无法得到快速的反馈。如果你知道必须等待数分钟才能运行集成测试套件,那么你就不会编写更多的集成测试套件,免得给你带来痛苦。糟糕的开发机器将会导致糟糕的开发实践;

  2. 一旦你为开发人员配备了合适的开发机器,那么下一步就是确保所有服务都使用构建工具。你应该能够在一台新机器上构建整个应用程序,而不需要进行太多配置。根据我在微服务方面的经验,使用能够构建整个应用程序的根构建脚本也会有所帮助;

  3. 下一个要点就是要让开发人员能够轻松地在他们的系统上运行应用程序的各个部分。在配置了所有端口和卷的情况下,应该使用多个 docker-compose 文件来提供不同的服;

  4. 接下来,如果你使用的是类似于 Kubernetes 的容器编排工具,那么你应该投资类似于 Telepresence 这样的工具,以便轻松调试 Kubernetes 集群中的应用程序。

如果组织对微服务开发的复杂性缺乏理解,那么团队的速度将会随着时间的推移而下降。

02 开发库和工具和第三方组建需要持续更新迭代确保版本兼容性

众所周知,企业应用微服务的IT项目需要应用到诸多的第三方开源组件,如将 Spring Cloud Netflix OSS 框架用于微服务,使用像 Kubernetes 这样的容器编排工具,使用 Eureka 作为服务发现工具,通过类似 Lstio 这样的服务网格降低微服务管理的复杂性。

随之而来的问题就是,要使所有服务的依赖项版本保持同步或兼容

有一家地产行业为主的企业IT部门用 Spring Boot 来构建微服务。在过去两年中,他们已经构建了 20 多个 Spring Boot 服务。在他们的环境中,他们使用的 Spring Boot 版本从 1.5 到 2.1 不等。这意味着当有人设置他们的机器时,他们必须下载多个版本的 Spring Boot。此外,他们还缺乏自版本 1.5 以来在 Spring Boot 中所做的许多改进。

时间积累足够久滞后,这些版本的同步、兼容和维护问题慢慢成为了IT团队的技术债务项。这些技术债务项如果不去理睬很快就会出现各种各样的兼容性和版本问题,但一旦投入必要的资源投入管理和维护无疑会增加IT投入成本,这对一个本来资源就不富裕的企业内部IT团队来说是一个很艰难的选择。(未完待续)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
后台采用apache服务器下的cgi处理c语言做微信小程序后台逻辑的脚本映射。PC端的服务器和客户端都是基于c语言写的。采用mysql数据库进行用户数据和聊天记录的存储。.zip C语言是一种广泛使用的编程语言,它具有高效、灵活、可移植性强等特点,被广泛应用于操作系统、嵌入式系统、数据库、编译器等领域的开发。C语言的基本语法包括变量、数据类型、运算符、控制结构(如if语句、循环语句等)、函数、指针等。下面详细介绍C语言的基本概念和语法。 1. 变量和数据类型 在C语言中,变量用于存储数据,数据类型用于定义变量的类型和范围。C语言支持多种数据类型,包括基本数据类型(如int、float、char等)和复合数据类型(如结构体、联合等)。 2. 运算符 C语言中常用的运算符包括算术运算符(如+、、、/等)、关系运算符(如==、!=、、=、<、<=等)、逻辑运算符(如&&、||、!等)。此外,还有位运算符(如&、|、^等)和指针运算符(如、等)。 3. 控制结构 C语言中常用的控制结构包括if语句、循环语句(如for、while等)和switch语句。通过这些控制结构,可以实现程序的分支、循环和多路选择等功能。 4. 函数 函数是C语言中用于封装代码的单元,可以实现代码的复用和模块化。C语言中定义函数使用关键字“void”或返回值类型(如int、float等),并通过“{”和“}”括起来的代码块来实现函数的功能。 5. 指针 指针是C语言中用于存储变量地址的变量。通过指针,可以实现对内存的间接访问和修改。C语言中定义指针使用星号()符号,指向数组、字符串和结构体等数据结构时,还需要注意数组名和字符串常量的特殊性质。 6. 数组和字符串 数组是C语言中用于存储同类型数据的结构,可以通过索引访问和修改数组中的元素。字符串是C语言中用于存储文本数据的特殊类型,通常以字符串常量的形式出现,用双引号("...")括起来,末尾自动添加'\0'字符。 7. 结构体和联合 结构体和联合是C语言中用于存储不同类型数据的复合数据类型。结构体由多个成员组成,每个成员可以是不同的数据类型;联合由多个变量组成,它们共用同一块内存空间。通过结构体和联合,可以实现数据的封装和抽象。 8. 文件操作 C语言中通过文件操作函数(如fopen、fclose、fread、fwrite等)实现对文件的读写操作。文件操作函数通常返回文件指针,用于表示打开的文件。通过文件指针,可以进行文件的定位、读写等操作。 总之,C语言是一种功能强大、灵活高效的编程语言,广泛应用于各种领域。掌握C语言的基本语法和数据结构,可以为编程学习和实践打下坚实的基础。
### 回答1: ThoughtWorks现代企业架构白皮书是一本旨在帮助企业构建创新和敏捷的技术架构的指南。在这个现代化的企业架构中,ThoughtWorks提出了一些理念和方法,以帮助企业在不断变化的市场环境中保持竞争力。 首先,ThoughtWorks强调了可持续性的重要性。随着技术的不断发展和市场的变化,企业需要构建一个具有可持续性的架构,以应对不断变化的需求。这意味着企业需要注重可扩展性、可维护性和可演化性,以确保其架构能够随着时间推移而不断发展和改进。 其次,ThoughtWorks提倡使用敏捷方法来进行企业架构的开发。敏捷方法可以帮助企业更好地应对市场需求的快速变化。它强调团队合作、迭代开发和持续反馈,以帮助企业快速响应变化,并提供高质量的解决方案。 此外,ThoughtWorks还提供了一些设计原则和最佳实践,以帮助企业构建现代化的技术架构。例如,它鼓励使用微服务架构来解耦系统的各个组件,以实现更好的可伸缩性和灵活性。它还推崇使用云原生技术和持续交付,以加快交付速度和提高软件质量。 最后,ThoughtWorks在白皮书中还强调了组织文化的重要性。它鼓励企业营造一个鼓励创新和学习的文化,以支持现代化的架构实践。这包括培养敏捷思维、鼓励团队合作和提供良好的学习和发展机会。 总之,ThoughtWorks现代企业架构白皮书提供了一些有关构建创新和敏捷的技术架构的指导。它强调可持续性、敏捷开发、设计原则和最佳实践以及组织文化的重要性。这本白皮书旨在帮助企业在快速变化的市场环境中保持竞争力和创新能力。 ### 回答2: ThoughtWorks现代企业架构白皮书是一本关于企业架构的重要指南。在白皮书中,ThoughtWorks回顾了过去几十年来企业架构的发展,并介绍了一种基于现代技术和方法的新型企业架构。 该白皮书首先指出了企业架构在当今数字化时代的重要性,并解释了为什么传统的架构方法已经不再适用。随着技术的不断发展和创新,企业需要更加灵活、可扩展和可持续的架构来应对不断变化的业务需求。 接下来,白皮书介绍了ThoughtWorks所推崇的现代企业架构原则和实践。其中包括面向服务的架构、微服务、事件驱动架构、持续交付等。这些原则和实践是为了帮助企业构建可解耦、可测试、松散耦合的系统,并能够更加灵活地响应市场变化。 白皮书还探讨了现代企业架构的挑战和解决方案。其中包括组织结构的变革、文化转型、技术栈的选择等。这些挑战需要组织从传统的项目驱动到产品驱动,并建立跨职能的敏捷团队,以迅速交付高质量的软件。 最后,白皮书还介绍了一些最佳实践和案例研究。这些案例研究展示了一些企业如何成功地应用现代企业架构原则和实践,实现了业务的快速创新和增长。 综上所述,ThoughtWorks现代企业架构白皮书是一本中文指南,旨在帮助企业了解并应用现代企业架构原则和实践。通过采用这些原则和实践,企业能够建立灵活、可扩展和可持续的系统,为数字化时代的业务需求提供更好的支持。 ### 回答3: Thoughtworks现代企业架构白皮书是Thoughtworks公司为企业进行架构转型提供的指南和参考资源。该白皮书旨在帮助企业理解和应对现代IT领域的挑战,提供了一套实践的架构方法和原则。 首先,白皮书介绍了现代企业架构的概念和意义。在当今数字化时代,企业需要敏捷、高效、可扩展的技术架构以应对市场变化和竞争压力。白皮书强调了架构在业务发展中的重要性,它不仅仅是技术的堆叠,更应该是业务价值的实现。 其次,白皮书提出了面向需求的架构方法。现代企业需要建立灵活的架构,能够很好地应对需求变化和不确定性。白皮书介绍了分层架构、微服务架构和事件驱动架构等方法,帮助企业构建可扩展、松耦合的系统。 此外,白皮书还探讨了DevOps和持续交付等现代软件开发实践在企业架构中的应用。它强调了持续集成、持续交付和自动化测试等技术手段的重要性,以加快软件交付速度,提高质量和可靠性。 最后,白皮书提供了一些实践原则和经验教训,帮助企业在架构转型过程中避免一些常见的陷阱和困难。它鼓励企业带着持续学习和不断改进的心态去探索新的技术和方法,以适应不断变化的市场。 总之,Thoughtworks现代企业架构白皮书通过提供实践指南和理念,为企业架构师和技术团队提供了宝贵的参考资源。它帮助企业理解并应对现代IT领域的挑战,促进架构转型和业务发展的成功实现。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值