Add 1-click deployment to your web application
I remember dreading deploying the latest version of our web application. That was more than 10 years ago, and in my agency, we were building a very complex system for a FinTech company. It was quite a large PHP application with thousands of files, multiple developers involved working on it. But when it came to deployments, we had to do everything manually.
Every few days, we had to deploy the updates to show our clients what we were progressing with. The deployment was just the most stressful part of the week. We had a long checklist with dozens of items and it took more than an hour. Sometimes it had to be done out of hours, not to disrupt the clients' day to day work. We just never knew if a file was going to get missed, or if our change had broken something else.
The challenge at that scale, when you work with complex web applications, is that every time you want to make a change, they are several developers being involved, there are many more steps to perform and the risk of something going wrong is much higher.
To manage these, the DevOps world came up with a solution to automate all of these tasks and mitigate the risks. This is when "one-click deployment" was born.
So let's explore together today the benefits of putting that in place in your development workflow.
One-click deployments, as the name says it, allow a single person to deploy a web application... pretty much without having to break a sweat!
What are the benefits of one-click deployment?
There are three main benefits of using one-click deployments that I want to share with you today.
1. Anyone in the team can deploy.
And it's literally a single click! As I remember those old projects that we're working on like 10 - 15 years ago, most of those issues that we were encountering were linked to human errors. Even if we had very good checklists, having to repeat manual tasks is very error-prone. If the person who knows all the little quirks and all the settings to apply, the steps to take, if that person is off sick or unavailable, we were just stuck.
Even with automation of the deployment, you still need obviously a strong process to make sure the right thing gets deployed. There are offline workflows around source code management and code reviews and approvals that you need to put in place.
At work, we manage the code with a tool called BitBucket and we control everything via a Gitflow process to show the pull requests, who gets them approved and the permission on the branches to put things together and it's working well.
2. One-click deployments are fully automated
It can perform as many tasks as you want, pretty much back-to-back, in a very short amount of time.
For those complex web applications that we're building, you need to run automated tests, you need to combine the frontend assets, you need to move the code to the servers, update the database, monitor the health of the application after the deployment... There's just so much going on!
You need to use tools to automate all of that. There are tools like Jenkins or the one we use is called Buddy.works. We basically just hardcode the workflow to deploy on our AWS or Azure servers. We found that out of all of the tools, it had the best integration out of the box with the components we use, from Docker and all the AWS hosting settings, and then we can run our custom commands on top of it.
3. One-click deployment just speeds up the whole process and reduces the downtime
We've literally moved from deployments taking several hours 10 years ago to seconds, not even a minute sometimes today.
That is because it's fully automated. We can make deployments during the day, even if the team and the end-users are using the application. It does require some planning on the way you code the application and the server-side, but it's completely doable.
With that automation, developers can focus on writing quality code and the DevOps engineers have more time to manage the security, the performance, and work on improvements instead of firefighting issues around deployment.
At the end of the day, clients get more releases, more often of higher quality, so everyone wins.
Those were the three main benefits that will make your life much easier if you enable one-click deployment in your workflow. When I remember that FinTech application I was telling you about, when we were deploying manually, it was really the highlight of the week and we're all so stressed about it. But today, the same types of projects, or even bigger and more mission-critical, are deployed several times a day and I don't even know about it. It just happens.
One-click deployment is really the best thing that has happened to web development in the last 10 years.
No-Deploy Friday
One last caveat to mention though, despite all of this information, we are still enforcing a "no-deploy Friday". It is very popular in the development community because, even if we have teams that can support our application, 24/7 around the clock, around the world, we still try to avoid any major change just before the weekend, we all want to enjoy our weekend and rest... so we still do the major releases earlier in the week.
That's it for today. If you're struggling with your deployment or something goes wrong EVERY TIME you try to go live, just get in touch. Don't forget to subscribe to my YouTube channel and follow me on Twitter to keep learning with me and grow your career in digital.
Until next time, stay safe and see you soon.