Tag Archives: DevOps

DevOps in Networked & Technology infused world

My original article below, co-authored with Prof. Nityesh Bhatt. An abridged & modified version of this was published in a leading magazine.

Advice to youngsters, be your own publishing house – you have Amazon, LinkedIn, your own blog & website, multiple other good platforms, peer reviewed open access & top journals, don’t depend on others for publishing your work.  Message, context, grammar & meaning may at times be lost when we publish via third party systems.

Authors: Prof. Nityesh Bhatt & Neil Harwani (Visiting Faculty) – Institute of Management, Nirma University, Ahmedabad 

Date: 18th June 2021 

What is DevOps?

  • We are in a world that is providing services via eBanking, eHealth, eGovernment, eCommerce and many other electronic interfaces and systems. Things are getting digitized at a rapid pace. On one side, the common man uses these digital services and requires changes to meet their dynamic requirements for their daily work with software and technology companies managing these systems. But there’s another angle to all these electronic systems which is the developer community. 
  • Developer community & software project management evolved from the past by using concepts of waterfall in software development lifecycle, pair programming, iterative development and so on over the last few years and decades. Various programming styles like structured & object oriented evolved along with these methods. 
  • Overtime, these older methodologies became inefficient at delivering complex, time bound and customer outcome oriented products that changed over the course of time during development due to changing market needs. With this came AGILE & DevOps over the last few years. 
  • AGILE is a methodology where product specifications evolve over time and development happens in small 1 to 2 week sprints, customers are shown demos at the end of each sprint and sometimes everyday. AGILE gives developers, product owners and management a flexible approach to build software products which can evolve over time and are aligned to customer needs with course corrections possible at any point of time during project lifecycle. Primary keywords that are used in AGILE are: Scrum masters, Developers, Product owner, Sprints and so on.  
  • Overtime, limitations of AGILE were observed and then DevOps was created to improve the culture, deliverables and duration for project / product delivery. 
  • Requirements for collaboration & efficiency for geographically distributed teams became a necessity due to big improvements in network technology. This led to DevOps and rapid delivery becoming the norm of many software development projects.
  • Over the last 10 to 15 years, traditional software development with Waterfall methodology has rapidly moved to AGILE, iterative and hybrid AGILE software development methodologies. 
  • This shift was necessitated due to a large number of failures in software projects, cost overruns, customers not getting the product they want and such problems. 
  • AGILE has brought with it it’s own challenges in terms of weekly or two-weekly demos & deliveries. 
  • Developers can no longer wait for the operations team to ready the environment in a few days and weeks, they need continuous delivery, continuous testing, weekly demos, light weight processes for design, development, testing, documentation, packaging & release – all in a cloud environment at times. 
  • DevOps is a methodology where we combine Software Development & Operations and create a seamless methodology which works well in conjunction with AGILE software processes. Development team takes responsibility both for development as well as operations which significantly increases the throughput.
  • DevOps spans across Coding, Building, Testing, Packaging, Releasing, Configuring, Monitoring with cross-functional teams working on all these areas 
  • Timeline for Agile practices is given here at Agile Alliance: https://www.agilealliance.org/agile101/practices-timeline/
  • Timeline for DevOps as given on TechTarget.com: https://whatis.techtarget.com/reference/The-history-of-DevOps-A-visual-timeline 
  • Importance of DevOps to developers: https://www.statista.com/statistics/1127211/devops-importance-to-scaling-software-development/ 

UseCases for DevOps and rapid, customer focussed, sprint based deliveries: 

  • Smart cars – Car apps and navigation need rapid upgrades & security patches
  • Banking & Financial industry applications – Loan & Insurance processes regularly change which necessitate DevOps usage 
  • Smart electronics – Application philosophies from over the air to satellite to over the top to hybrid over the top with ecosystem apps change over few years and decades. Applications using them and their billing / user interfaces regularly get updated. 
  • Mobile phone applications – Every few months there are updates to operating systems, applications and overall ecosystem for regulatory, security & privacy reasons 
  • Digital manufacturing & 3D manufacturing require changes in assembly & production lines to cater to large numbers of products – Wide variety of products now need to be made from automated assembly lines & 3D printers. These need reprogramming at regular intervals
  • NBFCs – They have changes especially in micro-credit market in terms of coverage, limits and which segment to cater to 
  • Online education – From pre-pandemic to post-pandemic there has been change in acceptance, delivery & ecosystem of education. Online education is now acceptable for large parts of the population as well as universities & institutes. Quick changes in courses, delivery & methodologies can be facilitated by projects undertaken via AGILE & DevOps thinking. 

Why DevOps in Agile, Cloud, Analytics and 5G world?

