欢迎光临
我们一直在努力
广告
广告
广告
广告
广告
广告
广告
广告
广告
广告

容器化云服务器:面向微服务的敏捷开发和快速部署 (容器云服务器)

容器化云服务器

简介

容器化云服务器是利用容器技术构建的云计算平台,旨在为微服务架构提供敏捷开发、快速部署和动态扩展的能力。它通过将应用程序打包到可移植、轻量级的容器中来实现,从而简化了应用程序的管理和部署。

容器化云服务器的优势

相比于传统的虚拟机云服务器,容器化云服务器具有以下优势:

轻量化和可移植性

  1. 容器比虚拟机更轻量级,因为它只包含应用程序及其运行所需的最基本组件,这使得应用程序的启动和停止速度更快,并且可以更高效地利用计算资源。

  2. 容器是跨平台可移植的,可在任何支持容器引擎的系统上运行,这使得应用程序可以轻松地从一个环境迁移到另一个环境。

敏捷开发和快速部署

  1. 容器化云服务器通过提供持续集成和持续部署(CI/CD)工具链,支持敏捷开发流程。

  2. 代码变更可以快速地构建成容器镜像并部署到生产环境,从而缩短了软件开发周期和加速了产品发布。

弹性和可扩展性

  1. 容器化云服务器可以轻松地动态伸缩,以应对不断变化的工作负载。当应用程序流量增加时,可以自动启动更多的容器来处理请求,在流量下降时可以关闭容器以节省资源。

  2. 容器化云服务器支持自动化的故障恢复机制,如果一个容器发生故障,另一个容器可以快速启动并接管其工作,保持应用程序的可用性和稳定性。

安全性和隔离性

  1. 容器化云服务器通过将应用程序隔离到不同的容器中,提供了增强了安全性。每个容器都有自己的文件系统、网络和资源限制,这可以防止应用程序相互影响或被外部攻击者利用。

  2. 容器化云服务器还支持安全扫描和补丁管理,以确保容器的安全性并减少安全漏洞。

成本效益

  1. 由于容器的轻量化和高利用率,容器化云服务器可以比传统虚拟机云服务器提供更具成本效益的计算环境。

  2. 容器化云服务器的自动化功能和动态扩展能力可以帮助组织优化资源利用并降低运营成本。

适用于容器化云服务器的场景

容器化云服务器特别适用于以下场景:

  • 基于微服务的架构
  • 需要快速迭代和频繁部署的应用程序
  • 需要高伸缩性和弹性的应用程序
  • 需要跨多个环境部署应用程序
  • 需要优化资源利用和降低成本

结论

容器化云服务器是面向微服务架构的敏捷开发和快速部署的理想平台。它提供了轻量化、可移植性、敏捷性、弹性、安全性以及成本效益等优势,使组织能够实现更快的创新和更有效的运营。随着容器技术的不断成熟,容器化云服务器将成为现代软件开发和云计算的基石。


华为云致力推进全域Serverless时代,引领技术创新,赋能行业实践

2024年6月22日,华为开发者大会2024上,围绕“全域Serverless时代:技术创新引领,赋能行业实践”主题,企业嘉宾和专家齐聚一堂,共同探讨技术创新与行业实践。

Serverless是云计算发展的必经之路,华为云凭借其自研的业界首个通用Serverless平台——元戎,致力于提供全域Serverless化的云服务,让开发者能够更专注于核心业务和应用逻辑的创新与实现,显著提升企业效率并降低成本。

元戎平台为开发者提供了通用函数编程模型、高可扩展性和高性能运行框架,助力华为云全域应用实现Serverless化。

在实践层面,不同业务场景如事件触发类、长时运行类、异构AI类等均展示了Serverless化带来的优势,包括缩短产品上市时间(TTM)、降低总成本(TCO)、以及在流量洪峰下实现毫秒级弹性响应。

某媒体智能平台通过元戎实现了事件触发类社媒分析平台的Serverless化,成本降低了50%以上;华为企业信息系统利用元戎实现了长时运行类微服务的Serverless化,资源利用率提升了70%;某AI视觉行业服务商借助元戎实现了异构AI类推理服务的Serverless化,算法部署实现天级上线。

