Unless you are living under rocks, you would have heard the word DevOps. I am sure you many of you are working on the DevOps as well and have a clear idea about what is DevOps. To be super honest, I still see people who are not sure what actually DevOps is and believe it is just a buzz word and will eventually go away. In today’s blog post, I would love to discuss DevOps and its future.
Definition of DevOps
Let us start our article with a quick definition:
DevOps is the practice of development and operations integrated together for entire software lifecycle from the design phase to deployment and from proactively monitoring to production support.
Honestly, DevOps is not one thing but it is a combination of various successful practices combined with the proven tools which increases any organizations’ ability to continuously deliver application at the rapid pace with high-quality measures.
The goal is to improve the efficiency from the earlier methodologies and reduce the possibilities of the errors in the delivery. Just so you know that this term can be used in multiple meanings and context but ultimately they are pointing to one thing – Better Efficiency Through Automation and Processes.
Steps of DevOps
there are few major steps of DevOps. Every one defines them differently, however, you will see a similar pattern and steps in all the processes.
The major four steps are Build, Test, Release, and Monitor. Once we are in the monitor phase, we keep on giving the necessary feedback to the next Build phase and release the complete cycle. Essentially DevOps looks something like in the following image:
The major advantages of this methodology are Speed, Reliability, Scale, Security, and efficient delivery.
SQL Server and Dev Ops
I often see that when organizations are building their application using development tools like .NET, PHP, Java, etc, they follow certain processes like Code Versioning, Change Tracking, Code Compiling, Build Deploying, Unit Testing, and Statistics Collections. These are very essential tools to deliver an application which has the least bug and easy to maintain. The process helps to reduce human errors at very much as well.
However, when it is about SQL Server, I often see people just deploying SQL Server with the help of running T-SQL scripts only. This pretty much works when the organization is small and application is still under development. However, once the organizations grow big, the same running script for deployment is not enough.
Once there are many developers in the team, there will be many versions of the code and objects. It is quite possible the code might be working perfectly fine in the isolation but it might not be conflicting with each other when they are deployed together. The final deployment might have multiple versions of the same code and often the order of the deployment will play a critical role as well.
A good deployment team which not only deploys the code but also monitors their execution is very critical after the deployment and feedback from the client should be provided back to the development team so during the next iteration they can do it more efficiently.
What we have so far discussed can be summed up in the two terms
- Continuous Integration (CI)
- Continuous Deployment (CD)
Tools of Dev Ops in SQL Server
Continuous Integration (CI) stands for the build and test phase whereas Continuous Deployment (CD) stands for the Release and Monitoring phase. There are many tools available to for Developer and DBA team for the SQL Server to achieve CI and CD. In SQL Server we can use Visual Studio Team Services, Azure Data Studio, SSIS, PowerShell, SQL Server Data Tools, bcp, T-SQL, mssql-scripter, SqlPackage, bcp, and sqlcmd to help you deploy successful DevOps processes.
Remember, it does not matter what tool ultimately you use for your SQL Server, your ultimate goal should be to help your organization deliver quality application at the rapid pace.
Call to Action
Well, that was a brief note for DevOps and if you are not sure where to start with the DevOps, I would say you should consider a third party tool which can help you to get started. I suggest you can start with Toad DevOps Toolkit and Foglight for Databases.
I strongly encourage you to join me in the 30-minute discussion (Webinar Link) about trends in DevOps. We will discuss where DevOps is heading in the database world and what DBAs and Developers should do to be industry ready when it goes to the mainstream.
Reference: Pinal Dave (https://blog.sqlauthority.com)