一个初创企业的微服务之旅

2017 年 7 月 18 日

近期在 QCon 2017 纽约大会上, Just Software 的 CTO Susanne Kaiser 做演讲介绍了她的团队是如何实现从单体应用架构转向微服务模型的。

微服务的采纳会伴生有各种复杂性,诸如相互独立的多个服务、运营和通信的复杂性、分区的数据,以及最终一致性的复杂性。这些复杂性对转向微服务提出了一些挑战,例如需要多种技术和工具、核心功能的厘清等。团队依然需要谨慎对待已有的系统,并且转变过程需要比预期更长的时间。

Kaiser 指出,事实上从单体应用转向微服务的过程是革命性的。他们转向微服务的做法包括了如下的步骤:

  • 候选者识别;
  • 候选者分解;
  • 微服务生态系统的建立。

微服务建模的核心理念,是建立服务和服务中高度内聚间的松耦合。团队识别了微服务间具有良好定义业务功能的界限环境。候选服务的分解采用如下步骤完成:

  • 抽取 Web 应用;
  • 抽取业务逻辑;
  • 抽取数据存储。

她还介绍了他们是如何处理服务认证的。一开始他们采用了一种去中心化的模型,但是考虑到认证是一个横切关注点,他们不再让模型是去中心化的。认证基于领域对象层,每个领域对象具有自己的认证处理机制。

微服务生态系统包括 CI/CD 流水线、监控、日志追踪、中心配置、API 网关、服务发现、针对故障的设计、测试(包括 API)和开发沙箱环境。他们使用了一系列工具去支持该生态系统,包括 Jenkins Ansible Prometheus , Grafana 、Spring Cloud ( Sleuth Zipkin , Config )、 Pact (CDC-Testing)、Netflix OSS 框架( Hystrix Zuul Eureka Ribbon )、 Vagrant 和 VirtualBox。

在演讲的最后,Kaiser 总结了他们在微服务转化过程中的经验教训。建立一个微服务生态系统需要一些时间,以及多种技术和工具。由于他们不具备一个明确的架构团队,这延缓了该过程的实现。此外,并不推荐一开始就对大块服务做分解。总而言之,他们转向微服务的过程花费了比先前预期更长的时间。

查看英文原文: Susanne Kaiser on Microservices Journey from a Startup Perspective

2017 年 7 月 18 日 19:00 2037
用户头像

发布了 1 篇内容,共 582591 次阅读,收获喜欢 13 次。

关注

评论

发布
暂无评论
发现更多内容

“庆俞年”大战,真正受损的不是李国庆

北柯

创业 合伙人 创业者 互联网人 当当网

系统不可用总结

不在调上

丐帮,少林,明教,武当!看看你数据分析的技能属于哪一派?

程序员生活志

一个虚拟世界里栽树的公司及其启示

郭华

技术 商业模式 电影

nginx 报错 accept4 () failed (24:Too many open files)

Java联盟

nginx

影响音视频延迟的关键因素(一):流媒体系统

ZEGO即构

TCP udp RTC HLS RTMP

ARTS week 4

锈蠢刀

CRM往事丨三件事,所有SaaS的缩影

人称T客

一个数据库管理员的自我救赎之路

华为云开发者社区

数据库 华为云 数据库迁移 企业上云 DRS

MySQL索引问题探究手记

架构精进之路

MySQL 索引

区块链承兑商支付系统开发,usdt支付系统搭建

WX13823153201

错误的存储方案正吞噬你的成本

jinjin

草脸识别,AI泡沫还是皇冠明珠?

郭华

人工智能 AI 商业 解决方案

搭载十代酷睿i7处理器,这台ROG冰刃4新锐拥有媲美台式游戏电脑的性能

飞天鱼2017

大厂面试必读,JAVA进阶神书《深入理解Java虚拟机》第三版更新内容全曝光!

华章IT

JVM 虚拟机 周志明 Java虚拟机 jvm调优

高效程序员的45个习惯:敏捷开发修炼之道(3)

石云升

读书笔记 敏捷开发 无限游戏

学习的深度 & 深度的学习

北风

学习 学习法

为啥PHP in_array(0,['a', 'b', 'c']) 返回为true?

架构精进之路

php 弱类型语言

我的敏捷历程 —— 兼评《敏捷整洁之道 - 回归本源》

FollowFlow

敏捷开发 Agile 极限编程 XP

跨域问题(CORS / Access-Control-Allow-Origin)

xcbeyond

Java CORS 跨域

如何利用k8s拉取私有仓库镜像

Damon

Docker k8s

程序范式的意义

soolaugust

架构 程序设计

云上安全工作乱如麻,等保2.0来一下

华为云开发者社区

安全 华为云 等保 云平台 多云服务

写代码爬取了某 Hub 资源,只为撸这个鉴黄平台!

程序员生活志

教程 Hub 资源

Spring 为啥默认把bean设计成单例的?这篇讲的明明白白的

程序员生活志

钓鱼网站:详解hosts文件

xcbeyond

Java 域名解析 hosts

"工科生"的浪漫 百度大脑语言与知识技术峰会在七夕向你发出参会邀请

百度大脑

spring Cloud Eureka Rest接口重写

xcbeyond

Java SpringCloud Eureka

SpringCloud服务注册中心双节点集群(Eureka集群)

xcbeyond

Java 架构 微服务 Eureka 集群

nginx报错worker_connections are not enough

Java联盟

nginx

海量并发也没那么可怕,运维准点下班全靠它!

华为云开发者社区

容器 网络 并发 华为云 裸金属容器

一个初创企业的微服务之旅-InfoQ