Electronic Joint Business

Solution for E-Business

Cloud & Virtualize

Kubernetes 设计概览

Kubernetes 是用于管理跨主机的容器化(containerized)应用程序的系统,它为应用的部署、维护和扩展提供了基本机制。

Kubernetes 建立了强壮的声明式元语用于维护用户请求的预期状态。这些原语是 Kubernetes 的一大特色。此外还有自愈机制,如自动重启,重新调度,以及根据主动控制器而不单是业务流程的需要高对容器进行复制。

Kubernetes 主要适用于包含多个容器的应用,如弹性分布式微服务。它还设计用来将非容器化应用程序栈迁移到 Kubernetes。为此,它包括抽象为分组的松散耦合和紧密耦合的编队,容器,并提供容器查找,并以相对熟悉的方式互相交流的方式。

Kubernetes is primarily targeted at applications composed of multiple containers, such as elastic, distributed micro-services. It is also designed to facilitate migration of non-containerized application stacks to Kubernetes. It therefore includes abstractions for grouping containers in both loosely coupled and tightly coupled formations, and provides ways for containers to find and communicate with each other in relatively familiar ways.

Kubernetes enables users to ask a cluster to run a set of containers. The system automatically chooses hosts to run those containers on. While Kubernetes’s scheduler is currently very simple, we expect it to grow in sophistication over time. Scheduling is a policy-rich, topology-aware, workload-specific function that significantly impacts availability, performance, and capacity. The scheduler needs to take into account individual and collective resource requirements, quality of service requirements, hardware/software/policy constraints, affinity and anti-affinity specifications, data locality, inter-workload interference, deadlines, and so on. Workload-specific requirements will be exposed through the API as necessary.

>>> 阅读全文

 

, ,

基于物联网和 Azure 云的 “Gilt” 网站产品分析

本文的设计构想源自一次自我挑战:我想利用物联网和 Azure 平台做点有趣的东西。该设计的出发点之一,就是充分利用当前的成熟技术如 Azure 云,并以解耦的方式实现物联。稍后你将看到,本文所构建的模型的整体实现都是是以高度松耦合的组件来设计的。1

该设计围绕着 Gilt 电商平台,该站点以优惠价销售包括男装、女装、童装等各类产品。它还提供了开发者 API ,当然少不了要注册帐号以获得应用授权。由于 Gilt 提供了简单优雅的 REST API,可以很容易地创建应用以获得各种产品信息,进而实现产品分析。

相关技术
该设计基于微软的 Azure 云技术,这里列出了所用到的 Azure 服务。

  • Azure Scheduler: 针对每个产品目录都会创建一个 Azure Scheduler,以触发对当天产品的分析.
  • Azure Worker: 用以处理长时间运行的任务以收集 Gilt 产品信息
  • Azure 移动服务平台或 Website:基于 Azure 的移动服务或 website,用以按目录或时间显示所有的产品。它包含两个主要的 Azure worker ,一个用以处理 Event Hub 消息,另一个从服务总线队列(Service Bus Queue)接受消息,并将 Gilt 产品信息导入到 Azure 表存储(Azure table storage)中。
  • Pusher: 用来推送通知,如用户设定的某价格区间内的产品。我们将使用 Pusher 客户端,它可以订阅 Azure Scheduler 发布的频道和事件。
  • 机器学习:我们将借助机器学习来分析不同目录的产品信息
  • MongoDB: Azure 市场服务现在也提供 MongoLabs 的 MongoDB,我们用它来处理数据分类汇总
  • 事件集线器和服务总线队列:我们用到了 Azure 的事件集线器和服务总线队列,因此在模型 2 中 Raspberry PI 上运行的 Gilt 应用收集 Gilt 产品信息并将分类汇总的 Gilt 产品信息提交给事件集线器。从而 Azure worker 针对事件集线器的消息进行处理并将处理过的消息发送给服务总线队列。

在模型 2中我们用到了事件集线器,这与我建立的第一个模型有所不同。稍后你可通过例子了解它是如何工作的。

物联网
这里用到的组件有 Raspberry PI、Arduino 和 GSM Modem。Raspberry PI 和 Arduino 之间通过 USB 转串口的接口互相连接。我们还用到了 GSM 板卡 SIM900,该板卡可以组装在 Arduino 上。

>>> 阅读全文

 

, , , ,

