Sunday, 10 April 2016

一步步指南部署和管理PHP应用程序在泊坞窗灯,LAPP和LAPP栈

一步步指南部署和管理PHP应用程序在泊坞窗灯,LAPP和LAOP栈

-------------------------------------------------------------------------------------------------------------------

ŧ Ø运行和管理9 PHP应用程序  在这个项目上13个不同的云计算和虚拟化平台(包括在vSphere中,OpenStack的是,AWS,Rackspace公司,微软Azure,谷歌计算引擎,DigitalOcean,IBM SoftLayer的PHP应用程序模板(LAMP,LAPP和LAOP栈)等),请确保您:

图片
自定义并运行发布的任何泊坞窗PHP应用程序模板(包括LAMP,LAPP和LAOP堆栈)和许多其他模板(包括多层的Java应用程序栈,蒙哥副本群集一样,Drupal的,WordPress是,平均.JS等)
图片

背景

集装箱企业应用仍然主要是由于现有的应用程序框架的组合物不涉及复杂的依赖关系,外部集成或工作流后自动缩放,以提供一个挑战。此外,该容器设计简要意味着新容器的开发者必须旋转和重新创建与每一个版本更新复杂的依赖关系和外部结合。
DCHQ,在托管和内部部署版本解决了所有这些挑战,并通过扩展在图像环境变量绑定,可扩展的bash脚本插件,可以是先进的应用框架组合写的泊坞窗应要求简化了企业容器应用程序调用或配置后,具有自动缩放和应用集群,以支持跨多个主机或高可用性。
当应用程序提供商,您可以监控CPU,内存和I运行容器/ O,接收通知和警报,并获得应用程序自动缩放过程输入/输出工作流程备份访问的实施,插件,更新运行容器 。此外,自动化“应用程序运行”允许用户整合自己的持续集成的工作流程容器安排部署他们的每日构建或者只是改变合并GitHub的。
在以前的博客中,我们展示了基于各地13多克不同的云和虚拟化平台-多应用程序栈各种Java应用程序(如比萨饼店和电影商店应用)终端到终端的部署自动化。对于博客的完整列表,你可以访问此页:http://dchq.co/docker-java-applications.html
但是,许多用户还是觉得有些建模混淆了应用程序的基本方面。这些问题包括:
  • 如果这些环境变量基于模板YAML从您的应用程序?
  • 如何初始化适当的模式数据库从我的PHP应用程序所需?
为了解决这些问题,我们已经创建了一个示例,栈可以部署该项目的GitHub的“名称目录”PHP在这些应用程序:
  • 泊坞窗LAMP堆栈(Linux的是Apache-MySQL和PHP)
  • 泊坞窗LAPP栈(PostgreSQL的PHP​​了Linux的Apache-)
  • 泊坞窗LAOP栈(在Oracle的PHP的Linux的Apache的)。                                                      在这个项目中,我们将使用不同的应用程序堆栈配置,部署和管理PHP应用程序和不同的云计算/虚拟化基础架构提供了一个一步一步的指导。
我们将包括:
  • 在PHP应用程序的config.php配置文件
  • PHP数据库应用程序初始化
  • 使用Apache PHP 5.6施工泊坞窗图片
  • 建立任何地方任何Linux主机上运行,​​你可以根据YAML重复使用的应用程序模板
  • 配置和自动缩放底层基础设施任何云(和Rackspace公司在这个博客为例)
  • Rackspace公司多公司部署在集群上的PHP应用程序
  • 监控CPU,内存和我运行集装箱/ O
  • 使用自动运行的应用程序启用持续集成
  • 向外扩展的PHP应用程序

config.php的配置文件的PHP应用程序

您可以从GitHub克隆这个样本“目录名”PHP应用程序。
这是“Dockerizing”PHP应用程序,最重要的一步。为了充分利用集装箱的环境变量可以在运行时进行传递,你需要确保你的应用程序的方式,将让你改变一些配置属性当请求-是这样的:
  • 数据库驱动程序,要使用
  • 数据库URL
  • 数据库凭据
  • 你想更改请求的任何其他参数(例如最小/最大连接池大小,空闲超时)