华为云全域Serverless云服务能为企业带来企业级弹性、免运维和高可靠体验,元戎作为全球首个通用Serverless平台,配合Serverless工具链和触发器,支撑华为云构建全域Serverless云服务,助力百万开发者实现千行万业应用的现代化转型。

元戎通用Serverless架构已被国际顶会ACM SIGCOMM 24收录。

在端云算力协同方面,HarmonyOS基于华为云Serverless技术底座(元戎通用Serverless平台),构建了端云一体化解决方案,实现全栈开发团队、一体化IDE工具和端云模板,让HarmonyOS原生应用的开发成本降低50%,同时端云沟通协作效率得到显著提升。

借助华为云强大的AI算力,HarmonyOS实现了高质量的AI云增强服务,包括更清晰的人像和合影照片,以及移动游戏的光追级渲染画质。

借助与华为云的深度协同,HarmonyOS原生应用具备了全栈能力,实现了一流的用户体验、安全性和流畅性。

丰图科技通过FunctionGraph构建了质检推理系统,实现了成本下降30%。

丰图科技安全驾驶解决方案通过华为云函数工作流FunctionGraph落地推理算法,显著提升了业务稳定性,资源利用率提升30%,可靠性百分百提升。

借助FunctionGraph,丰图科技在设备自检业务流程中将图片计算部分高效地在GPU资源上完成,大幅降低运维和资源成本。

未来,丰图科技计划在风控、审核、护航等更多AI推理类业务中使用FunctionGraph构建,并探索端到端业务Serverless解决方案。

华为云云原生服务产品专家分享了Serverless容器的成本效益与敏捷开发之道,通过构建极速弹性、精益治理和面向工作负载深度优化的Serverless容器基础设施,助力用户专注于业务创新,加速业务迭代。

Serverless容器已成为云原生算力的主流形态,通过Serverless极致弹性和面向工作负载深度优化构建基础设施,进一步简化用户体验。

华为云Serverless容器产品持续创新,推出多个开源项目,如Serverless多沙箱安全容器Kuasar、Serverless流量治理Kmesh等。

同时,华为云提供CCE Autopilot(Serverless容器集群)和CCI(Serverless容器实例)两款容器产品,并针对垂直场景提供Serverless Workloads,简化用户体验。

华为云发布的Flexus云容器面向SMB客群,提供开箱即用、轻量化、性价比高和体验极简的容器产品。

通过两个客户成功案例,展示了华为云Serverless容器产品的实际应用效果。

格林酒店集团利用CCE Autopilot运行弹性业务,解决了业务潮汐波动大、运维负担重的痛点,实现按需弹性,运维工作减少90%,助力格林酒店集团专注于业务创新。

某亚洲OTT平台采用CCI实现业务全Serverless架构,极大地简化了部署流程,并通过极致弹性能力实现了整体成本降低30%以上。

展望未来,华为云Serverless将持续推进全域Serverless化,助力千行万业百万开发者,引领企业业务系统向Serverless架构的演进,实现应用的高弹性、免运维和高可靠性,达成降本增效的目标。

华为云致力于引领技术创新,赋能行业实践,为开发者和企业提供全面、高效、灵活的云服务解决方案。

微服务架构:基于微服务和Docker容器技术的PaaS云平台架构设计

基于微服务架构和Docker容器技术的PaaS云平台建设目标是给我们的开发人员提供一套服务快速开发、部署、运维管理、持续开发持续集成的流程。

平台提供基础设施、中间件、数据服务、云服务器等资源,开发人员只需要开发业务代码并提交到平台代码库,做一些必要的配置,系统会自动构建、部署,实现应用的敏捷开发、快速迭代。

在系统架构上,PaaS云平台主要分为微服务架构、Docker容器技术、DveOps三部分,这篇文章重点介绍微服务架构的实施。

如果想学习Java工程化、高性能及分布式、深入浅出。

微服务、Spring,MyBatis,Netty源码分析的朋友可以加我的Java高级交流,群里有阿里大牛直播讲解技术,以及Java大型互联网技术的视频免费分享给大家。

实施微服务需要投入大量的技术力量来开发基础设施,这对很多公司来说显然是不现实的,别担心,业界已经有非常优秀的开源框架供我们参考使用。

