微服务架构与实战

2017/12/6 posted in  微服务架构

微服务的概念

微服务架构是一种架构模式,它提倡将单一应用程序划分成一级小的服务,服务之间互相协调、相互配合,为用户提供最终的价值。每个服务运行在其独立的进程中,服务与服务之间采用轻量级的通信机制互相沟通(通常是基于HTTP的 RESTful API)。每个服务都围绕着具体的业务进行构建,并且能够被独立地部署到生产环境、预发布环境等。另外,应尽量避免统一的、集中式的服务管理机制,对具体的一个服务而言,应根所业务上下文,选择合适的语言、工具对其进行构建。
<!-- more -->

微服务的的拆分

业务独立性
团队自主性
单一职责
轻量级通信
独立性
进程隔离

容器虚拟化技术

Docker是一个开源的应用容器,允许开发者将他们的应用以及依赖,打包到一个可移植的容器中,然后发布到任何装有Docker的Linux机器上。

微服务的本质

  • 服务作为组件
    • 提倡使用组件的方式,组应用模块化并为期构建相对独立的单元,传统实现组件的方式是隔离独立 的部分或抽取公的部分,构建共享库,从而达到解耦和复用。和语言相关和平台相关
  • 团绕业务组织团队
    • 提倡以业务为核心,按业务能力来组织团队,团队中的成员具有多样性的技能
  • 关注产品而非项目
  • 技术多样性
    • 倾向于采用统一的技术平台或方案来解决所有的问题,并不是每个问题都是钉子,也不是每个解决方案都有锤子。解决方案也应该具有针对性,针对不同的业务场景产出不同的技术方案。
  • 业务数据独立
    • 自主管理期相关的业务数据,提代业务数据接口集成,能够随着业务的发展,选择更合适的工具管理或者迁移业务数据
  • 基础设施自动化
    • 健康监控,错误回滚,日志分析,运维成本增加
  • 演进式架构
    • 随着业务的发展而不断发展,随着业务的需求变化而变化,单块架构系统时,会面临非常多的技术选型。
    • 单块架构设计构建一个大而全,无所不能的平台,但在技术发展如此之快的今天,单一的技术平台已经无法适应市场的快速变化,不断尝试新的架构设计。真正做到业务驱动架构,架构服务于业务。

微服务的问题

  • 分布式系统的复杂度
    • 性能,可靠性,异步,数据一致性,工具
  • 运维成本
    • 配置,部署,监控与告警,日志收集
  • 部署自动化
    • 构建自动化部署流水线
  • DevOps与组织结构
  • 服务间的依赖测试
  • 服务间的依赖管理
关键词

敏捷,持续集成,持续交付,DevOps,云技术

Links

jenkins 自动化部署的实现
平台
http://blog.csdn.net/jean_1221/article/details/52371497