要做到这一点,首先需要配置config.php文件

图片
你会发现通过在请求时以下环境变量引用的特定数据源属性:
  • DB_HOST
  • DB_USER
  • DB_PASS
  • DB_NAME
  • DB_PROVIDER
  • DB_PORT

PHP数据库应用程序初始化

我们通常建议数据库模式作为初始化PHP应用程序部署的一部分。通过这种方式,你不必担心坚持,就需要单独的SQL数据库一个​​单独的文件的执行情况。
但是,如果你已经有了这些SQL文件,你还是喜欢在一个单独的数据库中执行他们-然后DCHQ可以帮助您自动通过其插件框架这一进程。您可以参考本以获取更多信息。
为了包括用于创建的SQL脚本PHP应用程序数据库表,您将需要配置Persistence.php 使用不同的SQL语句(取决于数据库)来填充数据库文件。与MySQL populateDatabase()函数,PostgreSQL和甲骨文合作。

图片

使用Apache PHP 5.6施工泊坞窗图片

一旦PHP应用程序的配置,只需创建你的PHP代码中的码头工人的形象。
一旦到DCHQ登录(无论是在现场还是托管DCHQ.io版),用户可以浏览到的图像构建 ,然后单击+ 按钮创建一个新的(对地/桶GIT / GitHub上)Dockerfile 形象建设。
提供所需的值如下:
  • Git的分支  -这个字段是可选的-但用户可以指定从GitHub项目中的一个分支。默认值是主分支。
  • Git的凭据  -用户可以保存凭证安全DCHQ专用GitHub的信息库。这可以通过导航做云计算提供商和回购,并点击+ 选择证书
  • 集群  -码头工人形象塑造是通过代理DCHQ规划。其结果,一个用户需要选择在其上集群将被用于执行多克尔图像建筑物剂。如果群集尚未创建,请参阅本注册或未主机配置已经运行一个新的自动化虚拟基础架构。
  • 推到注册表  -用户可以把图像,无论是在公共或私人图书馆泊坞窗集线器或新创建码头。要注册一个集线器或码头搬运工帐户,用户应该导航到   云计算提供商和回购,并单击+ 选择泊坞注册
  • 资源库  -这是它的画面将被推到存储库的名称。例如,我们的形象推到了例如dchq / PHP:最新
  • 标签  -这是你想给标签名称的新形象是什么。在DCHQ支持的标签名称包括:
    • {{DATE}} -格式化的日期
    • {{}}时间戳-全时间戳
    • cron表达式  -用户可以使用该程序的对话框cron表达式码头工人形象建设之外。这一天,以促进和建立用户夜晚。
一旦必填字段,用户可以点击保存
然后,用户可以点击播放按钮根据需求码头工人的形象。
图片
用于构建该库GitHub的实际Dockerfile泊坞窗图像以下几点:

建立任何地方任何Linux主机上运行,​​你可以根据YAML重复使用的应用程序模板

一旦登录到DCHQ(无论是在现场还是托管DCHQ.io版),用户可以浏览到应用程序和设备,然后点击+ 按钮来创建一个新的码头工人写作模板。
我们已经创建了9应用程序模板使用的官方图片泊坞窗中心为同一个“名称目录”PHP应用程序-但对于不同的应用服务器和数据库。
该模板包括以下应用程序栈(相同的PHP应用程序)的例子:
  • 泊坞窗LAMP堆栈(Linux的是Apache-MySQL和PHP)
  • 泊坞窗LAPP栈(PostgreSQL的PHP​​了Linux的Apache-)
  • 泊坞窗LAOP栈(XE-PHP中的Oracle Linux的Apache的)
  • 泊坞窗LAMP堆栈(Nginx的的PHP 3层,MySQL的)
  • 泊坞窗LAPP堆栈(第3层的Nginx的PHP-PostgreSQL的)
  • 泊坞窗LAOP栈(Nginx的PHP甲骨文-xe 3层)
  • 泊坞窗中的LAMP堆栈(第3层Apache的HTTP-PHP-MySQL的)
  • 泊坞窗LAPP堆栈(第3层Apache的HTTP-PHP-PostgreSQL的)
  • 泊坞窗LAOP堆栈(Apache的HTTP-PHP的甲骨文XE的第3层)

