一个非常好的问题。云服务已经成为IT技术创新的核心基础设施,充分利用云服务带来的d性和分布式优势,赋能自动化运维。
关键词:DevOps,云原生
一,自动化部署
CI/CD持续化集成和自动化部署,以前经常使用Jenkins,配置Git代码提交时触发构建,然后通过脚本触发自动部署。
使用云服务后,以阿里云为例,利用丰富的DevOps运维工具,将代码托管、测试、部署等步骤更加高效的串联起来。
二,AutoScaling自动伸缩
集群化部署时,配置一定的触发条件,满足时将自动增加或者释放服务器资源。比如当CPU使用率达到85%或者内存占用率达到85%时,根据配置好的服务器和数量,自动触发。
三,云监控CloudMonitor
主流云服务商都将监控功能集成到了基础架构中,以阿里云为例,云监控提供了多种配置,多维度全方位监控。
比如配置CPU使用率到达85%时,自动触发动作,增加服务器实例,同时邮件通知运维人员。
四,Docker容器技术
Docker将应用以及依赖打包到一个可移植的镜像中,可以实现虚拟化,有助于快捷高效的交付应用。
搭建阿里云容器镜像服务+Git+Docker自动构建系统,结合资源编排服务,实现自动部署更新,不再需要单独部署维护Jenkins构建服务器。
五,云原生
云原生是指从开始设计应用时,就充分考虑并且利用云服务的特点,比如d性和分布式,可以简单的理解为:云原生=微服务+DevOps+持续交付+容器化。
在云原生应用系统里,运营、维护和监控,完全是自动化的。
简单的说,微服务是架构设计方式,分布式是系统部署方式,两者概念不同
微服务是啥?
这里不引用书本上的复杂概论了,简单来说微服务就是很小的服务,小到一个服务只对应一个单一的功能,只做一件事。这个服务可以单独部署运行,服务之间可以通过RPC来相互交互,每个微服务都是由独立的小团队开发,测试,部署,上线,负责它的整个生命周期。
微服务架构又是啥?
在做架构设计的时候,先做逻辑架构,再做物理架构,当你拿到需求后,估算过最大用户量和并发量后,计算单个应用服务器能否满足需求,如果用户量只有几百人的小应用,单体应用就能搞定,即所有应用部署在一个应用服务器里,如果是很大用户量,且某些功能会被频繁访问,或者某些功能计算量很大,建议将应用拆解为多个子系统,各自负责各自功能,这就是微服务架构。
那么分布式又是啥?
分布式服务顾名思义服务是分散部署在不同的机器上的,一个服务可能负责几个功能,是一种面向SOA架构的,服务之间也是通过rpc来交互或者是webservice来交互的。逻辑架构设计完后就该做物理架构设计,系统应用部署在超过一台服务器或虚拟机上,且各分开部署的部分彼此通过各种通讯协议交互信息,就可算作分布式部署,生产环境下的微服务肯定是分布式部署的,分布式部署的应用不一定是微服务架构的,比如集群部署,它是把相同应用复制到不同服务器上,但是逻辑功能上还是单体应用。
微服务相比分布式服务来说,它的粒度更小,服务之间耦合度更低,由于每个微服务都由独立的小团队负责,因此它敏捷性更高,分布式服务最后都会向微服务架构演化,这是一种趋势, 不过服务微服务化后带来的挑战也是显而易见的,例如服务粒度小,数量大,后期运维将会很难
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)