Greetings everyone!
I would like some advice about the best architecture and approach to building an application on the Google Cloud Platform. This will be my first application on the Google Cloud and first "Cloud Native" application. I have a decade or two of development experience under my belt, but have not touched a line of code in ten years or so. This included C, Java, Perl,JavaScript, HTML, SQL. But I am unfamiliar with all the hip new frameworks and I obviously feel a bit rusty when it comes to programming now. I do still however work in IT so might still know a thing or two.
I have tried to read a fair bit about GPC but find there is not too much out there which shows how a whole solution would be put together - it is mainly individual bits.
A general description of the solution is as follows: The solution will allow a medical practitioner to survey a patient and generate and email a PDF report based on the answers.
Now for a more detailed description of the flow:
Medical Questions
PDF Report
Usage
As my org is small, there will only be ~10-20 days a year when someone goes and does interviews. There might be months in a row when it is not used at all. There will be about 300 PDF reports made/year initially. So volumes for the initial solution are very small.
However, if people like it then we might offer it to other orgs to use so my preference is for the the solution to be multi-tenanted and able to be scaled up on demand. I know obviously then i will consume more resource and it will cost more and thats fine as it is for a good cause.
The idea is that this solution will reduce human effort from 1 hour down to 5 mins for each report so the savings in labour will easily pay for google resources and they will be able to help more people. If any other organisation uses the solution they should not know about anyone else (i.e. complete segregation)
Security
In my old world, I would have had a tomcat server with mysql and some spring or hibernate or something like that with some basic JavaScript on the front end. Being unaware of how to architect this for google cloud and the modern front end frameworks, my initial stab in the dark is:
Platform Components:
Language & frameworks
I am drawn to using Go, even though I have never used it. Simply because it is newer and lots of people seem to like it and i would get to experience something more modern. That being said, do you think one of the other languages would be more suitable to build this app?
Something like gopdf to generate PDF's
I have seen a whole bunch of discussion around whether you need any web framework when using Go?
And for the front end something like React?
Effort
Any thoughts as to if I am on the right path or not? Any suggestions as to where I should read more to understand about how to solution for GPC? What would you do differently? Where could I go to get some basic mentoring as I go through this development (paid/unpaid)?
I am hoping that any answer/discussion around this would also help other people understand about how to create an entire solution in GPC.
Thanks!
John
I have tried to read a fair bit about GPC but find there is not too much out there which shows how a whole solution would be put together - it is mainly individual bits.
- Cloud SQL - mqsql 2nd generation (have never used nosql database before - which would be better for this kind of app?) Can this go down to zero instances when not in use?
- Cloud IAM to manage users and what they can do?
- Not sure what I would need to get a domain name and SSL up and running?
- Should be protected with SSL/TLS - the whole lot