Table of Contents
- What is Application Deployment?
- Manual Approach for deployment
- Role of Automation in Application Deployment
- The basic Layout of how the Automation work?
- Tools used for application deployment
- Detailed Structure of how the code flows in Automation Deployment
- Video Tutorial
- What is Application Deployment?
Today we’ll be talking about the automation of application deployment so first of all will discuss what is application deployment.
So application deployment is basically a set of software components that are used to manage the application on different servers like development or production so this could be different environments where you are deploying your application and running those applications and for that the instances are launched to deploy the application on physical technology notes like service and the application done on those servers and there are different tools which are used for those deployment purposes.
2 Manual Approach for deployment
- So, this is the basic layout of how a manual approach is there for the deployment of your application code.
- So initially the code is done in the terminal and is once the code is completed it is stored on the storage service which we are using it could be an on-premises service it could be GIT or it could be AWS and once we have stored the code.
- Then we will pass on the code for Quality Assurance and quality assurance the team will manually test the code and once the code is properly tested by the team it will be passed on to professional testers.
- And the code is done thoroughly tested by the professional testers and once the professional testers are done with it and they have clear permission to pass on the code to the production and once the code is passed onto the product production the code is running live.
- So in that major drawback, of the manual approach is that if in case there is some failure in the step of quality assurance or testing then the code will be passed back to the previous team let’s say the code is properly functioning in the quality assurance team and once the code is passed to the testing the codes are not running fine and if the application is not running find the quality assurance team can say that it’s running fine on our end and the testers are making some mistake.
- So this kind of conflict can happen when we are using the manual approach.
- To overcome this problem we have been using the automation of automation deploying tools in our applications and all the major companies are using that for deploying their applications.
- this is also a basic layout of how the automation of the deployment process works so here the developer will commit the code in the committed environment and once the code is committed it is passed on to the built environment and in in the built environment the code is built using several tools and once the code is built it is passed on to the test environment through Quality Assurance team.
- So the in quality assurance we can use different tools to test our application and once that application is tested properly it is deployed to the production and environment and there are several tools like docker and other storage services from where you can deploy your code to the production environment.
3. Role of Automation in Application Deployment
Application deployment automation allows application to be deployed across the various environments so what that basically means that it helps in deploying the application without any hassle on different environments like production and Staging and this environment could be independent to each other so the tools which we use for automation of the deployment takes care of everything that the application is properly deployment deployed on all the environment.
The few major benefits which the automation deployment provide is there at its
- Repeatability so you can easily deploy the code with the use of simple clicks and without any difficulties.
- Few errors and deploying the code or with using automatic automation tools because the automation tools take care of all the processes of testing and they are able to check for any errors in the application and notifies you straight away rather than having a manual approach on the application.
- Anyone can deploy the code because you don’t have to configure the settings for deploying the code on the and different environments you can do it with simple clicks and it’s really simple to deploy the code using automation tools.
- Because of that, there is customer satisfaction and obviously, there is the low cost of deploying the application.
4. The basic Layout of how the Automation work?
Now this is the basic layout of how the automatic deployment works on a simple application deployment
- Now here the developer computer is developing the code and it checks in the code to the automated deployment infrastructure so this infrastructure can vary according to the company size so we are basically talking about the layout of those infrastructures.
- So these Infrastructures could be a big infrastructure or it could be a small according to the size of the company.
- The code is passed on to the development Staging of the production environment and these three environments are again in sync with each other through using the automation tool all the processes are running automatically,
- So there is a very minimal manual involvement in all these processes and also from the third party if you want to use some code in this environment we can also do that in the deployment infrastructure.
5 Tools used for application deployment
There are various tools used for application deployment
- Microsoft Visual Studio
- Octopus Deploy
- IBM Urban Code
- Bamboo etc
- These tools coming with special functionalities each one of them has a unique functionality of their own and you can use the tool specifically according to your needs.
- So all the deployment process is taken care of by all these tools.
6 Detailed Structure of how the code flows in Automation Deployment
we have a detailed structure of how the application code flows through the automation tools
- Now first the build automation tool is used for creating a software build like Gradle and Apache Maven and once the code is built properly it is passed on to Static code analysis.
- Static code analysis basically means that the code is analyzed by using some tools and they are stored on the storage service like Git or any other service.
- After that, once the code is analyzed properly it is passed on for continuous integration where the code is compiled and passed for unit testing using Jenkins, JUnit, or other tools and after that, it is passed on to the Artifact repository.
- Artifact repository basically means that the code is passed on to another storage service with several testing tools so like JFrog, Sonatype so these tools also test the code and pass on to the development environment or it could be any other environment like AWS or Microsoft Azure and once the code is deployed to that environment again the tools like Jenkins are used to test the environment that code is running properly on that environment.
- After that it is passed on for functional testing and the tools which are used there is Selenium scripting tool or any other tool so once the code is passed on from functional testing the scripts do testing scripts are created using the Selenium script tool or any other tool and then it is again deployed to pre-production environment and again the Jenkins tools are used to test the application and after that, there is load and security testing on the application by using tools like Apache JMeter, AWS app so what is tool basically do is that they will test the load on the application on the environment on which it is running and also test the security of the application like what type of traffic is going through the application.
- After that, the code is again passed on to the production environment and again it is tested for only by Jenkins and you can also employ the monitoring tools to monitor your application that it is functioning well and fine without any issues.
- So at each step, we are using different tools to test the code and pass it on to the production and environment.
- So in between, we are using various type of rules according to our needs and as each tool come with a special functionality behave a basic advantage of using them to the fullest and this is the basic layout of the automation of the application deployment.