DevOps is necessitated due to following reasons:

  • Cloud environment – Availability & need of virtual instances which can be scaled up and scaled down in seconds / minutes to meet varying demands of customers from different domains
  • Dynamic internet, cloud, analytics & 5G driven world where things are getting streamed, changes & integrations are common place
  • Due to the dynamic nature of the business environment, changes need to be deployed quickly. This is where AGILE & DevOps comes into play for rapid releases on bi-weekly or monthly basis.
  • Today, new application upgrades in Telecom, Analytics, Cloud, Manufacturing, Cars are deployed on a monthly basis at times. They necessitate a faster, relatively failure proof system of development, testing & release management.
  • Containerization and orchestration of containers in the cloud ecosystem provides these options and this in turn allows us to enable DevOps work at speed.
  • Requirements & design are discussed over calls and stored in tools like JIRA with development happening in DevOps way via containers. This in conjunction with weekly or bi-weekly demos & meetings allow regular course corrections.
  • Developers can’t wait for multiple team members to setup their environment or applications. Containerized environments and build tools with CI/CD pipelines allow them to do all this seamlessly.
  • Same concept applies to all the network upgrades in the 5G world, applications over networks, software defined radios / networks and so on. These necessitate rapid development infused with seamless operations for managing environments. 

https://assets.kpmg/content/dam/kpmg/be/pdf/2019/11/agile-transformation.pdf – As per the article from KPMG: “Agile Transformation From Agile experiments to operating model transformation: How do you compare to others?”, main drivers for Agile which in turn percolate to DevOps too:

  • Faster delivery for changing customer needs
  • Flexibility
  • IT & Business alignment 
  • Digital agenda goals attainment
  • Customer satisfaction 

Technology infused world 

  • We live in a technology infused world where rapid changes happen around us 
  • Every few years network technology changes, examples: 2G to 3G to 4G to 5G, Changes in app & billing ecosystem, Security updates, Software defined networks, Software defined storage, In-prem to cloud to hybrid cloud
  • Similar changes happen in navigation devices, mobile apps, smart cars, banking apps, NBFCs and such 
  • DevOps & Agile facilitate rapid development & deployment enabling businesses to achieve their goals in terms of upgrades and features in an environment that is contained, controlled and process driven with clear responsibilities and roles
  • Earlier in Waterfall compared to AGILE & DevOps now, there were no single set of atomic responsibilities for developers or product owners / managers. With introduction of these two philosophies, ownership and overall structure of technology products and their maintenance cycle (full life cycle) have seen quantum shift in terms of thinking 

DevOps, DevSecOps and MLOps

  • DevOps – Combines Development & Operations
  • DevSecOps – Combines Development, Security & Operations 
  • MLOps – Combines Machine Learning pipelines & Operations to productionize it in the same way as is done in DevOps 
  • Lot of innovation in terms of processes and tools is happening in the DevOps world especially around security, testing & continuous integration / deployment 
  • Multiple integrations for various aspects of DevOps span across products & tools in client enterprise ecosystem enabling most if not all technical & functional aspects of project / product delivery / customer needs to function in a quick and efficient manner 
  • Improvements in both AGILE like Scaled Agile & in DevOps like MLOps have been happening over the last few years in conjunction with all the improvements and new launches in Cloud ecosystem 
  • For development teams, initial learning curve of DevOps & AGILE could be steep but as they get settled into these newer ways of working, processes & systems around these concepts provide a cover which customers like, developers enjoy, business owners prefer and overall management teams get better outcomes from 

Popular tools, frameworks, products, toolchains & options:

  • Docker – Container environment 
  • Kubernetes – Orchestration system for containers
  • JIRA – AGILE / DevOps process tool 
  • Ansible, Terraform – Automation related 
  • Git – Source code repository
  • Jenkins – Continuous integration / Continuous deployment related 
  • Splunk – Data platform 
  • Bamboo – Continuous integration / Continuous deployment related 
  • Automated security, performance & testing tools / products – Katalon 
  • ELK – Search and analytics engine
  • Utilities like MAVEN, Gradle and such 
  • Monitoring tools like Nagios, NewRelic and such 
  • AWS, Azure & GCP – Cloud

References:

Email me: Neil@TechAndTrain.com

Reasons to adopt AGILE & DevOps

DevOps:

  • Developers need environments to be readied, recycled, shared, rebuilt in short period of time with least amount of lost time, control and additional jumps
  • Fused teams of developers, system admins where responsibilities are more or less completed via multi-tasking & multi-skilling by each member

AGILE:

  • Early feedback for product owners, developers & testers
  • Continuous feedback / demo driven development
  • Required documentation (Not less not more) via specialized tools
  • 1 to 4 week sprints giving out tangible outputs that can be demoed
  • Course corrections possible in the middle of the project / product life cycle

Tools / products / technologies for AGILE & DevOps:

  • JIRA and similar
  • Jenkins and similar
  • Containers, Kubernetes and similar
  • Git and similar
  • Cloud ecosystems
  • Ansible, Terraform and similar automation
  • Video conferencing tools
  • Monitoring & log products
  • Testing tools
  • Ticketing & Chaos engineering tools
  • Reporting tools
  • And more

References: Google Search, https://victorops.com/ 🙂

Reach me at: Neil@TechAndTrain.com