For software companies developing new solutions in the cloud, the overall mission can be a daunting proposition. Cloud Software Development is an ever-evolving landscape, where one piece of technology may be popular one day, only to be replaced for something better a little while later. Then, there is a slew of tech jargon along with an endless list of acronyms which one must learn and constantly keep up in order to remain technologically adept and to have a chance, at a minimum, at contributing to a discussion with like-minded people.
When software architects and leaders meet to discuss and devise a plan to build something new, it is imperative to recognize the trends which have been adopted by others. This is necessary in order to capitalize from a common pool of knowledge, where the next big project can be the result of a collective wealth of skill and experience. In general, history has shown to us that each technological advancement that we achieve is, in most cases, simply a better version of an existing product.
So, if we are to develop the next great cloud-based software solution, a few questions come to mind:
- Which cloud providers are going to be used?
- How will the infrastructure be provisioned?
- How will the software be built and deployed (CI/CD)?
- What is our containerization strategy?
- Should we leverage “Serverless” computing?
- What is our monitoring strategy?
- How can we ensure compliance with security and data privacy regulations, e.g. GDPR?
- Should we choose open-source or proprietary tools, and which of these will provide maximum ROI?
- How can we best automate the entire Software Development Life Cycle?
- Do we have a strategy for CI/CD where can implement Agile best practices?
- How can we allocate our limited resources effectively?
- Which discipline is best equipped to answer these questions?
The answer lays with a set of software development practices known as “DevOps”. Understanding this discipline will allow us to pick the right tool for the job, incorporate well-known and established processes, and recognize that there are many “flavors” of cloud available where we must be ready to deploy at the behest of our customers.
The following article covers in much greater detail how to best choose the right DevOps tools for the job.