听听Scott Hanselman对Stack Overflow团队的采访(第1部分和第2 部分),他坚持认为SQL服务器和应用服务器应该在不同的机器上.这只是为了确保如果一台服务器受到攻击,两个系统都无法访问?安全问题是否超过两台服务器的复杂性(额外成本,两者之间的专用网络连接,更多维护等),特别是对于小型应用程序而言,这两种服务器都没有使用过多的CPU或内存?即使有两台服务器,一台服务器受到攻击,攻击者仍可能通过删除数据库或弄乱应用程序代码而造成严重损害.
如果性能不是问题,为什么会这么大?
database security networking infrastructure hardware-infrastructure
我最近发现自己处理了一个(内部)应用程序,我已经写给我公司喜欢雇用的两个候选人,以协助维护和添加次要功能.
这是我写的第一个"生产"应用程序,它有45k LOC,我花了将近两年的"独奏"开发.我还很年轻(18岁),从头开始编写应用程序,同时签约作为离开公司的前开发人员的替身.我没有经验设计这种大小的应用程序,我试图使用常见的架构和设计模式.
今天我知道我已经做了一些严肃的过度工程,例如使用断开连接的变更跟踪架构而不是所选ORM已经实现的工作单元模式.我可能永远不会去"真正的"三层.
两位候选人都有10年以上的内部应用程序开发背景和相关平台.作为他们年龄的一半,没有经验,我尊重他们的意见.当我向他们解释应用程序架构时,评论是这样的:
现在我问自己:
我是建筑宇航员吗?我怎么知道我在建筑方面走得太远了?过度工程的常见症状有哪些?
我一直在阅读Vagrant,我发现它对我的开发非常有用.我目前正在管理一系列服务(邮件,网络,LDAP,文件共享等),而且往往其中一项服务需要快速备份.是否有可能(并建议)将Vagrant用于这些目的?
到目前为止,我已经像真机一样安装了虚拟机.
我还想知道一个Vagrant的替代方案,它允许我设置一个简单的配置文件并放置一个虚拟机,例如,使用Zimbra,并快速拥有备用邮件服务器,启用RabbitMQ等.
我正在一个项目中工作,我们使用ansible来创建一个服务器集群.我要实现的任务之一是将本地文件复制到远程主机,只有当该文件存在于本地时.现在我正试图用这个来解决这个问题
- hosts: 127.0.0.1
connection: local
tasks:
- name: copy local filetocopy.zip to remote if exists
- shell: if [[ -f "../filetocopy.zip" ]]; then /bin/true; else /bin/false; fi;
register: result
- copy: src=../filetocopy.zip dest=/tmp/filetocopy.zip
when: result|success
Run Code Online (Sandbox Code Playgroud)
如果失败,则显示以下消息:ERROR:任务中缺少"action"或"local_action"属性"将本地filetocopy.zip复制到远程(如果存在)"
我试图用命令任务创建这个.我已经尝试使用local_action创建此任务,但我无法使其工作.我找到的所有样本都没有将shell视为local_action,只有命令样本,并且它们都没有其他任何命令.有没有办法使用ansible来完成这项任务?
我正在学习地形。我想在“计划”阶段打印变量的值。所以我找到了该怎么做。似乎我在这里做错了什么......
在变量.tf中:....
variable "VMCount" {
description = "How many VMs do you want to start with (number)? default=1 max=5"
type = number
}
Run Code Online (Sandbox Code Playgroud)
在 main.tf 中
output "VMCount" {
value = "${var.VMCount > 2 && var.VMCount < 6 ? var.VMCount : 2}"
}
Run Code Online (Sandbox Code Playgroud)
之后我运行 terraform plan 并且条件似乎工作正常(它创建了正确数量的虚拟机)
但变量输出还没有到来。为什么?
$ terraform output
VMC = 56
Run Code Online (Sandbox Code Playgroud)
VMC 可能来自之前的一些尝试(我尝试了几件事)。
如何打印用户输入的值(变量)?
谢谢。
我想在IIS windows server 2003上托管的一个生产asp.net网站上计划一个计划维护停机时间.
我认为这是首选行为:
一个想法是:
谢谢
我刚刚发布了一个问题,询问MapR和Cloudera架构之间的区别,并交替使用"架构"和"基础架构".这个合适吗?
为了将其置于上下文中,MapR和Cloudera是Hadoop的发行版.它们每个都包含各种守护进程,它们以各种方式相互交互.当我提到基础架构/架构时,我指的是守护进程,它们的动作以及守护进程之间的关系.
我正在寻找的正确的词是什么 - 建筑或基础设施?
两者有什么区别?
更新2009-05-21
我一直在测试使用单个网络共享的#2方法.导致Windows Server 2003在加载时出现一些问题:
http://support.microsoft.com/kb/810886
结束更新
我收到了一个ASP.NET网站的提案,其工作方式如下:
硬件负载平衡器 - > 4个IIS6 Web服务器 - >带有故障转移群集的SQL Server DB
这是问题......
我们选择存储Web文件的位置(aspx,html,css,images).提出了两种选择:
1)在4个IIS服务器中的每个服务器上创建相同的Web文件副本.
2)将Web文件的单个副本放在4个Web服务器可访问的网络共享上.4个IIS服务器上的Web根将映射到单个网络共享.
哪个更好的解决方案?选项2显然更易于部署,因为它只需要将文件复制到一个位置.但是,我想知道是否存在可伸缩性问题,因为四个Web服务器都访问一组文件.IIS会在本地缓存这些文件吗?它会在每个客户端请求中达到网络共享吗?此外,访问网络共享总是比获取本地硬盘驱动器上的文件慢?如果添加更多IIS服务器,网络共享上的负载是否会变得更糟?
为了给出观点,这是针对一个目前每月点击量达到约2000万次的网站.在最近的高峰期,它每秒接收约200次点击.
如果您对此类设置有特殊经验,请与我们联系.感谢您的投入.
更新2009-03-05
为了澄清我的情况 - 这个系统中的"部署"比典型的Web应用程序更频繁.该网站是后台CMS的前端.每次在CMS中发布内容时,新页面(aspx,html等)都会自动推送到实际站点.部署基本上是"按需".从理论上讲,这种推动可能会在一分钟或更长时间内发生几次.所以我不确定一次部署一个Web服务器是否切实可行.思考?
我正在Ansible为我的项目使用一些基础设施管理问题.我使用Linux客户端实现了这项任务,比如说从Ansible服务器复制bin文件并将其安装在客户机上.这涉及我的剧本中的任务,使用正常的Linux命令,如ssh,scp,./ bin等,
现在我想在Windows客户端中实现相同的功能.我找不到任何好的文档来试试.如果你们中的任何人尝试过将Ansible与Windows客户端一起使用,那么如果您可以分享程序或原型或任何信息来开始并进一步解决我的问题,那将会很棒.
目前,在使用自签名证书进行身份验证的内部网络上运行私有 Docker 注册表(Artifactory)。
当 Kubernetes 启动一个新节点时,它无法使用私有 Docker 注册表进行身份验证,因为这个新节点没有自签名证书。
任何帮助将非常感激。谢谢!
cloud infrastructure docker google-cloud-platform kubernetes
infrastructure ×10
architecture ×3
ansible ×2
asp.net ×1
azure-devops ×1
client ×1
cloud ×1
database ×1
deployment ×1
docker ×1
iis ×1
kubernetes ×1
networking ×1
scalability ×1
security ×1
terraform ×1
vagrant ×1
virtualhost ×1
windows ×1