0

I'm running a home-grown dotnet core application on 18.04 LTS in an AWS load-balanced environment.

Right now, I have to expose SSH/SCP to a public IP to deploy application changes to each lb node in our CD environment, but it's kludgy at best, and doesn't scale well. I want to remove the public IP, and upload my latest code base to an EFS directory off a worker server, and then loop through the load-balanced servers, first removing it from the pool, then rebooting it, and when it's back online, add it back to the pool to continue serving traffic. What I'd like to do is, upon reboot and before the services configured using systemctl start up, wipe out the current application directories and copy the new codebase into those folders from the EFS instance, so when it starts up it's always using the most recent deployed version of the code base.

I know Linux/ Ubuntu "operationally" but not to the level of where I need to make changes of this sort, or how it should be done. Advice would be appreciated... or if it's a really bad idea, I'd like to know why (alternate suggestions would be welcome). Thanks!

  • What about using Jenkins or any other CI&CD tool to deliver the content, to wipe it manually is one of the reason it doesn't scale well. A good working knowledge of the app's directories on the server is needed and to have to take it offline and return it, is definitely not using the full potential of the AWS platform... And the fact that it's hosted and controlled on AWS might not make it a good Ubuntu question... Using AWS DevOps tools is best in this scenario. – George Udosen May 09 '20 at 22:06
  • The directories are fixed, as is our current CI/CD environment (Azure DevOps)... our main problem right now is that we're manually keying in a "list" of load-balanced servers and deploying to each individually (and we aren't removing them from the pool either)... I do want to rearchitect this whole thing, but for right now I'm trying to get this one part figured out so we just deploy our code to one server. – Jeremy Holovacs May 09 '20 at 22:12
  • Then a simple Jenkins & Ansible deployment setup should be useful, with the ansible playbook stored in a private repo and pulled into Jenkins for deployment whenever you update it... – George Udosen May 09 '20 at 22:23

0 Answers0