DevOps is coming more and more to the fore with the maturing of cloud computing. Even though the term ‘DevOps’ is new, the idea is not. It is basically an effort to ensure that the Development, as well as, the Operations works seamlessly together. It has always made sense to make sure that the Dev and Ops work together as a team and it especially does now because of moving from Waterfall to Agile software development.
Here is why. Just imagine that you are working for a large retailer (not a startup) and you wish to respond to the demands of your new customers. This will mean that you have to create a website and even integrate the conventional selling systems into the site, via ecommerce. Now, you might also want to add a customer loyalty key that ties all the in-store purchases to your site. So, not only will you have to promptly deliver, but have to deliver at web-speed. Web-speed means that Agile Pods should drop code at least every 2 or 3 days.
This is where the opportunity and the problem lie. DevOps would want to drop code every 2 or 3 days, but DevOps require 7 days to approve the change and about 18 weeks to provision a brand new infrastructure. So, from the point of view of DevOps is probably the single most obstacle to delivering the value that has been promised by PaaS and Agile.
In large organizations, DevOps is an effort to optimize the process of software release. Ops is the area that needs to be examined since it is the slower of the 2. But of course, any solutions would be requiring changes made to Dev, as well as, Ops.
Ops has some requirements:
- Change Management: Firms of different sizes have to meet necessary regulatory requirements, such as PCI, HIPPA, GLBA and Sox, among others. Usually in Ops, Change Management is generally related to keeping the records that showcase the changes to the production systems. It is also usually the team that has the responsibility of scheduling the release windows.
- Provision: Storage, services, networking, operating systems and middleware together play a crucial part in crafting the infrastructure where the application will be consolidated into. It is important to DevOps that ushc requirements are coordinated, via automation.
- Information about the feature: By making use of the new software, someone will be required to respond to the customers. This is the primary job of the Ops. They are supposed to know how the new software functions and also how it functions with the systems in existence. When pushing new features into a product, it should contain positive reviews from DevOps.
- Bug fixes: Any new software is going to have bugs. Businesses can save themselves a lot of money if they simply came up with a list of workarounds and bugs. If Ops has an idea about what does not work from before, they will be able to solve the issues of customers faster. Therefore, before any new release goes into production, Dev must inform Ops of all kinds of known errors so that they can accordingly respond.
- Dependencies of the system: Ops must be made aware of how the updated application is going to affect the infrastructure. For instance, is it going to create additional load on the local area network or the mainframe? Did engineering assist Dev? It is better to know the answer of such questions beforehand so that the software does not take the entire selling systems down.
The above-mentioned are mostly information requirements that can be satisfied easily if only the Agile team is able to develop them during the sprint. It is best not to put off the requirements until the end because then, the organization might end up losing a lot of revenue.