编者按:&">nbsp;本博客出自Linx公司电子商务项目经理Fernando Chaves,描述了公司如何使用Windows Azure为他的客户扩展他的LinxWeb销售点系统。
Linx 是一个26岁的ISV,也是拉丁美洲零售市场的ERP技术领导者。我们在巴西、拉丁美洲和欧洲拥有超过7,500客户和超过60,000销售点(POS)系统安装。我们公司在总部和分部拥有超过1,800名员工,我们的合作伙伴关系网遍及巴西和国外。
LinxWeb是一个white-label B2C电子商务解决方案,我们的客户可以在他们的销售环境中用它作为一个新的POS系统。它与非云端ERP环境的客户集成,可以像传统的POS系统一样管理,同时允许特定的自定义设置,如促销活动。
设置阶段:在Windows Azure之前
在迁移至Windows Azure之前,LinxWeb的操作都是在运行在传统的托管提供商的虚拟机(VMs)上,尽管在理论上这类的部署可以扩展,但是它并不是那么容易和快速实现,并且我们经常需要扩大、新增内存、计算能力或者网络带宽至虚拟机。
LinxWeb保持原来的单租户模式,所有客户拥有他或她自己的部署和环境。自定义设置直接在客户的Web内容文件上完成,这可能导致一些安全问题、质量控制问题和因为自定义设置过度支持请求生成的错误。
在Windows Azure迁移前,web站点对每个处理任务都回应:生成产品图片缩略图、发送e-mail、与第三方系统通信。每个任务都同步完成的,影响电子商务网站最终用户的性能和可用性。
迁移至Windows Azure
当我们决定迁移LinxWeb至Windows Azure时,我们需要一些重构使它兼容于Windows Azure web role无状态性和负载平衡器。
由于每个web请求可以被发送到任何web服务器实例,我们需要具体化会话数据。我们选择Windows Azure SQL数据库作为我们的会话存储。
我们不得不删除所有写在本地磁盘上的文件,因为本地磁盘存储不能在服务器实例间共享。另外,本地磁盘不耐用,不像Blob Storage或SQL数据库那样拥有备份磁盘。本地磁盘被设计为速度和缓存用途,而不是永久存储了。