Best Practices for On-Prem Deployment of Monolithic Apps

0
5
Asked By TechyTurtle123 On

I'm exploring options to improve our application's deployment cycle. Currently, we deploy to Windows Client OS, but I'm not comfortable relying solely on that platform due to issues like Windows updates and client hardware diversity. We want a straightforward setup where we can deploy the system and monitor its usage through basic telemetry like OpenTelemetry. Right now, we manually install the database and broker and automate IIS deployment via GitHub runners. However, we lack visibility into production telemetry data, which is crucial for user interaction insights. I've tried Aspire for local development, but its Kubernetes deployment feels excessive for our needs. I'm considering alternatives like Linux servers with Docker Compose or native deployments. What have others experienced with on-prem deployments?

3 Answers

Answered By DeployDude42 On

It really depends on how often you plan to run installations and your team size. If it's a one-off setup, maybe manual installation guides are best. But if you'll be running multiple deployments, looking into automation like PXE booting with Packer and Ansible might save you time in the long run.

AutomationFan99 -

That's a good point! What if we need to backtrack versions if something goes wrong? Is there a straightforward method to achieve that while still keeping things efficient?

Answered By LinuxLover88 On

You might want to look into using K3s, MicroK8s, or just plain Docker Compose. Set them up on a Linux VM; they're fairly straightforward and free as long as your use case remains simple.

CuriousDev77 -

That sounds interesting! We're a small team, so simplifying the stack makes sense. If we stick to Docker Compose, can we generate a compose file from Aspire? That could streamline things for our GitHub deployments.

Answered By ContainerKing15 On

Most systems I see follow this pattern: developers build and push container images to a registry, and client devices check for updates regularly. If a new image fails health checks, it rolls back to the previous one. You could use a Git repo for a Docker Compose file and automate updates with a Systemd timer. If remote access is needed, consider using an agent on the client device for remote calls.

InquiringMind56 -

I'll look into the automation options! We do SSH into systems right now. Regarding going native, is there any significant downside to deploying on IIS for Windows or Nginx on Linux in terms of health checks and ease of config?

Related Questions

LEAVE A REPLY

Please enter your comment!
Please enter your name here

This site uses Akismet to reduce spam. Learn how your comment data is processed.