灵活服务的五大部署技术

如果是为下一代大型移动应用的前端UI组件工作,那么谈论加快速度和破坏东西看上去还不错。当进入服务器领域时,就没有人希望看到破坏了。业务在飞速发展,但是如果后台基础架构包含手动部署还带有硬编码配置的应用程序的话,要想满足这些变化中的需求就会变成噩梦。本文介绍五大部署技术,使得即使是小团队也能够部署灵活的,响应式技术堆栈。

容器管理系统

Docker容器在过去两年中占领了IT世界,这是有原因的。Unix chroot命令的演化,和内核命名空间以及分层文件系统的组合,容器将应用的完整依赖集合打包在一起,这样可以将代码快速部署到任何运行着兼容内核的服务器上。和硬件虚拟化不同,容器只会造成非常小的额外消耗,启动速度几乎和进程一样快。上千个容器可以运行在一个虚拟机实例里。它们使得不可变基础架构的理念成为现实,将安装和配置状态记录成声明格式,从而可以在任何时间可靠地重做。Ubuntu 16.04 LTS Canonical引入了LXD,一种更为集成的容器管理系统,将很多Docker和硬件虚拟化的优势引入到单个平台上,增强了安全性和性能。现在可以说,容器给云上软件的部署和管理方式带来了革命性的变化。

服务发现框架
容器给用户带来了灵活性,可以几乎在任何地方运行服务,但是用户仍然需要向这些服务发送请求。这意味着系统里的某个地方需要知道实现应用程序的容器在哪里运行,以及如何将流量路由到正确的地址和端口上。在RESTful的设计里,这里的需求包括基于第7层内容来路由请求。强大的开源工具,比如NGINX和 HAProxy,让用户能够快速实现自己的方案,但是手动管理路由配置很容易出错,也会阻碍灵活性。服务发现框架,比如Consul, Apache Zookeeper和mesosphere帮助将面向服务架构的发现和路由的搭建自动化,它们为服务提供了中央化的配置存储,提供了接口来声明其生命周期事件,并且提供pub或者sub模型来将这些事件通知给其他组件。

哪种方案更适用取决于你当前的代码基和所处的开发阶段。和普通代理不同,发现层涉及更多的服务和基础架构之间的合作,因此每种方案如何支持你已经在使用的语言和工具,这是影响决策的重要因素。

容器集群
如果实现了容器化和自动服务发现之后,你就会得到集群。容器集群平台意图使构建整个系统和构建容器一样能够可靠地重复。它们填补了单个容器的运行和让很多不同容器运行起来并且一起工作之间的空白,后者包括这些容器如何在特定数量的宿主机上运行,使用特定的网络规则,自动扩展参数,访问存储等等。领先的平台包括Google的Kubernetes,Amazon Elastic Container service和Docker Compose,它们采用的是略微有所不同的方案,但是目标和理念都很类似。每种方案都有优势和劣势,但是这三种方案都是可以用于生产环境的工具,并且拥有一致的目标:自动化部署技术和整个堆栈层的配置。在其中做选择时,需要重点考虑供应商和服务代码跨平台的移植性。无论使用哪种方案,都需要研究自动化工具,比如Ansible,Chef和可敬又很顽固的GNU Make,来将所有部分组合到一起,但是在这方面的努力一定会物有所值,因为能够帮助获得可持续性和可扩展性。

即时生效的API
好了,集群已经正在运行了,并且集群有可发现的服务。因此,当http请求到达集群的/awesome或者/awesomer/端点时,请求能够分发到正确的地方,并且得到响应。那么,如果终止SSL连接,并且在应用的不同版本或者不同环境间路由呢?需要一个公开的入口点来处理这样的事情,并且可以作为所有部署在其后的不同服务的网关。可以搭建一个使用SSL的负载均衡器,但是通常负载均衡器不需要处理第7层的路由。可以在LB之后搭建一个代理来完成这部分工作,但是这时就需要考虑这个组件的配置,可扩展性和故障转移。如果能够仅仅将整个API配置为云服务,并且一个命令就可以将其部署呢?Amazon的API Gateway就是这么做的,并且非常智能。甚至可以使用Swagger这样的语言描述API,然后只需上传,它就可以工作了。Google这方面还没有提供直接的竞争产品,但是他们显然不会甘于落后,而且该领域已经有Strongloop这样的独立解决方案了。

shake-n-bake网关是否适合于你的项目?在早期阶段,应该更值得投入到速度的提升以及管理上额外消耗的减少上。但是之后,会更加依赖于在你所在的使用层级里需要实际花费多少工作。

无服务器服务
上文提到的技术可以帮助实现复杂系统的完全自动化部署,但是要达到这一目的其实并不需要那么多的后台开发。如果你是个创业公司,仅仅想尽快部署一个 API和服务呢?或者你可能是一家步入正轨的公司,想要实现零基础架构的灵活性,并且基于请求付费。去年涌现了无服务器计算平台,它们对于当今真实的应用程序而言已经足够健壮了。该领域的领导者是Amazon的Lambda,它允许快速部署用python、JavaScript和Java编写的代码。Lambda功能可以是一个脚本或者对其他服务有依赖和I/O的复杂应用程序。它们可以被手动调用或者被其他Amazon服务,比如S3生成的事件触发。 当和APIGateway搭配使用时,可以用来在零基础架构的环境里部署整个微服务的实现。其他主流云平台也已经大步迈入了该领域,比如Microsoft 的Azure Functions和Google的Cloud Functions。

从某种角度看,这些部署技术体现了云计算的绝大多数重要的特性:隐藏了大量底层的复杂性,尽量让应用能够无缝工作,而用户完全无需考虑底层的复杂度。
本文转自d1net(转载)