编写一个 Commodore 64 模拟器

Commodor 64 (C64) 是 FC(Family Computer 俗称任天堂红白机)使用的微处理器,本文详细介绍如何用 C# 来实现一个 Commodore 64 模拟器。1

这个模拟器性能不太好,这主要是因为该仿真是基于时钟周期以及驱动器的实现等等代码实现方式。后来由于某些原因,我用 C++ 重新实现了该模拟器,这使得性能大大提升。这个结果促使我最终放弃了 C# 实现,因为不值得因为语言的限制来浪费时间与精力,我打算写篇文章来讨论这个问题。

虽然 C# 版有这样那样的缺失和问题,不过它仍适合作为理解仿真概念的基础。

在这篇文章中,我不想解释实际硬件是如何工作的。网上可以找到关于此话题的大量资源。这里我将主要关注如何进行仿真及其具体实现。

你想编译并运行该模拟器,建议先阅读一下关于 ROM 文件的小节。

>>> 阅读全文

 

, ,

从虚拟化到云计算 (三) 编写自己的 VMWare

我一直认为要了解虚拟化,最好的方法是自己编写一个 VMM 应用程序。这有助于对硬件辅助虚拟化技术的深入理解。本文将离开前面两篇文章的理论论述,开始动手编写一个自己的 VMWare。1

本文将要创建的应用程序将会完成: 做好CPU 虚拟化的预备工作;创建客户机;进入并退出该客户机。为了简单起见,我们只针对 X64 模式来实现。该代码只演示了基本的 VMX 功能,也不一定兼容你手上的 CPU,你不过你可以使用 Bochs 并启用虚拟化,然后你就可以测试这些代码了。

我们先对专有名词做一下简单介绍:

  • VMM (虚拟机监视器 — Virtual Machine Monitor) 宿主程序
  • VM (虚拟机 —Virtual Machine)客户机程序
  • 根操作 (Root Operation) VMM 所执行的代码与上下文
  • 非根操作 (Non Root Operation) VM 所执行的代码与上下文
  • VMX 切换: 从宿主机切换到客户机(VMEntry) 或者从客户机切换到宿主机 (VMExit)
  • VMCS:控制 VM 和 VMX 切换的数据结构
  • VM Entry: 从宿主机到客户机的切换
  • VM Exit:由于某种原因,从客户机到宿主机的切换

VMX 操作的生命周期

  • VMM 检查 CPU 是否支持虚拟化 (CPUID) 并启用 (CR4 和 VMXON)
  • VMM 为每一个 VM 初始化一个 VMCS 控制结构。通过 VMPTRST 和 VMPTRLD 指令告诉 CPU 其指针的位置。VMCS 的读写通过指令 VMREAD, VMWRITE 和 VMCLEAR 来完成。
  • VMM 通过 VMLAUNCH 或者 VMRESUME 指令进入 VM
  • VM 通过 VMEXIT 退出到 VMM
  • 反复进行上面的操作
  • VMM 执行 VMXOFF 将自己关闭

 

, , , , , , ,

创建推荐引擎: 基于 Azure, Hadoop 和 Mahout 的机器学习

喜欢帮助别人的感觉吗?

我们将根据 Stack Exchange 用户回答问题的历史,向他提供一些“建议回答”的问题。这与亚马逊上根据购物记录来推荐商品的经验十分相似。如果你不知道 Stack Exchange 是个什么?建议你登录一下Stack OverFlow

通过本文,你可以了解如何根据对用户的历史“答案”的分析,来预测他可能可以回答的问题。也许 Stack Exchange 现在的推荐系统比我们实现的要更棒,但这不妨碍我们本着学习的目的来重复造一个轮子。1

我们将要完成以下任务:

  • 从 Stack Exchange 数据集中提取所需的信息
  • 利用得到的信息来构建推荐系统

让我们从最基础的开始。如果你对 Apache Hadoop 以及在 Azure 上部署 Hadoop 完全陌生,我建议你试读一些介绍文章。2

>>> 阅读全文

 

, , , ,

Hadoop 技术手册 (二) 体验 Hadoop 平台

文章评价:
在上一篇文章中,我们概括介绍了 Hadoop 的各个组件,但是留下的困惑之一就是 “我要如何运行这些软件呢?”。本文将利用 Cloudera 网站提供一个免费的 Hadoop 发行版 CDH 来运行一些示例,使得你对 Hadoop 各个组件有深入的了解。

