Wednesday, September 26, 2018

Open Source Technologies

Open source technologies are making profound impact in the overall IT industry and disrupting underlying businesses. Though open source technologies brings savings from cost perspective but underlying support issues cannot be mitigated. Specially in the businesses which cannot afford downtime have to seriously think about the adoption of open source technologies and compare the cost benefit analysis with keeping in mind the underlying risk associated with them. Regulators across the globe are closely monitoring as well and in some part of the world open source technologies are observed as threat by regulators.

In early days, open source or freeware technologies were rolled out by anonymous communities but later with their success and adoption by enterprises the big vendors such as Fintech providers started utilizing them by inheriting the underlying code and providing the support and management contracts. Purchase of MySQL and Linux by Oracle and RedHat respectively are some the examples.



If we see through the crystal ball of future, open source looks promising and technologies like BlockChain, BigData will further boost up the use cases. So it is on the business side to leverage the risk they are buying with the cost  saving.

Also with time communities of respective technologies are becoming stronger as well, which is also then boosting up the confidence level of enterprises. But it is important that technology teams should associate themselves with such communities to keep a track of updates and upgrades.


Wednesday, August 8, 2018

Microservice vs Monolithic Architecture


As the technology is evolving and disrupting the overall businesses, innovation in overall Architecture paradigm is shifting drastically. If we see the Technology Architecture of 90s, they were more sort of modular in nature with languages like Visual Basic were thriving. Then came object oriented era and Architectural concepts gain a paradigm shift. Languages like Java, C++ gain their ground and for the first time we had seen platform agnostic solutions, where you can write the code once and run on any platform i.e. Windows, linux, AIX etc.

Technology revamp was not happening only on the core level, such changes gave birth to concepts of frameworks. Frameworks are the best practices in solution architecture to enhance the ability of underlying systems, which were consolidated by industry specialists and later practiced by overall technology industry. To enhance the capability of systems and increase the capability of integration, industry came up with the framework of Monolith Architecture one of the example for Monolith Architecture is Enterprise Service Bus. The sole purpose of Enterprise Service Bus was to allow Applications to be interoperable in any kind of environment. To allow them to interface and integrate with surrounding applications in the protocol of their choice. ESB is placed as the middleware between source and destination, it provides capability of transforming one protocol to other protocol. But as the industry grew we see the dependency on the ESB causes performance impacts, downtimes, single point of failures and so forth. And in order to mitigate the shortcomings of monolith architecture, industry came up with the new framework which is now known as Microservices Architecture.





Microservices architecture is the combination of Modular and Monolith Architecture. In modular architecture, each module serves a unique purpose from functional perspective. In monolith architecture, modules are unique services deployed on separate infrastructure to avoid downtime, to make it more scalable and robust and to enhance the overall performance.




To dig deep into pros and cons of Microservices and Monolith Architecture, following table illustrates the comparative analysis of pros and cons of respective Architecture frameworks.

Microservices Architecture
Monolith Architecture
Pros:
-          Each service is developed and deployed independently, which means an update to any one component does not require the entire application to come down in order to deploy the update.
-          Since each service is deployed independently, they can also be developed in different languages as per the requirement.
-          Applications using microservices are robust as a whole. Since each service is deployed independently, chances of application keep responding in case of any service failure are much higher.

Cons:
-          Splitting an application into multiple microservices generates more artifacts to manage.
-          Since the overall number of nodes are increased testing each service require more time and effort.
-          Monolith architecture has in-memory service communication whereas microservices architecture require communication over the network which entails network latency.
Pros:
-          Monolith Architecture works on shared memory architecture, which entails major performance advantage.
-          Testing process is easier and faster compare to microservices architecture.
Cons:
-          Difficult to change and incorporate changes since the application is typically large and complex to understand.
-          Redeployment required for the entire application with each update.
-          Continuous deployment is made very difficult.
-          Difficult to scale when modules having different functionalities have conflicting resource requirements.


Sunday, July 29, 2018

What is Enterprise Architecture Practice?


As name suggest it is the Architecture of an Enterprise but the niche of the topic is not isolated within Information Technology Architecture. EA in principle is the practice of aligning Business Strategy and Goals with IT Strategy and Goals to ensure the IT investment is utilised in the overall growth of the Business.

EA requires high level commitments from CxOs to ensure that the alignment is not only on the papers but in practice as well. EA practice is divided into two categories i.e.

1) Strategic Alignment
2) Implementation Cycle

Strategic Alignment

Strategic Alignment is the crust of overall EA practice and it starts from identifying the Vision and Mission of Business. Vision states the goals of the business in coming years and Mission outlines the key drivers to achieve the goals. Job of EA is to create and IT understanding of the business goals and come up with IT strategy which outlines the high-level goals to meet the business vision. If we see the Togaf topology the alignment of Business and IT goals are outlined in Architecture Vision phase. Architecture Vision phase is needed to outline the goals and principles required to achieve the business goals. Principles are divided into two types i.e. Business Principles and IT Principles.

Implementation Cycle

Once we have the strategic details structured and outlined, the second and foremost phase is to make a tactical plan to showcase how the implementation of the strategic goals will take place. To achieve this Togaf states list of processes to be applied starting from Business Architecture till EA Governance Cycle. Business Architecture is use for describing business goal in tactical terms with pragmatic views of different stakeholders. EA use different  techniques and diagrams to display the key requirements and documents them in Business Target Architecture. Business Target Architecture is used as an inputs for upcoming phases i.e. Data Architecture, Application Architecture and lastly Technology Architecture. Once the Target Architectures are defined in each aforementioned phase, EA generates a Transition Architecture to outline the implementation cycle, which is then be executed by Project Management Office and Governed by Architecture Review Board headed by CIO and accounted by EA.

Below diagram illustrates the each phase of Togaf which is called as ADM (Architecture Development Method) in Togaf terminology.