Assertions, assertions …
Presently many applications consist of one or more native clients, a fallback web client and a selection of backend services that join everything up. Developing and maintaining it all is an expensive business. Get it wrong on the backend and it is true to say that many users will tend to notice. Consequently, a significant chunk of an application’s time and expense can come from the efforts to ensure the operation and development of backend services that are highly reliable, performant and secure.
Managing deployments in pre and early cloud infrastructure is difficult, usually requires IT’s assistance, and is, as a result, an expensive and laborious task. Consequently the pattern that has emerged has been for developers to use a common, Shared Backend Services across all of an application’s user base that minimises the need for deployments.
The plan for taskUdo is not to do this, and is indeed not use Shared Backend Services, instead my assertions are that:
1. Developments in Cloud and Container technology, particularly the emergence of cloud operating system alike technologies such as Kubernetes, mean that it is becoming easy for software developers to programmatically manipulate complete, highly complex and interlinked backend system services (such as DB’s, caches, web servers) without IT’s routine intervention in a way that has never before been possible.
2. Much of the security risks, costs and complexity involved in a Shared Backend Services originate from having to make the backend multiuser, using technologies that provide little or no systematic built-in support for this.
3. The advent of 1. means that it is viable to develop and deploy backend services for individual users, i.e. Personal Backend Services. Further it is preferable to do this because it offers the hope of eliminating most of the problems and costs of 2.
The plan for taskUdo, at least at the moment, is for taskUdo to use per-user, Personal Backend Services.
Clearly, there are other pros and cons to Personal Backend Services as an approach and only time will tell if I am right about my third point above.
However from the point of view of the immediate plans for taskUdo, although I have spent quite a lot of time researching, I had no practical experience with cloud platforms, so for last month or so I have been working on rectifying this and:
1. Validating my assertion that developing and deploying complex services using cloud technologies, is viable, especially for a developer of modest means, i.e. me 🙂
2. Gaining insight into the costs of deploying a Personal Backend Service.
(Since basically if those two are no go, then the plan would be scrap).
To do this I’ve put myself through my chosen cloud platform’s online training before carrying out an exercise to move something non-trivial and possibly useful to taskUdo, first into a local testing cloud and then to a production cloud environment.
The next blog posts will be about the fun I have had with this.