目前业界比较成熟的微服务框架有Netflix、Spring Cloud和阿里的Dubbo等。

Spring Cloud是基于Spring Boot的一整套实现微服务的框架,它提供了开发微服务所需的组件,跟Spring Boot一起使用的话开发微服务架构的云服务会变的很方便。

Spring Cloud包含很多子框架,其中Spring Cloud Netflix是其中的一套框架,在我们的微服务架构设计中,就使用了很多Spring Cloud Netflix框架的组件。

Spring Cloud Netflix项目的时间还不长,相关的文档资料很少,博主当时研究这套框架啃了很多英文文档,简直痛苦不堪。

对于刚开始接触这套框架的同学,要搭建一套微服务应用架构,可能会不知道如何下手,接下来介绍我们的微服务架构搭建过程以及 需要那些 框架或组件来支持微服务架构。

为了直接明了的展示微服务架构的组成及原理,画了一张系统架构图,如下:

从上图可以看出,微服务访问大致路径为:外部请求 → 负载均衡 → 服务网关(GateWay)→ 微服务 → 数据服务/消息服务。

服务网关和微服务都会用到服务注册和发现来调用依赖的其他服务,各服务集群都能通过配置中心服务来获得配置信息。

服务网关(GateWay)

网关是外界系统(如:客户端浏览器、移动设备等)和企业内部系统之间的一道门,所有的客户端请求通过网关访问后台服务。

为了应对高并发访问,服务网关以集群形式部署,这就意味着需要做负载均衡,我们采用了亚马逊EC2作为虚拟云服务器,采用ELB(Elastic Load Balancing)做负载均衡。

EC2具有自动配置容量功能,当用户流量达到尖峰,EC2可以自动增加更多的容量以维持虚拟主机的性能。

ELB弹性负载均衡,在多个实例间自动分配应用的传入流量。

为了保证安全性,客户端请求需要使用https加密保护,这就需要我们进行SSL卸载,使用Nginx对加密请求进行卸载处理。

外部请求经过ELB负载均衡后路由到GateWay集群中的某个GateWay服务,由GateWay服务转发到微服务。

服务网关作为内部系统的边界,它有以下基本能力:

1、动态路由:动态的将请求路由到所需要的后端服务集群。

虽然内部是复杂的分布式微服务网状结构,但是外部系统从网关看就像是一个整体服务,网关屏蔽了后端服务的复杂性。

2、限流和容错:为每种类型的请求分配容量,当请求数量超过阀值时抛掉外部请求,限制流量,保护后台服务不被大流量冲垮;党内部服务出现故障时直接在边界创建一些响应,集中做容错处理,而不是将请求转发到内部集群,保证用户良好的体验。

3、身份认证和安全性控制:对每个外部请求进行用户认证,拒绝没有通过认证的请求,还能通过访问模式分析,实现反爬虫功能。

4、监控:网关可以收集有意义的数据和统计,为后台服务优化提供数据支持。

5、访问日志:网关可以收集访问日志信息,比如访问的是哪个服务?处理过程(出现什么异常)和结果?花费多少时间?通过分析日志内容,对后台系统做进一步优化。

我们采用Spring Cloud Netflix框架的开源组件Zuul来实现网关服务。

Zuul使用一系列不同类型的过滤器(Filter),通过重写过滤器,使我们能够灵活的实现网关(GateWay)的各种功能。

如果想学习Java工程化、高性能及分布式、深入浅出。

微服务、Spring,MyBatis,Netty源码分析的朋友可以加我的Java高级交流,群里有阿里大牛直播讲解技术,以及Java大型互联网技术的视频免费分享给大家。

服务注册与发现

由于微服务架构是由一系列职责单一的细粒度服务构成的网状结构,服务之间通过轻量机制进行通信,这就引入了服务注册与发现的问题,服务的提供方要注册报告服务地址,服务调用放要能发现目标服务。

我们的微服务架构中使用了Eureka组件来实现服务的注册与发现。

所有的微服务(通过配置Eureka服务信息)到Eureka服务器中进行注册,并定时发送心跳进行 健康 检查,Eureka默认配置是30秒发送一次心跳,表明服务仍然处于存活状态,发送心跳的时间间隔可以通过Eureka的配置参数自行配置,Eureka服务器在接收到服务实例的最后一次心跳后,需要等待90秒(默认配置90秒,可以通过配置参数进行修改)后,才认定服务已经死亡(即连续3次没有接收到心跳),在Eureka自我保护模式关闭的情况下会清除该服务的注册信息。

