设为首页 收藏本站
查看: 835|回复: 0

[经验分享] 微服务架构与Docker容器之间关系

[复制链接]

尚未签到

发表于 2019-2-21 11:52:03 | 显示全部楼层 |阅读模式
  微服务j架构与Docker容器之间关系
  因公司业务市场的发展与技术架构等结合因素,希望接下来的产品架构能支撑轻量级、高并发、大数据、智能化、易维护、动态扩展等方向发展,因项目性能问题需要处理,公司架构研发团队架构领导跟我沟通后,协助支持优化性能问题,并很耐心的分享和介绍了微服务架构原理和发展趋势,虽然一开始听着一头雾水,但是听起来很高大上,而且确实市场所趋,决定加入他们团队一起研究微服务的非功能技术和运维运营技术,技术架构上使用Spring Boot、Spring Cloud、Docker和Netflix、Kubernetes、Prometheus等开源工具来构建与监控微服务,我目前主要工作是配合性能测试人员负责问题诊断分析与优化,以及容器的最优硬件资源配置进行研究性能测试分析,后期主要学习工作内容:主机环境搭建管理、环境标准化、微服务跨主机通信支持、微服务动态扩容和缩容、微服务可用性监控、自动化部署运维规范、微服务基础镜像设计、性能测试与调优等非功能性技术工作,这段时间从公司的资深架构专家和他团队人员介绍,慢慢了解微服务与docker等关系和如何实施工作。(一个优秀的架构领导在团队管理上,对技术的开放、共享、创新、执着、专业、容纳百川等魅力体现,这段时间让我深有感悟,也让我能最短时间学习到新技术,还得继续学习
      备注:测试微服务应用程序也更复杂。服务类似的测试类将需要启动该服务及其所依赖的任何服务,服务之间的通信接口技术性测试要求多一些,而且在非功能测试技术要求工艺更加复杂,软硬件的配置合理性、有效性、资源利用的充分性等监控要求更高。
  微服务与传统服务区别简易介绍
  传统的WEB应用核心分为业务逻辑、适配器以及API或通过UI访问WEB界面。其业务逻辑定义业务流程、业务规则以及各领域实体。而其适配器包括数据库访问组件、消息组件以及访问接口等,类似打车软件、叫餐软件。尽管也是遵循模块化开发,但最终它们会打包并部署为单体式应用居多。例如Java应用程序会被打包成WAR,部署在Tomcat。之间存在优缺,但是随着市场的发展,用户数、数据量、业务模式的增长,传统模式存在一些缺点:

  •   1、部署不灵活:构建时间长,任何小修改必须重新构建整个项目;
  •   2、稳定性不高:一个对象内存释放不及时等问题,可能会导致整个应用挂掉;
  •   3、扩展性不够:高并发情况下的业务需求,在扩展性方面比较麻烦;
  所以,现在主流的设计一般会采用微服务架构。其思路不是开发一个巨大的单体式应用,而是将应用分解为小的、互相连接的微服务,每个业务逻辑都被分解为一个微服务,微服务之间通过REST API通信。一些微服务也会向终端用户或客户端开发API接口。但通常情况下,这些客户端并不能直接访问后台微服务,而是通过API Gateway来传递请求。API Gateway一般负责服务路由、负载均衡、缓存、访问控制和鉴权等任务。
  微服务优点,比传统的应用程序更有效地利用计算资源。这是因为它们通过扩展组件来处理功能瓶颈问题。

  · 一种软件架构模式
  · 复杂应用解耦为小而众的服务
  · 各服务精而专
  · 服务间通信通过API完成
  · 更快且更容易更新
  而为了满足如上几大优点或者说规则微服务细化带来工作维护麻烦性等,一般使用docker技术结合来提供微服务的优势和运维工作的高效性。
  微服务与docker关系
  Docker 是一个开源应用容器(当然目前也分为CE和EE版本,不完全开源化,也存在收费版本),让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。
  Docker 作为容器工具可以把:业务逻辑容器、数据库容器、储存容器、队列容器使得软件可以拆分成若干个标准化容器,然后像搭积木一样组合起来,让彼此通信,从而形成微服务。
  因此微服务很适合用 Docker 容器实现,每个容器承载一个服务。一台计算机同时运行多个容器,从而就能很轻松地模拟出复杂的微服务架构







运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-675318-1-1.html 上篇帖子: Centos7 Docker私有仓库搭建 下篇帖子: centos7 安装docker私有仓库
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表