Part 6 of this article on Application Modernization covered the migration process. This section focuses on specialty applications.
Every organization must determine its own roadmap to
application modernization. Fortunately, patterns and best practices continue to
help and provide guidance. This section describes the application modernization
for a representative case study for those applications that do not conform to
cookie cutter web applications.
When we take a specialty application that involves massively
parallel compute intensive applications that provide predictions, the initial
approach is one of treating the model as a black box and working around the
dependencies it has. But the modernization effort does not remain constrained
by the technology stack that are the dependencies of the model. Instead, this
is an opportunity to refine the algorithm and describe it with a class and an
interface that lends itself to isolation and testing. This has the added benefit
of providing testability beyond those that were available until now. The
algorithm can also be implemented with design patterns like the Bridge design
pattern so that the abstraction and the implementation can vary or the Strategy
design pattern which facilitates a family of algorithms that are
interchangeable.
Microservices developed in an agile manner with Continuous
Integration and Continuous Deployment pipeline provide an unprecedented
opportunity to compare algorithms and fine tune them in a standalone manner
where the investments for infrastructure and data preparation need to be considered
only once.
Algorithms for massively parallel systems often involve some
variation of batched map-reduce summation forms or a continuous one-by-one
record processing streaming form. In either of these cases, the stateless form
of the microservice demonstrates superior scalability and reduced execution
time than other conventional forms of software applications. The leap between microservice
to serverless computing is one that can be taken for lightweight processing or
where the model has already been trained so that it can be hosted with little
resources.
Parallel computing works on immense size of data and the
considerations for data modernization continue to apply independent of the
application modernization.
No comments:
Post a Comment