这是一个有效的和可能,Azure的QA环境? [英] Is this a valid, and possible, Azure QA Environment?

查看:192
本文介绍了这是一个有效的和可能,Azure的QA环境?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我试图制定一个有效的开发/测试/ QA环境为我公司的应用程序套件迁移到Azure上。不过,我在执行我们,我们的开发/测试/ QA /等约束。环境实际上是托管导通premise并通过构建服务器部署(如CC.NET,TeamCity的,詹金斯等)。

I am trying to formulate a valid dev/test/QA environment for my company's suite of applications to migrate to Azure. However, I am enforcing the constraint on us that our dev/test/qa/etc. environments are actually hosted on-premise and deployed to via a build server (such as CC.NET, TeamCity, Jenkins, etc.).

在这样的测试环境,我们需要触发未发行的code的特定快照的部署(和数据)对于一支球队QA和商务人士的测试为技术测试和业务受理能力测试。很明显,所有这些人不会被编译和按F5在Visual Studio中做这个测试,所以我们需要部署到环境。在我们的SDLC,我们实际上经历〜4这样的环境才到分期和生产。总之,我们需要一个低开销(自动部署),并易于重复的过程这一点。

In such a "Test Environment", we need the ability to trigger deployments of a specific snapshot of unreleased code (and data) for a team of QA and Business professionals to test for both technical testing and for business acceptance testing. Clearly all of these folks won't be compiling and hitting F5 in Visual Studio to do this testing, so we need an environment to deploy to. In our SDLC, we actually go through ~4 such environments before we get to staging and production. In short, we need a low-overhead (automated deployments) and easily-reproducible process for this.

在规划出这种环境下,这个问题:如何承载Azure服务显然是困难的。所以,让我们来看看Azure中的每个部分。斜体选项是我们想要去的人。