特别值得一提的是,Hadoop 可以通过 Sqoop 非常好地整合 Informix 和 DB2 数据库。 Sqoop 是全球领先的用于在 Hadoop 和关系数据库之间进行数据迁移的开源实现。它使用 JDBC 来读写 Informix、DB2、MySQL、Oracle 等其他数据源。此外还提供了几个优化的数据库适配器,包括 Netezza 和 DB2。

运行简单的 Hadoop, Hive, Pig, Oozie 和 Sqoop 示例
在上一篇文章中,你已经学习了 Hadoop 的介绍和定义,现在是该实践的时候了。要运行本文的例子,你只要从 Cloudera 网站下载支持 VMware、virtual box 等的镜像文件就可以开始进行 MapReduce 了!我们假定你有一台 64位电脑,并有某种流行的虚拟软件。大多数的虚拟软件中都提供了免费下载。当您试图启动 64位的镜像时,你可能会遇到有关 BIOS 设置的报错。图 1-1 显示了需要在 BIOS 修改的设置 (基于 Thinkpad 电脑)。进行更改时,请务必小心。

示例中所使用的数据实在不能称为 BigData。但是本文的目的不是让你用一台笔记本电脑来和一个庞大的文件交火,而是关注数据源、map-reduce 作业这些有趣的问题,并答疑解惑。

下载 Hadoop 虚拟镜像
我们强烈建议您使用 Cloudera 提供镜像来运行这些示例。 Hadoop 是一个解决问题的技术。 Cloudera 的虚拟镜像包让你不用处理繁杂的配置工作,只需专注于大数据本身的问题。如果你坚持要自己配置所有的组件,那 Hadoop 本身就成为一个问题,而不是解决方案了。

>>> 阅读全文

 

, , , , , , , , , , ,

深入理解OpenStack (二) 在 Nova 中启动实例

想了解云计算可以做什么,就意味着你必须掌握虚拟化概念。通过虚拟化,你可以在虚拟机上而不是物理计算机上运行操作系统和应用程序。要使用虚拟机,你必须提供一个镜像文件,它包含了运行虚拟机所需的信息:包括要运行的操作系统、用户的登录名和密码、储存在系统上的文件等等。

在 OpenStack 核心项目中,Nova 项目可谓是核心中的核心。正如 OpenStack 网站所介绍的,Nova 是 IaaS 系统的主要部分, 旨在为大规模的配置和管理虚拟机实例提供一个框架。与 Amazon 的EC2 服务的功能类似,它允许用户使用自己的镜像文件,通过可编程 API 创建、管理和销毁虚拟服务器。

Nova 生产环境的配置模式
从功能上看, Nova 平台中有两类节点: 控制节点和计算节点,其角色由安装的服务决定,控制节点包括网络控制 Network、调度管理 Scheduler、api服务、存储卷管理、数据库管理、身份管理和镜像管理等,计算节点主要提供 nova-compute 服务。节点之间使用 AMQP 作为通讯总线,只要将 AMQP 消息被写入特定的消息队列中,相关的服务就可以获取该消息进行处理。由于使用了消息总线,因此服务之间是位置透明的,你可以将所有服务可以部署在同一台主机上,即 All-in-One(一般用于测试),也可以根据业务需要,将其分开部署在不同的主机上。

用在生产环境 Nova 平台配置一般有三种类型:

最简配置:需要至少两个节点,除了 nova-compute 外所有服务都部署在一台主机里,这台主机进行各种控制管理,即控制节点。

>>> 阅读全文

 

, , , , , , ,

深入理解OpenStack (一) OpenStack架构与组件

云计算是一种计算模式,在该模式中,诸如运算能力、存储、网络和软件等资源都被抽象为服务,可以让用户通过互联网来远程使用,其付费方式也如同传统公共设施一样。按需定量、易于配置、动态和近乎无限的可扩展性是云计算的几个关键特性。按云计算模式搭建的基础设施通常被称为“云”。云提供的服务有以下几大类: 基础设施即服务(IaaS)、平台即服务(PaaS)和软件即服务(SaaS)。 Amazon Web Services (AWS)是最主要的 IaaS 供应商之一。 AWS 有两个流行的服务:弹性计算云 (EC2- Elastic Compute Cloud) 和以 Web 服务方式提供的简单存储服务 (S3- Simple Storage Service)。这里我们主要关注 IaaS 平台。

