写点什么

Cinchcast 如何支持每日发布 1500 小时的视频内容

  • 2012-08-29
  • 本文字数:1462 字

    阅读完需:约 5 分钟

Dr. Aleksandr Yampolskiy,作为 Cinchcast 和 BlogTalkRadio 的首席技术官,在近期的一篇文章中从 Cinchcast 的软硬件系统、技术选型以及经验教训等方面分享了他们在扩展自己的平台时的一些经历和决策。(Cinchcast 公司提供的解决方案让客户能够基于创建、分享音频内容等服务来吸引和联系他们重要的业务干系人。)

整篇文章主要分为如下几部分:

一、统计数据概况

  • 浏览量每月超过 5000 万
  • 创建了 50000 小时的音频内容
  • 1500 万个流媒体
  • 175,000,000 次广告展示
  • 峰值每秒 40000 并发请求
  • MSSQL、Redis、ElasticSearch 集群中存储的数据达到每天数 TB,
  • 10 人工程师团队
  • 生产环境大概有 100 左右的硬件节点

二、数据中心

线上网站是在布鲁克林的数据中心运行,考虑到可控性,生产环境并没有用到云,但 QA 和 Staging 环境则使用了 Amazon EC2 实例,这一点值得我们参考, 因为测试环境就算不稳定也不会有什么大的风险,而生产环境则不同,大部分公司都愿意把控在自己的运维人员手中。

三、硬件

  • 大概有 50 台 Web 服务器
  • 15 台 MS SQL 数据库服务器
  • 2 台 Redis 的 NoSQL 的键值服务器
  • 2 台 NodeJS 服务器
  • 2 台 弹性搜索集群服务器

四、开发工具

  • NET 4 C#:ASP.NET 和 MVC3
  • IDE 用的是 Visual Studio 2010 Team Suite
  • 用 StyleCop、ReSharper 来强化代码标准
  • 使用敏捷。其中大的功能用 Scrum,小任务则通过看板任务墙管理
  • 测试和持续集成使用 Jenkins + Nunit
  • 自动化测试则是 Selenium 和 Sauce On Demand

五、软件和使用的技术

  • Windows Server 2008 R2 的 64 位操作系统
  • 基于微软 Windows Server 2008 Web 服务器下运行的 SQL Server 2005
  • 负载均衡是 EQL(Equalizer load balancers)
  • Redis 作为分布式缓存层和消息分发队列
  • NodeJS 用来进行实时分析和更新仪表盘
  • 搜索用得是 ElasticSearch,日志分析是通过 Sawmill+ 自定义分析器脚本

六、监测

  • NewRelic:性能监控
  • 性能对 KPI(转换率,页面浏览量)的影响:Chartbeat:
  • Gomez,WhatsupGold,Nagios 等用来各种预警和报警
  • SQL Server monitoring 的监控:来自 Red Gate 的 SQL Monitor

七、处事方法论

  • 尊重他人的时间。不要带着问题来,要拿出解决办法。
  • 不要去追逐当下的热点技术,先实现基本功能,然后再做锦上添花的。务实是最重要的。
  • 成为一个“如何做”的团队而不是总是说“不”的团队
  • 预先处理总比亡羊补牢要好,把安全植入到软件开发生命周期中,通过培训开发人员如何写出安全的软件并把它从一开始就作为业务优先考虑之处。

八、 架构

  • 所有的 Javascript, CSS 和图片都缓存在 CDN,通过 cookie 来区分常规用户和广告用户的请求,并分别指向不同的服务器集群。
  • 向 SOA 架构进行迁移,系统中的关键部分,如搜索、认证、缓存都是用不同语言实现的 RESTFUL 服务。
  • Redis NOSQL 的键值存储(redis.io)被用来作为一个数据库调用之前的缓存层。

九、经验教训

  • SQL Server 数据库中的文本搜索不好用,经常出现 CPU 阻塞,所以他们切换到 ElasticSearch,一个 Lucene 的衍生工具。
  • 微软内置的会话模块容易出现死锁,他们用 AngiesList 会话模块取代了它,并把数据存储到 Redis。
  • 日志是发现问题的关键。
  • 重新发明轮子,有时候也可以是一件好事。例如,在一个供应商的提供的 JS / CSS 的产品导致性能问题的时候,他们通过重写显著改善了网站的性能。
  • 并不是所有的数据都是关系型的。
  • 在开发中不使用指标检测就像在风暴中不参考高度表来降落飞机,因此整个开发过程中,一定要通过网站吞吐量,解决错误的时间、代码覆盖率,等指标来衡量你的效率。 总的来说,对于日 PV 百万级的网站来说,Cinchcast 的架构、研发、运维等层面的技术选型和经验值得学习和参考。
