In my first blog we discussed Automation now we will discuss what skills require for Automation.
Thinking about Automation? – Emerging Tech Blog (rajeevdave.in)
In my current role, as the Automation Leader responsible for the automation strategy for a Service Organization, my mantra is: Automation is not going to kill your job.
We have started with an understanding of applications and where we could save time. The first few days we usually watch the action performed by any team to resolve any issue. We note time to resolve that issue. Normally I also analyse based on experience recourse vs newcomers, who is going to resolve the issues.
Passion
If you do not have a passion for automation mindset, it is very hard to think about automation initially. Automation is not a very generalized subject which can be taught easily. This required thinking about repeated jobs.
Scripting
You should have good knowledge of two scripting Languages Python and Shell script. These two-scripting languages help you to start with. Scripts are the basis for automation, but they are not the only piece of it. As you will move to more complex automation advanced Python will be more desirable. I may call it a universal language.
Collaboration
This is a very important factor for the success of Automation because if you want to cover end to end automation then you might need to collaborate with multiple teams. There are many things which we do not know like networking, firewall , proxy etc., so there needs to be a commonality to tie all these things together. There should be a very clear strategy of centralized automation code, Architecture, design and API. So that it should be easily available to all
Source Code Management
Centralized source code management using Github, Bitbucket etc will be a collaboration tool. Effective management of source code is key for Automation of Code deployment or creating pipelines. We may also call as DevOps.
API
We should have centralized API management where we can share common API with everybody for example creating an incident in service now if any issue comes in.
Containers and Kubernetes
As we are migrating to the cloud advantage of using Containers and Kubernetes is increasing. We should have a solid knowledge of creating containers and then deploying, scaling, monitoring and redeploying which is highly sought by companies.
Seamless deployment of code
This is one of the most desirable automation for any project. As a developer, we need to be dependent on the release team to deploy code on CERT. Seamless deployment of code directly from SVN will reduce the dependency on Manual intervention and deployment errors. I have experienced that this saves around 20% of our time. We have used Jenkins for this type of activity.
Seamless testing of code
As per my understanding testing is most important but we usually give less attention. We should use Selenium, Mabl for web application functional testing. We can use Jmeter for API load testing etc. Important is, this should be pipeline means as soon as you complete your work and move your code to SVN it should first deploy and just after deployment testing should start automatically and if testing is successful then it should go further otherwise code should rollback automatically.
Security
Today security is one of the most important factors but it is working in silos. We need collaboration with Security from the very start of the project. The concept of DevSecOps comes into existence when our code will pass through security checks. If it passes security, then code is going to deploy and this will all happen automatically using CI/CD Pipelines. We can use OWASP Zed Attack (DAST), Sonar Qube (SAST), invicti (IAST) etc tool in our Jenkins Pipeline.
AIOPS
AIOps Archives – Emerging Tech Blog (rajeevdave.in)
You can read aiops article from the above URL.
Ansible
Ansible is a powerful tool for automation to the provision of the target environment and to then deploy the application
Wrap UP
Believe me, the Automation skillset is a most rewarding job nowadays for IT industries. Because it saves lots of time and resources and the same resources you can utilize for some innovative/valuable work. It requires big-picture thinking and an understanding of how things work end to end. If you are a tinkerer and can’t just be told, “That’s how it works,” this is the job for you.
Important is you are saving money for your company for this repeatable process. These skills are not acquired all at once, so take your time, enjoy the ride, and stop doing things manually.
—