Choose your technology stack on CloudNX
When starting a new tech company there are many decisions to make. On the development side, one of those decisions is choosing a technology stack to build your product. A technology stack can be made up of multiple software components, but at a basic level, you need four things: an operating system, a web server, a database, and a scripting language. For each of those components there are many different options out there, but with Managed Stacks on CloudNX, Fasthosts provides the most popular software, and allows customers to choose their own personalised technology stack for their cloud servers.
How do you choose which technology stack is right for your project?
Before you decide on the technology stack for your project, there are some things that you should consider.
What do you know?
If you’re a developer then you’ve probably already got a preferred scripting language, web server or database. More often than not it’s best that you stick to what you know, because it’s what you know the best, and what lets you do your best work. But factors like the scope of your project and your budget could affect your decision.
Recruitment
Putting together a team for your new company could be difficult if you decide to build your project in an obscure and uncommon scripting language. Also, a less common scripting language usually leads to more expensive developers. If you want to build in an uncommon language, then there’s a smaller pool of talent from which you can recruit. PHP is the most common scripting language, which is why the average salary of PHP developers is less than that of Python or JavaScript developers – there’s more to choose from, so competition for employment is less.
Project requirements
The complexity and design of your project will affect what language is most suited to it. The project will have different requirements whether it is a small website, a mobile app, or a sophisticated video game, and so there will be a scripting language that is better suited. PHP is a suitable language for low-level, simple projects like WordPress websites, but Python or Node.js could be a better choice for more complex applications.
Speed
If you decide to build your project in a less common language like Python, but can’t find the right developers for that language, then you might have to commit the time to training developers in Python. Most developers will tell you that their preferred scripting language is ‘fast and easy to learn’, but of course they’d say that. Some languages are more complex, and will take longer to learn. You may also have developers who have experience with Apache, but not NGINX, so you have to consider the extra time taken in training and build.
It’s also worth considering the communities that support each option of a technology stack. If one choice is widely more popular, then it’ll be easier to find solutions should a problem occur. For example, there is a large community of PHP developers that provide help and support to each other, but Node.js has a smaller community.
Choosing a technology stack
1. Choose a scripting language
When choosing the technology stack for your project, your decision will likely start with the scripting language. Although there’s no strict best answer, there are many factors to consider when choosing the scripting language with which you’ll build your web project.
The four scripting languages that Fasthosts supports on Managed Stacks are PHP, Perl, Python and Node.js. These languages cover a wide range of use cases and preferences to fit your project’s requirements.
PHP
Being one of the most popular scripting languages means that recruitment is easier (and cheaper). PHP is popular for building dynamic websites and powers over 80% of the web’s websites. Read our previous blog for more details about the power of PHP.
Python
Python is a powerful scripting language that has been around for over 20 years. This means there’s an extensive range of modules and libraries available. This speeds up development time, but because it’s a less common language, recruitment might be harder.
Perl
Perl is an all-rounder language derived from C that is often used for system administration and building GUIs. Perl is more niche than PHP or Python, so recruitment might be more difficult, but Perl is feature rich, highly capable and has a rapid development cycle.
Node.js
Node.js is a system for executing JavaScript on the server side. Node.js is a good fit for chat applications and data streaming where traffic is high and data-intensive.
Choose a web server
Once you’ve chosen your scripting language, your next choice is a bit simpler. Some scripting languages work better with a particular web server. With CloudNX Managed Stacks, we give you the best web server for your scripting language. Apache is the most common web server, and as such there is a high level of community support available, as well as a range of add-ons. A basic difference between web servers is in the performance. NGINX delivers higher performance under heavy load than Apache, and is more suited to scalability – which is important when dealing with spikes of traffic. Passenger works alongside NGINX and is best for building complex web apps.
Managed Stacks offer the best combinations of scripting languages and web servers. If you want to code in Node.js or Python, then you should use a Passenger web server. Perl is suited best with Apache and PHP works with either Apache or NGINX.
For a more in-depth comparison of the available web servers on CloudNX, read our comparison of Apache and NGINX, and our review of Phusion Passenger.
Choose a database management system
Again, further down the line the decisions get easier. Choosing between MariaDB and MySQL is simple because they’re quite similar. In fact, they were once one and the same. The original developer of MySQL, Monty Widenius, created MariaDB in 2008 as a fork of MySQL, and the two database management systems have been developed separately since then. MariaDB and MySQL are actually named after Monty’s daughters.
MySQL is the more popular of the two, but MariaDB includes some extra functionality like virtual columns and table elimination that makes it more suited to some projects. However, MySQL has better integration and a range of plugins. And, again, because it was the original of the two, MySQL has better community support.
One popular technology stack is the ‘LAMP stack'. Whichever combination of scripting language, web server and database you choose, our next-generation cloud hosting platform Fasthosts gives you the perfect platform to host your project. We look after the infrastructure, and make sure that all of your components are updated and secure, so you only have to focus on the code.