随着TheServerSide在如何在DevOps相关的时间和金钱方面进行最好的投入的调查的继续,为了把一些业界专家建议的各种有助于打造出可伸缩、安全及高性能的部署的最佳实践关联起来,现在的关注点已经转移了。以下就是业界最重要的、专家亲自试过的5个技巧和最佳实践:
1、警惕总体安全风险—Tufin联合创始人兼CTO Reuven Harrison强调了网络不断增长的复杂性。他说,虚拟化、云、BYOD以及软件定义网络(SDN)等新兴技术不断得到采用意味着网络变得越来越复杂,愈发的异构化,安全风险也是如此。“随着SDN和网络虚拟化继续走向成熟,以任何程度的效率和安全性来管理这些网络的唯一办法是把关键的管理功能自动化,”他说:“这就是DevOps的前提。但是DevOps必须把安全作为一个关键组件包括进来,因为没有它的话,SDN和虚拟化等技术所引入的网络变化的体量和节奏会把该环境下的IT风险的水平提高到天那么高。”这其中的巨大挑战是迄今为止,安全被视为是事后想法,而安全组织又被认为是企业的抑制因子,只会告诉企业什么做不了而不是如何安全地做事情。这是一个文化问题,需要安全、开发者以及运营团队培育出此前未有过的一定水平的信任和协作。做到这一点的唯一办法是逐步地、带着警惕地去做。
2、观察安全风险变化—ASG Software Solutions负责产品管理与云的副总裁Torsten Volk说,把DevOps看作一种可将开发者和IT运营引向更快更高效的部署、运营及升级应用的协作理念和流程很重要。“在DevOps之前每一次新的发布都会引发同样一组的安全考虑,”他说:“然而,一旦新发布以一种高得多的节奏进行时,安全也不得不成为一个不能间断的关注点。”就这一点而言,DevOps工具可以通过主动保证基础设施和软件组件配置的一致性来提供帮助。这些工具甚至还可以通过经常验证安全最佳实践的恰当运用,来自动化修复安全隐患并自动采取对策。尽管后一种场景听起来似乎很先进,但端点才是每一个DevOps团队都渴望到达的。
3、注意可伸缩性—根据PythianDevOps团队主管Aaron M. Lee的说法,往往有两类伸缩性是DevOps工程师需要处理的:应用和组织。“App的可伸缩性真的就是开发和运营成功交付特定水平的并发性的系统需要花多长时间花多少钱的问题;即达到经过一段时期之后可匹配或超过用户需求的水平,”Lee说。“评估这些问题的答案对于许多公司来说是一个至关重要的成功要素,而做到这一点的能力往往不为人知”Lee说可伸缩性是每一个人的问题。企业和技术的人必须在功能、推向市场的时间、成本以及风险承受能力等方面做出权衡。你需要有合适的衡量目标,包括特定模式下的那些端点上有多少用户,有多少并发请求。
4、争取实现易用—DevOps就是自动化和可重复性。Andy Piper博士是总部位于伦敦的Push Technology的CTO,他说这需要有可配置的虚拟环境,而且要有很多。“要想可伸缩就得自动化,”他说:“因此,要确保你在使用Puppet及Chef这样的工具来对VM的建设和配置进行自动化。类似地,要确保你有能力对其进行备份,如在本地进行的备份,这种方式要想实现动态伸缩会更棘手,或者在云端备份,如果你的产品必须如此的话。”到最后,令产品易于安装、配置和运行会令整个DevOps过程容易得多。
5、管理网关—InfoZen 负责Cloud Practice的项目管理总监Susan Sparks说,尽管新的目标是在开发和运营团队之间建设最好的文化,但为了确保产品环境保持稳定,在这两个职能之间保留一些网关仍然是好的。“我们的团队建构方式就是为了把运营人员纳入到开发讨论和日常的敏捷开发当中,以便运营团队理解未来的各种发布中会出现哪些变化,”她说:“运营团队负有维持产品运营稳定性的责任。我们发现这一方法对我们很有效。我们建议测试和运营都采用自动化。我们的集成测试允许我们在到达生产前就能找到问题,我们的运营自动化实现了成本效率和更优质的运营。通过自动化,更少的人接触生产环境,因此可显著减少人为错误。这还帮助改善安全形势,因为更少的人需要接触产品环境。”
“DevOps并不难。难的是在组织没有采取DevOps方法来进行集成、开发和部署时引起的挑战的应对,” TheServerSide 的软件架构师兼编辑Cameron McKenzie说,这种观点很难质疑。通过采用DevOps的办法,并注意这5个步骤,那么一个成功的DevOps环境只是一两次实施罢了。