Info about servers needed

So right now I am working on a project for school and I need some info about servers. We are trying to create a plan that could be used by any major corporation. If you have any knowledge about server maintenance and purchasing please help by answering the questions we have. Any help and info provided would be very helpful!

What we want:

  1. We want 5 servers for the major departments. (unless we can have a high speed with only one server)
  2. Each server needs to have access to the same information

Questions:

  1. What it the optimal system set-up for a data heavy application?
    A. How much data can it store?
    B. What is it’s speed?
    C What is it’s cost?
  2. What is the optimal program to manage a data heavy server(s)?
  3. How many employees would be needed to manage the server(s)?

I believe these are the wrong questions.

Lets break down what a server does it host an application or applications.

What application’s are you hosting?
What are the requirements of the application’s?

Without answering these questions you can’t answer the others.

1 Like

Ok, I will leave out the name of the company I am working for to keep this discussion unbiased. Another thing you might need to know is that I am working to get a “contract” from the company. I put contract in quotation marks because this is a high school project and the company would never give me an actual contract.

The application is for android and ios designed for over 700 employees. It is designed to help those who work for the company to access their schedule, manuals, and contact other employees of the company. This could eventually be a custom made app designed by the company.

The application needs to access documents containing schedules, parts, equipment, and manuals. It also needs to help log maintenance reports, and check out equipment to users. It also needs to be able to answer questions users may have about other departments (similar to a google search for the company’s open data). Lastly, it needs to be able to contact other users of the application through the app and email or video.

@Littlepchan I think what @Robert_Davidson was trying to direct you towards was more along the lines of knowing what you need done ‘technically’. What you last described is the functionality and how a user will see the use of your ‘system’.

Now knowing that… I would ask you questions like:

  1. Are you running a database?
  2. Multiple Databases?
  3. What kind of databases?
  4. Are the multiple databases located on different servers?

I am also now wondering…

Are these servers existing and will they already be doing services and applications for the company prior to adding the usage of your application?
If so, you need to know what they are already doing and how that impacts the servers’ performance.

So many questions… :wink:

1 Like

Ok.

  1. We will be running a database.
  2. One database
  3. Doing some quick research I think a Remote Database Server is what we want to go with
  4. If we did run multiple servers they would need to have the same data and be able to access the other servers. As such, I think we want to stay with one database.
  5. We don’t know what the company has in terms of databases and servers. We have been emailing them to try and learn what they have. However, we have not gotten any responses for the past week. As such, we don’t know what they have and how it will affect what they have.

Ok so I am understanding a little more about where your team is at in the process of things with your potential ‘customer’…

Sounds like you don’t currently have a working version of this software/app running on a development server. Most decent IT staff want to know the system/network requirements of your proposed product/service. Sounds like that is what you are currently trying to figure out.

In other words you are working backwards right now… you need to flip it around and find out what your app requires and then see what kind of hardware/network the customer has and how it will be impacted by using your product/service.

Ok. I’m certain that we do not have the time to do this the correct way. Trust me I wish we could. We have one work week to finish this and no team has gotten the info necessary to do anything right. I will see if we can develop a functioning form of the app on a dev server to figure out what it needs. Until then, i have some more questions.

How can I figure out what my app requires?
How would I be able to figure out the impact it has on the company’s servers?
If I can’t learn about what their server is, can I get a website link that would help me design a server?

Not knowing anything about your app…

I will assume some things:

  1. You are going to use one database to house all the information your
    app is going to need.
  2. The app is going to need outside access to their internal server that has the database unless they don’t mind you hosting that database out side their network.

Here are some things to think about when determining what your app requires:

  1. You need to track how much cpu power is taken up to facilitate the transactions being made to the database from your app and be able to scale it based on number of users.
  2. How much bandwidth is taken up by your app’s transactions with the database from outside the network.
  3. How are updates to the app’s database made once you are up and running. Any downtime?

I would say just make a development server of some generic desktop laying around and work with it. As you begin to build your app and some example data to start working with you will see what it takes to run it and maintain it.

Most app developers already have an idea of what their systems are going to require based on previous experience. I honestly don’t think you need to worry about the hardware limitations of a server as you do on just making your app work and sync with all the other data you listed above that it is going to pull from other applications and files.

You have a long road ahead of you… Make the app work first. :wink:

In a real world IT operation, we never buy hardware by itself. Instead, we buy a workflow/process, starting with the application(s) we need to support, and then buy whatever hardware we believe we need to support it. So we always start from some base requirement imposed by the application.

To do your assignment, I would suggest looking at some of the business applications out there like sales/contact trackers, etc. Most of them these days have web frontends, and offer ios/android apps as a (paid) feature option. Typically the marketing material for the application will list requirements. You can use all of the material you find, the marketing and requirements documentation to pump up your assignment. The typical requirements will tell you what operating system it runs on, what storage type it uses (by file, flat file, SQL, or something else), any oddball IO devices (like card swipes, scanners, printers, dongles,etc).

Using the information will make it a lot clearer what you might need to buy. Bear in mind, 700 people may sound like a lot, but IT-wise, that’s a pretty small workload. Remember, only a few of them will be using the app at any given moment.

Also, bear in mind, how you build it depends more on how mission critical what it does is. If the Company can’t run without the application, then it needs to be built to tolerate equipment failures, power failures, the stupids, etc. IT Pros don’t build systems with single points of failure anymore.

In a larger shop, this probably wouldn’t result in any new hardware spending. Instead, the systems tech would spin up a couple of virtual machines out of their VMWare farm, build an iSCSI LUN on their datastores, then install an OS, the application, configure it, and move on to the next one.

So, define your requirements, and lets see what kind of suggestions you get to solve the what-to-purchase problem.

5 Likes

To add to what @Tapper said… When searching for those other applications… Try searching for small or medium business ERP software.

Enterprise Resource Planning software does a lot of what you described in your second post.

You can try and find a small-ish piece of software and look at its requirements. Many are now cloud based, but some companies still prefer to own and maintain their solution.