Introduction
管理IT基础设施一直是企业要克服的挑战. 早些时候,很多时间都花在了物理配置上, 管理和维护业务运行所需的软件和硬件. 随着对云的访问和大规模采用,挑战的本质已经改变. 今天,可伸缩性问题是最重要的. The adaptability and agility of businesses depend on how proactively companies are able to manage their IT infrastructure.
云计算中一个重要的新趋势是基础设施即代码, 也简称为IaC. 虽然这个概念并不新鲜, the adoption of key technologies facilitating the collaboration between Development teams and Infrastructure teams have made it one of key aspects of DevOps. 在一天结束的时候, 它总是关于缩短上市时间, 虽然方法可能不同. 规模化的需要会导致团队内部出现问题,比如缺乏可见性. 自动化工具与DevOps相结合可以让团队团结在一起. 这就是IaC发挥作用的地方.
本文将讨论IaC的各个方面,包括 技能, 以及以技能为中心的薪资趋势概览.
什么是Infrastructure-as-a-Code?
Infrastructure-as-a-Code (Iac) manages and provides Infrastructure through code instead of manual processes. IaC 使用高级描述编码语言自动提供IT基础设施. 自动化将消除开发人员的手动任务,如配置和管理服务器, 操作系统, 数据库连接, storage, 以及其他基础设施的发展, test, 或者部署一个软件应用程序.
在当今竞争激烈的环境下, 公司正在将数百个应用程序部署到生产环境中, which directly impacts the Infrastructure as it is scaled up and down in response to the developer and user demands. Thus, it has become necessary for businesses to automate (which can be done through IaC) to cut down on cost, 降低风险,提高部署速度.
IaC框架的最初概念带来了DevOps. IaC enables DevOps professionals to create and version Infrastructure in a similar fashion rapidly; they version source code and track these versions to avoid inconsistency among IT environments that can lead to severe issues during implementation.
“The 基础设施即代码的目的 是让开发人员或运营团队自动管理, monitor, 和提供资源, 而不是手动配置离散的硬件设备和操作系统. Thus, Infrastructure-as-a-code is sometimes referred to as programmable or software-defined Infrastructure (SDI)”.
IaC如何提供帮助?
由于COVID-19大流行以及随后在全球范围内引入远程工作, 云计算在不同的客户和行业得到了迅速的扩展和应用. One of the most significant advantages of Cloud Computing for business is on-demand scalability without the need to set up physical Infrastructure and incurring the associated high cost. 但是云基础设施仍然需要适当的配置, 这就是“基础设施即代码”出现的原因.
IaC涉及使用代码或模板创建云环境. 通过选择这种方法, IT teams can develop an entire infrastructure to run their applications without making any physical configurations as they were used to in the past.
使用大型云应用程序的企业可以受益于IaC,因为它很简单, fast, more effective, 并以更一致的方式创建新的基础设施. 在云, 建立实体基础设施可能需要几周甚至几个月的时间. For example, buying a server, 安装服务器, 黑客和在应用程序中安装操作系统是非常耗时的任务.
随着Cloud C的引入,应用程序可以在几秒钟内运行. With IaC, the IT teams can now run everything on a cloud template (a type of programming that can be updated and shared with the team). As a result, IT团队受益于IaC,因为它提供了敏捷性, 更大的控制权, 以及不同云平台之间的一致性——AWS, Microsoft Azure, or Google Cloud.
IaC使公司的基础设施具有高度的弹性,这使得它具有可重复性和可伸缩性. 一个专业人员可以在任何时候部署和管理多台机器,以降低成本, 更少的资源(不需要雇佣数百名员工在不同的设备上工作), 总体上降低了操作系统的风险.
基础设施代码 允许以编程方式管理虚拟机, 消除了对单个硬件进行手动配置和更新的需要.
Infrastructure-as-a-Code:所面临的挑战
基础设施即代码有很多好处,但它对业务也有一些缺点. 在实施过程开始之前,需要解决某些挑战.
- 要求的技能
基础设施即代码需要DevOps模型来运行代码. DevOps是IT市场中最受欢迎的技能之一, 同时,具备必要技能的专业人员也很短缺. 因为每个公司都在向云计算靠拢, 在不久的将来,为了顺利地运行云操作,DevOps和自动化技能将是非常需要的. 也就是说, IaC is a DevOps practice that can help automate the needs of developers across the software life-cycle process. 市场上有多种开源工具 Ansible (Red Hat) and Terraform 最常用的例子是什么. 毫无疑问, 因此,这两个基本要求形成了大多数的工作规格. 例如,Ansible可以帮助自动提供 Docker containers and Kubernetes. 另一方面,Terraform与大多数云环境一起工作,帮助实现自动化. 市场上还有其他工具,比如 Chef and Puppet.
- 依赖于编码
IaC为开发人员带来了很大的力量. Therefore, 公司需要雇佣和培训JSON等编码语言方面的专家, HashiCorp配置语言(HCL), YAML, Ruby, etc. However, 市场上的开发商严重短缺, 而缺乏熟练的专业人员将阻碍云计算的实现,并延迟应用程序的运行.
从薪水的角度来看,开发人员是IT就业市场中薪水最高的人之一. According to Itjobswatch,核心开发者的平均工资是9.5万英镑. In addition, 不止4个,LinkedIn上有000个开放java开发人员的广告, 这意味着全国各地对Java角色的需求很大.
- Adapting to IaC
One of the biggest challenges for companies while adopting DevOps automation (read IaC) is accurately integrating new frameworks with existing Infrastructure. In addition, IaC相对较新, and transforming complex and interconnected resources and their dependencies into coding isn’t going to be straightforward for the teams.
转换和采用IaC需要很多时间, 需要与安全性和遵从性团队进行规划和协作. One of the pain points for the companies will be the gaps that exist along the IaC adoption journey that creates confusion as to how and where your resources are provisioned, governed, and secured.
- 安全挑战
当涉及到开发人员时,他们可能会遵循最佳实践. 但当紧急情况出现时, 它可能会迫使操作团队直接在生产环境中进行配置更改. It will be against the cloud infrastructure based on the principle that infrastructure should never be modified after it has been deployed.
以防万一, 任何需要更新的信息, fixed, 或以任何方式改变, 新的基础设施必须通过代码来提供. But, 更重要的是, 配置变更可能会带来风险, resulting in the cloud’s posture drifting from the specific posture defined through IaC before the infrastructure was provisioned.
薪酬洞见-基础设施即代码(英国)
Tech professionals implementing Infrastructure-as-a-Code are most likely working as DevOps and Automation professionals in the Cloud Computing environment – Infrastructure, 机器学习, Cloud Engineer, 甚至AWS或Azure顾问. This article provides details on the salary trends and skill requirements for a professional working in different Cloud roles in the United Kingdom.
Salary Trends

