The cloud is a powerful beast. You can access software, services, systems from anywhere, on any device, with the might of the cloud. Therefore, it must follow that all your software packages should reside on the cloud as well.
Not quite. Sometimes what you want is to have your software reside on your premises, or on-prem, comfortably safe within your firewall or at the network perimeter.
Why would you want your software on prem?
Enhanced security
Security is one of the biggest concerns for on-prem. If you have your software packages within your walls, or perhaps in a colocation facility, you are minimizing the chances of a potential breach. This is especially pertinent if you are in highly-regulated industries like say, the military, or in the banking financial services and insurance (BFSI) space, and so on.
Mission... critical
You may want your mission-critical data close to you, without providing third-party cloud providers access. Running and managing your ERP, CRM, or business intelligence (BI) applications yourself, ensures you have a much better control over outages or any other incident that can potentially affect business.
Compliance is king
There are various compliances for different industries. Healthcare has its HIPAA. The public sector relies on FedRAMP. While there are providers that offer compliance and exhaustive service level agreements, sometimes it may make business sense to have such data reside on prem.
Data residency
You may decide to host your data on-prem as a way to adhere to data residency or data localization requirements.
Having your IP and managing it too
You may want to have all or part of your core intellectual property stay within your premises.
Customization options
You own the infrastructure that you are using on-prem. This gives you much better customization options, than if you were to rely on third-party providers. IT ops can configure parameters based exactly on your business needs. An extension of this would be, you can easily set up access-based permission or any usage rights you like for your software packages.
With on-prem package management, you have a package manager installed within your IT infrastructure. You are ultimately responsible for hosting the correct software for the package manager, and making sure all patches and updates are applied regularly.
(Shoutout to Wikipedia, for the image!)