所谓的自我保护模式是指,出现网络分区、Eureka在短时间内丢失过多的服务时,会进入自我保护模式,即一个服务长时间没有发送心跳,Eureka也不会将其删除。

自我保护模式默认为开启,可以通过配置参数将其设置为关闭状态。

Eureka服务以集群的方式部署(在博主的另一篇文章中详细介绍了Eureka集群的部署方式),集群内的所有Eureka节点会定时自动同步微服务的注册信息,这样就能保证所有的Eureka服务注册信息保持一致。

那么在Eureka集群里,Eureka节点是如何发现其他节点的呢?我们通过DNS服务器来建立所有Eureka节点的关联,在部署Eureka集群之外还需要搭建DNS服务器。

当网关服务转发外部请求或者是后台微服务之间相互调用时,会去Eureka服务器上查找目标服务的注册信息,发现目标服务并进行调用,这样就形成了服务注册与发现的整个流程。

Eureka的配置参数数量很多,多达上百个,博主会在另外的文章里详细说明。

微服务部署

微服务是一系列职责单一、细粒度的服务,是将我们的业务进行拆分为独立的服务单元,伸缩性好,耦合度低,不同的微服务可以用不同的语言开发,每一个服务处理的单一的业务。

微服务可以划分为前端服务(也叫边缘服务)和后端服务(也叫中间服务),前端服务是对后端服务做必要的聚合和剪裁后暴露给外部不同的设备(PC、Phone等),所有的服务启动时都会到Eureka服务器进行注册,服务之间会有错综复杂的依赖关系。

当网关服务转发外部请求调用前端服务时,通过查询服务注册表就可以发现目标服务进行调用,前端服务调用后端服务时也是同样的道理,一次请求可能涉及到多个服务之间的相互调用。

由于每个微服务都是以集群的形式部署,服务之间相互调用的时候需要做负载均衡,因此每个服务中都有一个LB组件用来实现负载均衡。

微服务以镜像的形式,运行在Docker容器中。

Docker容器技术让我们的服务部署变得简单、高效。

传统的部署方式,需要在每台服务器上安装运行环境,如果我们的服务器数量庞大,在每台服务器上安装运行环境将是一项无比繁重的工作,一旦运行环境发生改变,就不得不重新安装,这简直是灾难性的。

而使用Docker容器技术,我们只需要将所需的基础镜像(jdk等)和微服务生成一个新的镜像,将这个最终的镜像部署在Docker容器中运行,这种方式简单、高效,能够快速部署服务。

每个Docker容器中可以运行多个微服务,Docker容器以集群的方式部署,使用Docker Swarm对这些容器进行管理。

我们创建一个镜像仓库用来存放所有的基础镜像以及生成的最终交付镜像,在镜像仓库中对所有镜像进行管理。

服务容错

微服务之间存在错综复杂的依赖关系,一次请求可能会依赖多个后端服务,在实际生产中这些服务可能会产生故障或者延迟,在一个高流量的系统中,一旦某个服务产生延迟,可能会在短时间内耗尽系统资源,将整个系统拖垮,因此一个服务如果不能对其故障进行隔离和容错,这本身就是灾难性的。

我们的微服务架构中使用了Hystrix组件来进行容错处理。

Hystrix是Netflix的一款开源组件,它通过熔断模式、隔离模式、回退(fallback)和限流等机制对服务进行弹性容错保护,保证系统的稳定性。

1、熔断模式:熔断模式原理类似于电路熔断器,当电路发生短路时,熔断器熔断,保护电路避免遭受灾难性损失。

当服务异常或者大量延时,满足熔断条件时服务调用方会主动启动熔断,执行fallback逻辑直接返回,不会继续调用服务进一步拖垮系统。

熔断器默认配置服务调用错误率阀值为50%,超过阀值将自动启动熔断模式。

服务隔离一段时间以后,熔断器会进入半熔断状态,即允许少量请求进行尝试,如果仍然调用失败,则回到熔断状态,如果调用成功,则关闭熔断模式。

