As we begin the New Year, we’d like to express our deepest gratitude to all our clients, partners and teammates for making it an exceptional year. We would like to highlight four major milestones in 2022:
As we look forward for 2023 which includes many new announcements to share, we would like to wish all of our customers, partners and staff a Happy and Prosperous New Year!! By Dave Smith - Consultant, Lusis Payments
It was John Gage of Sun Microsystems who coined the phrase, “the Network is the Computer” - way back in 1984. Understandably, this phrase was originally more of a vision than the reality. However, the ensuing 38 years of computing development has generated incredible progress. With the advent of Cloud computing we now live in a world where on-demand computing infrastructure can be readily purchased and deployed within any geographic region. Surely we can agree that the computer industry has fully delivered Gage’s historic vision. However, putting aside the numerous technical achievements we also need to consider the functionality of the software itself. A recent banking experience provided a sobering reality check and several points to ponder. My “customer journey” started when I needed to update the registered address on my business account. This was accomplished easily enough using the online banking facilities. The real challenges started when I tried to change the address on the associated credit card. I had naively assumed that this could also be done online - given that both my business account and credit card were issued by the same bank. After a lengthy wait in the phone queue, the support agent for the credit card team informed me that the address change for account had not updated on her system yet. Furthermore, it could take up to 3 business days to complete. Additionally, it wasn’t clear whether I would automatically receive a notification message once the credit card address was changed. What!? So much for the “seamless customer journey” ideas that I hear being preached at banking conferences. Today, banks are rightly giving significant attention to their “Cloud Strategy”, whether it be in the planning stages or early implementations. The recent acquisition of Cloud payments specialist, Renovite, by JPMC demonstrates the importance some banks are assigning their Cloud strategies. In my view, a cloud strategy should not become overly distracted by the technology itself. The staggering levels of investment being injected by Microsoft, Google, Amazon, and others, will ensure that the Cloud will consistently become better and better. The real question that banks need to ask themselves concerning their Cloud Strategy is what software investments are required to improve operational efficiencies, streamline the customers’ journeys, and increase competitive agility. Simply shifting the same tired, poorly integrated ‘software blobs’ into the cloud may save a few bucks. It might even win the CIO some Brownie points. But it will do very little to Transform their business. Hopefully, it is the Transformative potential of the Cloud that will guide the banks’ strategies beyond the short term cost gains. Contact Lusis Payments when developing your Cloud strategy for solutions that improve your organization's operational efficiencies and improve customer experiences. TANGO is the world's most performant Retail Payments solution with benchmark tests demonstrating 10,000 transactions per second. Built using a micro-services architecture, TANGO is also feature-rich and easily extensible. Backed by Lusis' proven track record it is not surprising that more and more organizations are swapping out their legacy payments infrastructure for TANGO. TANGO is the culmination of decades of crafted engineering that ensures the maximum operational performance and reliability as well as the most affordable cost of ownership. For example, TANGO includes a Self-Monitoring and Auto-Spawning feature whereby a suite of timers can be configured to monitor the processing time for specific events. By comparing the real-time measurements against the defined norms TANGO can immediately identify bottlenecks as soon as they occur. TANGO can also be configured to automatically spawn new instances of the affected micro-service or process thereby ensuring the required throughput is maintained. TANGO uses the Docker containerization platform and a typical deployment uses the 5-Container model shown below. Significantly, the container boundaries are defined to simplify manageability. For example, the gateways and firewalls are combined in a single container to simplify PCI certification tasks. Equally, the monitoring and other tools are located in a dedicated container to ease system evolution. This approach has numerous benefits, not least of which is that it is well proven and supports the easy and secure use of cloud infrastructure. However, in this model, container creation is still a manual process. Consequently, Lusis has expanded TANGO's container model to deliver the full elastic scalability advantages of a cloud-native environment.
In today’s Retail Payments market there are two critical success factors; scale your business for revenue growth and optimize your operations for cost savings. This is a simple and well-known adage, but it masks a myriad of complexities. The inherent difficulties in meeting stringent regulations, reducing costs, and responding to rapidly changing market needs has driven legacy payments systems to breaking point. Changing payments platforms represents a multi-decade investment commitment with serious repercussions in the event of failure. However, no amount of “just hanging on” will avoid the inevitable and it will only result in a loss of opportunities to more nimble competitors. With so much at stake it is understandable that management teams are cautious about changing payments platforms – but perhaps to their own detriment? Fortunately, a clear way forward is emerging – TANGO by Lusis Payments. TANGO is used by 4 of the top 10 Retail Banks to power their payments strategies, as well as a multitude of banks and processors around the globe. TANGO’s advanced micro-services technology and pedigree customers are clear advantages over its rivals. Additionally, TANGO’s functional richness, and unique configuration flexibility, guarantee ongoing business advantages. A recent TANGO Cloud deployment provides a great example of these advantages. An existing Lusis customer successfully redeployed their legacy DCC service into the Azure cloud using TANGO. As a result, the customer achieved substantial cost savings and vastly improved operational efficiencies. The entire service was implemented using standard product code and was delivered for acceptance testing within 3 months. TANGO was deployed in the Azure cloud with Azure SQL using TANGO’s built in Active-Active configuration to ensure the highest availability. External links were used to connect to the bank’s on-premise HSMs and Card Association networks to leverage existing investment. TANGO’s tokenization support protects the card details and the Azure security was augmented with the bank’s own measures to achieve PCI certification.
This article is an introduction to TANGO version 8, a major upgrade that provides full microservice integration and complete Cloud capacities. Introduction
Our broadly used Tango software is an implementation of a microservice architecture. Tango was not initially designed to be “microservice”, it was more properly designed to implement a transactional, mission critical, Service Oriented Architecture “that works” (SOATW!). By “that works” I mean, performant, scalable, avoiding contentions and anarchic leeway and sustainable. It is clear that to make it sustainable, a SOA system must include major concepts: a data bus or universal messaging layer to anarchy (meaning the ability to define as many interfaces than relations between services) and a load-balancer in order to avoid contentions or stress points. Some state that these 2 concepts are the key differences between SOA and microservice. However, the definition of microservice is not so clear and sometimes it is nothing more than: “it is not a monolithic architecture”. So, the first thing we will do is define it, then we will outline what applies and what does not apply in Tango and finally we will present Tango v8. What is a microservice architecture? A microservice application is a collection of autonomous services, each of them doing one thing well, and when combined, work together to provide a global service. Instead of a single complex system (monolithic architecture), the aim is to build and manage a set of relatively simple services that might interact in complex ways. These services collaborate with each other through a messaging protocol. The idea is quite simple. Having a collection of little ships instead of a huge one. That metaphor is not totally wrong. Lots of little ships are easy to maneuver, if one is delayed the others can progress. However, you can quickly cover more space with your multiple ships and if one is sunk (bad feature, bad design…) the others can still fight. Of course, there are some intrinsic difficulties: first a light fleet requires more coordination, second it is not as easy to make it a robust battleship. Anyway, microservices promise a better way to sustainably deliver business impact. Rather than a single monolithic unit, applications built using microservices are made up of loosely coupled, autonomous services. Building services that do one thing well avoids the inertia and entropy of large applications. Properties of microservices are:
Microservices applications scale by:
Five architectural principles structure microservices developments:
As mentioned above there are specific challenges and risks:
Tango. What we implement, what we do not. First, we at Lusis produce mission critical systems or applications that can’t fail. They must never lose a single transaction, never lose an order, never tolerate an outage, etc… This is not the standard world of the “web apps”. This is such an important difference that only those who are in the mission critical business can really understand it because failure of these mission critical systems could be the deciding factor between a managing director keeping their job or not. As with Lusis Tango, the HPE Nonstop was built on this same concept/mantra. Every component within the Nonstop framework is designed to never allow failure. Which is the reason why the HPE Nonstop has been the preferred hardware platform of choice for many large banks and financial institutions as well as other mission critical businesses for many years. Lusis Tango runs successfully on the HPE Nonstop. Lusis Payments has several customers realizing huge performance advantages running Lusis Tango on the HPE Nonstop. In addition, our systems are highly scalable and available which is imperative in the mission critical environment. Second, we are not realizing apps, projects or custom development. We are designing and developing a software that has to be economically competitive. This means for instance, that all development must look like the others, be written in the same way, with the same style, as we can’t afford “specialist developer” for this work. This is close to the CBSD model of development that I won’t expound upon here but to say it is fundamental in our development approach. Third, we provide an IT infrastructure that will last for many years into the future. So, it must be designed to live and scale, change, and mutate for 10, to 20 years or more. The infinity of an IT time scale. Therefore, we have some very specific requirements:
Having said that, a Tango application is clearly a collection of autonomous services, each of them doing one (or a few more) thing(s) well, that work together to provide a global service. They can be developed separately and deployed and run independently. A Tango application scales properly along the 3 axes that were mentioned above. As we are providing software in a restricted number of business spaces these services can be grouped in “families of services” that are doing the same kind of things at a conceptual level. It is important because each “family” or sub-family, have its own technique and set of libraries, tools, and ways to improve productivity. For instance, in a payment system, services types are:
The studying of the Susan Fowler’s book Production-Ready Microservices was very useful to us as it allowed us to review and audit our Tango architecture from the criteria for Production Readiness that she defines. The review concluded that a strong majority of these criteria were met (95%). When we were observing that Tango was not matching one of those criteria it was either by mistake or by a decision. In that case, it was worthwhile to evaluate if this decision was still valid. For instance, we were not interested in implementing the capacity for a Tango application to auto-create instances of services if the software was indicating there were not enough of them. For this reason: as we could not push the wall, or create CPU unit, it was useless or even negative to create new instances that would have further disturbed the machine and worsened the situation. Of course, this is no longer true with the Cloud capacities. From this review we deducted a list of Tango architecture features that constituted the base of the Tango Version 8 roadmap. Tango Version 8 We will limit the presentation to the two most important changes that are creating a true disruption considering Cloud capacity. Reviewing the “dispatcher” As mentioned above the Tango dispatcher oversees the technical routing and load-balancing. This is a very robust, very efficient (microseconds to process), multi-instanced service. However, mixing these two functionalities has some drawbacks: the routing context is in the dispatcher (timeout, multi-step rule, …), the dispatcher uses Tango events like a normal Tango service and therefore ,the dispatcher is not context free so can’t be easily “cloudified”. The dispatcher will be split into two parts:
When a Tango service sends an event (either a request or a notification), the destination is computed by applying the routing rules on the message. There are two cases:
When the destination service is local, the event is directly sent to the service using direct COM (a Tango process that knows each service composing it and can push directly the events inside a specific instance of a specific service), otherwise the message will be sent to the message router. The message router will not be a “Tango service”, it will use a lightweight Tango process and exchange messages using an optimized binary protocol not using standard Tango messaging. A typical event routing message will contain information about the sender, the target and the content. The message router will be completely agnostic about the message content, it will only use the routing data for delivery. The message router gathers the list of connected services all the services are connecting to all message routers and keep the connection alive like is done with the dispatcher using the self-registering feature and when an event must be routed it will choose the “best matching target”. Publish/Subscribe pattern has also been added for outgoing notifications:
Microservice self-monitoring This covers two new functionalities: ‘custom counters’ and ‘process/service auto-spawn’. Custom counters can be defined to monitor the processing time for specific events (usually only the request/response/notifications are monitored regardless of the kind of message). Now, a reference time can be defined for the event processing considered as a “normal” processing time for this kind of message for this microservice (ex: order creation on the OMS service). Processing time is computed in real-time and when the service begins to get “overwhelmed”. If the processing time increases over a defined limit, then alerts will be triggered and logged allowing the system to monitor the problem as soon as it occurs and locate the failure directly. Sometimes, the processing time may increase because the load is getting higher than usual (load peak) so the custom counters can also be linked to the “auto-spawn” feature. If defined inside the configuration, Tango will spawn automatically new instances of the microservice or process whenever the load is going over the predefined limit, allowing the Tango environment to automatically scale in function of the load. A new microservice will also be added gathering processing times and health status from all the other microservices, allowing centralized monitoring and provide real-time health status information about the environment to a dashboard. Full Cloud capabilities In conclusion:
Bibliography: Microservices – Microservices in action by Morgan Bruce, Paulo Pereira Microservices – Production-Ready Microservices by Susan J. Fowler CBSD – An Introduction to Component-Based Software Development by Kung-Kiu Lau, Simone di Cola Scalability – The Art of Scalability by Martin L. Abbott, Michael T. Fisher |
lUSIS nEWSThe latest company and industry news from Lusis Payments. Archives
August 2024
Categories
All
|