Whether you are a large Enterprise in the middle of transforming your application portfolio or a startup building brand new web/mobile apps, DevOps concepts when applied in the right manner in conjunction with the latest technology and automation tools, help accelerate time to market and minimize re-work during go live or post-go live blues.
In this series of articles on DevOps, it is my attempt to share my POV and lessons learnt having been part of some large/complex application development and product development initiatives. These individual articles are not in written in any particular order but offer different perspectives on DevOps in manageable chunks.
Setting the context for today’s article on DevOps
If you are leading a large/complex application or product development initiative, your plate is already full — i.e., managing end user expectations, architecture and design activities, development and testing activities and overall project management aspects — i.e., managing scope, schedule, budget and internal / external stakeholders communications. In this ensuing milieu, it is easy to overlook all your dependencies on the Ops teams or in the worst case, mistakenly assume, the Ops team is somehow managing all their pieces of the puzzle in support of your development initiative.
On the flip side, if you are leading the Ops team — your hands are also full — i.e., supporting multiple applications and infrastructure needs, changing priorities on a daily basis, severity one issues impacting business mission critical applications etc etc. Paying close attention to all the Ops needs of a new development initiative is not always necessarily a priority for you as you are dealing with more burning issues that need immediate attention.
Given this overall context, here are 3 key areas to apply DevOps concepts and potentially address the issues at hand.
- Automatic provisioning of environments & self service –
Traditionally speaking, one of the biggest hurdles from a time to market perspective is the time it takes (typically 30-45 days!) to provision each of the required environments — be it Dev, Test, Training or the Prod environments. Given the traditional silos between the Apps and Ops teams, it could even take longer due to communication barriers and mutual priorities. Not to mention the additional efforts involved in periodically applying the necessary patches (oh the just released Microsoft security patch) and the data refresh needs for all your development and testing efforts.
Thanks to all the technology advances in this area over the past few years, there are a number of automated tools available in the market to address most (if not all) of your needs relating to auto provisioning of environments, self-service capabilities to reduce the dependency on the Ops teams, ability to apply patches and refresh environments in a rapid manner. Also, this is where your public cloud, private cloud, hybrid cloud initiatives, Infrastructure-as-a-Service (IaaS), Platform-as-a-Service (PaaS) play a huge role in reducing the time to market.
- Monitoring capabilities –
This is the second area that is traditionally overlooked during the application development life cycle, either until it is way too late or as an afterthought, just before go-live.
This includes all considerations such as — What is your overall monitoring strategy cutting across — application, servers, databases, network and infrastructure layers? What do you monitor, when do you monitor and how do you monitor? What is your choice of monitoring tools and operational procedures that need to be in place for go-live? What are the Open Source tools available in the market that are enterprise ready instead of capital spend on expensive enterprise software? How does your overall cloud strategy help in this context?
The idea is not to boil the ocean here but have a definitive plan with respect to minimum capabilities you need for the initial go-live / post go-live and getting prepared for it.
- Security needs –
This is another area that needs to be given due consideration during the application development life cycle — i.e. What are your overall security needs and how do you intend to protect the application and infrastructure assets against un-warranted threats and attacks? What is your choice of tools and operational procedures? Are there any compliance requirements that need to be addressed before go live?
In summary – All of the above areas need a close collaboration between the Apps, Ops and enterprise security teams. There is a strong need for joint project planning (in an agile fashion not the traditional waterfall methods) in order to break the silos and communication barriers.
Leveraging automated tools including Open Source options, your public, private and hybrid cloud strategy go a long way in terms of minimizing bottlenecks and increase the chances of time to market.
What does DevOps mean for SaaS based application providers on the Cloud (such as AHM)
Given the above context of DevOps, is interesting to see what it means for application providers on a SaaS platform, such as AHM.
The implications are, to a very large extent, all the backend infrastructure and software provisioning, periodic patching, overall monitoring and security aspects are primarily delegated to the SaaS provider (such as the Salesforce platform) and the application provider like AHM can focus more on:
- Enhancing application/functional capabilities in a more rapid manner leveraging Agile methods during the development & testing cycles.
- Time to market and deploying application releases on a faster pace.
- Focus on end user adoption, driving better business outcomes for end customers and in the process – increasing breadth/depth of subscription penetration and long term customer retention and overall success.
Madhava Challa, Senior Technical Account Director, Product Delivery