Nowadays, we live in a world with many automated tasks. This automation of tasks makes our work easier and lets us become more productive in our jobs, school and homes. Coding and deployment of code could not stay apart from this automation, and this is where Webhooks come into the scene, to make of deployment a soft piece of cake for developers.
Here on ClickIT Smart Technologies, we like to make our customer’s work simpler through the innovative and dynamic implementation of solutions that will improve and speed up processes. This is why we have a big experience on auto-deployment solution implementations with GitHub Webhooks, Jenkins, etc., as well as we have a big experience on configuration, management, and optimization of Amazon EC2 instances.
On this blog, we will specifically refer to Github Webhooks as a very useful option for web applications hosted on Amazon EC2 instances and based on a Software as a Service (SaaS) structure.
What is required?
Tools and services:
- An AWS account
- An Amazon EC2 instance
- A Github account
- Git service on server
- SSH service on server
- Nginx/Apache
- MySQL, MongoDB, etc…
Knowledge and skills:
- Amazon EC2 (Server management)
- Bash scripting
- Networking
- Web Programming
- Database management
What is code auto-deployment with Github Webhooks all about?
Actually, many web applications and websites hosted on Amazon EC2 instances, use several operating environments on their structure (dev, staging, prod, etc.) in order to make maintenance and configuration activities easier. With this “divided” structure the task of applying changes on the code becomes more organized and controlled, allowing a better adaptation to the dynamic needs of the business.
On dev environment is where developers make all the code changes required, to later commit them into staging; staging environment is where developers make the necessary code tests to ensure quality, and when all these tests are complete, the code is committed into prod environment; finally, on prod environment all changes are displayed to final users on live. It’s clear that if developers apply all the changes manually on every environment, it could take a lot of time.
Fortunately, the task of including code changes through environments gets easier with the implementation of GitHub Webhooks. On this case, Webhooks is the one that uploads all the code changes on every work environment located in the EC2 instances.
The first activity to do when implementing GitHub Webhooks is to create the branches on GitHub for every environment: master (this is the default branch created by GitHub), dev, staging and prod; once all branches are created, Webhooks uploads the code of every environment to its correspondent branch.
After this point, all branches must be linked as required to perform the code auto-deployment; In this way, any developer who requires to make changes, would only need to download on his local machine the code from Github’s repository. Include the changes and finally commit this on every environment by the use of GitHub interface, without the necessity of working individually on every environment.
And, what are the benefits of automating my code deployment with GitHub Webhooks?
- A faster deployment between work environments (dev, staging, prod).
- Changes on code are included automatically on EC2 instances.
- A more efficient control on work environments.
- A more organized and collaborative workflow between developers, giving everyone the possibility of seeing the code that is being committed on every environment.
- Less workload for the EC2 instances.
- There’s no need to access directly into the EC2 instances to make the changes on code.
Let us help you to optimize your processes
If you have observed that changing code process on your business takes much of your precious time and you are currently working with several work environments hosted on Amazon EC2 instances, then ClickIT Smart Technologies experienced professionals can help you to remarkably optimize and speed up your code deployment processes. We will help your business to be more productive and agile.