App development in the time of PaaS & SaaS

Dominik Veselý
Ackee
Published in
4 min readFeb 11, 2016

In the previous article we learned about software architects and what their daily routine is. One of the most critical aspects of their knowledge is the trends and all the latest technologies. One of the aspects of today’s development is that everything is online and internet speed is blazingly fast. This enables the possibility of multiple systems talking to each other in real-time while serving your requests and you don’t even know.

We can definitely say we live in the time of SaaS and PaaS* where vendors are providing their software and platforms as services which you could use for your app. Anyone interested in app development (SW companies, Startups, Businesses) needs to accept this fact and learn the most important things about it.

*the trend of “Anything” as a Service is huge, there is also IaaS (Infrastructure), BaaS (Backend) and others…, but for the reader, PaaS & SaaS are the most important and relevant.

Platform as a Service (PaaS) — is category of cloud computing services which lets you host and run your applications without the need of handling your own infrastructure and scaling etc..

Software as a Service (SaaS) — is category of cloud computing services where a provider provides some software which you can use without the need of spending time and money on developing it. This one is important for us. Imagine image processing, instant messaging and other cool stuff you would like to use in your app but developing it would need tremendous effort and money.

Fine Grained Architecture

In the last few years there is one noticeable trend in software development. The majority of SW systems tend to use fine-grained architecture. Which means that system is composed of lot of smaller individual parts which acts as separate systems. I am huge fan of this approach as it is clean and individual parts can be tweaked / replaced independently.

This trend goes along with trend of PaaS and SaaS. I can’t say which trend implicates the other. I would say it’s the chicken and the egg problem. Fine grained granularity makes PaaS and Saas much more useful and easy to integrate. And with such a boom of PaaS and SaaS, the fine grained architecture is the natural choice… as I said it is a great ecosystem.

Why you should care

This is probably one thing on your mind right now. Why would you care? You just need an app for your business or you need a solution for your startup. And that’s why you need a good software architect because he can design a great scalable and future proof solution or save you lots of money and time, sometimes even both at the same time.

Today there is tons of software running as SaaS which means you can buy a certain functionality of your app for a small monthly fee and save lots of money and time because you can start using it right away and you don’t have to wait until your developers finish the whole functionality, you just wait until they integrate it to your system.

A great software architect will help you find a great SaaS which best suits your needs. Of course not every service is a great choice and choosing it might be the wrong decision on the same level as choosing the wrong technology for your project.

There is definitely plenty of concerns you might have about SaaS

Price

The pricing model is usually defined that when starting you pay nothing or a very small amount. Why is it that cheap? The developing of a system like that must have cost them lot of money. Yes it did! And that’s why they charge a monthly fee to you and other developers, because they have a huge amount of potential customers, they can keep their fares low. The other fact is that with higher usage you pay much much more money, sometimes the fees grows exponentially and that is also where they make money :). But it should be ok because the fees reflect the status of your own product and when you are big you can afford to pay more money.

Lack of functionality

Another concern might be that the service won’t provide all the needed functionality. That is a real problem but there are a few solutions.

1) Another SaaS might exist which deals with the same problem and covers the functionality you want

2) Maybe you can handle the lack of functions on your side without the particular service

3) Functionality isn’t that crucial to you and you can start your project without it and add it later (after all you probably want to start as soon as possible)

Keep in mind that those services evolve over time. So there is a pretty great chance that functionality which wasn’t available 3 months back, is available now and this is a great aspect of SaaS.

Migration

The last major concern is migration from one service to another or to your own custom solution. Whether for pricing reasons, functionality or you just want to continue on your own. This is where the fine grained architecture comes into play as your system is built from small pieces and exchanging one small piece should not be that huge of a problem.

Where to run your app

Well, this article is longer than I planned from the start and there should have been a part here about hosting and running your apps using PaaS, but I think it will be better off as a separate article in this series. So see you next week.

--

--

Dominik Veselý
Ackee
Editor for

Software Architecture Expert, Co-Founder of @AckeeCZ. #ios #node #saas enthusiast. Lecturer at @FIT_CTU. Runner in the spare time.