正如他们岗位职能说明的那样,DevOps团队的工作人员要比几乎所有其他IT人员更了解云计算。DevOps团队知道如何针对新部署的软件进行应用配置,他们知道如何与旧系统通过接口进行交互。当然,这也使他们非常善于对传统软件实施云计算迁移。
DevOps团队的人员都知道传统文件系统、分布式文件系统以及对象存储(例如亚马逊简单存储服务)的来龙去脉。他们还知道如何处理大规模分析应用和非关系型数据库。他们可以帮助用户把现有应用逻辑迁移至可扩展并完全在云计算中运行的服务。
企业可以通过在云计算中的虚拟机上运行所有的应用来简化应用从传统硬件到云计算的迁移工作。但是,更好的办法是真正地把所有逻辑业务完全通过网络规模级技术来实现(通常每次一小部分)。DevOps团队能够帮助处理负载平衡、容错、域名系统延迟以及状态检查等问题。
此外,DevOps团队通常被要求提交分析报告。这是因为他们拥有所有的信息,他们能够访问所有的底层基础数据,其中包括流量数据和日志分析记录。这种类型的数据在评价应用运行性能和寻找瓶颈所在时时非常有用的。DevOps人员能够帮助针对每一次部署发布进行部署管理和bug追踪。此外,他们还能够有助于确定每个发布的速度变化和性能差异。
DevOps团队的强大工具
即便是具有最高度功能化的DevOps团队也是需要第三方工具来管理诸如云计算这类的分布式环境。对于这样的环境来说,某些工具是特别有用的。
诸如FlowDock或HipChat这样的实用工具能够帮助开发团队的成员互相以及与DevOps人员保持联系。诸如Asana或Basecamp这类服务能够有助于跟踪开发任务以及在应用发布中的注意事项。
诸如Freshdesk、Zendesk或Get Satisfaction这样以客户为中心的支持门户网站可让用户直接与管理层或开发团队进行需求沟通。这将有助于触发新的或改进的功能,并确保客户的需求能够得到满足。一个DevOps团队能够帮助建立这些服务,并让团队成员了解相关技术。
能够做到这一点的人
如果您希望确保有人能够编写出能够经受测试的高质量代码,那么你可能需要在代码发生问题时就让程序员从床上爬起来解bug。而一个DevOps团队并不希望在半夜三更被一个电话叫醒,所以他们希望确保拥有所有的工具,从而确保有尽可能多的任务能够实现自动化实施。
如果有一台服务器死机,就应立即更换并,如有可能还需保留所有相关的日志以供日后分析。此时,试图修复服务器将是不明智的;当自修复系统检测到问题时,企业用户可以非常容易地使用一个自动触发的简单API调用来替换它们。而异常检测可向用户提前提出系统中存在的潜在风险因素或泄漏警告。
DevOps团队的成员需要成为云计算和云计算服务配置的权威专家。他们需要了解非关系型数据库的优势,如有需要还应知道如何高效地扩展关系型数据库。他们应能够向开发人员展示他们应用的有问题部分,并确定应在哪一种类型硬件上运行应用的每一个部分,从而帮助开发人员实现成功。他们可通过架构图来帮助确保用户系统实现黄金分割——一方面可确保用户应用的容错性能,另一方面也不会让应用运行变得缓慢。他们将能够识别算法,区分能够实现扩展和不能扩展的算法,从而确定资源容量扩展是否适当。