最近几年,从概念提出到产品落地实施,云计算迅猛发展。云计算概念各不相同,现在普遍流行是美国国家标准与技术研究院(NIST)的定义:云计算是一种按使用量付费的模式,这种模式提供可用的、便捷的、按需的网络访问,进入可配置的计算资源共享池(资源包括网络、服务器、存储、应用软件、服务等),这些资源能够被快速提供,只需投入很少的管理工作或与服务供应商进行很少的交互。由此可见,一方面云计算是一种资源共享和资源池化的管理理念,一方面用户只需通过网络进行简单访问就可消费资源,而无需关心资源背后的相关细节。
如果按照云所处的位置可以分为公有云、私有云和混合云三种,如果按照服务领域的不同可分为IaaS(基础设计及服务)、PaaS(平台即服务)和SaaS(软件即服务)三部分。IaaS更侧重面向系统运维人员,实现计算、存储和网络等资源的池化管理和自动化管理,更好降低运维的人力成本和硬件成本,对于一些微小企业无需自建机房或者购买服务器硬件,只需按时购买公有云资源即可,大大降低运行成本,减少运维人员的工作复杂度。阿里云、腾讯云等都得到了较好的发展,金融业也在逐步发展IaaS,主要是以openstack或者vmware技术为主。
PaaS以应用系统为中心,以容器技术为依托,实现容器云的落地实施,为应用系统提供覆盖整个项目全生命周期的多种自动化工具,能够更好提升把控项目研发质量和研发效率,同时降低应用运维复杂度,降低系统运维成本。由此可见,IaaS和PaaS的侧重点或服务领域各不相同,IaaS更侧重基础设施的管理和资源云化提供,给用户或者租户交付的是操作系统基础环境。如果应用系统真正利用这些资源,还需要完成更多基础软件的管理、应用程序部署和自动化运维等自身等工作,这些工作都交由PaaS完成,因此PaaS以应用为中心为其提供应用中间件及其应用自身管理等工作。
本次活动主要讨论了几个大家都普遍关心的核心议题,欢迎更多的会员朋友提出更多意见和建议,从而让大家在思维火花的碰撞中更有收获
PaaS主要以容器云形式实现,容器云依赖容器基础技术,目前常见的有docker和garden两种类型,其中BAT、京东、华为和网易等互联网公司,还有一些大型商业银行更多的选择docker技术,当然也不乏garden成功案例,但较之docker案例相对较少。
独木难成林,容器要云化形式提供服务,必须以多个容器形成集群的方式,此时如何管理和调度集群是一个重要的任务,这个任务由编排引擎进行实现,目前比较流行的有kubernetes、swarm等。因此“容器技术+编排引擎”构成了容器云最初始的框架,当然要达到企业级应用还需要做更多企业级的功能,所以就出现了诸如openshift、阿里飞天、华为等各种以开源软件为基础构建的多种产品。
那么企业在建设云的过程中需要考虑几个问题:
1)容器技术的选择:尽量选择市场比较流行的开源社区和生态发展比较完善的技术,编排引擎的框架选择遵循同样道理;
2)建设模式:一种方式是购买产品进行企业落地化定制化,一种方式是基于开源框架自研,两种方式各有优劣,需要结合企业自身特点进行总体考虑;
3)建设规划:PaaS的建设涵盖很多方面,甚至需要企业流程和企业IT架构的梳理和调整,因此对大中型企业来讲不可能一蹴而就,需要一个循序渐进的过程,这也与企业发展和自身技术特点有关系
软件负载有硬件F5和软件HAProxy、nginx等。F5的特点是价格贵、性能好,一般在物理机和虚拟机化时间做LB;nginx是一款HTTP服务器和反向代理服务器,可以提供7层负载均衡能力,主要应用场景有web服务器、反向代理、负载均衡等;HAProxy是一款专业的负载均衡软件,可提供4/7层负载均衡,比nginx负载均衡性能好,并发上也优于nginx。负载均衡的选择需要和企业自身特点和具体业务场景相关联,在PaaS的企业级产品中更多的选择HAproxy
PaaS平台的日志和监控和传统架构的管理方式没有本质区别。日志的获取或采用安装agent、或采用工具导出,业界已经都有很多成熟的产品和案例可以借鉴;监控分两部分,先要解决“监”的问题,同样也需要利用工具抓取信息,然后解决“控”,要么利用自动化运维的模式,要么采用手工的模式,目的其实一样,区别在于成本控制。
PaaS可以从系统、网络、服务、应用监控4个层面入手:
PaaS平台的一个核心理念是为应用提供各种基础中间件服务和进行应用集群的管理。devops是一种贯彻项目研发全生命周期的软件研发理论,打破传统的研发部门和运维部门泾渭分明的现象,尽量实现团队将研发和运维进行统一结合的模式,这种理念落地实施需要借助一定工具。CI是持续集成,可以实现代码自动化的静态检查、动态检查、安全检查和单元测试、集成测试等功能,从而实现代码的尽快尽早集成,减少后期发现问题的概率、降低项目风险;CD是持续部署或者持续发布,这种持续部署采用自动化工具,能够有效提高系统环境的部署效率和升级更新时业务的连续性。
jenkins可视作一个平台,在这个平台中一方面可以用户定制各种插件,一方面可以将所有的工作以流程化的形式(pipeline)串联起来。这样可以将CI/CD的思维通过jenkins的落地实施来贯彻执行,同时CI/CD有多种自动化管理功能,而PaaS中的相关系统部署或者更新升级或者项目研发过程使用的环境都可以自动化,于是二者可以很好的进行关联。
Devops理念的落地实现,可通过jinkins中配置自动化的CI/CD流程,更好的与PaaS进行深度集成,从而提高软件研发效率和软件研发质量。详情可以参考链接
PaaS作为一个综合性的平台,在以”容器+编排引擎”的基础上有诸多关键技术点和难点,本次主要以开源框架和一些市场产品为依托,主要讲述关键点的实现
PaaS平台的建议是一个长期的过程,需要不断持续的进行迭代优化,并且随着在PaaS之上运行应用系统的增多和使用经验的不断丰富,对PaaS平台会有更多深入的认知和体会。因此我们也希望论坛上从事这块研究和实践的朋友能够更多的进行技术交流,从而加深技术了解,让PaaS在企业内部更好的发挥其价值和优势。
如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!
赞12
添加新评论0 条评论