从Git添加持续部署时,移动网站到Azure中

[原文发表地址] Moving a website to Azure while adding Continuous Deployment from Git

[原文发表时间] 2012-09-20 11:59 PM

我的这个小网站是我在几年以前写的,它试图检测您的.NET Framework 的版本,并为您下载一个需要更新到最新的最小redist。它被称为SmallestDotNet。它是我在看一个小时的电视时写的。幸运或不幸的是这个小的临时性的网站每月仍然大概有10,000个页面访问量。它也有一个微小的JSON API(应用程序接口),很多人实际上已经把它嵌入到他们的网站和产品中。

此外,它正开始破坏。IE9及以上版本不包括.NET Framework的详细信息在它的HTTP 用户代理中。这个网站不支持.NET4.5等。另外,这是一堆if语句,很可怕。更糟的是, 它在我的硬盘的一个ZIP文件里,我将它拖到SmartFTP来部署。是的,我知道,这充满了讽刺意味。

今天午餐我花了一个小时去实现这些基本的目标:

  • 把这个网站加到源代码管理中,以便其他人帮忙修复存在的问题
  • 移动网站到 Azure中,并且关闭我的博客的服务器
  • 更新网站的域名解析系统
  • 使用Git设置持续的部署到Azure
  • 修复.NET 4
  • 可能添加.NET 4.5的检测
  • 净化自己,可能阅读Programming Pearls

在 Azure里制作一个网站

我用 Azure命令行工具(用npm install azure来获取它们)。(我做了一个npm update azure,它全球性确保我拥有最新的。)

我克隆我的Git存储库,创建一个Azure网站,然后确保我的Azure网站被设置为远程的。(当从Git存储库中创建一个Azure网站时,不久将会自动实现远程添加)

Git clone https://github.com/shanselman/SmallestDotNet.git

azure create site SmallestDotNet

我从其他地方复制我的网站

Git add.

Git commit –m “Initial Commit”

然后,我将我的Azure 网站与GitHub (或者CodePlex)存储库相关联。我也可以从本地文件部署,但是我喜欢自动部署这个想法,因为我想我将会做很多的改动,这样会担心较少的事情。

从Azure 门户的 Deployment(部署)选项卡上,我将使用OAuth来把azure 授权在GitHub上。

Associate a GitHub Repository

然后…

Authorize Windows Azure?

我会确认我正在使用的存储库:

Setup Publishing and Select the Repository to Publish

这将WebHook 插入到GitHub中,所以当有一个推送发生时,它将通知Azure,Azure将会部署。

现在我会把我的存储库推送到原始。

git push origin master

在此推送的一秒左右内, 这个网站自动更新,并运行在 smallestdotnet.azurewebsites.net上。我会马上做一个自定义的域。

是的,我可能应该做一个部署的分支。我可以有两个小的Azure网站,每一个代表从Git不同分支的部署。然后我可以用 Git推送升级和产品。

Animated Gif showing a Deployment slide into the queue

为了从我自己的服务器中移动域名记录到 azure,我将登录我的DNSimple账户,然后创建一个 CNAME指向我的新网站。

Creating a CName and an A Record to point to Azure

回到 Azure 管理门户– 大约十分钟后 –我将点击Manage Domains(管理域名),然后输入我的新CName。

image

我也使用了一个A record,所以仔细地阅读说明。在Azure验证了CNAME之后,我返回并添加A record。这样我不仅可以用www. 也可以用裸域。

我访问这个网站,它在这. https://www.smallestdotnet.com/在Azure 上不到一个小时的午餐时间,实际上大概25分钟。 哟!

接下来,我必须修复这些糟糕的代码和bug。加入到我当中吧,发出一个pull请求。

感谢Calin Balauru 几个月前的代码帮助。