You and your team have decided to build the coolest app ever. It might just be the next big thing. The idea came to you quickly, but how do you actually build it?
You’ll need software development tools to get started plus hardware to develop, test, and host your app. You’re developing in Xcode so software is ready to go. You expect it be a hit, though, so a Mac mini in the closet isn’t an option.
A Mac-centric hosting provider can provide you dedicated Mac hardware with no capital expenditure and free 24/7 hands-on technical support. Great, now what kind of server do you need? How do you know one server from the next when there are so many options to choose from at several price points?
In this article, we’ll go over the basic components of a Mac server and the purpose each component plays in making the server work. With this knowledge, you’ll have a firm grasp on how hardware can help you create the next app of the year.
Central Processing Unit
The resource most often discussed when comparing computer specifications is the CPU, or central processing unit. The CPU carries out instructions from software applications and performs tasks to complete instruction sets. A more powerful CPU, one with more cores (physical, logical, or virtual), or a larger quantity of physical CPUs can allow for complex tasks to be completed in a shorter period of time.
A typical physical CPU is often described by the number of cores it has as a baseline of performance. A dual-core is less powerful than a quad-core where every other performance characteristic is identical. It’s very important to clarify that last bit when describing CPUs because it can come back to bite you.
An octa-core (eight) mobile processor may sound powerful, but it might be no match for a quad-core desktop processor. TDP (thermal design power) is the likely culprit. Heat is the enemy of CPUs. In a mobile device, the system may only be capable of supporting a TDP of 10W before it overheats. That limits the performance to prevent the device from overheating. A desktop CPU may have a TDP of 10x the mobile CPU allowing for much greater performance before reaching the system’s limits.
Code compilation is an example of a task that can require a powerful CPU to quickly build and iterate when developing software. Agile development creates a need for the creation of many builds in a short period of time. More powerful CPUs can decrease build times, lowering the downtime between development and testing and increasing a team’s productivity. Servers, like those offered by cloud and dedicated hosting providers, are often used as a barebones computers to quickly complete tasks that would slow down on a local machine with other tasks running.
At MacStadium, the models of Mac hardware we have available are the mini, Xserve, and Pro with performance figures increasing in that order. Users of the dual-core mini would upgrade to the quad-core mini then to either a private cloud, the Xserve, or Mac Pro based on their long-term goals and what priority they will give to other hardware components listed below, like memory.
Memory is used by your computer to store loaded applications and the data those applications use because it’s a fast and easy-to-access temporary storage location. When running multiple applications on a single server, more ram means more space for those applications to work. If you continue to load applications, you’ll eventually hit a limit where either applications slow down and crash or you’re unable to start new applications because there is no more free RAM (random-access memory).
Virtualization, software we offer as a solution on all Mac hardware, is a great example of software that requires a lot of memory. For each virtual machine you plan to run, you must allocate more of your remaining RAM. With virtual machines existing as independent virtual computers, they can take up as much RAM as you allow them.
Advancements in memory technology have created more intelligent RAM reservation systems and non-volatile memory has become a potential solution to improve the functionality of RAM in unique environments. While more RAM is the most obvious solution, these advancements will allow for systems to make better use where RAM is limited.
The old adage when designing server infrastructure is that you can never have enough RAM. While not false, it doesn’t take into account budget and physical limitations. Mac mini’s currently are limited to 16GB of RAM making them ineffective for anything more than a few virtual machines. Using mini’s as nodes in a private cloud, where an entire server can be added to increase the physical memory limit, is an effective solution and strategy for long-term growth.
The Xserve and Mac Pro are capable of supporting up to 96GB and 64GB of RAM respectively. As standalone servers, both are effective in virtualization while in private cloud configurations they are even better. The pair of machines support error-correcting code (ECC) memory to detect and correct typical forms of internal data corruption. An Xserve with dual processors and large amounts of RAM is an excellent node in a private cloud, like the one used by Travis-CI for spinning up and destroying VM’s in seconds.
Storage should never be overlooked when planning your infrastructure. It can affect every aspect of your server’s hardware and software configuration presently and in the future.
Storage is used for short- and long-term non-volatile memory. For example, it can contain the crucial code meant to run a software application, information stored in a database created by the application, data accessed on a regular basis, or data stored as a backup of another system.
Storage can exist locally in a server, or remotely as direct- or network-attached storage, or in a storage area network. Physical location isn’t even important as a network connection can allow for storage to exist on another continent while still being instantly accessible.
Flash storage has been a boon to the computing industry as storage is now exponentially faster and less vulnerable to the same dangers of magnetic hard disk drives. While more expensive and with, using flash storage can greatly increase the efficiency of a server where performance is more important than capacity. If you’re worried about having the best storage solution, a Mac Pro or Xserve can connect to SAN storage through an enterprise-class fiber connection and give your team the fastest and best-scaling storage available.
Deciding on the best storage technology and methodology depends on the long-term goals for the server. A single server in testing with non-essential data likely won’t need redundant or backup storage. A production server on the other hand will likely require a form of RAID for redundancy and have local and off-site backup or replication setup to prevent long periods of downtime and loss of crucial data. MacStadium offers external USB hard disk drives as well as NAS enclosures to provide simple on-site self-managed backup solutions. These can be easily added at purchase or any time after.
The majority of software developed today is connected to the internet. Whether that software is collecting or sharing information, connecting people, or completing any number of other tasks, a network connection must exist to allow the transfer of data between two or more points.
Social media applications work by storing user data on a vast array of servers in data centers around the world. A large and complex network exists to allow yours and everyone else’s data to be almost instantly accessibility wherever you can connect to the internet.
For applications that frequently transfer large amounts of data over a network; speed, bandwidth, and throughput are essential factors in setting up a network. A faster network connection—a Gigabit connection instead of a Megabit connection—can allow for greater theoretical transfer speeds between computers. A Mac mini is limited by the single Gigabit Ethernet port whereas a Mac Pro has the capability of theoretically supporting 2x what the Mac mini can by utilizing dual Gigabit Ethernet ports. Multiple Mac computers in a MacStadium data center can communicate quickly over our 10GbE internal network.
More—or unlimited—bandwidth refers to the capacity of a network to transfer data while throughput is a practical measure of the flow of data over a network. Latency, the delay between input and output, is another important factor for streaming applications to prevent stuttering and buffering. Financial trading, online gaming, and VOIP are examples of services where a low latency connection is essential to user experience.
For a software application with potential for rapid network growth, configuring a load balancer can ease traffic by distributing workloads between multiple nodes in your environment. Load balancers are often used by popular web sites to prevent over-stressing frequently-accessed databases or servers; the load balancer forwards requests to one of many copies of the server to spread increased load over all available resources and maintain a fast and reliable experience for new users.
Input & Output
Like network bottlenecks, I/O (input/output) can be slowed due to protocol standards designed in hardware. A USB 2.0 port is slower than a USB 3.0 port not because it’s not blue, but because the USB 3.0 port is designed to support a higher theoretical data transfer limit.
Compared to a Mac Pro or Xserve, A Mac mini is limited in how fast it can read/write to and from direct- or network-attached storage. The Xserve and Mac Pro have better and/or newer technology to transfer data at higher theoretical speeds. The ‘pipe’ that data flows through on the higher-end machines is larger and faster-flowing compared to the mini.
If the majority of your server’s workload is completed internally on the machine, you’re unlikely to need more or higher-performing I/O. On the other hand, if you need to quickly access data on a SAN (storage area network), an Xserve or Mac Pro can offer 10gbE network connectivity for near-instant communication.
While form factor isn’t an issue for customers at MacStadium—we’ve developed our own custom infrastructure for hosting Mac minis and Mac Pros—it’s a consideration for anyone looking to manage their own servers. The Mac mini and Mac Pro are both great options for the space-constrained considering the powerful systems are contained in systems with small footprints.
Power is another concern for some use cases. If you’re planning on running production software on a single machine, an Xserve is the only Mac hardware that supports dual internal power supplies for redundancy. For all other machines and in private cloud setups at MacStadium, we offer redundant A+B power external to all server racks in case of power inconsistencies in the data center.
What to Do Next
Now that you’ve got an understanding of what makes up a server, you can make an educated decision on the best hardware for your needs. Before you go renting the cheapest server, it’s important to consider how big your market is and what your long-term strategy is for the project.
Don’t think you can get away with just a single Dual-core Mac mini if you’re planning on reaching a global audience by next week. In our next article, we’ll discuss server growth to give you an idea of what it takes to keep your server or infrastructure online and capable of satisfying all new users.