Deployment is a term which is used for the installation/distribution of software.
ABC Inc has developed a solution to address the customer needs. Database production team is trying to establish a deployment strategy to address the issues they have faced in the past because of not having a process which could identify the considerations while deploying a solution and moreover the production team was not aware of that the deployment process must be tested prior then handing it over to the client. This ignorance caused into failures while clients tried to deploy the solution.
In production environment Deployment often defines how the project will actually get to its final destination. Designing a Deployment strategy is a challenging task because unfortunately many projects experience failure when your client tries to actually install and use the application. Such a failure can be catastrophic, because production team has already spent a large amount of time and energy to create the software and the application can’t be used until properly deployed.
Every Deployment strategy must have proper deployment process and associated documentation. As Performing deployment is actually the task of DBA (database administrator). With a well-documented deployment strategy, developers will be able to perform deployments without the need for intervention from DBAs, which some companies do not allow one of the reasons to this is that DBAs has access to the whole system, I.e. they can access disk partition, drives and directories more easily then a developer.
Before building a deployment solution you should also look into the details of which Items would be needed by which tier if application is multi-tier in case. For example, application code, databases, database code, data, logins and other credentials, and additional components such as extended stored procedures which has an important role to play and must be deployed with data tier of application architecture.
If application is designed in a way that it will used among the users then credentials come into the picture, credentials are used for interacting with other systems and the database itself. Then it becomes the prime responsibility of the production team to emphasize on the need to validate that credentials are working as they are expected to be, because it can cause a disaster if wrong credentials (user name/pwd, permissions etc.) are used by a user while seeking information or accessing any other database.
Before you ship any application to the client and he/she continues with the deployment, it becomes very important that the production team have a test plan to test the deployment process thoroughly before shipping the solution to the client. This will ensure that all functionalities of application are working as they are expected. This will certainly help the client to have foolproof solution and will lead towards client satisfaction and no errors will be reported to the production team regarding deployment.
There are various techniques to deploy a database solution on to the client machine few of the common methods of deployment are by using detach/attach, backup/restore and scripting.