You’ve just developed, written, and tested the next killer application and it’s time to introduce it to the world. Before you make your first million though you have to determine where the application will be hosted and how it will run. Deploying production applications to Datacenters was once an option reserved only for high profile corporations with private datacenters or pockets deep enough to outsource their data processing to companies like EDS, IBM and CSC. The advent of the Internet, the 386 processor, server virtualization, and public clouds changed that. Today, anyone can deploy their applications anywhere in the world. With so many choices available, where will you host your next application? This article is the first of a four part series intended to provide you with the insight you need to select the appropriate hosting scenario for your application.
In this four part series we will introduce and discuss the following application hosting options:
- Part I – Do It Yourself
- Part II – Virtual Private Servers – Coming Soon
- Part III – Datacenter Colocation – Coming Soon
- Part IV – Public Cloud – Coming Soon
Part I: Do It Yourself
A popular choice that predates the availability of datacenter colocation and public clouds. This option basically entails you purchasing servers and running them locally from your own facility. If your application needs to be accessible from the Internet, you will need to maintain a secure external network access point for your web server, provide DNS resolution, and be proficient in web server installation, management, and support.
Internet Connectivity and Network Considerations
You’ll want to insure your Internet connection can sustain the traffic your application users will demand. When evaluating your Internet connection speed, bandwidth is allocated by your provider in both upload and download increments. When a user accesses your application, they will be utilizing your upload increment, or what we call outbound traffic. With most residential or small business class Internet services, the outbound traffic is the lesser of the two increments provided by the service provider. Service providers typically expect your demand will be download (inbound) traffic as you view web pages. Additionally, if you intend to provide service level commitments to your end users, be aware that small business and residential Internet providers do not provide service level agreements with those services. Without a service level agreement from your Internet service provider, your Internet service could go down and there would be no guaranteed time in which service may be returned, or no discounts applied to your billing for service outages.
With regard to your internal network, be conscious of the fact that you may be adding traffic to your network either from data use of the application, or from backup activity. If you end up having significant backup requirements, consider setting up a separate network segment in your office for the application server. A separate segment can prevent you from saturating your internal users network with backup traffic.
Software and Server Considerations
This will most likely depend on your application requirements. Some things to consider are the servers processor speed and the number of processors. Keep in mind many commercial software licenses today are priced based on the number of processors your server uses. The amount of memory (RAM) you use will play a significant role in your applications performance. Will your application run on a Windows or Linux operating system and will you use server virtualization products like Citrix, VMWare, XEN, KVM, or Parallels. The operating system you select will dictate the type of webserver your server runs. If you choose Windows as the operating system, your web server will most likely run Microsoft IIS. Linux on the other hand will generally use Apache. You’ll may also want to be familiar with the options available to improve application performance through web server caching.
Software Licensing Considerations
One key item to keep in mind here is OEM licensing. In short, when you buy servers from companies like Dell, you may purchase a server preloaded with an operating system such as Windows Server 2012. Be careful that you are not purchasing an OEM license. In most cases, an OEM license is not transferable to another computer at a later time. It must be used only on the server you purchased. Please be sure to check this out before you purchase your server. If you end up with an OEM license, you may very well run into issues with backups being restored to alternate servers resulting in errors indicating the operating system is not licensed.
There are many. First and foremost, if you are placing your application server on your internal network, you need complete access to your firewall and a firewall that allows you to restrict ports by IP address. If you are using a router with the capability, you may want to consider setting up a DMZ for your web server. A DMZ allows you to place the web server outside your internal network using a special port on the router. In either case, you will want to make sure you properly secure your server against the most common attacks and lock down ports that are used to administer the server or website so that only authorized users can access them from authorized locations. If your application requires the collection of sensitive information like usernames, passwords, or other personally identifiable information you will need to implement SSL Digital Certificates and be aware of how that information is encrypted and stored on your hard drives.
Without a good backup, you stand the chance of losing your hard earned credibility and any revenue your application is generating. Backups should be something you think about before you need them. If you are using server virtualization, you can backup your entire virtual machine using snapshots. Ensure you have adequate storage available for your backups and that you are placing a copy of your backups offsite. There are numerous offsite options that exist today –including backup to Amazon S3 or Glacier.
This is a conservative estimate based on a single mid-range server. Your cost will vary based upon the server requirements you have, if you are using virtualization software, if you need to purchase operating systems, database, or backup software. The state of your current router and firewall may also dictate additional costs if you need to upgrade those devices.
Server – $2,500 – $7,500, UPS to protect against server outages – $500, Software – $900 to $5,000
Internet Connectivity: $99 – $150
Pros: Low Fixed Cost, Local Server Administration, Easy Server Access
Cons: Limited Scalability, Network Security, Internet Access Speeds, Redundant Power, Inflexible Software Licensing
Coming Soon – Part II – Virtual Private Servers
In Part II, Virtual Private Servers, we will discuss the benefits and options of server virtualization.
If you or your organization would like assistance deploying internal application servers, please contact us.