As a software engineer at Singapore’s Government Technology Agency (GovTech), Ryan Goh would wonder what was wrong whenever deployments of his code hit a snag.
He started getting into the nuts and bolts of continuous integration and continuous delivery (CI/CD), an approach in DevOps for software delivery where code is produced and tested in short continual cycles, to figure out why something had gone wrong.
For example, when the time it took to test his code became longer, Goh started tinkering with the CI/CD pipeline to speed things up. Meanwhile, he was still writing code, although he soon found himself spending more time on DevOps and expanding his knowledge of the practice through books and conferences.
“I didn’t mind the additional work because I found DevOps interesting, and whatever I did in the pipeline benefited not just me but the entire team as well,” says Goh, who is now a DevOps engineer and spends most of his time improving CI/CD pipelines.
Across the Asia-Pacific region, DevOps engineers are in demand as organisations ramp up on agile development efforts to stay ahead of the competition and make use of newer emerging technologies and technology frameworks.
In Australia alone, the number of DevOps jobs is set to grow by 23.4% over the next five years, according to data from the government’s labour market information portal. Korn Ferry’s Global talent crunch study has also revealed that the Asia-Pacific economy could face an acute talent shortage of two million technology, media and telecommunications workers by 2030.
These are indicative of the need to further nurture and grow the region’s pool of DevOps talents, and that can be done through collaborations and cross-sector skills sharing, says Pierluigi Cau, director of solutions engineering at GitHub Asia-Pacific.
What is DevOps?
DevOps has established itself as a common practice in the software development industry for some time. Yet it means different things to different people. Ultimately, DevOps is about enabling people to collaborate across roles, in order to deliver software quickly, safely and reliably.
For organisations, DevOps brings together development and operations, providing value by increasing software quality and stability, and shortening time to market. For developers, it is about how the work is done.
Abhijit Pendyal, PagerDuty
DevOps engineers typically come from a software engineering background, whether through formal education or self-taught. Those who are organised and structured will do best in heavy coding-focused roles.
Although the benefits of DevOps are clear, the barrier to its adoption lies in the appetite of organisations to harness the practice to become more competitive, says Adrian Smolski, manager for customer experience and solutions architecture at GitLab Asia-Pacific and Japan.
“It requires a broader change and, from our interactions with customers in the region, we have seen more progressive, large organisations embarking on long journeys to tailor and build DevOps practices to meet specific development needs,” says Smolski.
Such organisations may optimise the number of people they recruit and turn to automation to ensure consistency across projects, enabling seamless management of processes and faster creation of new projects, he adds.
“With the demands for speed today, the older, disjointed toolchains developed for siloed roles are no longer optimal for continuous delivery and shipping code,” he says.
The DevOps DNA
Abhijit Pendyal, director for solutions consulting at PagerDuty Asia-Pacific and Japan, says a DevOps engineer is not only a problem-solver but is also naturally curious.
“DevOps is a mindset to solve problems,” says Pendyal. “It’s less about the specific tools you know or the certificates you have, as it is the way you approach problem-solving. You could be an expert in one technical stack but still not be attractive to a company that uses an entirely different stack.”
That said, although varying paths can converge to enable someone to become a DevOps engineer, the multidisciplinary nature of the practice means it is best to build on top of existing technical skills.
“If you have existing expertise in systems administration, you may want to work on upskilling on application development,” says Pendyal. “If you’re proficient in quality assurance, you may want to learn the basics of infrastructure design, and how applications are deployed and monitored.”
A senior DevOps engineer with 10 to 15 years’ experience should have most technical skills, such as a deep understanding of DevOps tools, managing infrastructure in the cloud, writing code and checking automation tests. Broadly, common DevOps capabilities include:
- Platform familiarity: While the days of worrying about infrastructure systems and servers are over, most engineers should be familiar with infrastructure automation tools (Kubernetes) and experience working with virtual machines (VMs) and pods.
- Programming/scripting languages: Most engineers would require familiarity with at least one or two programming languages. Given the variety of languages out there, organisations tend to be very targeted in hiring for specific languages, such as Java, Go, C and Python. Diego Lo Giudice, vice-president and principal analyst for application development and delivery at Forrester, says besides coding languages, DevOps engineers should also learn about agile development, because organisations are starting to organise their infrastructure as products, each with its own product owner, in order to be more nimble.
- Operations: These would be things like configuration management, provisioning and deployment, which are automated and require programming skills. “Provisioning and deployment is definitely an important skill, but you need to think about that in a self-service way,” says Giudice. “You are provisioning it as self-service and you do it through infrastructure-as-code.”
- Security: Some organisations and technology companies have used the term DevSecOps to emphasise the security aspects of DevOps – although security should already be baked into DevOps processes. A study by Micro Focus found that among Asia-Pacific organisations, DevOps teams are still primarily responsible for application security testing, followed by security teams. The most common security tools currently in use are software composition analysis (24%), followed by interactive application security testing (19%) and static application security testing (18%).
- Integration: This involves integrating different pipelines, through which development teams deploy different features that come together in an application release, which makes release automation and continuous delivery more important than integration, says Giudice.
- Communication and team management: GitLab’s 2020 DevSecOps survey revealed a consensus among developers, security professionals, operations team members and testers that collaboration and communication are the most important skills for a DevOps professional.
DevOps engineers benefit from asynchronous communication, where projects move forward without the need for additional stakeholders to be available, but at the same time have total visibility of project stages.
Pierluigi Cau, GitHub
Regardless of whether they have a monolithic or cloud-native coding approach, asynchronous workflows allow teams to achieve maximum efficiency and release codes more rapidly while maintaining quality and security.
Getting started through to certifications
Those who are new to DevOps can turn to online learning resources available from Udemy, Udacity or YouTube.
PagerDuty’s Pendyal says that in this DIY approach, aspiring DevOps engineers can start small with a “hello world” application that they can run locally on their computer before pushing it to a public cloud through which it can be scaled, monitored and logged.
GitLab’s Smolski recommends DevOps engineers to consider certifications in the cloud infrastructure space, such as Amazon Web Services (AWS), Google or Microsoft Azure certifications that recognise the technical skills and expertise of candidates to provision, operate and manage distributed applications and systems on dedicated cloud platforms.
As one of the hottest DevOps platform tools, Kubernetes also has a tremendous number of certifications that are currently in high demand. The Certified Kubernetes Application Developer certification, for example, covers the design, build, exposure and configuration of cloud-native applications for Kubernetes.
Pendyal notes that many DevOps engineers typically start with AWS because it has the biggest market share, noting that the AWS Solution Architect Associate or the Developer Associate certification programmes can serve as good introductions to key cloud capabilities.
“It’s typically advantageous to attain certifications since leadership within organisations seems keen on wanting tech talent with certified skills,” he says, citing an AWS-commissioned study which found that 97% of IT decision-makers in organisations that employ AWS certified staff said such professionals had helped them to become more competitive.
DevOps as a team sport
DevOps engineers are not the only members of DevOps teams, which are organised differently based on an organisation’s needs.
Depending on their specific requirements, organisations may decide to have a dedicated DevOps team, bridging the gap between development and operations, says GitHub’s Cau. Or they could assign a DevOps engineer to each development team, so a dedicated expert can guide the team on implementing best practices for faster and more reliable results.
A third approach, says Cau, is having one team for specific subsets of features, such as for a larger application, for which each member is responsible in terms of development and operations. Although, in this instance, the team shares the overall responsibilities, individuals can support by driving different features that match their interests or background.
There could also be site reliability engineering (SRE) teams that help promote the DevOps culture. Under a true DevOps model, development and operations teams are no longer siloed. “In some cases, quality assurance and security teams may also become more tightly integrated with development and operations throughout the application lifecycle,” says Pendyal.
Not to be neglected are roles instrumental to the success of DevOps teams, which will differ depending on the industry, says Cau.
“A DevOps engineer needs to be in communication with stakeholders, understand the processes and business goals,” he says. “These roles might include director of security, project manager for an application, or a customer, to name a few.”
DevOps career path
According to Pendyal, there is no typical career path for DevOps engineers – it is more about the kind of problems they can solve.
“A DevOps engineer at one company might be unqualified to be a DevOps engineer elsewhere,” he says. “You can start in systems administration or operations and work your way to DevOps or go from back-end developer to pick up more operations skills.
Adrian Smolski, GitLab
“Current demands show a need to break away from the siloing of skills and embrace being a generalist with broader skillsets. For example, web developers may be expected to know a bit of both front end and back end. Engineers might be called upon for general problem solving, architecture, and high-level thinking about the entire application, instead of working on a single component.”
GitLab, however, has an engineering career track that offers a full path of opportunity. The availability of senior engineering roles starting at staff engineer level is governed by the company’s individual contributor gearing ratio policy.
According to Smolski, there are scenarios in which a position must become available before a promotion can occur. On the engineering track, there must be a position of need to be promoted from a senior engineer to either a staff engineer or an engineering manager, depending on an employee’s chosen path.
“Most important is the fork between purely technical work and managing teams,” he says. “It’s important that engineering managers self-select into that track and don’t feel pressured. We believe that management is a craft like any other and requires dedication. We also believe that everyone deserves a manager who is passionate about their craft.
“Once someone reaches a senior-level role and wants to progress, they will need to decide whether they want to remain purely technical or pursue managing technical teams. Their manager can provide opportunities to try tasks from both tracks if they wish. Staff-level roles and engineering manager roles are equivalent in terms of base compensation and prestige.”
What it takes to succeed
A DevOps career can be highly rewarding, as long as you are open and willing to learn new things. Smolski says there is a need for DevOps engineers to embrace flexibility and make changes, in order to optimise development for their organisations.
“Successful DevOps engineers are curious and will remain curious to get educated to make things better, faster and more secure,” he says. “They will constantly keep up with tech trends and advancements, all in order to bring and articulate value for the organisation.”
To GovTech’s Goh, that means keeping up with his coding skills despite spending more time on DevOps. “It’s important that I can still read the code or else I will not know how to improve the process,” he says. “And if I’m doing production support, not knowing how the code works would not help me in debugging.”
GitHub’s Cau points out that although skills are important, so too are the mindset of shared ownership, the ability to dynamically automate and the ability to receive rapid feedback.
That way, developers and operations teams can quickly understand the impact of their changes throughout the software lifecycle, make decisions together, and implement changes based on shared data.
Read more about DevOps in APAC
- Globe Telecom has moved its legacy systems to the cloud and there is more to come as it looks towards deploying cloud-native applications and harnessing DevOps practices.
- ANZ Bank is looking at automating more testing processes and embracing DevSecOps to ensure that security is at front and centre of its modernisation efforts.
- At SP Digital, embracing DevOps has improved code quality and it is now looking to shore up security through DevSecOps.
- AmBank Group is tapping open source and DevOps to improve customer service and develop bespoke services for a broader market.