开源 IaaS 软件
目前主要的开源 IaaS 软件主要有 OpenNebula、Nimbus、OpenStac k和 Eucalyptus 等等,这些软件的设计思路和实现细节各有千秋,但基本可以归结为三个主要模块:一是通常被称为云控制器的前端,包括用户界面、编程接口和任务调度组件; 二是虚拟化管理,包括网络管理和虚拟机管理; 三是存储服务,包括弹性块设备和简单存储服务。在这三大模块的基础上,还可以添加监控、报表、分析、计费等等外围组件。这些组件往往是运营方面的要求,不是基础架构服务的核心技术。

OpenStack 社区从 2011 年 1 月起呈现出爆发的势头。目前 OpenStack 社区的讨论主题数、讨论帖子数和参与讨论的总人数都在 OpenNebula 社区和 Eucalyptus 社区之上。

什么是 OpenStack?
OpenStack 是个开源软件项目的集合,企业或服务提供商可以用它来设置和运行自己的云计算和存储等基础设施。 Rackspace 和 NASA 是该项目最初及最重要的贡献者。Rackspace 公司贡献了 “Cloud Files” 平台(代码)用于增强 OpenStack 的对象存储组件(Object Storage),而 NASA 则贡献出 “Nebula” 平台(代码)来增强计算部分。 在不到一年的时间里, OpenStack 协会就拥有了 100 多个成员,包括 Canonical, Dell, Citrix 等等知名公司。很值得一提的是,OpenStack 提供服务的 API 兼容于亚马逊 EC2/S3,因此为 AWS 编写的客户端工具同样也可以用在 OpenStack 上。

OpenStack 包括了许多不同的子项目,图1-1列出了主要子项目及其功能所属:

>>> 阅读全文

 

, , , , ,

从虚拟化到云计算 (二) 深入硬件辅助虚拟化技术

从业界的整体趋势来看, 数据中心的焦点已经从“更快的性能”走向了合理的性能、合理的功耗、合理的利用以及合理的管理。虚拟化技术的初衷就是为了实现更高的设备利用率,使用户能够尽可能地利用系统资源。有这样一句话,叫做“更多虚拟,更少管理 (Virtualize more, manage less)”,意思是说,如果你能够在单个服务器上虚拟多个系统,就能够以少数几台计算机完成所有工作,这显然能够节省耗电、空间、冷却和管理开支。一个理想的虚拟化解决方案应该提供不同虚拟机之间的彻底的安全的隔离,并为每个虚拟机提供卓越的性能,从而确保整个平台的出色实用性、可靠性和安全性。

完全虚拟化技术可以提供较好的客户操作系统独立性,不过其性能不高。而操作系统虚拟化可以提供良好的性能,然而各个客户操作系统之间的独立性并不强。无论是何种软件方法,隔离性都是由 Hypervisor 软件提供的,过多的隔离必然会导致性能的下降。对于虚拟化技术来说,无论是软件还是硬件辅助的解决办法,其目的和作用都是一样的,都以提高IT系统利用率、大幅降低成本、提高可管理性和建立完善的合作的整体化系统作为其第一要务的

VMM 对硬件资源的虚拟可以划分为三个部分:CPU 虚拟化,内存虚拟化和 I/O 虚拟化。在计算机中,CPU 无疑是最重要的部件,要想虚拟化出一台电脑,CPU 的虚拟化无疑是重中之重,事实上英特尔和 AMD 近年来也在全力推广 CPU 的虚拟化技术。那么究竟哪些处理器是支持硬件虚拟化,除了处理器还需要什么配合才能实现硬件虚拟化呢?下面我们先来看看支持 CPU 虚拟化的硬件环境要求。

Popek 和 Goldberg 在 1974 年发表的论文中提出一个真正的 VMM 必须满足的三个条件:高效性、资源控制和同质性。高效性是指所有的安全指令都可以在本地硬件上直接运行而不需要 VMM 的干预或仿真,资源控制是指任何客户机软件都不能改变它可用的系统资源分配,同质性是指抛开性能略微下降的因素,虚拟机上执行的任何程序的行为必须和在本地机器上运行一样。根据该定义,指令集支持虚拟化的最高效的状态是:所有敏感指令都是特权指令。

