Joe Thompson, global director at Xoomworks Ltd and one of our panellists at our recent Cloud Native: Blessing or SRE curse? event, shares his views on the most popular questions asked on the evening.
Are there any areas that big cloud providers must improve in their offering, to make themselves more accessible to start-ups looking to go Native?
A lot of the AWS tools are very solid but have quite patchy documentation and the console can sometimes feel like a maze. Azure is better at this but there is still a way to go in making some of these tools truly accessible. In a start-up environment where learning new stuff can take time away from implementing crucial technology, this lack of maturity in the tooling can be a barrier to adoption.
What’s your view on quality verses speed in early days of any project?
I think in the early days, your quality measure needs to be “good enough”. That might mean good enough to show the user the value of the product, or it might mean good enough to securely store a million peoples’ personal information in a safe and compliant way. The product owner should be making those choices. In general, I much prefer a ropy earlier product you can put in the hands of users and begin getting feedback, but in some instances that’s not an appropriate choice to make.
What does kubernetes give me that serverless doesn’t from a business or end user perspective?
Serverless and K8s are completely different technologies and there is not a binary choice to be made between them, they are for doing different jobs. But nonetheless in the spirit of answering the question literally, you can use K8s to orchestrate containers running libraries or whole 3rd party applications, for instance Azure’s pre-packaged Cognitive Services.
So, both cloud native and on prem can be successes or failures. Is it just a case of picking which one you have the most skill with or is there more to it?
I think your comfort level with any given architecture should be a significant factor in your design choices but equally it is vital as a senior tech to be aware of new tools which might better support you. To create defensible designs it can be worth creating a list of pros and cons and testing them against a few scenarios to see how you feel. If you do this I would strongly recommend documenting the rejected solution(s) so you can go back and look at why you made some of the choices if you need to revisit things. Similarly, discussing your choices with colleagues or other industry contacts can be a useful route to clear thinking.
How do you deal with a situation when you spend months to build a service and once you finish, Amazon makes it a managed service?
It’s important to recognise that all of the cloud providers are investing in their propositions at a phenomenal rate, so if you’re building something reasonably generic it’s not unlikely that sooner or later that capability will exist natively in a cloud suite. Yes, this is frustrating but whenever you find yourself having to solve a generic problem it’s always worth doing some extensive searching to see if there are libraries or tools already released. There are not too many common problems in tech that haven’t got a good open source solution.
Is cloud native the only way when your application has known increased traffic? (It would be too expensive to support peak traffic at any time)
Autoscaling, edge processing, lambdas, etc. provide fantastically useful tools for meeting performance goals under load excursions and will usually be the most cost-effective way to do this. The only caveat I might add is that scaling your infrastructure to run an inefficient or badly-designed application is, at best, a short-term solution. Application profiling, refactoring, caching and code optimisations will all yield performance benefits far beyond what can be achieved by stretching your infrastructure so it’s generally worth optimising your application and then looking at infrastructure… or better still do both in parallel!
Does every tech company become more efficient after adopting cloud?
Absolutely not. There are many common inefficiencies in cloud usage and the complex pricing structures can make it virtually impossible to assess the likely running costs of any given system. I’m sure there are dozens of companies whose infrastructure costs with cloud are far higher than they would be using their own infrastructure, and while there are numerous benefits of being cloud-based, if you don’t leverage those benefits then it’s not the best choice.