SOA是一种设计策略、指导思想、原则;微服务是这个原则下的一种实践。
开发阶段:通过微服务框架提供标准化的统一开发支持
发布阶段:通过标准化的形式统一发布和管理
运维阶段:标准化的方式统一维护数量庞大的微服务。
总结:核心是整个交付链路是否有一整套的支撑性工具和平台生态体系。
服务的注册和发现
服务注册中心对服务方提供注册功能,对使用方提供服务查找服务
更好的实现是,使用方对接Service Proxy,Proxy负责对接服务中心查找服务,并根据结果路由到实际服务,这样可以将服务的注册和发现隔离到服务端,使用方只访问一个服务接口,简化了设计。
服务的监控和运维
监控层面:硬件、网络、系统、微服务应用、服务访问层
监控方式可以使用Jolokia的基于HTTp的JMX的无侵入方式;使用dropwizard metrics提供告警服务。
前4层都是白盒的形式,而服务访问层的监控是以黑盒的方式监控,直接发起服务访问,判断服务可用性
安全
一个安全防护体系从网络、系统、应用等多个层次进行深度防御
微服务之间一般是在trust域,所以可以适当放低要求。
但是后端管理端口和前段访问端口一定要分开隔离,不使用同一网络地址和端口
可以考虑OAuth2服务作为授权的管理和验证方。
发布和部署
统一的发布平台可以执行约定检查,如是否已测试、已完成SQL审查、安全评估、日志规范、是否启用了无关的配置模块、是否使用了过低版本或有漏洞的三方件等
微服务的发布是高频的,所以高效、固化的发布平台非常重要