时间: 2024-11-03 16:42:18

灵活服务的五大部署技术的相关文章

阿里中间件技术专家魏鹏:基于Java容器的多应用部署技术实践

首届阿里巴巴在线技术峰会(Alibaba Online Technology Summit),将于7月19日-21日 20:00-21:30 在线举办.本次峰会邀请到阿里集团9位技术大V,分享电商架构.安全.数据处理.数据库.多应用部署.互动技术.Docker持续交付与微服务等一线实战经验,解读最新技术在阿里集团的应用实践. 阿里巴巴在线技术峰会专题:https://yq.aliyun.com/activity/97峰会统一报名链接:https://yq.aliyun.com/webinar/j

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

本文讲的是基于微服务和Docker容器技术的PaaS云平台架构设计[编者的话]在系统架构上,PaaS云平台主要分为微服务架构.Docker容器技术.DveOps三部分,这篇文章重点介绍微服务架构的实施. [3 天烧脑式容器存储网络训练营 | 深圳站]本次培训以容器存储和网络为主题,包括:Docker Plugin.Docker storage driver.Docker Volume Pulgin.Kubernetes Storage机制.容器网络实现原理和模型.Docker网络实现.网络插件.

IBM发布云战略 五大部署步入云时代

8月23日,IBM召开了"IBM带你走进你的云--2011 IBM云计算高峰论坛",同期发布了IBM的云计算战略,即IBM将结合全球客户与自身云计算领域的最佳实践经验,整合自身强势资源,与合作伙伴一道共同推进在区域.行业.客户.生态和IT的五大部署,推动云计算在中国的落地. IBM提出云计算是信息技术在经历了个人计算机变革,互联网变革之后的第三次跨时代的变革.云计算背后的经济属性决定了云计算实际上是一种全新的生产力,它将如何管理IT的复杂性,重新审视IT之于社会的意义提到了一个前所未有

【阿里在线技术峰会】魏鹏:基于Java容器的多应用部署技术实践

本文首先向大家介绍阿里Java容器的发展历程,整个Java容器从开始到现在经历了哪些阶段,接着给大家分享目前Java容器的基础架构,最后与大家探讨经过这样的改变之后,它能够完成的一些高阶的特性,比如合并部署和多版本部署等对于我们的效率提升有明显的帮助的技术. 直播视频:点此进入 PDF下载:点此进入 以下为整理内容:   阿里Java容器的发展历程 阿里巴巴在开始阶段,就像普通的网站一样,通过前端的http的流量进来完成数据库的查询.调用,然后把数据反馈回去.当网站变得很大的时候,不能再像过去一

有望在iWatch中出现的五大尖端技术

5月26日消息,目前坊间有关苹果iWatch的传闻已经到了接近"神话"的地步,几乎市面上所有刚问世.或者尚未问世的技术都曾被分析师们"应用"到了iWatch身上.对此,美国知名科技媒体日前就基于苹果此前的收购历史和专利申请记录为我们总结出了最有可能被应用到iWatch的当今五大尖端技术.材料. 1. 蓝宝石材料 美国亚利桑那州一家名为GT Advanced Technologies的公司在去年早些时候宣布与苹果公司签订了关于蓝宝石材料的多年供货协议.据悉,这一纸协议

响应技术堆栈的五个部署技术

如今,只要你在未来的移动应用程序的前端的用户界面组件工作,谈论快速移动和技术创新是一件美好的事情,业务正在高速运行,但如果你的后端基础设施由用手工编码的配置手动部署的应用程序,应对不断变化的需求可能是一个噩梦.以下是正在创造各种可能的部署流畅的响应技术堆栈的5个部署技术. (1)容器管理系统 Docker容器在过去的两年的时间里已经征服IT世界,这有很好的理由.Unix的chroot命令的演变,将核心命名空间和分层文件系统进行结合容器包依赖于完整的应用程序关系,让你的代码可以快速部署到运行兼容内

如何调试ASP服务端的组件技术

如何调试ASP服务端的组件技术 本文主要介绍如何调试ASP服务端组件技术,包括这个复杂的出错信息: 一.ASP 0115 Error. 二.代码在单独的EXE文件里面运行良好,但是一旦放入ASP中产生调用失败的信息 本文背景: 第一种情况:你在你的浏览器中可否看见过这种信息呢? Error \'ASP 0115\' Unexpected error file://.asp A trappable error occurred in an external object. The script c

以前收集的一些资料---如何调试ASP服务端的组件技术

        如何调试ASP服务端的组件技术    本文主要介绍如何调试ASP服务端组件技术,包括这个复杂的出错信息:    一.ASP 0115 Error.    二.代码在单独的EXE文件里面运行良好,但是一旦放入ASP中        产生调用失败的信息本文背景:    第一种情况:你在你的浏览器中可否看见过这种信息呢?Error 'ASP 0115'Unexpected error/<Web Name>/<ASP file name>.aspA trappable er

正在改变IT服务的8种技术

谁也不能否认服务是人类实施的工作.但是技术可以增强服务,甚至可以接管某些任务.特别是促进数字化转型的技术,可以对服务的交付方式和客户体验产生重大影响. 以下是改变IT服务的8种技术: 1.搜索.当客户需要帮助时,他们的第一本能就是在网上进行搜索.供应商应确保他们的在线公司和产品信息易于查找,并且已针对搜索进行优化,以便首先显示最相关的结果.在理想情况下,这些信息将放在供应商的网站上,并提示访客到哪里访问或查找. 聊天机器人.大多数供应商网站提供在线聊天选项.然而,用户通常不必和服务人员聊天,而是