2012-08-29 03:202204
用户头像

发布了 42 篇内容, 共 19.8 次阅读, 收获喜欢 6 次。

关注

评论

发布
暂无评论
发现更多内容

编写实用有效的产品帮助文档,提升客户满意度

小炮

帮助文档

OpenCloudOS 云原生演进之路

TencentOS

面试题:关于HDFS,你的沉淀是什么?

Joseph295

AIRIOT物联网低代码平台如何配置Modbus RTU协议?

AIRIOT

驱动配置

全国超市区域分布分析-数据分析学习笔记-1

清林情报分析师

数据分析 学习笔记 数据处理 数据可视化 知识图谱

关于2022年12代C/C++Linux服务器开发高级架构师课程体系分析

C++后台开发

后端开发 Linux服务器开发 C++后台开发 Linux后台开发 服务器开发架构师

一文了解游戏美术开发流程,以及可能遇到的问题

龙智—DevSecOps解决方案

perforce Helix Core Helix DAM

达人专栏 | 还不会用 Apache Dolphinscheduler?大佬用时一个月写出的最全入门教程【三】

白鲸开源

Apache 大数据 开源 DolphinScheduler workflow

敏捷团队教练工作坊 (Coaching Agile Teams) | 6月11日

ShineScrum

敏捷 教练 敏捷教练 cat 高管教练

IP归属地火了,IP地址黑灰产浮出水面 要如何预防?

郑州埃文科技

网络安全 IP地址 网络灰黑产

英特尔宣布加入OpenCloudOS操作系统社区

TencentOS

2022年中国互联网母婴行业年度分析

易观分析

母婴产品

物联网时代,如何保障嵌入式系统安全?

龙智—DevSecOps解决方案

klocwork perforce Helix QAC

云原生架构及演进

云智慧AIOps社区

云原生 k8s 构架

云启资本宣布加入 OpenCloudOS 操作系统社区,将自身在开源领域近十年的经验贡献社区

TencentOS

千万奖金的首届昇腾AI创新大赛来了,OpenI启智社区提供开发环境和全部算力

OpenI启智社区

人工智能 昇腾AI大赛

Jira工时管理插件线上安装量过百,龙智产品赢得全球企业信赖

龙智—DevSecOps解决方案

Jira插件 龙智 龙智自研插件

如何 DIY 一款属于自己的【3D 重力感应 动态壁纸 】,看完这篇文章你也可以学会

呆呆敲代码的小Y

android Unity 壁纸 动态壁纸

《银行保险机构消费者权益保护管理办法》,如何影响行业与个人?

易观分析

金融消费

中科曙光加入OpenCloudOS操作系统社区,携手共建应用生态体系

TencentOS

密码学系列之:使用openssl创建私有CA

程序那些事

密码学 程序那些事 5月月更

为什么要上云,您的团队适合上云吗?Atlassian白皮书给你答案

龙智—DevSecOps解决方案

Atlassian atlassian云版

卷入上海疫情,被封40天,我的一点心得

大数据梦想家

程序员 程序人生 疫情防控

中兴通讯宣布加入OpenCloudOS操作系统社区,为自主操作系统做出重要贡献

TencentOS

勇往直前,做全能开发者,华为伙伴暨开发者大会2022精彩活动正式解锁!

华为云开发者联盟

云计算 量子计算

市场份额不断提升,百度智能云稳居金融云解决方案市场第一阵营

百度开发者中心

7 款最棒的 React 移动端 UI 组件库 - 特别针对国内使用场景推荐

蒋川

UI 前端框架 React 移动端 组件库

百度吴甜提出大模型落地关键路径 业内首发行业大模型

百度开发者中心

上证数据可视化分析展示-数据分析学习笔记-2

清林情报分析师

数据分析 学习笔记 数据处理 证券 上市公司

如何提高团队的工作效率?

ShineScrum

Scrum 敏捷 团队效率

手把手教你如何高效落地单项目管理 | 一看既会

阿里云云效

云计算 阿里云 项目管理 敏捷开发 单项目管理

Cinchcast如何支持每日发布1500小时的视频内容_架构_晁晓娟_InfoQ精选文章