What is the best way to achieve DevOps in any environment, or it is always environment dependent?
The answer to this question about what is DevOps?

DevOps both involves Strategy and Tactics.

Strategy embraces building a culture centered around collaboration in your software development, technical operations and any other group or organization that has a stake in the deliverables whether it's software or service.

Examples of DevOps strategy may be breaking down silos, continuous delivery, continuous integration, etc.

Tactics are the actual implementation of the strategies. 

This is the level where the use of software tools, technology and management methods are found as well as the actual "how to".  For instance, to foster "breaking down of silos" as a tactic, you build smaller "agile" teams of 5-7 "stakeholders" let's say programmers, systems admins, QA engineer, and a project manager.  To communicate among the team members, you use Slack.  Programmers and sysadmins "cross train" on each others tasks where it makes sense.  Sysadmins may assist in developing test harnesses for the programmers, use Selenium and python for testing.  Programmers learn how to use Ansible and assist the Sysadmins on what they need in the development and production environment.

Where you sound like your at is looking at all these cool tactics and tools that DevOps uses such as Docker, Ansible, Chef but your missing the understanding of Strategy...building of the culture, the "why" you want to use these tactics and tools.  That's ok, we're here to learn.

There is no "right" answer on what exactly DevOps is or how you implement it, but in all the talks and examples of DevOps shops and organization it boils down to the strategy of building a collaborating organization and focusing on a purpose then put it into action as tactics.