Architecture 可扩展和可扩展的跨平台体系结构,主要用于单独开发管道? 我正在寻找一个可靠的基础来开发基于Ci/CD工具的开发基础设施,根据当今的最佳实践(日期2016年底)。我想为solo开发环境做一个设置,但我希望能得到一些关于扩展它以最终获得更高吞吐量和更高可用性的建议> P.>很抱歉告诉你这个问题,但是这个问题从这个问题的基础上完全错了。

Architecture 可扩展和可扩展的跨平台体系结构,主要用于单独开发管道? 我正在寻找一个可靠的基础来开发基于Ci/CD工具的开发基础设施,根据当今的最佳实践(日期2016年底)。我想为solo开发环境做一个设置,但我希望能得到一些关于扩展它以最终获得更高吞吐量和更高可用性的建议> P.>很抱歉告诉你这个问题,但是这个问题从这个问题的基础上完全错了。,architecture,continuous-integration,devops,sysadmin,Architecture,Continuous Integration,Devops,Sysadmin,我知道这是一个广泛的问题,对于跨不同堆栈的不同工作流,有不同的方法来实现这一点。我想让事情完全开源和虚拟化,尽管我不介意答案不一样。只要它在工具方面是相当模块化的,我就可以相对轻松地杀死一台服务器并重新部署另一台服务器(例如,如果我想从Puppet切换到Chef,我只需要杀死Puppet服务器并提供一台Chef服务器) 一些我熟悉的(我目前正在学习的)在devOps体系结构中发挥作用的工具: 配置管理:Puppet、Ansible CI:Jenkins,Travis CI 打包/部署:Dock

我知道这是一个广泛的问题,对于跨不同堆栈的不同工作流,有不同的方法来实现这一点。我想让事情完全开源和虚拟化,尽管我不介意答案不一样。只要它在工具方面是相当模块化的,我就可以相对轻松地杀死一台服务器并重新部署另一台服务器(例如,如果我想从Puppet切换到Chef,我只需要杀死Puppet服务器并提供一台Chef服务器)

一些我熟悉的(我目前正在学习的)在devOps体系结构中发挥作用的工具:

  • 配置管理:Puppet、Ansible
  • CI:Jenkins,Travis CI
  • 打包/部署:Docker,LXC
  • 版本控制:Git,Github
  • 日志记录:麋鹿堆栈
  • 虚拟化/资源调配:Vagrant、Virtualbox
  • 云资源:DigitalOcean、AWS、Azure、OpenStack
我知道我在这里缺少多个组件(如安全性或存储),我也很乐意接受关于这方面的建议,但目前我最关心的是这些


很好的告诉你这个问题,但是这个问题从这个问题的基础上是完全错误的。 首先,没有银弹架构,架构定义了软件系统的框架,以满足一组业务需求。没有业务需求就没有体系结构

你需要考虑的是,一般来说,<强>系统架构试图平衡两个概念:灵活性vs复杂性<强>。事情越灵活,处理起来就越复杂。在极少数情况下,最简单的解决方案也是最灵活的解决方案

一个好的架构的诀窍来自于确定哪里以及为什么灵活性优于简单性,以及哪里以及为什么简单性优于灵活性。。。这始终与业务相关。你的工具,你的编程语言,你的ALM,你的devops工具,你的数据库。。。这完全取决于你的生意

现在。。。综上所述,您想要简单还是灵活?让我们看看你的声明:

我想有一个单独的开发环境设置。。。如果我要创办一家公司,最好的基金会是什么? 你看得不对。你梦想太多了。。。它永远不会起作用,永远,永远。。。对不起

你有一个由一个人组成的团队,而你甚至没有一个产品可以销售。不要再去想你每秒会有10000个用户,而你却在靠钱漂泊。。。你不在那里,当你到达那里,你可以开始考虑复杂的架构。。。你认为扎克伯格是从基于Facebook最新工具和实践的多节点、大数据、高度可扩展的架构开始的吗?他没有。他从他所知道的开始,专注于为预期目标创建一个产品:一所大学。。。他知道他需要支持一所大学,几百个用户。。。他不是为5亿用户设计的,我可以告诉你,facebook的第一个版本看起来与当前版本完全不同。。。现在你仍然拥有它

你也需要这样做,停止关注灵活性,开始关注简单性您需要尽快推出产品,首先。。。不仅要有东西卖,还要了解你真正需要的东西。第一次你不会做对的。。。您需要迭代

如果您开始规划动态增长、可扩展性、devops、自动部署等。。。考虑这一点的复杂性会占用你的时间,你甚至无法启动你的产品,甚至在它有机会启动之前它就会消失。复杂的体系结构适用于复杂的团队和复杂的产品。。。成熟的产品实际上需要灵活性,实际上需要可扩展性。没有什么是免费的。在您拥有10000个客户和系统因压力而过载之前,您将有足够的资金雇佣人员来处理所有这些,建立良好的devops实践,担心系统的扩展


不要在遥远的将来架起你的系统,为你的系统架起今天的需求,着眼于明年的需求和估计。/P>> P.>很抱歉告诉你这个问题,但是这个问题从这个问题的基础上完全错了。 首先,没有银弹架构,架构定义了软件系统的框架,以满足一组业务需求。没有业务需求就没有体系结构

你需要考虑的是,一般来说,<强>系统架构试图平衡两个概念:灵活性vs复杂性<强>。事情越灵活,处理起来就越复杂。在极少数情况下,最简单的解决方案也是最灵活的解决方案

一个好的架构的诀窍来自于确定哪里以及为什么灵活性优于简单性,以及哪里以及为什么简单性优于灵活性。。。这始终与业务相关。你的工具,你的编程语言,你的ALM,你的devops工具,你的数据库。。。那全靠你了