Electronic Joint Business

Solution for E-Business

软件部署技术

GAE编程指南 (一) 认识Google App Engine

GAE简介
GAE是一个Web应用程序托管服务。其中,“Web应用程序”指的是通过Web(通常是利用Web浏览器)访问的一个应用程序或服务,比如,网上商店、社交网站、多人游戏、移动应用、投票应用、项目管理、协作、出版等。GAE主要是针对那些拥有大量并发用户的应用程序而设计的。

为App Engine所编写的应用程序都是可以自动伸缩的。某个应用程序的使用人数越多,App engine为其分配的资源也就越多,同时它还会对那些资源进行管理。而应用程序本身则无需了解它所使用的那些资源到底是怎么回事。

与传统的Web托管或自管服务器不同,使用GAE时,你只需为那些实际用到的资源付费。这些资源均会换算成GB,无须按月付费或预付费。可供购买的资源包括CPU使用率、每月存储容量、出入口带宽以及其他特定于App Engine服务的资源。

App Engine的结构
App Engine可以描述为三大块:运行时环境、数据存储区以及可伸缩的服务。我们将从宏观的角度来观察每个部分。之后还将讨论App Engine的一些特性,包括Web应用程序的部署管理,以及集成其他服务(例如Apps和Account)等。

运行时环境
App Engine会对Web请求作出响应。当App Engine接收到请求时,会根据其地址中的域名确定具体的应用程序,这个域名可以是一个.appsot.com子域名(任何应用程序都可以免费使用),也可以是你自己注册并设置到Apps的自定义域名的某个子域名。App Engine会从许多可用服务器中选出一个来处理该请求,选择的依据是看哪个服务器最可能作出快速响应。然后,它将使用该HTTP请求中的内容去调用应用程序,并接收来自应用程序的响应数据,跟着再将响应返回给客户端。

>>> 阅读全文

 

使用Azure和CloundDrive运行MongoDB

Running MongoDb on Microsoft Windows Azure with CloudDrive
I’ve been playing around with the whole CQRS approach and think MongoDb works really well for the query side of things. I also figured it was time I tried Azure so I had a look round the web to see if there we’re instructions on how to run MongoDb on Microsoft’s Azure cloud. It turned out there were only a few mentions of it or a general approach that should work but no detailed instructions on how to do it. So, I figured I’d give it a go and for a total-Azure-newbie it didn’t turn out to be too difficult.

Obviously you’ll need an Azure account which you may get with MSDN or you can sign-up for their ‘free’ account which has a limited number of hours included before you have to start paying. One thing to be REALLY careful of though – just deploying an app to Azure starts the clock running and leaving it deployed but turned off counts as hours so be sure to delete any experimental deployments you make after trying things out!!

First of all though it’s important to understand where MongoDb would fit with Azure. Each web or worker role runs as a virtual machine which has an amount of local storage included depending on the size of the VM, currently the four pre-defined VMs are:

•Small: 1 core processor, 1.7GB RAM, 250GB hard disk
•Medium: 2 core processors, 3.5GB RAM, 500GB hard disk
•Large: 4 core processors, 7GB RAM, 1000GB hard disk
•Extra Large: 8 core processors, 15GB RAM, 2000GB hard disk
This local storage is only temporary though and while it can be used for processing by the role instance running it isn’t available to any others and when the instance is moved, upgraded or recycled then it is lost forever (as in, gone for good).

For permanent storage Azure offers SQL-type databases (which we’re not interested in), Table storage (which would be an alternative to MongoDb but harder to query and with more limitations) and Blob storage.

>>> 阅读全文

 

, ,

在Azure中运行MySQL

由于不同的原因,我手头的许多Azure应用都必须依赖于MySQL。例如,我手头的Joomla开发就完全依赖于MySQL。大部分情况下,这是因为在应用中使用了MySQL的原生驱动,而未不是设计一个数据库独立层,类似.NET中的ADO.NET或者PHP中的PDO,或者裁剪掉那些MySQL特有特性。基于上述的理由,要在Windows Azure中运行这些应用,不得不想方设法让MySQL在Azure中运行。