在图像的环境变量绑定

此外,用户可以参考环境变量的另一图像在整个环境变量绑定创建一个图像。在这种情况下,我们做了几绑定-包括DB_HOST = {{MySQL的| container_private_ip}} - IP数据库是在容器的请求的时间动态地解决,并确保了Apache PHP服务器可以建立与数据库的连接。
这里是支持的值的环境变量的列表:
  • {{字母|}}。8  -创建八个随机字符的字母数字字符串。这是最有用的创建一个随机密码。
  • {{图片名称| IP}}  -允许你输入一个集装箱的主机IP地址作为环境变量。此中间件层用于建立到最有用的数据库的连接。
  • {{图片名称| container_ip}}  -允许你输入容器作为环境变量的值的名称。此中间件层用于建立与数据库(数据库端口不露出)的最有用的安全连接。
  • {{图片名称| container_private_ip}}  -允许你作为一个环境变量IP的容器内进入。此中间件层用于建立与数据库(数据库端口不露出)的最有用的安全连接。
  • {{图片名称| port_Port号}}  -允许你输入一个集装箱端口号的环境变量。此中间件层用于建立到最有用的数据库的连接。在这种情况下,指定的端口号必须是一个内部端口号-未分配到容器口的外部。例如,{{PostgreSQL的| port_5432}}将被转换为实际的外部端口,将允许中间件层建立到数据库的连接。
  • {{图片名称| 环境变量名}}  -允许您图像的输入值的环境变量环境变量的另一种形象。在这里,我们使用例是无止境的-因为大多数应用将有图像的多层互相关。

LAMP堆栈(Linux的是Apache-MySQL和PHP)

图片
图片

LAPP的栈(PostgreSQL的PHP​​的Linux的Apache-)

图片
图片

(Oracle的PHP为Linux Apache的)LAOP栈

图片
图片

LAMP堆栈(Nginx的PHP,MySQL的3层)

图片
图片

LAPP堆栈(第3层的Nginx的PHP-PostgreSQL的)

图片
图片

LAOP栈(Nginx的PHP甲骨文-xe 3层)

图片
图片

LAMP堆栈(ApacheHTTP-PHP-MySQL的第3层)

图片
图片

LAPP堆栈(第3层ApacheHTTP-PHP-PostgreSQL的)

图片
图片

LAOP栈(层的Oracle XE的3 ApacheHTTP-PHP-)

图片
图片

插件单独的数据库初始化调用码头工人的LAMP堆栈

我们建议,作为初始化模式PHP数据库应用程序部署的一部分。不过,如果你还是喜欢独自执行SQL数据库文件 - 那么DCHQ可以帮助您自动通过其插件框架这一进程。
在这种情况下,MySQL在LAMP堆栈调用bash脚本插件来执行populate.sql文件。在bash脚本插件通过导航到创建P lugins  ,看起来像这样:
图片
在这个bash脚本插件,$ mysql_user $ MYSQL_ROOT_PASSWORD $ MYSQL_DATABASE 是通过环境变量要求时。
$ FILE_URL 是创建插件或请求应用程序,可以提供参数时定义覆盖。这将是populate.sql文件的URL。

配置和自动缩放任何云基础设施

