Software
Configuration Management (SCM) is the application of Configuration Management
(CM) principles in the context of Software Engineering (SE) in Computer Science
(CS).
Software
Configuration Management (SCM) identifies and tracks the configuration of
artifacts at various points in time and performs systematic control of changes
to the configuration of artifacts for the purpose of maintaining integrity and
traceability throughout the whole software life cycle.
It
is essential for every project and applicable for every methodology of project
Governance. To balance the demand of rapid software delivery and leveraging
ROI, organizations started implementing automation everywhere. Domain and
disciplines defined in SCM are categorized. Tools for every domain or for
multiple disciplines were developed. All are interconnected as a Tool-chain that
is expected to expedite software delivery.
In
the era of rapid development and delivery, first we introduced Continuous Integration,
though, before that, parallel development, source code merging, standardizing
code commit by different hooks were in place. Many projects used customized
script to integrate different software modules and packaged them together. A
typical three team, three tire enterprise structure. Along with rapidness,
automation also helps continuous improvement which is obvious. Over maturity of
continuous integration (CI) we thought about Continuous Delivery (CD). Every
project started talking about CI/CD but a few of them really succeed to Deliver
Continuously. Integration of different software module is purely technical,
however delivery involves many nontechnical, functional and client centric
project related activities that demands agility, therefore, seems difficult to
be continuous, so far monolithic application is concerned.
Merging
Development, Operation and System Administration with the help of Automation
introduced new concept called DevOps. The name reveals itself,
Development+Operation, other than that there is no state forwards definition,
rules, policies that guide us implementing the concept uniformly. Off course it
has a principal, perhaps the goal to Developed as per requirement, Integrate,
Deploy, Test automatically and getting Feedback for farther Improvement, then
Release and finally Monitor for continuous operation. In background every
change gets registered and ensure possibilities of rollback at any time. It
seems like ITIL specified best practices of Service Lifecycle, however it is
not a sequential framework, rather than it is Agile – an interactive approach
where MVPs are passed through the life-cycle and delivered in a very short
period. Altogether it’s an operation pipeline that accomplish the goal throughout
a set of toolchains.
Managing
Automation and agility at the same time is not about simply letting loose a
stream. To overcome the hurdle, monolithic application splits up into
microservices. On the other hand, infrastructure becomes concise as a form of
container. In combination of Microservices and Containerization organizations
experiencing proven benefit of DevOps. Orchestration of huge containers is not
a big hurdle today. Security and segregation mechanism imposed inside
orchestration framework are simplifying coding complexity.
Principals
of SCM are still being maintained silently inside DevOps engineering. Version
Identification, Version Control, Artifact Versioning and Issue Tracking are
essential disciplines of every software projects. Evolution of DevOps is
continuing. Elimination or integration of tools name it differently, however core
concept is automating SCM and IM to deliver rigorously Tested product in agile
way.
No comments:
Post a Comment