这其实没有想象的困难,在此过程中,我可以重用许多二进制可执行文件。

想法与建议
在深入让MySQL运行起来的技术细节之前,我想先分享一下个人对于在Azure中运行MySQL的观点,在我告诉你别这么做之前,你可以节约阅读这篇文章的时间,

现实是即使你能在Windows Azure中运行MySQL,这么做也不太实际。我的建议是把它保留做你最后的法宝或者权宜之计直到Sql Server能够支持你的应用。我这么说是有许多原因的,有些是技术方面的,有些是财务方面的。因此,本文更多是关注在Azure运行和管理MySQL的过程,而不是非要这么做。

现在,让我们来深入技术问题。在Azure中运行MySQL的方法是创建一个Worker Role,它会作为二进制文件的实际宿主。你只要拷贝出可执行文件,然后编写简单的Windows Azure相关代码来实际执行应用,并传递请求给它。事实上,任何可执行文件只要可以通过xcopy发布而且无休止运行的都可以通过这个方法来实现。这对于进行分布式计算之类的事情是相当棒的。

>>> 阅读全文

 

, , , ,

基于Azure开发和发布PHP应用

云计算是当今IT世界的头等大事。云计算(Cloud Computing)是网格计算、分布式计算、并行计算、网络存储、虚拟化、负载均衡等传统计算机技术和网络技术发展融合的产物。提供资源的网络被称为“云”。

“云”中的资源在使用者看来是可以无限扩展的,并且可以随时获取,按需使用,随时扩展,按使用付费。

简单的说云计算简化了企业 IT 的基础架构且给企业提供了更大的可配置性和灵活性。在原有模式下如果构建一个小型的应用,你需要租用服务器、需要考虑租用服务器的安全和稳定因素等。如果构建一个中大型的应用,我们需要花巨资购买硬件来集群,然后花巨额资金购买所需的系统软件并且聘用一些人员来维护系统。

现在云平台能提供我们程序所需的硬件设备和软件设备,用户所要做的只是根据自己的需要租用这些已有的资源,上传应用程序并修改配置文件,就可以灵活扩展或收缩所占用的资源,以达到合理利用资源的目的,同时也减少了维护这些软硬件的成本。

在这篇文章中,我们将关注云平台之一 — 微软的 Windows Azure,并演示如何在此平台上部署 PHP 应用,虽然我们不打算深入去了解云技术的方方面面,但是我会尽量提供相关的信息和资源,为你今后的学习打下基础。

>>> 阅读全文

 

, , , , , , , , ,

在Azure上开发部署Tomcat Java应用

文章评价:
也许你还不知道,微软的 Windows Azure 支持多种异构平台环境,在 .NET 之外,用户还可以运行多种语言和平台,比如Java, PHP, Ruby 等等,你甚至可以使用完整的 Web 应用服务器,比如 Tomcat,关系型数据库比如 MySQL,还可以使用像Eclipse 这样的 IDE。详细信息可以参考这里

在这篇文章里,我们想介绍如何开发和部署一个简单的 Java 应用”Hello,World”到 Windows Azure 里,我们会先用Windows Azure SDK 提供的本地 Dev-Fabric 进行演示,之后会将其部署到真正的 Windows Azure 云端里。

准备工作
首先当然是需要下载 Azure SDK,Azure SDK 依赖于 IIS 服务器,在 Windows 7 上,可以在控制面板中的“程序与功能”中,点击“打开或关闭Windows功能“,在列表中选择 IIS(internet信息服务),同时需要勾选它的 ASP.NET 扩展。

此外,Azure 的 Storage Emulator 还依赖于 SQL Express,这是 Microsoft SQL Server的裁剪版,你可以在这里下载一份拷贝。

接下来我们需要准备一些工具,包括安装 JDK,Tomcat 等等,你还需要下载安装 Eclipse IDE (WTP)。注意,不要安装Tomcat的‘32-bit/64-bit Windows Service Installer’, 因为 Windows 服务是无法在 Azure 上部署的。详细安装过程略过。 Eclipse WTP 的安装直接解压即可。

>>> 阅读全文

 

, , , , , , ,