Scale can change a lot of things, the same way you wouldn’t build a skyscraper like you would build a dog house, the lack of a formal deployment process that your team could get away with on a small website is not appropriate for a business that has gained some scale and credibility.
Unfortunately a lot of developers don’t have the knowledge of how to fit together all the pieces of the puzzle. A robust deployment process however is only made up of a few sequential steps or changes to your process.
Those 4 steps alone will be enough to transform your development process.
Yes absolutely, if any of the following issues are familiar to you and your team then it’s long overdue:
These are the most prevalent side-effects caused by a lack of process but certainly not the only ones, you may have even more subtle issues such as a general tension between your development staff.
Not necessarily, developers generally have a single narrow skill set within IT which is programming, whereas IT itself is a very wide field. The job of establishing the development stack that your websites sit on is generally taken care of by a DevOps engineer.
Generally we tend to think of IT professionals as knowing everything about IT, which honestly for some developers is absolutely on the mark because they love to know the whole process but we generally consider these unicorns in the industry and don’t come along too often.
If you hire a senior developer you would expect them to have enough of an awareness to either be able to piece together the deployment process or at least know that they need to flag a requirement for a DevOps engineer in the team.
Although it is very rare that a small or new business will hire a senior developer in the beginning, often cost is such a major factor that an affordable developer is far more useful to a small business, then as the business grows the pressure and expectation on the developer can disproportionately grow.
There is an abundance of high performance hosting from extremely reputable hosting companies at incredibly low prices. This will oftentimes significantly outperform shared hosting with a fairly low entry price.
Generally from as little as $5 (or £3.50) you can pick up a server that is likely to outperform your shared hosting. The reason for this incredibly cheap price is that nothing comes installed on the server, you are expected to set it up yourself, whereas with shared hosting this is already done for you. This is why the price is relatively similar, you are either paying for the benefit of a pre-set up host or for the performance.
Setting up your own server is actually a lot easier than it would first appear and gives the ability to install so many more tools that developers will love.
Version control is the single most important factor when it comes to having a deployable and easily accountable development process. If there is nothing else you implement from this article make sure you implement version control using Git.
Version control will ensure that every single change of code is logged, accounted for and stored in a central repository. This is the greatest safety feature for your entire process because it allows:
You cannot be managing software in the modern development environment without version control. It is dangerous and irresponsible to do so.
One of the hardest steps that developers find is moving from a process of manually uploading files via FTP and manual downloading libraries to a terminal based approach with packages.
This is especially true for Windows-based developers where the concept of a terminal is not common. Mac OS and Linux users are generally quite familiar with the terminal and are likely to have experience with the likes of: Homebrew and Yum or APT whereas the equivalent on Windows is far less known and far less utilised: Chocolatey.
Being able to use the terminal is very important because it’s how your developers will:
So pretty much everything they do going forward is dependent on their ability to use the terminal.
This was actually a problem for Windows users for a long time because the modern development environment favoured terminal usage so heavily and this is where Windows was lacking. For developers who felt they needed to make the jump they often just ended up buying a MacBook Pro.
It’s rather a complex sounding name for a pretty simple process. A CD system is the final piece of the puzzle that pulls together all of your other development processes to automate the deployment of changes to your website.
Your CD system will continuously watch the Version Control repository for any changes, when it sees one it will automatically deploy it, hence ‘Continuous Deployment’, The following steps are considered a suitable deployment:
The whole process is very safe, all of the negatives from the start of this article have been completely taken care of by the automation.
For the sake of simplicity and mapping the whole process we have omitted certain techniques that you would likely need to implement on a real system listed below:
Additionally you may notice this guide doesn’t have much in the way of technical step-by-step guidance, that is because this guide is aimed at business owners and management rather than developers. So the plain English top-level concepts are what we have covered, from the steps presented in this article your development team should be able to come up with a plan or seek consulting to help nurture the process change to customise the solution to fit your specific needs.