SCVMM2012R2 服务模版系列(四)创建一个开箱即用的Web应用程序服务模版

简介:

这次将会带来一个完全“开箱即用”的Web应用程序服务模版;不过先展示一个单层结构的,也就是说后端SQL是一台已经存在的服务器,不包括在本次模板当中;所谓“开箱即用”就是指这个服务交付出去之后,用户直接访问NLB地址即可打开应用,不需要再去人为的配置后端连接或者权限等等


因为之前对服务模版已经做过一些铺垫,所以接下来直接从创建服务模版开始,前期的准备工作略有不同,我会配合截图顺便回顾一下

#################################################################################

这次演示环境的Web应用还是选择开源的CMS门户“DotNetNuke”,基于.NET开发同时也便于后期展示SCOM的APM监控以及自动化横向收缩

下载地址:http://www.dnnsoftware.com/Community/Download

本次环境的资源包下载地址:http://www.microsoft.com/en-ph/download/details.aspx?id=39698

#################################################################################

首先解压缩下载好的资源包,我们需要用到“standard04062013.cr”这个文件夹,将它上传至SCVMM库中

210828516.png

在此文件夹中有几个脚本,因为我们后端的SQL已经准备好了,且我将会把dotnetnuke直接挂在默认站点下并使用默认的应用程序池,所以我只会用到“mod_folder_permission”这个脚本

因此这个场景主要需要解决的两个问题就是:

1.如何自动实现前端web服务器和后端SQL的连接配置

2.如何自动给应用程序文件夹赋予访问权限

如果上述两个问题无法自动实现,那我们这个服务模板就毫无意义;创建完了之后还要手动的登上去配一下sql connection string,然后再给文件夹改权限

210832168.png

#######################################################################################

接下来我们需要做的就是把一个配置好的Web应用打包导出

210836592.png

在导出的时候注意需要添加一行参数

210840543.png

也就是在此可以把我们的SQLconnectionstring写好,如下图

210844941.png

写好之后再导出,这样我们的应用程序配置文件就可以识别到这条参数了

210857523.png

然后回顾一下之前的内容,在应用程序配置文件里,我们需要添加一条pre-install脚本,目的是为了把webdeploy装到目标机器上,因为只有安装了webdeploy才可以导入我们的zip压缩包(就是上一步导出的包)

210903821.png

而在此我们需要追加另外一条脚本来实现第二个自动化需求,就是赋予文件夹权限;如下图我们调用“mod_folder_permission”脚本来实现,注意要在后边跟一个@@,这个是用来最后部署服务时,我们可以灵活的给@@变量赋值,也就是指定你要修改文件夹名称(默认位置C:\inetpub\wwwroot\)

210909830.png

计算机层的准备工作一定切记如下几点:

1.勾选Web Server(IIS)角色

2.勾选NLB功能

3.IP地址和MAC地址必须都为静态

4.必须开启MAC地址欺骗

210920396.png

接下来我们的服务模版准备就绪了,之后在准备部署前预览的时候可以点击上方的setting

210924971.png

此时就会弹出自定义对话框,这里可以给我们的@@变量赋值,如果之前你添加了多个脚本,并且有若干的@@,就都可以在这里识别到(我会在后续的双层开箱即用模板中提到);另外请注意配置好你的负载平衡器以及Web层的可收缩数量;确认无误之后我们就可以点击左上方的“部署服务”了

210928805.png

完成部署之后,我们可以看到这个服务的大体结构,如下图所示;服务的名称——层次命名——虚机——应用;到此一切OK,我们来看一看效果

210938616.png

下图是通过powershell查到的VIP地址,10.10.1.172,注意这个NLB地址是不会自动注册到DNS中的,如果有需要,必须手动添加一条A记录;通过ping命令显示此地址可用

210942998.png

直接访问负载平衡器虚拟IP,一切OK;我们没有进行任何的二次手动操作,直接打开了DotNetNuke的门户

210945789.png

######################################################################################

接下来我们看看横向扩展的效果;假如我们的前端负载压力太大了,默认的两节点已经扛不住了,此时你只需要点一下右键——选择“扩展”

210950300.png

扩展向导十分简单,首先选择你要在哪一层收缩,因为我们当前环境只有一个计算机层,所以没得选,下面可以看到有关该层的可收缩限制,当前2台,最小2台,最多5台,以及虚机的默认通配符名称格式(由OS配置文件获取的)

210953108.png

这里可以定义你要扩展的这台虚机的名称,下面的提示说明如果留空的话,会自动根据通配符格式生成,这里我保持留空

210957291.png

之后选择要放置的位置

211001470.png

确认无误之后就可以扩展了,感兴趣的话可以把shell保存下来研究

211006207.png

之后看到Job里面正在执行创建VM的进度

211016873.png

而在服务下面可以看到多出来一台虚机正在部署且名称自动生成;如下图所示

211021614.png

Job完成

211026862.png

至此横向扩展完成,Web层由默认的2台变成了3台,缓解了前端负载

211032111.png

#####################################################################################