一旦应用程序会自动保存,用户可以注册一个云提供商自动配置和12个不同的云终端包括VMware的vSphere中,OpenStack的和的CloudStack,亚马逊网络服务,Rackspace公司,微软Azure,DigitalOcean,IBM集群变焦的SoftLayer中,计算引擎谷歌和其他许多人。
首先,用户可以通过云服务供应商Rackspace公司注册的公司(例如)导航云服务提供商,然后单击+ 按钮选择Rackspace公司需要Rackspace的API密钥提供公司-这可以从您帐户的设置部分进行检索,Rackspace的云控制面板。
然后,用户可以创建自动缩放策略的集群自动旋转了一个新的云sserver。这可以通过导航来完成集群页面,然后单击+ 按钮,你可以选择基于容量的放置策略,然后编织为了促进跨多个主机安全跨容器通信,密码保护的集群网络层英寸 的自动缩放的策略,例如,一个虚拟机(或云服务器)被设置为10的最大数量。
现在,用户可以提供或基于UI的工作流程,也可以通过定义一个简单的基于YAML的机器就一些云服务器的写模板可供自助图书馆要求新建群集。
基于UI的工作流程-用户可以通过Rackspace的云服务器的请求导航 ,然后单击+ 按钮选择Rackspace公司一旦云服务提供商的选择,用户可以选择的区域,大小和图像要求。默认情况下,端口,Rackspace的云服务器开放的端口,以满足一定的要求(如:32000-59000的码头工人,编织6783,和5672的RabbitMQ的)。然后,选择群集,可以指定云服务器的数量。
写模板基于YAML机-用户可以浏览通过创建一个公司Rackspace公司书面机模板 ,然后单击+按钮,然后选择中号 achine撰写
这里是云服务器的请求模板4GB。
写支持如下机器参数的模板:
  • 说明:蓝图/模板描述
  • instanceType :具体价值的云服务提供商(如general1-4)
  • 区域:特定值的云服务提供商(如IAD)
  • 图片:力-完全合格的映像ID /名称(如IAD / 5ed162cc-b4eb-4371- b24a-a0ae73376c73或vSphere虚拟机模板名称)
  • 用户名:可选-仅针对vSphere虚拟机模板的用户名
  • 密码:可选-仅针对vSphere虚拟机模板加密的密码。您可以使用终端加密密码https://www.dchq.io/#/encrypt
  • 网络:可选-云提供商(如默认)的具体数值
  • SecurityGroup :具体价值的云服务提供商(如dchq安全组)
  • 重点:云服务提供商的特定值(如私钥)
  • openPorts :可选-端口逗号分隔值
  • 统计:总没有虚拟机,则默认为1。
一旦写模板机器被保存时,用户可以从自助服务请求单元。用户可以点击自定义,然后选择云服务提供商聚集这些Rackspace公司部署云服务器。

Rackspace公司部署在公司多聚集PHP应用程序

一旦云服务器配置的,用户也可部署在新的云服务器中的多层次,基于搬运工PHP应用程序。这是通过导航到自助图书馆完成,然后点击了多层应用程序来完成要求定制。
用户可以选择环境变量(如DEV或QE)Rackspace公司的集群创建前,单击运行。

集装箱终端来访问该浏览器运行

在旁边的容器在页面上实时应用名称的命令提示符图标应该的。这允许用户通过代理使用安全通信协议,消息队列到容器中。白名单命令可以由管理员的租户被定义为确保用户不运行任何不利变动的船只。
对于PHP部署作为一个例子,我们使用命令提示符来确保PHP代码确实是在/ var / www / html等etc /目录。

图片

监控CPU,内存和容器运行I / O利用率

一旦应用程序运行起来,我们的开发人员能够监控CPU,内存和I运行容器/ O接收警报,当这些指标超过预定阈值。当我们的开发者执行功能测试和负载测试尤其有用。
用户可以更新历史监控分析和集装箱相关的问题或为部署。这可以通过点击来执行的操作的应用程序菜单运行和监视。自定义日期范围,你可以选择查看CPU,内存和I / O的历史。

