8 skills you need to be successful in IT automation (2024)

Posted: September 7, 2021 | | by Chad Ferman (Red Hat)

Image

8 skills you need to be successful in IT automation (1)

Looking back now, I was lucky ... before the year 2000, I started working in an IT shop that already had an automation team. This team had some sort of magic that proactively fixed issues before they happened—or at least addressed them when they happened without waking someone up in the middle of the night. At19 years old, I had no idea that this was not the norm or really what automation even meant. Then, one day it hit me: This is how I can make time for all the other things in my backlog of work, and even more importantly, I don't have to do this manually ever again. The realization that anything you can do on a command line could easily be saved as code and run again systematically without human intervention completely changed my life and set me on the path I am on today.

[ Download now: A system administrator's guide to IT automation.]

The power of automation

In my last role, as the architect responsible for the automation strategy for an entire company, my mantra was: Automation is not just scripting. There is so much more to automation, so let's talk about that a little bit first. Yes, scripts are the basis for automation, but they are not the only piece of it. To make something repeatable, you need information coming in to tell you what state your systems are in and if they are behaving as they should be. This is where observability and monitoring come in. They let you make informed decisions about what needs to be done programmatically to accomplish your end goal. Once you have a feedback loop of information coming in and automation going out, you have a continuous cycle of improvement for your service delivery.

Why would I add this skillset to be successful in my career?

Automation powers everything from application development to infrastructure deployment to business processes. The opportunities to add value are endless. You can work as a DevOps engineer, site reliability engineer, agile coach, product owner, integration engineer, artificial intelligence (AI)/machine learning (ML) operations technician, or business process engineer, just to name a few. Understanding how systems talk to each other to provide business value is a sought-after skill in all industries, and if you are a person who likes to create repeatable processes that work autonomously, then this is the job for you.

Doing more work with fewer people is something many organizations are dealing with, especially in economic downturns. By eliminating manual tasks, you make time for improvement. This approach builds trust with management through reliability and timely resolution of unexpected downtime. Successful patterns of automation can help everyone understand and unite around a common goal.

For example, I was given greater responsibility and opportunity through demonstrating successful patterns in automation. In a previous company, I was promoted from DevOps engineer to enterprise architect in three years by improving existing processes—we went from deploying servers in months to providing full-stack application servers in 30 minutes. This was end-to-end deployment of business applications, configured, running, and providing business value.

Automation can be extremely rewarding because it's fun. It’s a thrill to watch a 40- step continuous integration/continuous delivery (CI/CD) pipeline run and validate security and APIs, perform code analysis and linting, confirm that user interface (UI) elements are in the correct places, and perform regression tests that show the status of the pipeline in a dashboard as green/successful.

Knowing that what you do is valuable and repeatable by anyone else you work with is a great feeling. Also knowing that your changes will not affect othersand their changes will not break your work is a great feeling. Would you rather watch TV or be an actor in a play? You can relax and know that things will work as intended, or if they fail tests, let you know what happened so that you can fix it later.

[ A free guide from Red Hat: 5 steps to automate your business. ]

Skip to the bottom of list

Image

Download now

What skills do you need for automation?

Have you heard of minimal viable skills (MVS) for automation? These skills includescripting, collaboration, source-code management, Kubernetes, security, testing, observability, monitoring, and network awareness(among others).

Scripting

Having the ability to script proficiently with your platform's built-in language (PowerShell for Windows or Bash for Linux) is a great place to start. However, once you get into more complex automation, understanding a universal language like Python is desirable. I call out Python as it has become more of a de facto standard for networking, server, storage, and AI/ML over the past 10 years. Entire automation frameworks have been written in it.

[ Download now: A sysadmin's guide to Bash scripting. ]

Collaboration

Scripting I get, but why collaboration? It takes multiple teams working together to enable true end-to-end automation. Very few people know how the network, storage, firewall, proxy, etc.really work, so there needs to be a commonality to tie all these things together. This is why it is vital to have a company strategy for how and where you store your automation code and how you deploy it. Without a standard place to share not only code but architecture designs and APIs to communicate with each part of the architecture, it is impossible to properly automate the delivery of infrastructure, applications, and services for our customers.

Source-code management

Centralizing all code into a Git management tool such as GitHub, GitLab, AzureDevOps, or Bitbucket will make it much easier to collaborate with other teams and people in your group. Getting comfortable with putting in issues if you find a bug and documenting it well (please not, “It's broken”) is a great way to get started if you are not ready to start committing code. Once you are comfortable with issues, begin making some pull requests and commit fixes to code or review pull requests that others have put in so that you can help test their functionality. People really appreciate code reviews, as no one is perfect, and you may see something they didn't consider.

Application programming interfaces (APIs)

Creating a centralized catalog of APIs and playbooks that everyone works from is crucial to automation success. This skill is more than simply having APIs in your applications. Having them available for anyone to use without calling you to ask how to interface with your service is the best way to automate service delivery. This way, when a developer needs a traditional infrastructure service, it becomes exactly like a cloud resource that they can request without having to put in a ticket or pick up the phone.

Containers and Kubernetes

Containers and Kubernetes have become the de facto way to deploy modern applications across a hybrid cloud. Having a solid understanding of how to build a container and then deploy, scale, monitor, and redeploy it is highly sought by companies. This skill applies across many different parts companies are concerned with, from machine learning and application development to business intelligence and cybersecurity. With containers, you can ensure components that run on your local machine will work exactly the same on any platform at the application level. When you take the next step to deploy the container with Kubernetes, you can ensure via code that everything you need is in place for seamless deployments across all environments.

[ Getting started with containers? Check out this free course:Deploying containerized applications: A technical overview. ]

Network awareness

The way I always start the network awareness conversation is that the cloud does not solve physics, i.e., the speed of light. It is critical to understand where data and users are located and where the data computation happens. First, understand the end user's location compared to the data that they will be accessing. Make sure processing is in the same place as the user. Failing to do so is a common mistake we see repeatedly that causes the application to perform poorly. Of course, the application gets blamed, not its poor placement. Taking latency into consideration is another thing manytake for granted, especially if you are in a country with good bandwidth. Make sure you conduct round-trip tests for latency to see what the end user's experience will be. For example, I had an application once that someone wanted to build in Texas even though all of the end users were in Singapore. After much deliberation, the application was replatformed in Singapore, and the user experience to get what they needed from the application went from minutes to seconds.

Testing

Testing is another skill that is dismissed as nice to have, but this is the thing that saves you from the one bad keystroke that takes down a production environment. Validate that the things you have set in motion perform as you expect them to. Thisis extremely important to being successful and ensuringyou do not cause unintended consequences that will have you working through the night to resolve an issue. This should not be limited to back-end testing. There are great tools to test and validate UIelements and APIs to make sure changes do not affect existing functionality or end-user experience.

Security

Building security into your application is crucial in today's world of ransomware and bad actors taking over cloud deployments to mine cryptocurrency. Security integration should be part of the CI/CD pipeline that deploys the application. Within this pipeline, there are key things you need: static code analysis, artifact management and tracking, secure libraries, and code signing to make sure that when it is deployed, it is the same code or artifact that you think it is. CI/CD covers onlythe instantiation of the application. You also need to have security hardening on the platforms you are deploying to. In addition, you want something that validatesyou are not running a library that has a known vulnerability in it—and can alert your team if the library needs to be patched.

With cybercrime on the rise, security testing is another role every company is hiring for. Building security testing into your application supply chain is becoming something that everyone is doing throughout the life cycle, from build to deploy and runtime validation that the code is executing only what it should be. Signed libraries and executables are becoming the norm, as is the validation of the sources of libraries and artifacts like containers. Using trusted signed libraries and containers and providing your organization with a custom library and artifact repository has become a standard for any security-conscious organization.

Observability and monitoring

Understanding the application state and how it achieved that state is another skill needed to automate tasks properly. Unless you know what is happening with your service, it is impossible to create proactive automation to fix issues or apply a consistent state that avoids the problem in the future. Most people stop at monitoring, and then if there is an issue, use a root-cause analysis (RCA) to discover what happened. Observability provides the tooling you need for an RCA, so you always have it and know what is happening well beyond the up or down status that monitoring usually leaves us with. A great resource to learn more about this is the DevOps Monitoring guide.

[ Looking for more on system automation? Get started with The Automated Enterprise, a free book from Red Hat. ]

Wrap up

I believe automation is one of the most rewarding jobs a person can have in the modern IT world. 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. Every time you take something that people do manually and make it into a repeatable process so that they can focus on more valuable work, you save your company money (we all know a lot of the time this is what it really comes down to), as well as help people work on much more exciting projects. All the skills listed above build upon each other to help you become a better automation expert. These skills are not acquired all at once, so take your time, enjoy the ride, and stop doing things manually.

Topics: Automation Career Containers

8 skills you need to be successful in IT automation (2024)

FAQs

What skills do you need for automation? ›

Coding and Scripting Expertise

Luckily, the languages used for automation are relatively common: C and its varieties, Python, Perl, Java, Ruby, and Shell. Expert knowledge in one or two of these is necessary. There are programs that may alleviate the need for extensive programming knowledge, such as UpGuard.

What are automated skills? ›

Automatization is the process of learning and assimilating a task or skill so completely that it can be consistently completed with little or no conscious attention. Repetition and review (spiraling) are critical. Sometimes students appear to understand a concept, only to forget it a day, week, or month later.

What kind of special skills are required by employees to implement automation? ›

  • 1 Adaptability and resilience. One of the most important skills that your employees need to succeed in an automated environment is adaptability. ...
  • 2 Critical thinking and problem-solving. ...
  • 3 Communication and collaboration. ...
  • 4 Creativity and innovation. ...
  • 5 Digital literacy and data fluency. ...
  • 6 Here's what else to consider.
Apr 18, 2023

What is required for automation? ›

The most important skill for an automation tester is proficiency in coding and scripting languages, such as Python, Java, or Selenium. This skill enables them to write robust and efficient test scripts for automating software testing processes.

What are the 4 elements of automation? ›

4 Components of Automation
  • Trigger.
  • Actions.
  • Conditions.
  • Timing.
Apr 18, 2023

What are the 5 basic components of an automated system? ›

Each of these subsystems consists of only five basic components: (1) action element, (2) sensing mechanism, (3) control element, (4) decision element, and (5) program.

What are examples of intelligent automation? ›

Some examples of the use of automation include electronically capturing information from documents through robotic process automation (RPA) and automating communication with customers (i.e., automated welcome emails). Organizations can also boost compliance by removing costly errors from manual data entry processes.

Is automation testing a skill? ›

However, automation testing can also be challenging, as it requires a strong understanding of the testing tools and the software being tested and the ability to design compelling test cases and analyze test results. In general, automation testing requires a combination of technical and analytical skills.

What makes a good automation candidate? ›

Predictability. Process complexity and frequency are great indicators to narrow down your automation contenders. The processes with least complexity and highest frequency should land on top of your list.

How to write automation skills in a resume? ›

Highlight your automation expertise

When writing your summary, focus on your specific automation skills and experience. Mention the types of automation systems you've worked with, such as: Robotic process automation (RPA) Programmable logic controllers (PLCs)

What skills should I learn for automation testing? ›

Types of Skills for Automation Testers
  • Programming and Scripting Proficiency. ...
  • Understanding of Software Development and QA Processes. ...
  • Test Automation Tools and Technologies. ...
  • Analytical Skills and Attention to Detail. ...
  • Continuous Learning and Adaptability. ...
  • Communication and Collaboration Skills.

What are the four 4 types of automation? ›

Four Types of Industrial Automation Systems. Within the context of industrial applications for automated processes, there are four key types of automation: fixed automation, programmable automation, flexible automation, and integrated automation.

What is automation checklist? ›

Definitions: A checklist that is used through one or more tools that automatically alter or verify settings based on the contents of the checklist. Automated checklists document their security settings in a machine-readable format, either standard or proprietary.

Can you achieve 100% automation? ›

So maybe 100% test automation is not possible. It's a good idea but not the most practical. There will always be code that is too hard to write automated tests for, which might be hard to read, but sometimes a piece of code is not important enough for automation.

Does automation require coding? ›

Automation testing necessitates coding; however, certain forms of automation are mechanical and do not need coding: i.e., low code, no-code tools.

What are three qualities of automation? ›

The three defining qualities of automation are that it is repetitive, rule-based, and cumulative. Automation is repetitive because it involves executing the same sequence of tasks over and over again. It is rule-based since the tasks are carried out according to predetermined rules or algorithms.

What skills are required for automation testing in resume? ›

TECHNICAL SKILLS:
  • Defect management.
  • Functional testing.
  • Regression testing.
  • Requirements analysis and testing.
  • Test case development.
  • Test results analysis and reporting.
  • Testing in SDLC SDMM.
  • Code review.

Top Articles
Latest Posts
Article information

Author: Clemencia Bogisich Ret

Last Updated:

Views: 6088

Rating: 5 / 5 (80 voted)

Reviews: 87% of readers found this page helpful

Author information

Name: Clemencia Bogisich Ret

Birthday: 2001-07-17

Address: Suite 794 53887 Geri Spring, West Cristentown, KY 54855

Phone: +5934435460663

Job: Central Hospitality Director

Hobby: Yoga, Electronics, Rafting, Lockpicking, Inline skating, Puzzles, scrapbook

Introduction: My name is Clemencia Bogisich Ret, I am a super, outstanding, graceful, friendly, vast, comfortable, agreeable person who loves writing and wants to share my knowledge and understanding with you.