Infrastructure is a broad and abstract concept. As is the role of the person responsible for it. Companies often take infrastructure engineers for sysadmins, network designers, or database administrators. And they are not totally wrong since the specialist in question combines the skills of all the above. How is it possible? And what does this multi-faced IT god exactly do? It’s hard to answer those questions in a few words, so we’ve written an article to explain everything in detail.
What is an infrastructure engineer?
An infrastructure engineer is a person who designs, builds, coordinates, and maintains the IT environment companies need to run internal operations, collect data, develop and launch digital products, support their online stores, and achieve other business objectives.
Key components of IT infrastructure.
This environment or — infrastructure — consists of three layers.
The hardware layer includes everything you can touch — servers, data centers, storage devices, and personal computers.
The networking layer is a combination of hardware and software elements and services like protocols and IP addressing that enable communications between computing devices.
The software layer can consist of operating systems, virtual machines, web servers, and enterprise applications.
The infrastructure engineer supervises all three layers making sure that the entire system
- meets business needs,
- easily scales up,
- adapts to new features,
- utilizes the latest technologies, tools, and services, and
- aligns with the company’s policy and goals.
Interestingly, the role was introduced in 1998, in the paper Bootstrapping an Infrastructure by programmers Steve Traugott and Joel Huddleston based on their work in the financial industry and NASA.
The article promoted the idea of a new type of system administrator who would write code to automate maintenance, upgrades, and other tasks instead of doing everything manually. Initially, the authors used the term infrastructure architect for the position. However, according to Steve Traugott, “...that got me conflated with systems integrators, so I later defaulted to 'engineer' myself.”
Today, both terms co-exist while the functions of an infrastructure expert largely vary across organizations of different sizes and levels of IT maturity. The preferred technologies also matter. That’s why seemingly the same job may come in different flavors and under different names.
Cloud infrastructure engineer
Obviously, this professional creates, deploys, updates, and supports cloud-based infrastructures. Depending on a company's service provider, the position can be put as AWS, Google, Oracle, or Azure cloud infrastructure engineer.
The competencies of on-premises and cloud infrastructure engineers wouldn’t differ that much: They both build and maintain systems and networks to run business software and store data. They also make sure that data and services are easily accessible to corresponding internal and external users. However, managing resources in the cloud may require knowledge of platform-specific tools and addressing cloud-specific security threats.
Network infrastructure engineer
A person in this role is responsible for designing, deploying, maintaining, upgrading, and securing networks with all their software and hardware components. The ultimate goal of such a specialist is to design highly available and safe networks with disaster recovery options.
As a rule, the network infrastructure engineer augments the IT team that manages a large, enterprise-grade environment. In smaller companies, networking falls into the responsibilities of an infrastructure engineer or system administrator.
An infrastructure architect typically addresses the same problems as an engineer but in big organizations running complex systems and at a higher level. Their responsibilities include a larger volume of planning, organizing, controlling, and other management tasks.
In enterprises, the architect often leads the team of IT professionals responsible for different parts of infrastructure — for example, system administrators, network engineers, system engineers, security engineers, etc.
However, don’t be surprised if sometimes there is little to no difference between the engineer and architect job descriptions. Since the key distinction may lie in experience and seniority, the responsibilities of an architect will often coincide with those of a senior or principal engineer.
Infrastructure engineer responsibilities
As we’ve mentioned above, the infrastructure specialist's role — and, consequently, daily duties — depends on the organization, especially its size. In a small company, infrastructure engineers will likely be masters of all trades while in enterprises, this position may focus on a specific problem like cloud migration, continuous app deployments, or designing big data structures.
Companies may also prefer specialists who have proven experience in a particular technology — for example, Microsoft Azure or Hadoop.
Most common duties of an infrastructure engineer.
In this article, we’ll try to follow the golden mean and explore the responsibilities you will almost certainly encounter in job postings for infrastructure engineers and architects.
IT infrastructure design
An infrastructure engineer or architect is a person companies hire to plan and create an environment for digital solutions. Within this complex task, the infrastructure expert communicates with a software architect or solution architect to understand the product's technical ins and outs.
Infrastructure engineers collect and analyze information on what is needed to handle the current traffic, keep services running, and scale them up or down if necessary. They determine which part of the digital assets will be placed in the cloud and what to run on-premise, select platforms (both hardware and software), and tools that will meet technical requirements, business needs, and security policies.
At the end of the day, the infrastructure engineer is expected to employ the most advanced technologies available while staying within the budget.
It’s up to the infrastructure engineer or architect to analyze possible threats and vulnerabilities, embed security standards, and monitor adherence to them. They also design and implement a detailed disaster recovery plan to ensure that all infrastructure elements (data and systems) have efficient backup solutions. This will enable the company to keep operating or quickly resume working in the case of unexpected disruptions, no matter their source or severity.
In large enterprises, there can be a separate role of an infrastructure security engineer to perform the above-mentioned duties.
Infrastructure provisioning and configuration management via infrastructure as code
Provisioning and configuration are two separate steps of infrastructure deployment. Provisioning is about setting up IT resources and making them available to users. After the elements of infrastructure are provisioned, the engineer configures them to the desired parameters and maintains the system consistency.
While in the past experts handled those steps manually, now they use scripting and a range of tools to automate most operations. Provisioning, configuring, and managing components through software instruments and scripts rather than by hand is called infrastructure as code.
Infrastructure monitoring and logging
Infrastructure monitoring means constant gathering and analyzing performance and health data from different assets — such as hosts, servers, databases, virtual machines, containers, etc. The logging process, in turn, tracks events that happen in the IT infrastructure and are captured by log files.
Working in tandem, monitoring and logging provide visibility across the infrastructure and allow experts to detect and solve little problems before they grow into big ones.
The infrastructure engineer employs specialized software tools that automate both processes and send alerts about errors, security threats, or performance issues.
The expert also documents problems and how they were addressed and creates metrics reports. All this documentation is used to develop effective troubleshooting practices, improve stability and performance, and optimize the company’s IT environment.
Infrastructure upgrades and integration project management
Using data from continuous monitoring, infrastructure engineers plan software updates, system upgrading, and implementation of new elements — both hardware and software — into the existing IT environment. They create policies and procedures for system integration, control integration testing, and overall coordinates the entire process acting as a project manager.
Documentation and reporting
The infrastructure engineer creates and regularly updates technical documentation for infrastructure. It describes hardware and software components, their key parameters and relations, what needs to be tracked, and who is responsible for what.
Other types of documentation generated by the infrastructure engineer are the above-mentioned performance reports, issue reviews, problem-solving guidelines, infrastructure upgrade plans, technical requirements, and more.
Cross-team and cross-functional communication
The daily work of infrastructure engineers, especially senior ones, involves communication with non-tech representatives on one side and IT staff on the other. They help translate business requirements into technical implementations.
Besides that, infrastructure experts collaborate with development teams — specifically, with DevOps or site responsibility engineers (SREs) and quality assurance engineers. Only by joining efforts with other specialists, can the infrastructure engineer continuously enhance the IT environment and adjust it to the evolving business needs.
Infrastructure engineer competencies and qualifications
The number of responsibilities of an infrastructure engineer may seem really frightening. Yet, there is no reason for panic: These experts don’t necessarily spend day and night working. With proper skills and automation tools in place, the job leaves them lots of time for family and friends.
Below is the list of key abilities and qualifications a candidate for the position must have to successfully cope with all duties and survive.
Bachelor’s or master’s degree in technical studies. The preferred education embraces computer science, information systems and technologies, programming, electronic engineering, and other related areas.
Previous experience. As a rule, companies want to entrust their infrastructure to a person with several years of relevant experience. Two to three years working as a system administrator may be enough for a regular infrastructure engineer. To fill the senior or architect role, a candidate must have at least five years of background in a busy production environment and have a grip on building and deploying both physical and cloud infrastructures.
Background and skills of infrastructure experts. Examples from LinkedIn.
Agile and DevOps methodologies. More and more tech companies adopt agile and DevOps principles and practices that influence their infrastructure. The IT environment must support rapid deployment, automated provisioning, and continuous upgrades and improvements. Besides the technical side, the infrastructure engineer should have a deep understanding of an agile workflow and feel comfortable within one.
Broad IT background. Needless to say, an infrastructure engineer must be familiar with various components of on-premises and cloud infrastructures including
- Windows/ Linux operating systems;
- networks, network protocols, and recovery procedures;
- virtual machines;
- web servers;
- database management systems (Oracle, MySQL, PostgreSQL, to name a few);
- application programming interfaces (APIs) and their types (REST, SOAP, GraphQL, etc.);
- and more.
Technologies a candidate has to master depend on the particular organization and its current tech stack. Still, the more extensive IT background an engineer has, the better infrastructure he or she can build from scratch.
System administration. A basic requirement for an infrastructure engineer is expertise in administering Linux and Windows-based systems, both in on-premises and cloud environments.
Networking. The right candidate is expected to have practical networking skills with firewall operations, routing protocols, subnetting, and recovery procedures.
Infrastructure as code (IaC), logging, and monitoring tools. The infrastructure engineer combines scripting with DevOps tools for automation of provisioning, configuration management, and monitoring processes across on-premise and cloud resources. Commonly, candidates are required to have hands-on experience with such IaC solutions as
- Ansible, Puppet, and Chef working with both physical and cloud environments;
- Terraform — a platform-agnostic solution for cloud infrastructures; and
- AWS CloudFormation, Azure Resource Manager, or Google Cloud Deployment Manager, which are cloud-specific IaC services.
Continuous integration and continuous delivery (CI/CD) platforms. CI/CD tools automate essential steps in software projects speeding up their launch in production. Infrastructure engineers who are expected to support solutions delivery must be advanced users of such instruments as Jenkins, Travis CI, or Circle CI.
Security best practices. An infrastructure engineer is actively involved in the security management of on-prem and cloud environments. That’s why the candidate must have a strong understanding of best networking and cloud security practices and, in some cases, of SecDevOps — or integrating security directly into the infrastructure deployment process.
Non-technical skills. Key non-technical abilities organizations look for in candidates are
- communication skills,
- strong problem-solving and analytical skills,
- strategic thinking, and
- eagerness to research new technologies and learn throughout their careers.
Roles of a senior infrastructure engineer and architect also require a number of leadership skills — such as proactivity, organizational capabilities, creativity, and decision-making.
Exactly which infrastructure expert does your business need?
Infrastructure engineers have diverse backgrounds — some of them came from software engineering, others honed their skills in administrating databases. Let’s look at three types of organizations that need infrastructure specialists and are often in search of them. Which abilities do they have to consider in the first place?
Tech-driven companies building their own infrastructures. They often have a separate team of infrastructure specialists, including architects and engineers. The mandatory skill set for infra experts, in this case, includes robust programming experience, proficiency with complex distributed systems, knowledge of cutting-edge technologies, problem-solving skills, and the ability to reinvent workflows.
Companies using cloud infrastructures and focusing on automation of the software development life cycle. Besides scripting skills and experience with cloud services of a particular provider (AWS, Google, etc.), the right candidate for such organizations must have practical knowledge of CI/CD pipelines and other DevOps technologies.
Enterprises with legacy systems. IT teams in organizations of this type are typically busy with a so-called brownfield deployment — or implementation of new hardware and software infrastructure components alongside outdated ones. The specific properties to seek in the infrastructure engineer for this job are knowledge of the legacy systems, understanding of how to eliminate their limitations, and strategic thinking — or the ability to plan for the future.
Any infrastructure is a unique organism requiring an individual approach. So, for many organizations, the best way to take care of their IT environment is to invest in internal tech staff and help them develop relevant skills rather than hire somebody from outside. The candidates for the retraining should demonstrate a desire to deepen cross-functional expertise along with orientation to the business results.
How to train an infrastructure engineer and architect
IT specialists with a bachelor’s degree in the relevant field and some practical experience commonly make the smooth transition to infrastructure engineering by taking appropriate courses.
The infrastructure engineer/architect role can be a significant career advancement for specialists already working with hardware, physical and cloud systems, networks, and IT operations — namely
- system administrators,
- system and network engineers,
- data center and server engineers,
- security engineers, and
- other members of the IT team.
Here is a list of courses to consider if this opportunity is appealing to you or your company.
Oracle Cloud Infrastructure Architect Professional
The Oracle Cloud Infrastructure Architect Professional course teaches mid-to-high-level tech specialists to design and implement infrastructures using Oracle cloud services. Among skills gained are
- designing secure networks;
- creating hybrid, cloud-native, microservices, and serverless architectures;
- delivering infrastructure as code;
- deploying Oracle databases;
- migrating on-premises resources to the Oracle cloud; and
- implementing security mechanisms.
The course is free of charge, takes approximately 20 hours to complete, and gets you ready for the Oracle Cloud Infrastructure Architect certification exam.
Cisco Enterprise Infrastructure Training
This training prepares you to acquire the Cisco Certified Internetwork Expert (CCIE) certification in enterprise infrastructure technologies. Note that CCIE candidates are advised to have five to seven years of experience in designing, deploying, and managing networking solutions to successfully pass exams.
The course lasts for 24 days, combining lectures and labs with self-study. At the end of the day, you’ll learn how to implement, troubleshoot, and manage enterprise wired and wireless networks using automation and sticking to the best security practices.
Architecting with Google Compute Engine Specialization
The program designed by Google Cloud contains five courses, approximately 7 to 8 hours each.
Google Cloud Fundamentals. Core Infrastructure is designed for beginners. It gets you familiar with Google Cloud services, storage options, deployment environments, and policy management tools.
Essential Google Cloud Infrastructure: Foundation tells how to deploy infrastructure components — networks, virtual machines, and app services. It also explains different ways to design infrastructure and configure networks. To cope with this course, you need basic knowledge of the Linux OS environment and experience deploying and managing applications.
Essential Google Cloud Infrastructure: Core Services focuses on security and access management, data storage services, and resource monitoring.
Elastic Google Cloud Infrastructure: Scaling and Automation introduces virtual private networks (VPNs), load balancing, autoscaling, and infrastructure automation services. You’ll also learn about different ways to connect your infrastructure to Google Cloud.
Reliable Google Cloud Infrastructure: Design and Process is the fifth and the most advanced course of all others. It centers around designing reliable, secure, and cost-effective infrastructures that will perfectly balance business and technical requirements.
The program prepares a student to take Google certification exams for Associate Cloud Engineer or Professional Cloud Architect. The latter option is designed for people with at least three years of relevant experience.