2、隔离模式:Hystrix默认采用线程隔离,不同的服务使用不同的线程池,彼此之间不受影响,当一个服务出现故障耗尽它的线程池资源,其他的服务正常运行不受影响,达到隔离的效果。

例如我们通过andThreadPoolKey配置某个服务使用命名为TestThreadPool的线程池,实现与其他命名的线程池隔离。

3、回退(fallback):fallback机制其实是一种服务故障时的容错方式,原理类似Java中的异常处理。

只需要继承HystixCommand并重写getFallBack()方法,在此方法中编写处理逻辑,比如可以直接抛异常(快速失败),可以返回空值或缺省值,也可以返回备份数据等。

当服务调用出现异常时,会转向执行getFallBack()。

有以下几种情况会触发fallback:

1)程序抛出非HystrixBadRequestExcepption异常,当抛出HystrixBadRequestExcepption异常时,调用程序可以捕获异常,没有触发fallback,当抛出其他异常时,会触发fallback;

2)程序运行超时;

3)熔断启动;

4)线程池已满。

4、限流: 限流是指对服务的并发访问量进行限制,设置单位时间内的并发数,超出限制的请求拒绝并fallback,防止后台服务被冲垮。

Hystix使用命令模式HystrixCommand包装依赖调用逻辑,这样相关的调用就自动处于Hystrix的弹性容错保护之下。

调用程序需要继承HystrixCommand并将调用逻辑写在run()中,使用execute()(同步阻塞)或queue()(异步非阻塞)来触发执行run()。

动态配置中心

微服务有很多依赖配置,某些配置参数在服务运行期间可能还要动态修改,比如:根据访问流量动态调整熔断阀值。

传统的实现信息配置的方法,比如放在xml、yml等配置文件中,和应用一起打包,每次修改都要重新提交代码、打包构建、生成新的镜像、重新启动服务,效率太低,这样显然是不合理的,因此我们需要搭建一个动态配置中心服务支持微服务动态配置。

我们使用Spring Cloud的configserver服务帮我们实现动态配置中心的搭建。

我们开发的微服务代码都存放在git服务器私有仓库里面,所有需要动态配置的配置文件存放在git服务器下的configserver(配置中心,也是一个微服务)服务中,部署到Docker容器中的微服务从git服务器动态读取配置文件的信息。

当本地git仓库修改代码后push到git服务器仓库,git服务端hooks(post-receive,在服务端完成代码更新后会自动调用)自动检测是否有配置文件更新,如果有,git服务端通过消息队列给配置中心(configserver,一个部署在容器中的微服务)发消息,通知配置中心刷新对应的配置文件。

这样微服务就能获取到最新的配置文件信息,实现动态配置。

以上这些框架或组件是支撑实施微服务架构的核心,在实际生产中,我们还会用到很多其他的组件,比如日志服务组件、消息服务组件等等,根据业务需要自行选择使用。

在我们的微服务架构实施案例中,参考使用了很多Spring Cloud Netflix框架的开源组件,主要包括Zuul(服务网关)、Eureka(服务注册与发现)、Hystrix(服务容错)、Ribbon(客户端负载均衡)等。

这些优秀的开源组件,为我们实施微服务架构提供了捷径。

如果想学习Java工程化、高性能及分布式、深入浅出。

微服务、Spring,MyBatis,Netty源码分析的朋友可以加我的Java高级交流,群里有阿里大牛直播讲解技术,以及Java大型互联网技术的视频免费分享给大家。

云原生是什么意思

简而言之,云原生是一种面向云计算环境的创新开发与部署模式,其核心目标是创建高效、可扩展和可靠的软件应用。

通过采用容器化部署,云原生应用借助容器编排工具如Kubernetes,实现了自动化的资源管理和调度,确保了应用的弹性和高可用性。

云原生的特性包括:

云原生带来的优势主要体现在:

赞(0)
未经允许不得转载:优乐评测网 » 容器化云服务器:面向微服务的敏捷开发和快速部署 (容器云服务器)

优乐评测网 找服务器 更专业 更方便 更快捷!

专注IDC行业资源共享发布,给大家带来方便快捷的资源查找平台!

联系我们