Header Place holder

背景

“2014 编程之美挑战赛”是微软面向高校学生开展的大型编程比赛。大赛不限学校专业,凡对编程感兴趣、有能力的在读高校生均可参赛,加之微软在全球 IT 界的重要地位与领先号召力,学子纷纷踊跃报名参与。

解决方案

赛程安排连续紧凑,测试阶段、资格赛、初赛均是每个阶段 2 天中在规定时间内在线完成,参赛高校上百所,学生上万名,比赛阶段巨大的赛题页面访问量、文档下载量、在线编程工具使用量,程序上传量,势必造成一时比赛网络的高峰访问量,这对高峰访问时服务器压力、数据存储安全性以及系统的弹性提出了更高的要求,传统的 IT 架构模式需要增加高昂的成本投入以增加设备和人力维护赛事的顺畅;而比赛完成后,又将造成资源的空闲与浪费。

经过全方位的研究和评估,大赛决定采用公有云作为解决方案。作为世界计算机软件开发领袖和先导,微软 Azure 公有云平台具备良好的系统扩展性和可靠性,即使在高峰时间段也支持优越的用户体验和稳定的网站运营。

云角 Yungoal 是微软在 Azure 云相关领域的金牌合作伙伴,专注于各种云计算技术咨询与开发、云平台的迁移运维服务、云服务器的智能管理系统,云存储的客户管理系统等,致在为客户提供高质量的公有云服务。在云角提供的技术支持下,“编程之美”顺利在 Azure 平台上完成了部署和测试。在整个赛程中,主办者不再需要分心后台支持,能集中精力专注于赛事本身工作,确保比赛的圆满完成。

此次编程大赛平台需要支持 1 万多人同时在线浏览题目,编译代码。云角为大赛提供的系统在接收到用户提交的代码之后,能够立即编译和多次运行程序,迅速把结果反馈给用户。用户可以根据反馈修改代码进行反复提交。

在此系统中,Web 端主要来处理用户的页面请求。比赛开始阶段,所有用户一起刷新题目页面,浏览压力很大;每次用户提交代码都会使排名发生变化,用户也会频繁刷新这个页面来查看最新的排名,因此排名页面的压力也很大,不容易缓存。评测端主要来编译和运行用户的代码,需要拥有较大的吞吐量,使用户每次的提交都能及时得到反馈。

“编程之美”平台充分应用了 Azure 的特性,比如 Azure 自带的负载均衡器, Azure 中的存储可以存储 NoSQL 的非结构化数据,Azure SQL Database 可以替代 MySQL 数据库或者 SQL Server 数据库,Azure 存储队列可以提供代码编译的任务分发等,为解决系统诸多问题提供了解决方案。Azure 良好的功能和稳定性为大赛的进行打下了坚实的基础,保障了大赛的顺利进行。

优势

IT 成本降低,费用按需计算

凭借 Azure 云平台,“编程之美”比赛系统能够通过在云端部署虚拟机快速满足参赛者各种访问需求,无需增加额外的 IT 设备和人力;加上 Azure 灵活的按量计费方式,收费精确到运行分钟和存储 MB 等单位,这些都为主办方节省了大量的资金投入和可能过剩的硬件资产,大大降低 IT 成本。

灵活扩展,满足不同阶段需求

赛程在不同时间段对服务器的需求量变化很大,Azure 提供了灵活的自动快速扩展功能,能够对访问量变化做出快速响应,在保证高峰时间访问速度的同时也降低了低谷时段的资源投入,Azure 能在计算资源不够的情况下,快速从资源池调配服务器及存储资源供比赛使用,在需求较少的时候关掉甚至释放暂时空闲的服务器,满足比赛不同阶段的需求。

缩短准备周期,高效率高质量的结合

由于采用了 Azure 云端技术,赛事主办方无需经历冗长的传统 IT 建设周期,只需花十几分钟即能在云端部署所需功能,大大缩减了赛事准备周期,让比赛能够按时或提前面世。由于找到了合理的、值得信赖的解决方案,也能使赛事主办者无需过于关注 IT 后台的监控与管理,从而能集中精力为赛事提供更加优良的管理、安排和服务,为大赛的圆满落幕提供了坚实保障。

所用技术和服务