来源:ITjobswatch
共病的顶级技巧
Below is the list of the top 10 co-occurring skills mentioned in various cloud computing jobs that required some knowledge in IaC. 或者换句话说,这些数字表示需要这些技能的云工作的百分比. 很明显,超过76%的云工作需要DevOps的经验和技能. Terraform is the most popular tool as far as IaC is concerned – 70% of the Cloud jobs mention Terraform as a requirement. 另一个流行的工具Ansible的得分在30%左右.
来源:ITjobswatch
战略的见解
- IaC对DevOps至关重要
在图1中,说明了在4个云作业中,有3个作业(76个).57%的人要求有DevOps经验. 在世界各地,都有对DevOps专业人员的需求. 任何为其工作提供云服务的公司都需要DevOps专家. DevOps是一种结合了开发工作的方法或实践 & Operations teams to collaborate throughout the entire software development cycle which enables them to be on the same page. DevOps有助于缩短SDLC,并确保交付高质量的软件.
According to Microsoft, Infrastructure-as-a-Code enables DevOps teams to test applications in production-like environments early in the development cycle. 这些团队期望可靠地按需提供多个测试环境. Infrastructure represented as code can also be validated and tested to prevent common deployment issues.
- 对DevOps专业人员的需求正在上升,技能短缺正在出现
DevOps最重要的好处之一是它使流程自动化, 组织工作流程, 并定期检查表现. 随着云实现的兴起, 这导致了英国和全世界对DevOps专业人员的巨大需求.
According to CodinGame开发者调查2021 (根据15人的回答,000名国际开发人员和人力资源专业人员), DevOps是IT就业市场上最受欢迎的技能组合. 大多数人才招聘专业人士都提到了填补DevOps的困难, 后端开发人员, 和全栈开发人员职位. 大约有四成(43%)的助教认为他们很难雇佣DevOps专业人员.
Companies in the UK are going to struggle with DevOps talent over the next 12 months unless they embrace remote work or adopt the evolving Hybrid work model. CodinGame分析 13,在英国100多个城镇创造了1万多个技术岗位, 不包括有少于50个开发人员工作列表的地区. 只有23%的全职工作提供远程工作, 如果包括“临时远程”职位,则上升至36%.
在任何一天, LinkedIn 是否有超过10,000个与devops相关的职位空缺. 对DevOps的需求在各个角色、组织和行业中迅速蔓延. In the UK, 公司已经在为数字技术的全面短缺而苦苦挣扎, and the situation has worsened with Brexit and COVID-19 as companies are not able to recruit overseas employees.
在英国,DevOps专业人员的平均薪资中值为6.5万英镑. 因此,即使在疫情期间,许多公司也大幅削减了员工的工资, there has been a steady rise in the salaries for DevOps professionals (year-on-year salary for DevOps professionals in the UK increased by 2.50 %).
The following is a list of Top 10 co-occurring IT skills for DevOps roles in the United Kingdom in 2021.
来源:ITjobswatch
比较图1和图2, 很明显,IaC和DevOps的专业人员需要类似的技能来执行他们的工作. However, DevOps professionals must be proficient in programming languages such as Java as they do need to work on the development front.
Conclusion
在covid -19之后的世界, 公司将继续拥抱云计算, 混合工作文化正在兴起. 因此,对云计算的需求必将进一步增加. Organizations looking to adopt DevOps best practices coupled with infrastructure automation would need hands-on people with skills.
在不久的将来, IaC has the potential to replace traditional manual provisioning of infrastructure through admin consoles/GUI with a programming-based approach. However, 公司面临的最大挑战之一是找到合适的技能, 比如DevOps专业人士. DevOps professionals have the required skill set to manage IaC without configuring physical IT infrastructure or virtual servers on-prem or in dedicated Data Centers.
在英国的就业市场上,云专业人员面临着严重的技能短缺, 尤其是对于DevOps专业人士. 根据LinkedIn的数据,目前有超过1万个职位是留给DevOps专业人士的. However, it has become more challenging for companies to hire in the current environment plagued by COVID-19 and Brexit that further restricts talent from overseas.