天了噜!程序猿女朋友都会写的How-old.net!

昨天北京的大雪,并没有减少大家对牛津计划·Docker在线黑客松的热情,许多小伙伴还是冒雪来到了『中场充电站』,为大家点赞!

‌‌

微软亚太研发集团云计算与企业事业部首席项目经理李京梅首先介绍了牛津计划。牛津计划的API服务一共包括四大类:人脸识别(Face APIs),语音识别(Speech APIs),计算机视觉(Computer Vision APIs),语言理解智能服务(LUIS)。

其中最为大家所熟知的就是人脸识别的API了,火爆全球的『How-old.net』测颜龄网站和『TwinsOrNot.net』我们有多像网站, 都是调用它的API。

Docker是当下最火的容器技术,不仅是开源界的super star,更是软件生产力的革新,堪比运输行业的集装箱,『Build, Ship, and Run Anywhere』是他的终极目标。也就是说,未来你可以在任何平台运行你的应用,是不是很赞?

牛津计划+Docker又能碰撞出怎样的火花呢?这就需要你在『牛津计划·Docker在线黑客松』中发挥你的想象力啦!

这里抛砖引玉,为大家介绍一个简单的『How-old.net』的实现,并把它Docker化,快速运行在灵雀云上,让大家都能访问到。

牛津计划为主要编程语言都提供了sdk,详见https://www.projectoxford.ai/sdk。这个实例用ASP.NET实现,最终会在Linux平台上运行起来哦,靠的是Docker的『魔力』,这个我们后面再讲。

ASP.NET程序都有一个基本的框架,这里就不一一为大家介绍了,主要介绍一下核心代码。

如何调用牛津计划API?

你可以在client端或在server端程序调用牛津计划API接口,如果你用javascript或node.js来调用,可以参考一下代码:

var urlParams = {

analyzesFaceLandmarks: true,

analyzesAge: true,

analyzesGender: true,

analyzesHeadPose: false

};

var detechApiUrl = ‘https://api.projectoxford.ai/face/v0/detections?‘ + $.param(urlParams);

$.ajax({

contentType: ‘application/json; charset=utf-8’,

headers: {

‘Ocp-Apim-Subscription-Key’: ‘<your oxford token>’

},

url: detechApiUrl,

data: JSON.stringify({url: <image_url>}),

dataType: ‘json’,

method: ‘POST’,

processData: false,

beforeSend: beforeSend,

success: function(data) { successHandler(data, index); },

error: errorHandler

});

此外,牛津计划为主要变成语言都提供了sdk,你可以参考https://www.projectoxford.ai/sdk

Docker化

下面就是让ASP.NET应用能跨界run在Linux上最关键的一步了:Docker化

首先,指定微软的microsoft/aspnet作为基础镜像,镜像地址:https://hub.alauda.cn/repos/microsoft/aspnet。之后,复制了源代码到/app目录,并将它设置为工作目录,最后,启动asp.net应用程序,并暴露在80端口。具体的Dockerfile如下:

FROM microsoft/aspnet:1.0.0-beta4

COPY . /app

WORKDIR /app

RUN [“dnu”, “restore”]

ADD run.sh /app/run.sh

EXPOSE 80

CMD [“./run.sh”]

天啦撸!这么简单就能Docker化!更多关于如果编写Dockerfile的信息,参考文章:http://www.alauda.cn/2015/07/17/dockerfileinstructions/

持续构建

完成代码后,上传到主流的代码仓库,再通过灵雀云的持续集成,就可以实现代码更改被快速体现到应用中啦!

目前灵雀云支持的代码仓库包括国外的GitHub,Bitbucket,国内的GIT@OSC,以及GitCafe。

关于这一步,灵雀云的文档有比较详细的介绍,请参考http://docs.alauda.cn/feature/image-building/create.html。你首先需要为您的代码仓库创建一个对应的镜像构建仓库,之后你就可以手动或自动的构建Docker镜像了。

服务部署

接下来就可以用上面构建好的镜像部署服务啦!选择刚才构建好的Docker镜像,进入下一步,键入创建服务的基本信息,然后点击创建。有关创建服务的详细帮助,可参考:http://docs.alauda.cn/feature/service/create.html

现在你的应用就被部署在云端了,服务详细页面提供了访问链接,地球上有网络的地方都能访问到啦!

这么简单!是不是想试一试啦!参加『牛津计划·Docker在线黑客松』,还有平衡车,『星战7』萌物,机械键盘等极客大奖可以拿!点击『阅读原文』报名吧!

牛津计划最近还新添了表情识别的API,看你的照片就能识别你的喜怒哀乐,快发挥你的想象力去试一试吧!

发表评论

电子邮件地址不会被公开。 必填项已用*标注