In planning out this environment, the question of "How to host the Azure services" is clearly the hard part. So let's look at each part of Azure. The italicized options are the ones we are wanting to go with.


  • 网络角色好了, IIS可以更多或更少的处理这些对我们(至少够开发/测试的情况 - 所有但真正负载测试我们必须清楚地在Azure中,这是罚款)做的。

  • 工作者角色:我们有两个选择这里,似乎。首先是有各种各样的封装应用这是一个Windows服务,我们可以用它来承载我们的工人角色有功能的DLL(毕竟,我们真正的辅助角色的项目不应该什么比一个更配置文件和〜4行code调用DLL中做主持工作)。这种选择工作,但需要一些非常不同的应用code和部署code管理/维护。 第二个选择是使用Azure计算模拟器。这工作只要你的工作者角色不需要监控外部端口或任何东西。在我们的例子中,我们的工作者角色只需要监控队列,并随后访问各种资源。这个问题(S)围绕着不同的构建脚本,因为只有这样,才能自动部署到Azure的仿真器是运行 CSPack CSRun 托管在Azure Emultor,这可能不是您的构建服务器的计算机上。正因为如此,你必须做一些远程脚本来实现这一点。

  • VM角色 我们真的不关心这些,所以我完全不理测试的这一方面。

  • 队列在这里,我们有3个选择。第一是使用MSMQ。因为这要求我们没有(或周围不同的codeBase的至少抽象)是完全不同的codeBase的,我不考虑这个选项。二是要保持队列中的Azure,因为他们是如此之小/便宜。实际上我们暂时做下去,直到我们可以尝试第三个选项。 第三个选择是使用Azure存储模拟器。我不知道,但我相信,此选项将只允许本地机器上运行的服务来访问存储对象。对于队列,我们​​的应用程序code是code,它实际上是部署的队列,所以这应该是罚款,只要我们的应用程序code实际上是托管Azure存储模拟器运行在服务器上。

  • 在这里,我们有3个选择。首先是一个我讨厌那就是使用一个数据库,并在其中创建一个表来对这些表的访问。我不考虑这个选项。第二个是保持在表中的Azure。我不喜欢这一点,因为这对可存储数据的显著大小(每记录1MB)了很多东西回来,来回的。虽然队列是令人难以置信的轻巧和便宜,表成本迅速增加pretty。 这让我们的第三个选项,使用Azure存储模拟器。我不知道,但我相信这个选项只允许本地机器上运行的服务来访问存储对象。我还是不明白,所有在模拟器的利弊/利弊表。

  • 斑点在这里,我们真的有2个选择。第一个是坏的,那就是维持他们的Azure。这些都是显著的大小最有可能的文件,所以这是不明智的。 那么第二个选项,再次是使用Azure存储模拟器。我想,这就是我们需要做的。

  • Web Roles Well, IIS can more-or-less handle these for us (at least enough for dev/test situations - all but real load testing which clearly we'd have to do in Azure, which is fine).
  • Worker Roles We have two options here, it seems. The first is to have a "wrapper app" of sorts that is a Windows Service and we can use that to host the DLLs that our Worker Roles call for functionality (after all, our true Worker Role project shouldn't be anything more than a config file and ~4 lines of code that calls a DLL to do work). That option works, but requires some very different application code and deployment code management/maintenance. The second option is to use the Azure Compute Emulator. This works as long as your Worker Roles do not need to monitor external ports or anything. In our case, our Worker Roles only need to monitor Queues, and subsequently access various resources. The problem(s) with this revolve around the differing build scripts because the only way to automate a deployment to the Azure Emulator is to run CSPack and CSRun on the machine hosting the Azure Emultor, which probably isn't your build server. Because of this, you'll have to do some sort of remote scripting to accomplish this.
  • VM Roles We don't really care about these, so I'm totally ignoring this aspect of testing.
  • Queues Here, we have 3 options. The first is to use MSMQ. Because this requires an entirely different codebase that we don't have (or at least abstraction around that different codebase), I'm not considering this option. The second is to keep Queues in Azure since they're so small/cheap. We're actually temporarily doing this until we can try the third option. The third option is to use the Azure Storage Emulator. I'm not sure but I believe this option will only allow services running on the local machine to access the storage objects. For Queues, our application code is the code that actually "deploys" the queues, so that should be fine as long as our application code is actually running on the server hosting the Azure Storage Emulator.
  • Tables Here, we have 3 options. The first is one I hate and that is to use a database and create a table in it to access for these tables. I'm not considering that option. The second is to keep the tables in Azure. I don't like this because that's a lot of back-and-forth for things that may store data of significant size (up to 1MB per record). While Queues are incredibly lightweight and cheap, table cost can add up pretty quickly. This leaves us to the third option, using the Azure Storage Emulator. I'm not sure but I believe this option will only allow services running on the local machine to access the storage objects. I still don't understand all of the pros/cons tables in the Emulator.
  • Blobs Here, we have really 2 options. The first is a bad one, and that's keeping them in Azure. These are most likely files of significant size, so that's unwise. So the second option, once again, is to use the Azure Storage Emulator. I think this is what we need to do.

所以,我们既然已经MVC应用程序(Web角色),WCF Web服务(Web角色),队列,表,斑点和工作者角色由队列,但访问表,斑点,和WCF的Web服务所触发的,这是否看似举办我们的内部QA(和等)环境下合理的方式?而比一些烦恼与远程脚本CSPack和CSRun等部署到Azure的模拟器,这是否听起来都相当自动化的一个构建服务器?

So given that we have MVC Apps (web role), WCF web services (web role), Queues, Tables, Blobs, and Worker Roles that are triggered by queues but access tables, blobs, and WCF web services, does this seem like a reasonable way to host our internal QA (and like) environments? And other than some annoyances with remote scripting CSPack and CSRun to deploy to the Azure emulator, does this all sound reasonably automatable with a build server?

推荐答案

恕我直言:你跳直通太多箍没有部署到Azure为开发和放大器; QA环境..为什么不部署并在同一时间测试出你的部署脚本?使用XTRA小实例来降低成本。

IMHO: You're jumping thru too many hoops to not have to deploy to Azure for Dev & QA environments.. why not just deploy and test out your deployment scripts in the same time? Use xtra-small instances to keep costs low.

存储仿真不是/的/大的。有许多细微的差别,这将使你的测试不可靠。你也正在测试负载均衡 - 这是会发现的任何计划外的会话状态

Emulation of storage is not /that/ great at all. There are many minor differences that will make your testing unreliable. Nor are you testing load balancing - something that would find problems with any unplanned for session-state

这篇关于这是一个有效的和可能,Azure的QA环境?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