我经常使用SQLite在公司中创build简单的程序。 数据库被放置在文件服务器上。 只要没有超过50个用户同时处理数据库(尽pipe取决于读取还是写入),这可以正常工作。 一旦出现这种情况,如果服务器上有大量的并发写入操作,会花费很多时间在锁上,而且没有数据库服务器,所以就没有任何caching。 不需要数据库服务器的好处是,设置公司Wiki或类似的东西的时间可以从几个月缩短到几天。 这通常需要几个月的时间,因为一些IT部门需要订购服务器,并且需要符合公司政策和安全规则,并且需要将其放置在外包的服务器托pipe设施上,等等 因此,我想到了创build一个分布式数据库服务器的想法。 这个过程如下:公司计算机上的用户在Wiki页面(使用这个数据库作为其后端)上编辑某些内容,为此,他在本地硬盘上读取一个文件,说明最后一台台式计算机的IP地址成为一个数据库服务器。 然后他试图通过TCP / IP直接联系这台计算机。 如果它没有回答,那么他将读取文件服务器上的一个文件,说明最后一台台式计算机的IP地址是数据库服务器。 如果这台服务器也不回答,他自己的台式计算机将成为数据库服务器,并将其IP地址注册到同一个文件中。 然后可以执行SQL更新语句,其他桌面计算机可以直接连接到他。 这种架构的重点在于,负载越高,function就越好,因为每台台式计算机总是知道数据库服务器的IP地址。 此外,使用这种设置,我相信放置在文件服务器上的数据库可以服务数百台台式电脑,而不是目前的50台左右。 我也不相信已经成为数据库服务器的单个台式计算机的负载将会变得明显,因为在这个桌面上不会有硬盘操作,只能在文件服务器上操作。 这个想法是否可行? 它已经存在了吗? 什么样的数据库可以支持这样的架构? 编辑:我应该指出,这个想法是不漂亮,稳定,最佳实践,或者我真的感到自豪。 我仍然对可行性感兴趣的原因是,我的一些客户是银行,涉及访问数据库的官僚机构是巨大的。 通常这些项目的项目发起人需要高于副总裁级别,因为他们对获得服务器的访问极度担心。 不用说,这意味着build立一个Wiki有很多工作。 后来如果Wikicertificate是成功的,那么它当然应该被移植到一个合适的数据库服务器上。 编辑2:这个想法的原因是当数据库被放置在文件服务器上时使用SQLite时降低写作者饥饿的风险。 这个问题在5.1节中描述。 利用台式电脑获得访问量最大的信息(即Wiki页面)的caching,意味着文件服务器上的工作负载将大大降低。 这又应该改善用户体验。 你真的认为我还有这个想法吗?
我正在制定一个部署脚本,用于打开我的代码目录,在当前date和时间之后将tar文件命名,将其推送到服务器,将其解压到相同名称的目录中,然后交换“当前“符号链接指向新的目录。 这意味着我较旧的部署留在时间戳目录(至less直到我删除它们)。 tar文件大约5MB,传输需要将近一分钟。 我想加快速度。 我假设每个新的tarball在结构上都与之前的tarball非常相似(因为我经常只是在部署之间更改几行源代码)。 有没有办法利用这个事实来加快我的上传使用rsync? 理想情况下,我想说“嗨rsync,上传这个本地文件称为2009-10-28-222403.tar.gz到我的服务器,但它只是一个不同的文件2009-10-27-101155.tar .gz已经在那里,所以试着只是发送差异“。 这是可能的,还是有另一种工具,我应该看?
我们正在开发一个应用程序,将现场部署到各种安装(而不是云)。 我们的OEM合作伙伴要求我们为他们提供ISO,以便能够快速configuration新的服务器。 我们的应用程序是build立在容器周围,我们有一个私人的面向Internet的registry设置能够拉最新的传递构build。 我还不确定OEM合作伙伴是否能够自己提取这些图像,因此我们正在调查预装docker图像和ISO的可能性,但是有一些困难。 我们尝试过的一些事情: systemback – 我们尝试使用我们的首选设置(由我们拥有的angular色定义)提供新的ubuntu安装,然后使用systemback捕获结果。 在重新安装生成的ISO后,我们遇到了docker错误: Error response from daemon: open /var/lib/docker/aufs/layers/blahblahblah: no such file or directory类似于#22343的 Error response from daemon: open /var/lib/docker/aufs/layers/blahblahblah: no such file or directory chroot监狱 – 再次,我们试图创build我们的用户,安装docker,但试图拉我们的图像时,我们迎接: failed to register layer: Error processing tar file(exit status 1): invalid argument无论我们拉什么形象(即使官方dockerUbuntu的形象,例如)。 Google对这个错误没有任何帮助。 RancherOS – 在这里,我们find了预装docker 映像的说明,但不知道如何将它们与iso捆绑在一起 。 看起来我们和#1449有相同的用例,但是没有真正的解决scheme。 现在所有我能想到接下来的尝试是docker save我们的图像,并包括与ISO的tarball,然后当第一次启动ISO运行一个脚本来检查docker图像是否存在,如果不存在,做一个docker […]
我最近在我的工作场所build立了一个新的SCCM 2012环境,现在我们正在创build我们的分发应用程序。 一些应用程序使用脚本进行设置。 在testing过程中,有些东西是不正确的,应用程序的内容需要改变。 分发点不断向客户提供旧内容。 我想知道当应用程序的内容发生变化时,更新DP的正确程序是什么。 我已经尝试重新分配到分发点,并删除旧版本,但无济于事。
在Server 2012上部署RDS时,有两种select:使用“基于angular色或基于特征的安装”选项或使用“远程桌面服务安装”的“特殊”方式以“常规”方式安装它? testing时,我select了基于会话的桌面部署。 有什么区别? 我已经尝试了两个不同的服务器,并找不到任何重大的差异。
我正在寻找解决scheme来自动化我们的应用程序的部署过程之一。 在开始部署时,我想以编程方式将指定的服务器设置为维护模式,最后在部署完成后,从nginx服务器中删除维护模式标志。 通过维护模式,我的意思是nginx应该以HTTP响应代码503响应所有的请求(可能的自定义页面)。 我知道如何设置服务器块与503代码(请参阅http://www.cyberciti.biz/faq/custom-nginx-maintenance-page-with-http503/ ),但问题是关于如何以编程方式并最有效地。 我脑海中有两种select: 选项1:在部署过程开始时,将维护文件写入文档根目录,并有条件地检查nginx服务器configuration中是否存在维护文件: server { if (-f $document_root/in_maintenance_mode) { return 503; } } 此方法包含一定的开销,因为检查每个请求的文件存在。 只有在加载nginxconfiguration文件时才能检查文件是否存在? 选项2:部署脚本用维护版本replace整个nginx服务器configuration文件,并在部署结束时将其交换回来。 如果使用此方法,我担心可能会覆盖维护configuration文件的其他自动化进程(如puppet)。
我的办公室有大约120个Windows客户端。 我们需要一种方式来部署和更新免费/可下载的软件,如Flash,Firefox,Skype等。 这意味着我们希望我们的客户始终拥有这些软件的最新版本。 我们尝试了谷歌search,并find像wpkg的解决scheme…但这不是我们想要的..它只是提供了一种部署方式,你仍然必须find每个应用程序的安装程序自己,并不断检查其网站的新的更新。 作为一名程序员,我认为拥有一个“中央数据库”以及这些软件最新安装程序的链接将是一件好事,这将使自动更新变得轻而易举。 有任何想法吗? 编辑 为了使事情更清楚,我们正在寻找一些所有最新软件包的存储库(无论哪种格式,但最好是.msi或.exe)。 似乎没有像大多数Linux存储库一样不断更新的东西。 我不认为这是一个版权或testing的问题,因为回购只会链接到实际的安装源。
对于一个小型networking(<50个客户端)的Windows软件分发来说,这是一个非常新的问题。我想知道如何处理Adobe Reader或Java等软件包。 我可以通过组策略将它们部署为MSI。 但是当客户端软件检测到更新时会发生什么? 什么是常见的方法来处理这个? 禁用软件的自动更新function? 当pipe理员检测到新版本时重新部署? 只是钓鱼知识,谢谢任何暗示。
我的团队使用TeamCity进行持续集成。 它将通过Web Deploy构build,testing和部署Web应用程序到dev和qa Web服务器。 棘手的部分是部署到生产Web服务器 – 我们的政策规定,开发人员不能部署到生产,只有系统pipe理员可以。 我们目前的方法是让TeamCity构build一个Web部署包,pipe理员可以下载并安装在生产Web服务器上。 但是,我们希望允许他们只需点击构buildconfiguration上的“运行”,但我们不确定如何确保该button的安全。 我们可以创build一个只有pipe理员才能访问的TeamCity项目,但是我们也必须解决Web Deploy安全问题。 Web部署服务需要使用生产服务器上的本地pipe理员帐户进行身份validation。 我们不希望开发人员在构build脚本中访问用户名/密码,也不希望每个构build代理都以此帐户运行,因为开发人员可以创build一个构build,以便将其部署到生产环境。 在TeamCity安全/部署最佳实践方面,我还没有find太多的运气,但是我无法想象我们是这种情况下唯一的公司。 其他人如何pipe理自动部署安全性?
我有一台运行RDS的Windows Server 2012生产服务器。 我想复制我已经完成的所有设置此RDS服务器(用户configuration文件,文件,设置等),并使第二个服务器相同的服务器。 显然,我希望第二台服务器具有不同的名称和SID,以便它们都可以在同一个networking中处于活动状态并join到我的域中。 我目前有第一个服务器的Windows备份映像,我试图部署到第二个服务器,但是我恐怕我可能会走错方向。 预先感谢您的帮助!