If you work in software development and are looking for your next challenge, then look no further than a career in cloud computing!
Simply put, cloud computing is the delivery of computing services – including servers, storage, databases, networking, software, analytics and intelligence – over the Internet (“the cloud”) to offer faster innovation, flexible resources and economies of scale. Typically, you only pay for cloud services you use, helping you lower your operating costs, run your infrastructure more efficiently and scale as your business needs change.
2019 was a banner year for the cloud-native community, and in 2020 it just looks set to grow. Take a look at our 4 trends that will shape the cloud-native world in 2020 post for more information on this.
A history of cloud computing
Where did the cloud-native world come from?
In 2014, Google announced it was embracing Docker and open-sourcing a new tool to manage computing workloads and cover large scale computing infrastructure. At the time, this was hailed as revolutionary….it was believed to be the “secret weapon” in cloud computing.
Now, we know this tool as Kubernetes. It was the dawning of a new community and would instigate a seismic shift in cloud computing technologies. Kubernetes has been pivotal in waging the war against dominant player Amazon Web Services for the cloud computing market share. Weapon indeed. Google, Microsoft and Alibaba have long been chasing the crown, looking to rip it from the head of AWS.
Kubernetes held significant promise. Docker allowed the delivery of standardised and portable software. Developers could enter code, libraries and configurations into a Docker container and then run it anywhere regardless of the computing platform as long as it had Docker installed on it.
How does cloud-native technology work?
Picture the scene. You have several applications, packaged in several containers. These are running across a fleet of different computers in data centres and cloud environments. In this scenario, who is going to tell which container where to run? How are these different forms of hardware going to function as one unified computer to run your workload? In the business, this is known as Orchestration, and Kubernetes can do this for you.
The benefits of cloud-native technology
Even back then, this wasn’t considered to be groundbreaking. However, what it did promise was the ability for the community to benefit from Google’s many years of experience. Suddenly, we were able to run intensive workloads over cheap infrastructure and REALLY take advantage of it. In short, enterprises could gain access to Google level technology and up its digital game.
Kubernetes was also a brilliant strategic business move from Google. To standardise orchestration would make it far easier for users to run Docker-ised workloads, thus encouraging a shift to the new model.
“Cloud-native” Docker-ised workloads were easier to run ‘in the cloud’ than older, legacy applications. They are also “portable”; able to be moved from ‘cloud to cloud’. These progressions held significant implications for business. It would get easier and easier to persuade enterprise customers to transition their computing “to the cloud” and to migrate from cloud to cloud – i.e leave the dominant AWS and move across to Google. These features were great for both growing the cloud computing market in general and for boosting Google’s market share. It also heralded an age of alignment; Kubernetes also worked to standardise the compatibility of cloud vendors.
Seasoned IT pros can definitely leverage their prior tech experience in a cloud career, but they’ll also need to add some new skills. For instance, you’ll be hard-pressed to get anywhere in the cloud without expertise in at least one of the public cloud behemoths: Amazon Web Services, Google Cloud Platform, and Microsoft Azure.
Based on the jobs posted on Indeed, the top 10 must-have skills you need to have a successful cloud computing career are:
- Amazon Web Services (AWS): The pioneer in affordable cloud services and enjoys the largest market share in the field.
- Python: The most rapidly growing language on the cloud.
- Java: One of the most popular programming languages in the cloud and its latest cloud-friendly enhancements are bound to increase its usage.
- Azure: Usage of Microsoft Azure has grown from 34% in 2017 to 45% in 2018. It’s gaining on AWS every year.
- Agile: Agile project management practices and its adoption in cloud development cycles are growing each year.
- Puppet: Employed in DevOps environments to automate AWS, a time-saving option of immense value to most enterprises.
- Chef: Another technology deployed in DevOps It offers analytics at the enterprise level through its Automate tool.
- Ansible: An open-source centralized server management system that makes setting up a cloud-based application cost-effective.
- Docker: An open-source containerization technology that automates the process of setting up and use of software programs
- VMware: Software to virtualize cloud environments used for computing. This is also popular in all types of domains.
Containerisation expertise is increasingly another must-have, especially for developers building and running applications in the cloud. Docker and Kubernetes lead the pack in the containerization field right now but there are plenty of alternatives worth keeping an eye on.
Automation software is another technology category gaining steam in cloud-first environments, especially those that have adopted DevOps. This includes tools like Puppet, Chef, Ansible, and many others, and as their usage grows in cloud shops, so does employer demand for people who know their way around these platforms.
Integration of data across applications—including data acquired from different vendors and platforms or residing in different data centres—is a big deal in the cloud. It gets even more complicated when your cloud systems need to talk to your legacy systems. Smart cloud architects and other cloud-first professionals include integration as a first step. Scrambling to address integration after the fact is like building a house and adding the wiring and plumbing after you’ve already put in the flooring and walls.
In many roles, certification is not necessary, however, if you are looking for certifications then the industry association CompTIA offers the Cloud+ certification.
If you want to work with the cloud, you’re not limited to one type of position. Some of the main positions include:
Software Engineers are computer science professionals who use knowledge of engineering principles and programming languages to build software products, develop computer games, and run network control systems.
A software architect is an expert-level software developer who communicates with businesses and clients to design and execute solutions with a team of software developers. A software architect makes executive software design decisions. They often act as a designer, developer and communicator.
Development Operations Engineer (DevOps)
DevOps Engineers work with developers and the IT staff to oversee the code releases. They are either developers who get interested in deployment and network operations or sysadmins who have a passion for scripting and coding and move into the development side where they can improve the planning of test and deployment.
A full-stack developer is an engineer who can handle all the work of databases, servers, systems engineering, and clients. Depending on the project, what customers need may be a mobile stack, a Web stack, or a native application stack.
A cloud engineer is an IT professional responsible for any technological duties associated with cloud computing, including design, planning, management, maintenance and support.
Data engineers are typically software engineers by trade. Instead of data analysis, data engineers are responsible for compiling and installing database systems, writing complex queries, scaling to multiple machines, and putting disaster recovery systems into place.
A Java Developer is responsible for the design, development, and management of Java-based applications. Because Java is used so widely, particularly by large organizations, the daily roles vary widely but can include owning a particular application or working on several at one time.
A System Engineer Manages and monitors all installed systems and infrastructure. Responsibilities include installing, configuring, testing and maintaining operating systems, application software and system management tools. Ensuring the highest levels of systems and infrastructure availability.
A data scientist is someone who knows how to extract meaning from and interpret data, which requires both tools and methods from statistics and machine learning. They spend a lot of time in the process of collecting, cleaning, and munging data, because data is almost never clean.
Network and computer systems administrators are responsible for the day-to-day operation of these networks. They organize, install, and support an organization’s computer systems, including local area networks (LANs), wide area networks (WANs), network segments, intranets, and other data communication systems.
A .NET developer is responsible for designing, tailoring and developing software applications according to a business’ needs. In addition to determination and analysis of prerequisites for software, their responsibilities include support and continuous development.
Front End Developer
Back End Developer
A back-end web developer is responsible for server-side web application logic and integration of the work front-end web developers do. Back-end developers usually write web services and APIs used by front-end developers and mobile application developers.
Roles without “cloud” in the title, such as computer network architect and computer systems analyst, may work directly with the cloud, building infrastructure for cloud providers. Other roles may also work with the cloud, whether it’s sending code to the cloud to execute tasks or relying on the cloud to deploy critical applications. Such roles include:
- Computer and information research scientist
- Computer programmer
- Computer support specialist
- Database administrator
- Information security analyst
- Network and computer systems administrator
- Software developer
- Web developer
Leadership positions in IT also require expertise in cloud computing, since they’ll be making cloud infrastructure decisions for organizations. Cloud computing leaders must also be able to help successfully make those in non-IT roles feel comfortable with cloud computing, since positions ranging from sales and marketing to human resources may all use cloud computing within an organization.
The future of the cloud job market
As businesses increasingly adopt Software as a Service (SaaS), Infrastructure as a Service (IaaS), and Platform as a Service (PaaS) offerings, the leading cloud providers are growing more competitive.
Over the past three years, job searches that included keywords related to the top cloud providers, such as “Google Cloud,” “Azure,” or “AWS,” increased by 223%. Job listings that included these terms in the description rose by 101% over the same time frame.
Cloud Computing salaries
Jobs in cloud computing can be lucrative, but, of course, vary depending on role, experience and location. An average salary outside of London sits at £50,000 whilst in London, this rises to £60,000. At the low end of the spectrum, you can expect a salary of around £39,000; and at the top end you could expect to earn £100,000+.
If you’re looking for a career in cloud computing then take a look at our jobs page. We regularly have jobs working in the cloud computing sphere!