使用自动运行的应用程序启用持续集成

对于那些谁希望重建它包含应用程序代码和更新图像旋转新的集装箱码头工人与每个应用程序遵循“不可改变”的发展容器模型,DCHQ提供了一个自动化的图像生成和运行特点的自动化应用,使开发人员能够自动创建Dockerfiles在GitHub上泊坞窗图片或Dockerfiles私人项目包含,然后用旋转通过安排部署应用程序的最新图像完整的LAMP堆栈租赁自定义应用程序。
由于码头工人解释图像生成部分,用户可以将两个并行构建PHP图片(这是基于PHP在Apache 5.6)。
  • 最新:一是建设仍将超出了项目,并致力于您的GitHub最新更改的最新标签
  • {{}日期} {{}}时间戳:一个并行构建,将使用两种标签名称格式的日期或时间备份所有的图像邮票创建
然后,用户可以浏览到自动化> 应用程序运行,然后单击+ 按钮来创建一个新的“自动化应用程序运行”的政策。然后,用户可以填写必填字段-像这样:
  • 应用程序名称:这将使部署应用程序的名称
  • 租赁:默认情况下,无限出租选项。然而,自动运行的应用程序,为用户寻找每天早晨时间使用最新的代码到办公室正在运行的应用程序的开发/测试环境中最有用的。对于这一点,你可以为用户提供一天或1周租赁-根据自己的需要。
  • 蓝图:用户可以搜索已创建基于YAML的应用程序模板(或蓝图) -在这个项目的例子相似。
  • :这是应用程序将在集群部署。用户将只能看到他/她已被送往集群的列表。
  • cron表达式:应用程序部署可以利用这些简单的cron表达式进行调度。例如,04515?*周一至周五,将烧透至周五3:45 UTC周一下午的应用程序部署。
  • 谁可以管理:用户可以在这里提供细粒度的权限决定还有谁可以管理这种“应用程序来运行”的政策。
图片

向外扩展的PHP应用程序

如果应用程序正在运行变得有限的资源,用户可以扩展应用程序,以满足日益增长的负荷。此外,用户还可以,例如,对外在工作时间和周末调度规模的扩大。
PHP向外延伸从容器集群1-2个,用户可以点击操作,在菜单中运行的应用程序,然后选择向外扩展。然后,用户可以指定一个新的簇大小,然后单击立即运行

然后,BASH插件我们使用更新Apache HTTP服务器httpd.conf文件,以便它知道添加新的应用程序服务器。在bash脚本插件还可以安排迎接下使用,如清理日志更新规定的配置或频率。
在容器插件执行时,用户可以在点击操作,在菜单上运行的应用程序,然后选择插头。然后,用户可以选择负载平衡器(Apache HTTP服务器)船只,搜索插件,您需要执行,使用切换按钮重新启动容器。这个插件的默认参数将运行IP容器的所有容器PHP动态分辨率,并将其添加为httpd.conf文件的一部分。

申请时间表可以用来追踪到每个审计和诊断应用所做的更改。这可以从页面底部中展开的菜单运行该应用程序进行访问。
警报和通知,可当容器或主机关闭或当主机或容器的CPU和内存使用率超过定义的阈值。

结论

集装箱企业PHP应用程序框架仍然主要是由于现有的应用程序的组成不涉及复杂的依赖关系,在外部或自动缩放工作流程的整合提供了一个挑战。
DCHQ,在托管和内部部署版本,解决了所有这些挑战,并提前通过应用程序框架的组合在图像有利的环境变量绑定,可以延长bash脚本调用插件简化了容器的企业PHP应用程序或之后申请期限提供和应用集群和自动扩展,以支持在多个主机或高可用性。
免费登记http://DCHQ.io或下载DCHQ场所  
和监测,更新的容器,大规模的输入/输出和持续的应用程序生命周期管理功能,可访问实时盒子多层PHPapplication模板外送。

No comments:

Post a Comment