Score:0

Middle sized company server architecture

gf flag

I am designing server for middle sized company which should offer services as accountancy software, property record software, file server etc. My idea is using Hyper V server as type 1 hypervisor. As virtual OSes I need use Windows for one of the requested software (company has the license). For other software I am thinking about 1 virtual OS for 1 application + virtual server dedicated for database which would serve for all virtual OSes + virtual OS for file server. I am attaching an outline.

outline

Is this a sane idea? Should I consider Kubernetes as a platform for my apps? Thanks for ideas.

anx avatar
fr flag
anx
As these days security considerations demand that restoring after a total failure is much more than an afterthought or unimportant side issue, please do not build anything larger than you can comfortably *also* plan how to backup & restore.
anx avatar
fr flag
anx
Whether you should deal with virtualization yourself or have some cloud hoster do that for you depends a lot on specifics of your requirements & intent to retain in-house capabilities, I don't think that can be answered in an *objective* manner from your question as is.
hardcheese avatar
gf flag
Understood. To answer first reply, that is why I consider model 1 app=1 virtual os. These OS are without state since all data are kept in dedicated and backuped database server. So restoring would be pretty easy.
vidarlo avatar
ar flag
@hardcheese Should you use k8? Sure - if the services are intended and suited for k8 then that's probably a good idea. However, if your accounting system is a behemoth from 1985 (as many are), it's probably not possible. In short: your question is impossible to answer as it stands, as it entirely depends on the software and needs.
cn flag
Why do you think kubernetes is even usable? Not being snippy here - but unless you control the whole app universe, there is a good chance that something the company uses at least is not supported on it, and then you basically violate best practices.
hardcheese avatar
gf flag
Yes literally everything except one service isn't written in container way. That is something I would have to do but right now I cannot see any advantage. That's why I asked about Kubernetes since I am not sure if it worths it.
Score:1
cn flag

Yes, separating applications is standard practice. Limiting the number of things installed on any one instance is easier to maintain, and better security isolation.

Sure you could implement with VMs on Hyper-V, that is an option for compute platform.

Ask the organization to define what the recovery time objective should be. On a single server, if hardware failure took it down, all the applications would be down until it was replaced. Fixing it faster than a day may require same day service contracts, or multiple VM hosts in a highly available cluster. And test your backup restores.

Licensing is more complicated than having one single license. Ask a licensing person at your reseller to verify.

Containers, and especially Kubernetes, adds a quite different interface to compute. New concepts of container workloads, services, networking, and deployment methods. Something to explore, but applications would need to be adjusted to make use of the APIs. Do research and a proof of concept with your applications first before committing to containers.

Score:0
my flag

For such a simple setup I would not recommend hyper V, but vSphere directly (if budget allows).

Personally I would use a completely different approach (100% free), ie a FreeBSD machine (supermicro for example) with NVMe drives (to be mirrored via the zfs filesystem), plus some spinning HDDs for internal replica and backups, plus some very low-end SSDs for restore testing.

This can act as a samba "physical" shared file server On it I would run VirtualBox virtual machines for Windows, allowing you to use timed snapshots and also zfs replicas for example on a cheap NAS on iSCSI. For the rest of the Linux software (what is it?) almost certainly there is also a FreeBSD version (eg mariadb / mysql), which can therefore be safely used.

Pros:

  • use low-cost NVMe mirrored. Which is by no means easy to achieve.
  • almost total security with zfs
  • possibility of snapshots and backups far beyond that allowed by hyper-V (and vSphere)
  • no needs for expensive RAID cards
  • completely free (obviously @ net of Windows licenses)

Cons:

  • there is no convenient interface like that of vSphere to manage virtual machines. In fact I would NOT have recommended this solution if there were half a dozen or maybe 20 VMs

But one essential element is missing: a complete list of programs that must be used

John Mahowald avatar
cn flag
Why VMware or VirtualBox, the question was about Hyper-V?
Franco Corbelli avatar
my flag
"Should I consider Kubernetes as a platform for my apps"? Therefore I suggest to take another solutions. Just a suggestion
hardcheese avatar
gf flag
I have no problem with another suggestions. Concerning Kubernetes I have software developer background where I had to use Kubernetes every day so I can use it on developer level. I was very happy with its functions but I am not sure it worths for my relatively small amount of requested software from company I work for. So right now I am considering model one virtual os for one app. Even maintain would be easier probably.
mangohost

Post an answer

Most people don’t grasp that asking a lot of questions unlocks learning and improves interpersonal bonding. In Alison’s studies, for example, though people could accurately recall how many questions had been asked in their conversations, they didn’t intuit the link between questions and liking. Across four studies, in which participants were engaged in conversations themselves or read transcripts of others’ conversations, people tended not to realize that question asking would influence—or had influenced—the level of amity between the conversationalists.