敏感指令和虚拟化方法
从软件角度上来说,处理器呈现给软件的接口就是一系列指令(指令集 ISA)和一堆的寄存器(通用寄存器以及状态和控制寄存器),而 I/O 设备呈现给软件的接口也就是一堆的状态和控制寄存器(有些设备亦有内部存储)。这些都是系统的资源,其中影响处理器和设备状态和行为的寄存器称为关键资源或特权资源,如 x86 的 CR0 ~ CR4 寄存器,MIPS 的 CP0 寄存器,PowerPC 的 Privileged SPR 等等。

>>> 阅读全文

 

, ,

从虚拟化到云计算(一)概述

文章评价:

在计算机科学领域中,虚拟化有广义和狭义两种概念。广义上来说,虚拟化代表着对计算资源的抽象,而不仅仅局限于虚拟机的概念。例如对物理内存的抽象,产生了虚拟内存技术,使得应用程序认为其自身拥有连续可用的地址空间(Address Space),而实际上,应用程序的代码和数据可能是被分隔成多个碎片页或段),甚至被交换到磁盘、闪存等外部存储器上,即使物理内存不足,应用程序也能顺利执行。

狭义的虚拟化技术,则通常指的是硬件虚拟化技术,即计算元件在虚拟的硬件基础上而不是真实的硬件基础上运行。将这个概念应用到计算机系统中,可以在一台计算机上同时运行多个操作系统(例如,一台计算机可以同时运行 Linux 和 Windows),不同用户看到不同的单个系统,而且每一个操作系统中都有多个程序运行,每一个操作系统都运行在一个虚拟的CPU或者是虚拟主机上。这通常称为全虚拟化(full virtualization)。

硬件虚拟化也可以有更加复杂的格式,例如单个计算机看上去具有多个架构(对于一个用户来说,它是一个标准的 x86 平台;对于另外一个用户来说,它是 IBM Power PC 平台)。这种虚拟化形式通常被称为硬件仿真。

反之,更加简单的一种硬件虚拟化是操作系统虚拟化 (OS Level Virtualization),其中一台计算机可以运行相同类型的多个操作系统。在传统操作系统中,所有用户的进程本质上是在同一个操作系统的实例中运行,因此内核或应用程序的缺陷可能影响到其它进程。操作系统级虚拟化是一种在服务器操作系统中使用的轻量级的虚拟化技术,内核通过创建多个虚拟的操作系统实例(内核和库)来隔离不同的进程,不同实例中的进程完全不了解对方的存在。比较著名的有 Solaris Container,FreeBSD Jail 和 OpenVZ 等。

>>> 阅读全文

 

, , , ,

用GridGain实现高性能云计算

网格计算通过利用大量异构计算机(通常为桌面系统)的未用资源( CPU 周期和磁盘存储),将其作为嵌入在分布式电信基础设施中的一个虚拟的计算机集群,为解决大规模的计算问题提供了一个模型。网格计算的焦点放在支持跨管理域计算的能力,这使它与传统的计算机集群或传统的分布式计算相区别。

网格计算包括共享异构资源(基于不同的平台,硬件/软件体系结构,以及计算机语言),这些资源位于不同的地理位置,属于一个使用公开标准的网络上的不同的管理域。简而言之,它包括虚拟化计算资源。

网格计算经常和集群计算相混淆。二者主要的不同就是:集群是同构的,而网格是异构的;网格扩展包括用户桌面机,而集群一般局限于数据中心。GridGian 是网格计算,可以根据规则分节点技术,提高计算速度,比如用于规则引擎,技术引擎等,银行结算,保险考核结算等。

什么是 GridGain
一言蔽之,GridGian 是一款基于 JVM 高性能分布式应用的中间件,主要用于开发密集计算和密集数据的应用。无论是单一的 Android 设备还是巨大的云,用 GridGain 开发的应用在任何架构上都具有良好的伸缩性。GridGain 提供了两大主要功能:计算网格 Compute Grids 和内存数据网格 In-Memory Data Grids。

可以这样理解: GridGain = (Java + Scala + Groovy) * (计算网格+ 内存数据网格)

>>> 阅读全文

 

, , ,

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 应用,虽然我们不打算深入去了解云技术的方方面面,但是我会尽量提供相关的信息和资源,为你今后的学习打下基础。

>>> 阅读全文

 

, , , , , , , , ,

Previous Posts