DevOps has become a platform for driving business operations. The shift in business is rapidly growing and making use of applications and websites for their company to help get their product and brand out there. Principles of continuous integration and continuous build have become an integral part of modern DevOps.
If you're not currently doing these, you're behind the curve of collaborative development and likely reducing your production quality by increasing technical debt, substituting automated operations for manpower and increasing costs unnecessarily.
The Devops movement is built around a group of people who believe that the purpose of combining the proper technology and approach can change the world of software development and delivery. Developers, Testers, Managers, DBA’s and the rest of the specialist in the IT industry are all on the same side. They are all trying to achieve the same thing: the delivery of great quality, reliable software that delivers business benefit to those who bought it.
It’s important to realize that merging applications and infrastructure are extremely difficult. It has however become part of how businesses bring their digital products to new customers. The difference of opinion is increasingly solved through DevOps - a role that helps to bridge the gap. However, there are other levels that must be reconciled in order for the gap to be closed for organization to take advantage of the benefits of incorporated development and operations.
What challenges need to be reconciled?
The app server perception
Time and again, application developers go above and beyond what their needs are. From a hardware point of view, questions need to be raised in relation to whether developers have really understood the application’s resource requirements, for example what needs to be run on the actual server that’s hosting the application. Applications thrive on central processing unit (CPU) and memory resources, and this often converts to resources provisioning problems when the application is moved from testing to production.
Price and costs
The fact of the matter is that building quality software is really expensive and difficult - it's error prone, it's risky, it's unpredictable, so it’s important to consider the infrastructure cost on which the application will be running on. Rushing to buy is not a good idea. If there’s a break down between the dev and IT in terms of what application performance should entail, then you run the risk that extra purchases may become necessary. That cost may end up being more expensive separately than if it had been planned for at the beginning.
Sometimes the needs of the application must be repeated to infrastructure people, so that it makes sense to them. Even when you think things are fine, there is a need to translate from development to operations, since all too often it’s as though the two departments are speaking different languages: IT is talking about the hardware underlying the OS, while dev is talking about application on whatever coding platform. On the application side, while a certain platform may be in future use to build the app, it needs to be understood whether it is the best-suited platform for the development process as it relates to a living application later.
The fundamental problem is that from the application side, there is not always the complete understanding of how the operating system at the infrastructure level needs to support the application, which can result in a memory leak for example, or another vulnerability that is causing a need for more resources. From the infrastructure perspectives, it’s about ensuring that all details are checked and double checked around potential drawback areas on the OS, thereby helping integration. This issue can often be overlooked as you go through different OS iterations. Certain businesses can’t patch their servers because they don’t fully understand what needs to change on their end in order for them to change anything related to the app. For example, a security patch might fix one thing but it might affect something else and degrade an app.
How do you reconcile the two competing sides?
The more you integrate dev and IT, the bigger and better results you will get. There are benefits to these different sides matching in an organization -communication plays a crucial role in this. This is as true on the application level as much as it is on the business level. Too often the business needs are not accurately communicated to either group. The business might speak to developers directly thinking that operations and dev are the same, they’re not. And it needs to be approached in the same way to better communicate exactly what is trying to be achieved. It shouldn’t be information that’s passed between the groups like a game of volleyball.
A few suggestions that can help this situation:
Think ahead: Yes you might want to rush the project, but don’t just buy for what’s needed now. Buy with the expectation that your company/brand will grow.
Be practical from a dev perspective for creating an app: Though it might seem cool and works in your testing environment, it won’t necessarily translate correctly or impeccably in production.
Use best practices: Don’t cut corners, and make sure the app has been tested on the infrastructure. Regardless of rush from the line of business, if it’s not ready, it needs to be revisited and prepared on its own time.