akvo / akvo-flow

A data collection and monitoring tool that works anywhere.
http://akvo.org/products/akvoflow/
GNU Affero General Public License v3.0
65 stars 31 forks source link

Adapt deployments to use Cloud SDK #3377

Closed iperdomo closed 4 years ago

iperdomo commented 4 years ago

App Engine SDK [1] deployments is deprecated and planned to be unsupported as of July 30th, 2020 We need to adapt builds and deploys to use Cloud SDK instead [2]

[1] https://cloud.google.com/appengine/docs/deprecations/ [2] https://cloud.google.com/appengine/docs/standard/java/tools/using-maven

muloem commented 4 years ago

@iperdomo when we first made some changes to the deployments (https://github.com/akvo/akvo-flow/issues/2562) I recall one of the issues was the translation from appengine-web.xml to app.yaml where we missed certain settings like the scaling configuration i.e. auto scaling or manual scaling. This resulted in a significant cost increase. Did you confirm that with these changes we do not incur the same problem?

iperdomo commented 4 years ago

@muloem the problem was due to the fact when were using Backends. We had to rollback the change and deploy using appcfg [1] instead of the gcloud app deploy. The deployment of backends was deleted in rev c117da46 in almost a year ago.

Still I'll review the current deployed instance UAT1 that is defined with autoscaling.

[1] https://github.com/akvo/akvo-flow/blob/v1.10.1.3/scripts/deploy/deploy.sh#L79-L83

iperdomo commented 4 years ago

We don't have any extra configuration related to instance scaling, so it defaults to <automatic-scaling> - https://cloud.google.com/appengine/docs/standard/java/config/appref#automatic_scaling

We do have some instances with a defined <instance-class> but is using the default F1 value - https://cloud.google.com/appengine/docs/standard/java/config/appref#instance_class

I checked the deployed UAT1 and is defined as automatic-scaling with dynamic instances

muloem commented 4 years ago

@iperdomo ok. Do you think then that we can revisit the pull based deployments that you implemented in this issue? https://github.com/akvo/akvo-flow/issues/2562? That way we bring our deployment time down to something that allows for a CD setup

iperdomo commented 4 years ago

We can revisit it yes, but I would not couple it with the gcloud based deployment, since is a different strategy ... using the GAE Admin API - https://cloud.google.com/appengine/docs/admin-api/deploying-overview

muloem commented 4 years ago

Ahh yes thats true. I think if we are done with the current assignment we can tackle this next as the fast deployments will make us more agile.