云应用部署方式的未来方向!

前言

本文主要介绍在Openshift PaaS平台上,部署应用的几种方式。

本文在书写过程中,在得到授权的前提下,笔者纳入了我前同事--王建的研究报告。谨借此文,祝愿王建在新的岗位上更上一层楼!

一、什么是Service Broker?

云计算一个很重要的属性是“自服务”。

要想实现自服务,就必须有服务目录,就像我们到京东买东西,页面能看到的产品一样。

在云管界面(CMP),我们可以申请应用、部署应用等。在这时候,云基础架构就是Service provider。例如,我们登录Openshift,在UI选择部署Tomcat,这个时候,Openshift就是Service provider。

随着服务目录中的应用越来越多,平台越来越多,为了实现服务目录和后端Service Provider松耦合(例如一个服务目录既可以访问IaaS层,又可以访问PaaS层),Service Broker概念被提出了。

二、Open Service Broker API开源项目

Open Service Broker API(https://www.openservicebrokerapi.org/)项目的目的,是让开发人ISV以及SaaS提供商可以用一种简单便捷的方式在多种云原生平台部署应用,这些平台包括:K8S、Openshift、CloudFoundry等。

三、OpenShift上的Open Service Broker

目前,Openshift3.7版本中,Service Catelog主要支持三种Service Broker:

OpenShift Template Broker、OpenShift Ansible Broker、AWS Service Broker。

OpenShift Template Broker是Openshift传统的模式。对于OpenShift Template Broker而言,它的Service Provier就是Openshift Template,说白了就是我们之前用的比较多的应用模板(yaml文件),即以模板的方式发布(多个)应用(组合)

这种方式通过书写yaml文件的方式实现,例如我们来看一个部署redis的模板:

目前在社区,已经有不少template的samples,供我们修改使用。但是,如果每个应用都通过编写template来实现,有的时候工作量会略大。

OpenShift Ansible Broker利用Ansible Playbook Bundles来实现应用在PaaS平台的部署。OpenShift Ansible Broker在Openshift3.7版本正式发布。对OpenShift Ansible Broker而言,它的Service Provider是Ansible Playbook Bundles。

在自动化运维领域,Ansible的易用性、多平台支持性我不再赘述。除此之外,很关键的一点是:借助于OpenShift Ansible Broker,负责运维的工程师的技能以及已经写好的众多Ansible Playbook,可以平移到PaaS平台上,这对企业而言,无疑实现了价值最大化。

OpenShift Ansible Broker的工作原理如下:首先,用户登录到Servcie Catelog,发起查找应用集合请求,这时候,Service Catelog向Ansible Service Broker发起请求,获取可用的App;接下来,Ansible Service Broker访问Registry,获取可用的App,并返回到Service Catelog上。此时,用户可见app,点击部署,接下来,Ansible Service Broker调用Ansible Playbook Bundles完成应用的部署。

接下来,我么通过实验方式,介绍一下Ansible Service Broker的使用。

在Master和Node上分别安装Ansible Playbook Bundles:

abp命令列表如下:

初始化ABP:

ABP的image build成功:

查看apb列表

# apb list

四、APB 开发详解

参考链接:

https://github.com/ansibleplaybookbundle/ansible-playbook-bundle/blob/master/docs/developers.md#optional-variables

design

https://github.com/ansibleplaybookbundle/ansible-playbook-bundle/blob/master/docs/design.md

example

https://github.com/fusor/apb-examples

developer

https://github.com/ansibleplaybookbundle/ansible-playbook-bundle/blob/master/docs/developers.md#optional-variables

本文分享自微信公众号 - 大魏分享(david-share),作者:魏新宇 王建

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-03-12

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 用户身份验证的几种方式以及OpenStack认证方式的使用

    笔者在加入VMware之前,做UNIX技术支持工作将近8年。由于UNIX服务器通常在数据中心内部,与外网隔离,因此用户身份认证通过比较简单。即密码验证。后来接触...

    魏新宇
  • PowerVM 环境下实施 PowerHA7.1 要点

    前言 随着 PowerVM 使用的越来越多,在虚拟化环境下实施 PowerHA 的案例会越来越多。传统 PowerHA6.1 在物理分区下实施是比较经典的配置,...

    魏新宇
  • Openshift3.7完整安装手册+容器化Harbor

    大魏:燕华是我们的合作伙伴,对Openshift很熟悉。按照本文档,可以一步步将Openshift3.7安装起来。本文仅供测试环境参考,生产环境慎用。 1 环境...

    魏新宇
  • 最新Spring整合MyBatis详解教程

    此时,就可以删除mybatis核心配置文件mybatis-config.xml中的数据源配置

    用户7656790
  • 快速学习ES6-Elasticsearch介绍和安装

    而商品的数量非常多,而且分类繁杂。如果能正确的显示出用户想要的商品,并进行合理的过滤,尽快促成交易,是搜索系统要研究的核心。

    cwl_java
  • Java学习笔记4-数组操作

    在笔记3中已经学习了for和for each相关操作,可以使用两者对数组进行变量,但要记住for是通过计数器来进行遍历,而for each则是直接访问数组中的元...

    村雨遥
  • Oracle数据中的序列、索引、视图、事务操作详解以及rowid 和 rownum的简单介绍

    例如: 分页查询员工信息, 按工资降序排序. 用 page 表示当前页数, size 表示每页显示的记录数, 则分页查询语句为:

    时间静止不是简史
  • Python从0到1: 让你达到独自实现深度学习项目的水准

    欢迎你申请SIGAI Pick Pearl Python Plan,简称“4P计划”,我们的目标是在100天内,向1000名合格申请者【免费】提供SIGAI《深...

    SIGAI学习与实践平台
  • Direct3D 11 Tutorial 4: 3D Spaces_Direct3D 11 教程4:3D空间

    在上一个教程中,我们在应用程序窗口的中心成功渲染了一个三角形。 我们没有太注意我们在顶点缓冲区中拾取的顶点位置。 在本教程中,我们将深入研究3D位置和转换的细节...

    Zoctopus
  • 大数据那些事(10):李逵麻子,李鬼坑人--BigTable的数据模型

    今天我们回归技术路线,讲讲Google三驾马车里的BigTable。以前有个说法叫做麻子不叫麻子,叫坑人。取其原意是满脸是坑的人,谐音表示人被坑了。我们知道水浒...

    用户1564362

扫码关注云+社区

领取腾讯云代金券