The rise of the cloud developer
Just a few years ago, we thought of the public cloud primarily as a means to access scalable, as-a-service computing infrastructure. Since then, offerings from the hyperscale cloud providers have evolved, and organisations of all shapes and sizes are increasingly looking at the cloud as a platform for accelerated and agile software development.
This answers our need to deliver new applications and features to employees, customers and other end-users at a faster pace. Innovation is relentless – we’ve moved from apps to super-apps, and businesses must develop more applications quicker, easier and cheaper to harness the power of digital ecosystems, next-generation data integrations and artificial intelligence.
This trend is enabled through the significant investments the hyperscale public cloud service providers have made in modularising and packaging their offerings for developers. Amazon Web Services, Microsoft Azure and Google have all released purpose-built services that help developers and engineers build scalable, resilient, cloud-native applications quicker and with less effort.
Welcome to the world of cloud-native software development − an approach to developing more fault-tolerant, responsive apps in public, private, or hybrid clouds using cloud-native tools. Cloud-native techniques enable us to build loosely-coupled systems that are secure, manageable and observable. They also allow engineers to make frequent, high-impact changes with minimal effort.
Cloud-native tech is reaching the mainstream
Cloud-native software development has been around as long as cloud computing. Indeed, the Linux Foundation founded the Cloud Native Computing Foundation in 2015 to advocate cloud-native tools and open source adoptions. Many born-in-the-cloud companies are already embracing cloud-native development.
But it has taken a while for the technology to mature to a state that it can move into the mainstream. The key enablers include containers, serverless computing and Kubernetes, which help developers build apps using loosely-coupled services and micro-services. This enables faster and more automated releases via a continuous integration/continuous deployment (CI/CD) pipeline.
Organisations that weren’t born in the digital age may need to align their cloud-native plans with their application modernisation journey.
Containerisation ensures apps are light-weight, cost-efficient and portable, in line with the faster, cheaper and easier promise of cloud-native development. Serverless, meanwhile, enables developers to push code into production faster. In this model, developers don’t need to provision servers or manage scaling for an app. Those tasks are abstracted by the cloud provider.
A microservice, meanwhile, implements a business capability through a self-sufficient service that runs its own processes independently and communicates via application programming interfaces or messaging. This ensures further fault-tolerance and resilience in the application architecture.
Starting the cloud-native journey
Given that these technology enablers are in place, where should an organisation start with a shift to cloud-native development? There is no single right answer, but I can suggest a general approach.
As a starting principle, cloud-native development can’t yet address all use cases, and companies will need to be strategic about where they deploy this approach to development.
Cloud-native development works particularly well for new, greenfield software projects. Digital-native tech start-ups have embraced this approach wholeheartedly because they were born in the cloud. New software projects allow organisations to really push the boundaries of cloud-native development, ensuring the value attained from the application exceeds the costs and effort of development.
Organisations that weren’t born in the digital age may need to align their cloud-native plans with their application modernisation journey. The skills the business has at its disposal will be a critical success factor. In the same way as legacy apps that are decades old need to be modernised, the people who build them need to bring their skills up to date.
A great place to start is with a review of the organisation’s cloud and software development teams, as well as how they collaborate. The cloud-native journey starts with the people in the business, how they work together and the automated processes that support them. A mature DevOps framework is non-negotiable − it’s an essential feedback loop that pulls operations into the development lifecycle.
Software developers need to look beyond the code
Software developers used to be able to focus primarily on their code, but now they also need to understand where this code resides, as well as the services and infrastructure available from the cloud providers. Hyperscale cloud providers are simplifying this with tools such as AWS Amplify and Google Firebase.
These services eliminate manual effort in setting up cloud infrastructure, databases, CI/CD pipelines and development environments. They also automate the build process, allowing developers to focus on their code and speed up feature releases. Some even allow developers to use a single console to configure a web or mobile app backend, connect an app in minutes and build a web front-end.
As powerful and sophisticated as these services are becoming, engineers and developers need to be aware of how they work, as well as the use cases they fit, to exploit their potential. This is the realm of the cloud developer of the future – a multiskilled individual who traverses the roles of software developer and cloud engineer.
This role of the future − which requires a marriage of DevOps, cloud engineering and software development skills − will be the standard-bearer for application and software development in the cloud world. In fact, we are already seeing many people develop these skills organically as they strive to keep up with cloud developments.
As organisations advance their cloud journeys over the next decade, this mix of skills will become so tightly coupled that it will be difficult to split the roles. The best engineers, developers and architects are already cross-functional. Cloud-native development and the cloud developer means every developer will need to relook their skills and how they collaborate to keep up with an ever-changing world.