
我希望我的上一篇文章能提起你对这篇文章的兴致!
不久之前,我和一个朋友正在讨论云计算,SaaS,IaaS和PaaS。
我们都有一个共同的重要因素,那就是我们在IT行业中是一起开始的职业生涯,并在后来成为了我们所对应领域的IT架构师/解决方案架构师。
所以他问了我一个关于我对PaaS的想法,以及它会在实际中如何影响传统的软件开发/部署的问题。
我的脑海中灵光一现,然后我想到的是微软Azure,Cloud Foundry。顺便说一下,那时我已经开始接触到了UhuruCloud Trial PaaS。
然后我向他提起了UhuruCloud。
他首先问了我一个问题,它是否仅适用于.NET应用程序?我的回答则是否,它针对的是托管MSSQL和MySQL数据库平台+ NoSQL数据库的基于Windows和Linux的应用程序,如MongoDB和Redis等
他沉默了一会儿。然后继续,
尔后他提到,Uhuru是否还是测试版本?
我说是的,他是对的,我也重复了他提到的我在这个过程中最初陷入的一些错误。
作为架构师,我们接下来得出的结论是,世界上没有任何软件是完美无缺的。
最后,他说他正打算去看看Azure。
然后我告诉他尝试Azure是没有问题的,但在Uhuru PaaS上部署.NET应用的时间比Azure少了很多。
然后他想让我展示一下将.NET DB应用程序移植到云端到底有多容易。
当我写这篇博客的时候,我告诉他,我会在我们演讲的时候为你演示。
他非常期待。
现在回到正题
我的读者们,根据我上一篇文章,我已经提到了我们将一起学习如何将使用.NET数据库的应用程序部署到Uhuru PaaS!
【注意:如果您想以原始尺寸查看图像,只需单击即可查看大图】
系统要求
基于Windows 7开发工作站的Visual Studio 2010 Professional或更高版本
从Uhuru软件网站上下载取决于您的操作系统架构的x86 / x64MMC插件
取决于您的Visual Studio版本的x86 / x64Visual Studio插件
名称为dotNETTestApp-withDB的示例应用程序
最后且最重要的您需要单击下方链接获得一个Uhuru PaaS试用帐户
http://www.surveygizmo.com/s3/796977/Uhuru-beta-registration
上面工具的下载链接如下
安装好后就让我们开始吧!
在继续之前,我想了解Uhuru的公共PaaS和私人PaaS的架构是如何设计的。
下面是Uhuru的公共PaaS设计

下面是Uhuru私人PaaS设计

【下一步】
将示例应用程序解压缩到您选择的文件夹
1)打开dotNETTestApp-withDB文件夹 并双击DatabaseTestApp Visual C#项目

2)现在在Visual Studio 2010中,您应该看到如下图所示的App和Web.config文件

3)为了保证我们已经设置好了Cloud Manager - 点击View - >Cloud Manager

4)现在我们要创建一个新的服务以使我们的示例应用程序连接到Uhuru PaaS
在我们开始之前,我想给大家看一下示例应用程序中用于创建数据库表的示例代码
//这将创建一个名为test的表,并分别包含一系列20行的随机GUID。这个应用程序将有一个用来显示数据和包含一个按钮的GridView。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data.SqlClient;
using System.Configuration;
using System.Web.Configuration;
namespace DatabaseTestApp
{
    public partial class _default : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
        }
        protected void Button1_Click(object sender, EventArgs e)
        {
            string connString = WebConfigurationManager.AppSettings["dbConnectionString"];
            string tableName = “test” + Guid.NewGuid().ToString().Replace(“-”, “”);
            SqlConnection conn = new SqlConnection(connString);
            conn.Open();
            try
            {
                SqlCommand command = conn.CreateCommand();
                command.CommandText = “Create table ” + tableName + ” (id smallint, description varchar(50))”;
                command.ExecuteNonQuery();
                for (int i = 0; i < 20; i++)
                {
                    command.CommandText = “insert into ” + tableName + ” (id, description) values (” + i + “, \’” + Guid.NewGuid().ToString() + “\’)”;
                    command.ExecuteNonQuery();
                }
                command.CommandText = “select * from ” + tableName;
                SqlDataReader reader = command.ExecuteReader();
                GridView1.DataSource = reader;
                GridView1.DataBind();
            }
            catch (Exception ex)
            {
                Response.Write(“oops, something went terribly wrong:” + ex.ToString());
            }
            finally
            {
                conn.Close();
            }
        }
    }
}现在让我们来看一下Web.config文件
<?xml version=”1.0″?>
<!–
  For more information on how to configure your ASP.NET application, please visit
  http://go.microsoft.com/fwlink/?LinkId=169433
  –>
