These days everybody knows what the cloud is. It’s become part of our vocabulary now, but for anyone who has been around long enough in the industry, they will remember planning software projects differently.
The image of huge racks of servers in some old basement overseen by a Noel Fielding, or Gollum-Esque character always comes to my mind. Nowadays, we don’t have to worry so much about things like procurement service, where things will run, and the skills needed from the operational and database administration. With the cloud, they are at our fingertips.
Essentially, we’ve outsourced all the boring bits of software engineering.
More efficient for the average developer
These changes, software developers discovered quite early on, had very obvious implications on the business side too. In the pre-cloud days to run a reasonably sized project or piece of software, you needed substantial capital costs to get your service provider set up in a data centre and all the software installed. Also, you needed the skills to manage that which is completely outside of the software engineering activity.
As everything was physical, scalability, compliance and software security were issues too. However, now it’s a different story. With the cloud, everything is fast, scalable and compliant in a flash.
The cloud has certainly made things more efficient for the average developer. But the biggest impact the cloud has had is the downstream benefits that this efficiency provides.
For example, without having to move to a server, you can now release multiple times a day, duplicate the set up elsewhere and easily run something different without any real issues. I discuss this in loads more detail in our upcoming book so look out for release updates on that if you’re keen.
More scalable – less cost
It hasn’t just made what we used to do more efficient though, It’s an entirely different way of thinking. This is especially relevant in the startup world where you want to get out there quickly and can own the whole process of building, managing and scaling your applications.
15 or 20 years ago, this would have been very hard or expensive to do, but the cloud has allowed us to build all of that into our software without high costs. When it comes to the cloud cost isn’t really something that gets considered that much. The main thing is that using the cloud is cheaper than not using it.
The reason for this is that it allows you to start very simple. You don’t need a big server straight away and as a result, end up paying much less, to begin with. It’s only when you look at the cost of running something heavy in the cloud, like a platform designed to handle web-scale, that the long-term costs become more expensive than hardware.
Plus, owning your own data centre has additional costs we perhaps don’t think about. Without the right expertise, if you did try and build something yourself, it would probably be a bit flaky and oversimplified. You need specialists to get the full benefit, and your data centre providers do that for you.
Cloud-based tools – everything in one click
Another thing to think about in relation to using the cloud is the tools it provides. At tsf.tech we use almost every tool under the sun, not just development tooling, and cloud-based tools have a huge impact on the speed at which you can get up and running.
Back in the day when we had a physical server (Jenkins probably), it took a long time just to start your project. You would have to set everything up and configure it properly whereas now, with tools like GitHub, you’re up and running within a day with no troubles.
Now you’re building everything as a service on the cloud. Everything is available at one click, and that sort of speed has been great for software teams. You can now have your code in GitHub, your project in JIRA and your continuous integration in Travis CI with a team chat in Slack. You’re up and running in a few hours and can start building your code.
The cloud is now firmly established this idea of data storage (Dropbox, iCloud) as services but also the database as a service too, so where does it go next? What’s interesting is now there is a focus for the big cloud providers to converge so that it’s possible to move your workloads between clouds. Once a database is built, you can point it to any cloud provider you want. It’s the same in other over the top services on the cloud like container orchestration.
Containers are a mapper interface that works everywhere and are a key part of that cloud-based architecture we touched on in last week’s blog. Essentially you can write some code and put it in this container, and then move it to any cloud provider, or run it on a laptop. Instead of creating anything bespoke for one cloud platform, you can pick it up and run with it anywhere. This provides a huge benefit from the business side by providing that flexibility which is so important to tech startups.
Software as a Service
Another benefit the cloud provides is how it has grown the SaaS (software as a service) market. AI especially has benefitted from this. If you are doing a common task like facial recognition, that many others have done, you don’t have to set up a server and collect loads of data. All of those things have been done for you and are available as a service. You don’t have to think about engineering; it just works.
For example, Google Cloud has its own AI platform, which makes data ingestion and data cleansing much easier and applies it to the models you’ve developed. The same goes for image processing too. If you are looking for image classification, there is a service for that.
In the startup world, everything is already a service. We don’t talk with any startups about having a server or not having the cloud. Obviously, you’ve got plenty of large organisations out there who are on their legacy kit because they’re too scared to move, but that’s not the case in our world. In the tech startup, everything is in the cloud, and we will keep moving forward into new iterations.
Service as a service is the premise for a lot of startups now. Take Uber as an example. Uber is what happens when you take localised data centres, centralised into the cloud to apply to taxis, its a cloud-based service. That’s how most startups are going to succeed these days but it also means there is limited scope for each service and coming up with the service that no one has done yet can be tricky.
For founders, it is important to get that cloud is a way that they can build their businesses at pace but also iterate quickly and do things in a holistic way. But the key is to start simple. That’s what we do at tsf.tech. Rather than thinking about how to scale to a Google size, let’s think about how we can start simple by allowing us to scale when we need to.
But as useful as the cloud is, just remember a cloud supplier is not a silver bullet. You can’t just, use it and expect to become the next Uber or Google but what it does do is give you that flexibility so you can iterate and build things quickly as you go along.
These days there isn’t a choice to be with or without the cloud. Last week we talked about cloud-native architecture and building your thing for the cloud, but being a cloud-native person just means you think in a way you didn’t before, the physical environment does not constrain you.
In this way we are cloud-native people!
I hope you have found this useful, if you have any questions or would like to hear more about roadmapping check out episode 7 of our podcast, “From the Factory Floor” where myself, Eric and James go into more detail. Alternatively feel free to email me at firstname.lastname@example.org
More next week!