29 October 2020
How to reap the benefits of cloud computing without putting your software at risk?
One might say that cloud will, if not already has, become a standard. According to various statistics, 90% of companies use some type of cloud service, so business advantages of cloud computing are undeniable. In order to fully appreciate any cloud computing benefit, you need to take a closer look at your application. With proper optimisation and a set of services, you can take your product to the next level. Let’s see what can be done.
What is cloud computing?
The term cloud computing can be interpreted ambiguously:
- using unlimited computing resources (CPU, RAM, Disk Space) that cloud provides
- having your application working in the cloud environment
These two concepts are often confused and lead to misunderstandings over what the cloud is used for. If you were defining cloud as an enormous computing power only, you probably don’t need the cloud anyway – this type only makes sense with huge applications with even bigger algorithms and data processing systems.
Meanwhile, for a long time, the cloud hasn’t been used only because of the increased computing power but for completely different reasons. Let’s see what modern cloud computing allows for in the next paragraph.
What are the benefits of cloud computing
Your application works on the local market and you would like it to be available all over the world? It’s not a question of how many servers you have or how strong they are but how scattered they are around the world. If your business is Europe-based and you want to reach new clients in the United States, you’ll need a server in the US. It’s not a matter of computing power but more of how far the data has to travel. If it’s far, it can make your app run slowly. Especially if you need to download or upload large data.
With the cloud, this problem virtually disappears.
Cloud computing offers distributed solutions such as AWS or GCP that won’t slow down your application and allow for an easy transition to international markets.
Stability and disaster recovery
If you store data on one server, you have to consider what will happen if this server breaks down. There are cases when the entire data centre stops working – it can be anything from a general power failure to floods and other natural disasters. The key suggestion, in this case, is running your application on various servers scattered around the world or keeping up-to-date backups.
Unfortunately, even if companies have backups made, they probably only saved up the database, code and maybe a Docker image. The first question is – where do you keep all this data? Because if it’s the same server room, you already have a big problem (btw. if that’s the case, we suggest you move it straight away). If you store backup data somewhere else, then restoring the entire system after “disasters” where everything broke down is often a matter of weeks. Or even longer if the infrastructure wasn’t documented at all.
The cloud offers options for backing up the entire infrastructure and documenting it using special formats, like Terraform. There are “infrastructure as a code” mechanisms that enable any duplication of entire environments. The appropriate configuration will even allow you to go back in time to a specific state of the entire system.
That ensures full recovery and stable performance that can be recreated in minutes, instead of weeks. And with proper configuration, you can even get zero downtime after the server breaks down!
A very important aspect is the application’s safety – whether it’s vulnerable to attacks or not. Cyberattacks can seriously damage not only your software but also your company’s reputation. Large investors always order a security audit before investing in a given solution. So it is crucial to provide AT LEAST basic protection against attacks listed in OWASP Foundation’s top 10 security risks, such as SQL injection or XSS.
Cloud computing won’t solve all your problems with security, but putting up a cloud firewall like AWS WAF can help automatically. Especially if you have old code that nobody is willing to rebuild.
We can give you a practical example – a very common attack on applications is DDoS. It can be carried out by any tech-savvy teenager but underestimating the enemy can have dire consequences for your product. DDOS can make you lose control over the app completely.
Luckily, appropriate cloud mechanisms will protect you instantly against such a threat. It can be for example AWS Shield or load balancers, another good solution we recommend is using Cloudflare – simple, yet effective.
Governance and quality control
In modern systems, the infrastructure on which the application runs begins to be a project in itself. Hence, the sudden interest in hiring a DevOps engineer to software teams. The reason is usually the complicated infrastructure that inexperienced developers can get lost in. I have already mentioned the famous “weird, it works for me” issue in the article about software consulting services scenarios. This often means that the problem doesn’t lie in the code but somewhere in the server configuration.
In order to gain control over your own system, it is not enough just to look at the code. In fact, the key is to introduce the appropriate metrics and logs. They will show you the exact path of how the application works, are the individual elements overloaded and where the bottlenecks are.
All these issues are covered by the term observability. Do you want to receive a text message with an early warning when your website is down for some reason? In the cloud, you can turn that option on with a few clicks in the administration panel.
Cloud offers various metrics and great management dashboards that otherwise would take months to build yourself.
Speaking of data – sometimes the data that you’ve collected in your application over years is more valuable than the application itself. Especially, if it’s customer personal data or any kind of fragile/classified information. There are tools like Machine Learning or report generators like Crystal Reports available but if you have this data in your database on a “normal” server, you must now configure all of these tools and connect them to your data source yourself. And it takes time, experience and lots of patience.
If you use a database in the cloud, you can connect data to the latest data analysis tools with ONE click.
What are the advantages of cloud computing out-of-the-box features?
If you have cloud-based software, you can also add some of the most popular functionalities to it without having to write them from scratch. Options depend on the service provider, of course, but here are some mainstream cloud computing advantages examples:
- authentication and login functions,
- text chat and video chat,
- push notifications,
- SMS notifications,
- satellite images on request,
- blockchain support,
- …and much more.
We’re here to extend your development team – in weeks, not months.🚀
Are you a tech manager in need of talented engineers? Schedule free, non-binding software consultations and let’s talk tech!
Why could cloud computing be risky for your software project?
We’ve gone through the benefits of the cloud computing, however, you need to realise that cloud services aren’t magic and won’t configure themselves. Therefore, we have some advice for incautious cloud users:
- Cloud specialists – you need someone who understands how cloud computing works to configure your features. DevOps specialists or senior developers will do.
- Messy code equals trouble – to use the full potential of cloud computing, you must have a well-written application.
- Cloud computing might not equal speed – this is probably the biggest myth. If you have a badly coded app, using the cloud won’t speed it up even if you buy the fastest server available.
- Beware the costs – cloud computing solutions can be more expensive than a classic server. Especially, an inappropriately configured website can eat up a lot of money. It’s all about optimising costs with the most fitting services and service providers.
- Automatic updates – it’s not gonna happen just like that. Of course, a simple cloud service will receive support for automatic updates but more complicated systems will require someone clever to take care of versioning.
- One cloud to rule the app – when you pick a cloud, you usually have to stick with the service provider. Make an educated choice at the very beginning because it’s quite difficult to switch to another afterwards.
Which cloud computing service providers to pick?
Now you’re probably wondering which cloud services available on the market you should choose? We’re gonna use the two all-time favourite answers: “we don’t know” and “that depends”. It’s more important to opt for cloud computing at all.
The larger and the most popular cloud providers like Google Cloud Platform, Microsoft Azure or Amazon Web Services have special programs that support migration to the cloud by providing additional resources. This means that sometimes this choice may depend on which provider you were able to cooperate with to get the best deal.
At The Software House, our favourite option is AWS, mainly due to an enormous number of available services and it’s global popularity. According to the 2020 Synergy research, Amazon leads the cloud computing market with 33% of share.
In our State of Frontend 2020 report, AWS came second in the “Hosting” category, right after traditional DCs. Nonetheless, it was the respondents’ favourite cloud solution.
Having said that, our customers are equally satisfied with working on GPC and Azure clouds, and we have successfully delivered software and reaped cloud computing benefits by using those too.
No time to read the entire State of Frontend report?
Business benefits of cloud computing
Last but not least, let’s check out what benefits of cloud computing we were able to secure for our customers.
Lowering the cost of software
Cloud means paying for resources you actually use. On-premise servers won’t give you the option that you pay only for the real-time of using the app and will charge you for unused resources too. When optimised properly, cloud computing gives you the option to add or take resources away, depending on the website traffic.
Another way to lower the costs is just appropriate optimisation of the cloud.
One customer paid $350 a month for their cloud. After our DevOps specialist had taken over and configured the cloud nicely, they paid $150 monthly. That’s 2 400 dollars of clear profit a year.
Controlling user traffic
A customer from the fintech industry built a payment app that covered around 200 thousand shops. However, once a year they organised a charity campaign and stretched their app to handle a few million shops. For one day they had to increase resources quickly. Without appropriate bottlenecks control and early detection system, the app would surely crash. Fortunately, through maintenance, our specialists were not only able to smoothly handle all users but also exactly predict when and where there will be a problem. Needless to say, with their help there weren’t any!
Adding new functionalities
Sometimes businesses grow and the need for new features emerges. It was the case with our client’s app for managing a translation office. The system was colossal and it was hard to change anything. But the company needed to introduce a chat for their employees ASAP. We have implemented a cloud-native chat for them by using GCP, and Firebase (push notifications and messages). There was no need to change the entire app, chat was implemented in the cloud and communicated with the application nicely.
Support in international expansion
When your company grows and becomes international, there are those particular cloud computing benefits that might help with caching data. Your company operates in Germany but wants to open itself in South-East Asia. If you want your app to work as efficient in Berlin as in Bangkok, you need your data to be downloaded from a place that is physically close. If you leave your data on servers in Germany, your Thai customers will complain about the app being slow.
Without the cloud, you’d have to find another service provider, a server, and move data manually. With the cloud, you can be up-and-running in a week. With servers, it’s impossible to achieve.
Will cloud computing advantage your software project?
Now, you’re aware of cloud computing disadvantages and advantages. Why cloud computing should be on your immediate agenda? It’s the future! The cloud will soon become an IT standard and there will be more and more creative services available.
Is your software project cloud-friendly? Will moving to cloud give you a competitive edge?
Well, we need to take a closer look. Fortunately, the initial software consultations at The Software House are free of charge.