I was hired to help establish a DevOps function and guide several teams toward more reliable development and delivery practices. I have almost two years of hands-on DevOps experience, mostly improving existing systems rather than leading a transition from the beginning.
Several interconnected Laravel and Node.js applications currently share a large development and staging server, while production runs on a separate instance. There is significant operational drift: environment files and Nginx configurations are edited manually, dependencies are installed directly on servers, pipelines mostly lint and copy source code, some background jobs are launched with shell commands, parts of applications are not stored in version control, and some secrets are committed to the repository. Git workflows also vary between teams, database changes are handled manually without migration history, and logs remain on the servers without a retention policy.
I would like to make Git the source of truth, manage secrets properly, version-control configuration, build dependencies in CI/CD, centralize logs, and make deployments repeatable. Management is also asking for containerization and blue-green deployments, but I believe the existing drift and manual processes should be addressed first.
How should I prioritize this work without disrupting applications that are already generating revenue? What metrics would demonstrate that the improvements are worthwhile? How can I help development, infrastructure, and operations teams adopt the changes without making them feel like unnecessary process?
3 Answers
Since management already supports containers, frame the foundational work as preparation for that goal rather than as a collection of abstract best practices. Explain what has to change for an application to run consistently in a container: configuration must be externalized, dependencies must be built predictably, code must be in version control, and deployment must use an immutable artifact.
A useful early milestone is getting one application running locally in containers. That exposes undocumented dependencies and environment assumptions before they become production problems. If possible, build the new infrastructure and pipeline alongside the existing one so the team can compare results and test without immediately taking away the working delivery path.
Plan for training and migration time. These changes alter developers' daily workflows, so adoption is easier when each change has a clear benefit and people can practice it incrementally.
Start with one application rather than trying to transform everything at once. Map its current release process first: what is changed manually, what is missing from version control, where configuration and secrets come from, how dependencies are built, how rollback works, and where logs are stored.
Then choose a small improvement that also supports the containerization goal. For example, put the application fully in Git, build a single deployable artifact in CI, move configuration out of the server, and document a reliable rollback. Once one service is reproducible from source and a pipeline, you have a concrete example the other teams can follow.
For measurements, track practical outcomes: fewer manual server changes, fewer deployment steps, shorter or more predictable release times, successful rollbacks, no secrets in repositories, defined log retention, and the ability to recreate an environment from Git and automation. Blue-green deployment is much safer after those foundations exist; otherwise you simply create two environments with the same problems.
Use value-stream mapping to understand where time and risk are actually coming from. Record the steps from a code change to production, including approvals, manual requests, waiting time, deployment work, and recovery. Repeat the measurement after each improvement so management can see the difference in delivery time and operational risk.
Also clarify the business reason for each major initiative. Containers, blue-green releases, centralized logging, and secret management can all be useful, but they should solve a specific problem such as environment inconsistency, difficult rollback, security exposure, or excessive release downtime. If a proposed change does not address a meaningful risk or bottleneck, it may not belong in the first phase.
Treat the work as a shared engineering improvement rather than a separate team taking ownership of everything. Development, infrastructure, and operations should agree on the target workflow and help define the standards, while the new team provides automation, documentation, and support.

Related Questions
Can't Load PhpMyadmin On After Server Update
Redirect www to non-www in Apache Conf
How To Check If Your SSL Cert Is SHA 1
Windows TrackPad Gestures