那些微服务和技术堆栈教我们的事

Ashish Sharma在本文中将谈谈企业技术堆栈主流是如何一步步走向微服务架构的,并分享一些经验教训。 过去的技术堆栈如下图所示: 在应用层,我们有一个用Windows form和WPF编写的桌面客户端。应用与服务层对话,而服务层是完全用c#编写的SOA体系结构。这是我们(当时)唯一可以使用的语言。它们是通过WCF相互通信的单片有状态服务。我们使用SQL server作为后端存储。所有这些都在内部部署,这意味着我们的客户购买我们的软件并将其托管在自己的硬件上。 我在金融行业工作(股市准确),是公有云的后期采用者。这个行业不喜欢将数据放在公共云上的想法。我见过的客户会阻止与外部世界进行任何可能的通信,以防止数据泄漏。但随着技术的成熟,种心态已经发生了巨大的变化, »

关于微服务CD的5点思考

持续交付是任何软件交付实践的重要组成部分。无论目标部署环境如何,我们都应该设计CD工作流,以便将软件的任何更改投入生产。 对于微服务架构来说同样如此。本文将分享作者Sheroy Marker在架构设计和应用开发中的一些关于CD工作流的思考和经验。 微服务和CD 按照Martin Fowler的说法,微服务架构是“将软件设计一组为可独立部署的服务的方式“。这种方式目前已经成为构建分布式系统/应用的主流;按照Jez Humble的说法,CD(持续交付)是“能够以可持续的方式安全快速地将所有类型的变更 - 包括新功能、配置、错误修复和实验 - 投入生产” »

微服务架构选Java还是选Go - 多用户负载测试

Ivan Nikitsenka 微服务架构允许我们再创建新应用时自由选择不同的技术和编程语言。不过究竟哪种语言更适合我们当下的硬件?回答这个问题,需要搞明白Java和Go编写的相同应用程序之间的性能差异。 先决条件 不采用其他性能增强功能 使用默认框架和库设置的最小配置 没有ORM框架 使用纯DB驱动程序和相同的SQL查询 用于Java的Postgres JDBC 4.2驱动程序和用于Go的github.com/lib/pq 怎么做 使用DB(Postgres)数据存储创建简单的Java/Go REST API应用程序 使用JMeter或类似工具创建负载测试 »

软件架构:5种你应该知道的模式

Singleton(单例模式)、仓储模式(repository)、工厂模式(factory)、建造者模式(builder)、装饰模式(decorator)……大概每个上课听讲的程序员都不会陌生——软件的设计模式为我们提供了针对现有的、重复出现的问题以可靠的解决方案。 在软件架构方面同样存在类似的机制,通用的、可重用的解决方案在给定上下文中的软件体系结构中经常出现的问题。不同的软件架构模式各有千秋,以下是目前较为主流的5种软件架构模式。 分层模式(Layered Pattern) 分层模式大概是最知名的软件架构模式之一,有大量的开发者使用,但并不知道它的名字。分层模式将代码拆分为“层” »

4个实用的微服务测试策略

Jason Limon 微服务架构并不是一种新的架构模式,但它的不断发展为那些寻求企业级私有云解决方案的公司,带来了诸多好处,将大型一体化架构应用拆分为可组合的微服务,赋予企业独立扩展和维护每个组件的能力以及DevOps能力。 当然,微服务架构的分布式和独立性也带了许多挑战,而本文讲谈谈如何克服测试多个可独立部署组件时可能会遇到的挑战。 单元测试(Unit Testing) 单元测试的范围可以是一组服务(社会性单元测试),也可以是单独的一个服务(独立单元测试)。被测试的单元粒度越小,就越容易确定模块的行为、查明相关collaborators以及对象与依赖之间的交互。由于单元的复杂度较低,QA工程师可以通过单元测试策略来评估单元是否与collaborators隔离。社会性单元测试和独立单元测试经常会在同一个代码库中同时进行,以解决不同的测试问题。 测试domain layer的目的是模拟DML语句并证明所有collaborators都以正确的顺序使用真实的domain »