一步步指南部署和管理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
但是,许多用户还是觉得有些建模混淆了应用程序的基本方面。这些问题包括:
为了解决这些问题,我们已经创建了一个示例,栈可以部署该项目的GitHub的“名称目录”PHP在这些应用程序:
我们将包括:
config.php的配置文件的PHP应用程序
您可以从GitHub克隆这个样本“目录名”PHP应用程序。
这是“Dockerizing”PHP应用程序,最重要的一步。为了充分利用集装箱的环境变量可以在运行时进行传递,你需要确保你的应用程序的方式,将让你改变一些配置属性当请求-是这样的:
要做到这一点,首先需要配置config.php文件。
你会发现通过在请求时以下环境变量引用的特定数据源属性:
PHP数据库应用程序初始化
我们通常建议数据库模式作为初始化PHP应用程序部署的一部分。通过这种方式,你不必担心坚持,就需要单独的SQL数据库一个单独的文件的执行情况。
为了包括用于创建的SQL脚本PHP应用程序数据库表,您将需要配置Persistence.php 使用不同的SQL语句(取决于数据库)来填充数据库文件。与MySQL populateDatabase()函数,PostgreSQL和甲骨文合作。
使用Apache PHP 5.6施工泊坞窗图片
一旦PHP应用程序的配置,只需创建你的PHP代码中的码头工人的形象。
一旦到DCHQ登录(无论是在现场还是托管DCHQ.io版),用户可以浏览到的图像构建 ,然后单击+ 按钮创建一个新的(对地/桶GIT / GitHub上)Dockerfile 形象建设。
提供所需的值如下:
一旦必填字段,用户可以点击保存。
然后,用户可以点击播放按钮根据需求码头工人的形象。
用于构建该库GitHub的实际Dockerfile泊坞窗图像以下几点:
建立任何地方任何Linux主机上运行,你可以根据YAML重复使用的应用程序模板
一旦登录到DCHQ(无论是在现场还是托管DCHQ.io版),用户可以浏览到应用程序和设备,然后点击+ 按钮来创建一个新的码头工人写作模板。
我们已经创建了9应用程序模板使用的官方图片泊坞窗中心为同一个“名称目录”PHP应用程序-但对于不同的应用服务器和数据库。
该模板包括以下应用程序栈(相同的PHP应用程序)的例子:
在图像的环境变量绑定
此外,用户可以参考环境变量的另一图像在整个环境变量绑定创建一个图像。在这种情况下,我们做了几绑定-包括DB_HOST = {{MySQL的| container_private_ip}} - IP数据库是在容器的请求的时间动态地解决,并确保了Apache PHP服务器可以建立与数据库的连接。
这里是支持的值的环境变量的列表:
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。
写支持如下机器参数的模板:
一旦写模板机器被保存时,用户可以从自助服务请求单元库。用户可以点击自定义,然后选择云服务提供商和聚集这些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向外延伸从容器集群1-2个,用户可以点击操作,在菜单中运行的应用程序,然后选择向外扩展。然后,用户可以指定一个新的簇大小,然后单击立即运行。
然后,BASH插件我们使用更新Apache HTTP服务器httpd.conf文件,以便它知道添加新的应用程序服务器。在bash脚本插件还可以安排迎接下使用,如清理日志更新规定的配置或频率。
在容器插件执行时,用户可以在点击操作,在菜单上运行的应用程序,然后选择插头。然后,用户可以选择负载平衡器(Apache HTTP服务器)船只,搜索插件,您需要执行,使用切换按钮重新启动容器。这个插件的默认参数将运行IP容器的所有容器PHP动态分辨率,并将其添加为httpd.conf文件的一部分。
申请时间表可以用来追踪到每个审计和诊断应用所做的更改。这可以从页面底部中展开的菜单运行该应用程序进行访问。
警报和通知,可当容器或主机关闭或当主机或容器的CPU和内存使用率超过定义的阈值。
结论
集装箱企业PHP应用程序框架仍然主要是由于现有的应用程序的组成不涉及复杂的依赖关系,在外部或自动缩放工作流程的整合提供了一个挑战。
DCHQ,在托管和内部部署版本,解决了所有这些挑战,并提前通过应用程序框架的组合在图像有利的环境变量绑定,可以延长bash脚本调用插件简化了容器的企业PHP应用程序或之后申请期限提供和应用集群和自动扩展,以支持在多个主机或高可用性。
和监测,更新的容器,大规模的输入/输出和持续的应用程序生命周期管理功能,可访问实时盒子多层PHPapplication模板外送。
|
No comments:
Post a Comment