<configuration>
    <system.web>
        <compilation debug=”true” targetFramework=”4.0″ />
    </system.web>
  <appSettings>
    <add key=”dbConnectionString” value=”{mssql-2008#databaseTestAppDb}”/>
  </appSettings>
</configuration><add key>部分是非常重要的,因为它定义了我们即将部署到Uhuru PaaS的应用程序的服务名称。
确保您使用相同的名称,否则应用程序将无法成功部署。
现在是时候来点有趣的东西了!
【在Cloud Manager中定义您的Uhuru Cloud凭据】
1)在Visual Studio中 - >Cloud Manager Window - >点击Connect to Target
2)添加由Uhuru发送给您的Uhuru试用PaaS凭据

3)点击Add即可
4)你现在应该可以看到你的Uhuru证书添加完毕了
5)点击云管理器上的连接按钮,并确保当前状态为Current Target: your Uhuru credentials
6)单击服务按钮 - >右键单击并选择添加新服务
7)现在为了简单起见,我将选择在Web.config文件中定义的相同服务名称。对于服务类型 - >选择MSSQL并单击创建

8)现在你就可以看到创建好的服务了

9)现在我们需要做一些验证然后再继续部署

如屏幕截图所示,我们需要确保在部署之前已经设置好了Web应用程序的以下属性
1)Deployable : True
2)Services:mssql#DatabaseTestApp
3)URL:anilapp.uhurucloud.net <your custom URL.uhurucloud.net>
最后在解决方案资源管理器 - >右键单击该项目,然后选择生成
验证其是否成功。
现在是时候把App推送到Uhuru PaaS上了
右键单击项目,然后选择“ 生成并推送”

现在让Uhuru Cloud Manager自己去完成吧

已经成功了!Woot!
现在点击Cloud Manager中的后退按钮

你可以看到我们的应用程序已经部署成功但没有启动
要启动应用程序 - >右键单击AppName,然后选择Start selected apps

现在你就可以看到应用程序已经启动成功了

现在让我们点击网址,在您钟爱的网页浏览器中查看应用程序

真棒!
现在让我们点击按钮插入示例数据

祝贺!

毫无悬念,我们刚刚在Uhuru PaaS上部署了一个启用数据库的程序!
一旦你完成了以上步骤,你也可以通过右键单击所选的应用程序,并选择Stop selected apps来停止应用程序,
【结论】
请注意这仍然在测试版!我已经遇到了一些错误,但如果你严格按照这篇博客的步骤应该是没有任何问题的!
Uhuru PaaS适用于在什么样的场景下?
| 适用的场景 | 不适用的场景 | 
|---|---|
| 希望从Windows和Linux构建和部署跨平台应用程序到云的应用程序开发人员 | 仅用于.NET和SQL Server的商店 | 
| 需要在生产服务器上使用最少的配置和更少的IT管理对应用程序进行测试、配置的测试和开发环境 | |
| 通过指定需要部署的实例的数量,可以部署在具有自动故障转移和虚拟机/自我修复功能的高度可扩展环境中。 | |
| 适合公共和私有云计划 |