以上便是一个“开箱即用”的单层Web应用服务模板,并且它支持很实用的横向收缩;所谓缩,其实就是delete一台虚机,注意是一台虚机而不是这个服务,前面的博文提到过,切勿手欠删除服务,不然整套环境就没了,哭都来不及;因此操作时候一定要注意,接下来根据时间安排我会尝试部署带SQL层的“全自动”交付服务模板,这个才真够酷够实用


那么有了以上的环境就可以结合SCOM对应用程序执行性能监控,或者监控服务器状态,当前端压力上升触发告警时,可以把警报继续后传给Orchestrator,接下来通过runbook来调用SCVMM的activity,比如scale-out或者scale-in;实现真正意义上的云平台资源管理



本文转自maomaostyle 51CTO博客,原文链接:http://blog.51cto.com/maomaostyle/1336130,如需转载请自行联系原作者

相关文章
|
2月前
|
开发框架 监控 安全
Windows Defender 导致 Web IIS 服务异常停止排查
某日凌晨IIS服务异常停止,经查为Windows Defender安全补丁KB2267602触发引擎更新,导致系统资源波动,进而引发应用池回收。确认非人为操作,系统无重启。通过分析日志与监控,定位原因为Defender更新后扫描加重负载。解决方案:将IIS及.NET相关路径添加至Defender排除列表,避免业务影响。
342 116
|
3月前
|
弹性计算 监控 网络安全
如何轻松使用AWS Web应用程序防火墙?
AWS WAF是Web应用防火墙,可防护常见网络攻击。通过创建Web ACL并设置规则,保护CloudFront、API网关、负载均衡器等资源。支持自定义规则与OWASP预定义规则集,结合CloudWatch实现监控日志,提升应用安全性和稳定性。
|
安全 JavaScript 前端开发
AppSpider 7.5.020 发布 - Web 应用程序安全测试
AppSpider 7.5.020 for Windows - Web 应用程序安全测试
78 0
|
3月前
|
存储 安全 Java
如何在 Spring Web 应用程序中使用 @SessionScope 和 @RequestScope
Spring框架中的`@SessionScope`和`@RequestScope`注解用于管理Web应用中的状态。`@SessionScope`绑定HTTP会话生命周期,适用于用户特定数据,如购物车;`@RequestScope`限定于单个请求,适合无状态、线程安全的操作,如日志记录。合理选择作用域能提升应用性能与可维护性。
152 1
|
6月前
|
开发框架 安全 前端开发
Go Web开发框架实践:模板渲染与静态资源服务
Gin 是一个功能强大的 Go Web 框架,不仅适用于构建 API 服务,还支持 HTML 模板渲染和静态资源托管。它可以帮助开发者快速搭建中小型网站,并提供灵活的模板语法、自定义函数、静态文件映射等功能,同时兼容 Go 的 html/template 引擎,具备高效且安全的页面渲染能力。
|
6月前
|
开发框架 JSON 中间件
Go语言Web开发框架实践:使用 Gin 快速构建 Web 服务
Gin 是一个高效、轻量级的 Go 语言 Web 框架,支持中间件机制,非常适合开发 RESTful API。本文从安装到进阶技巧全面解析 Gin 的使用:快速入门示例(Hello Gin)、定义 RESTful 用户服务(增删改查接口实现),以及推荐实践如参数校验、中间件和路由分组等。通过对比标准库 `net/http`,Gin 提供更简洁灵活的开发体验。此外,还推荐了 GORM、Viper、Zap 等配合使用的工具库,助力高效开发。
|
8月前
|
中间件 Go
Golang | Gin:net/http与Gin启动web服务的简单比较
总的来说,`net/http`和 `Gin`都是优秀的库,它们各有优缺点。你应该根据你的需求和经验来选择最适合你的工具。希望这个比较可以帮助你做出决策。
341 35
|
7月前
|
安全 Devops 测试技术
AppSpider 7.5.018 for Windows - Web 应用程序安全测试
AppSpider 7.5.018 for Windows - Web 应用程序安全测试
149 0
AppSpider 7.5.018 for Windows - Web 应用程序安全测试
|
2月前
|
算法 Java Go
【GoGin】(1)上手Go Gin 基于Go语言开发的Web框架,本文介绍了各种路由的配置信息;包含各场景下请求参数的基本传入接收
gin 框架中采用的路优酷是基于httprouter做的是一个高性能的 HTTP 请求路由器,适用于 Go 语言。它的设计目标是提供高效的路由匹配和低内存占用,特别适合需要高性能和简单路由的应用场景。
228 4
|
6月前
|
缓存 JavaScript 前端开发
鸿蒙5开发宝藏案例分享---Web开发优化案例分享
本文深入解读鸿蒙官方文档中的 `ArkWeb` 性能优化技巧,从预启动进程到预渲染,涵盖预下载、预连接、预取POST等八大优化策略。通过代码示例详解如何提升Web页面加载速度,助你打造流畅的HarmonyOS应用体验。内容实用,按需选用,让H5页面快到飞起!

热门文章

最新文章