从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上。
然后…
我会确认我正在使用的存储库:
这将WebHook 插入到GitHub中,所以当有一个推送发生时,它将通知Azure,Azure将会部署。
现在我会把我的存储库推送到原始。
git push origin master
在此推送的一秒左右内, 这个网站自动更新,并运行在 smallestdotnet.azurewebsites.net上。我会马上做一个自定义的域。
是的,我可能应该做一个部署的分支。我可以有两个小的Azure网站,每一个代表从Git不同分支的部署。然后我可以用 Git推送升级和产品。
为了从我自己的服务器中移动域名记录到 azure,我将登录我的DNSimple账户,然后创建一个 CNAME指向我的新网站。
回到 Azure 管理门户– 大约十分钟后 –我将点击Manage Domains(管理域名),然后输入我的新CName。
我也使用了一个A record,所以仔细地阅读说明。在Azure验证了CNAME之后,我返回并添加A record。这样我不仅可以用www. 也可以用裸域。
我访问这个网站,它在这. https://www.smallestdotnet.com/在Azure 上不到一个小时的午餐时间,实际上大概25分钟。 哟!
接下来,我必须修复这些糟糕的代码和bug。加入到我当中吧,发出一个pull请求。
感谢Calin Balauru 几个月前的代码帮助。