There are many technical keywords we are using in the IT field. Many newcomers in the IT field or even experienced people are not aware of its actual meaning or reference. So, I have collected a few such keywords with their brief introductory understanding.
I have already explained some keywords like data fabric, data lake, data mesh etc. related to the data in my articles below.
Also, I have explained a few of the keywords related to DevOps and SRE in the article below.
Let’s understand a few more keywords.
Application modernization is the process/practice for updating/upgrading old software/application for newer computing approaches, languages, infrastructure (cloud), security, etc.
Mostly application modernization processes are carried out for the legacy systems. But nowadays the speed at which the software industry is growing and new tooling, services offerings are released and evolving in the market, systems/applications/software older than 5-8 years are considered as legacy systems.
Application Modernization Patterns
Following are common patterns when you are modernizing legacy systems:
- Lift & Shift
- It is also called rehosting. In this method, you migrate your system to the higher version/capacity of infrastructure for better performance such as a public cloud. As time flies, old pieces of infrastructure become a bottleneck for legacy systems to perform well. So, this is the simplest, easiest and sometimes fastest way to boost performance without touching the system code, architecture, etc.
- It is sometimes equal to “Rewriting” or “Restructuring”. In this approach we are retooling significant chunks of a legacy system, so that it can run efficiently in a new environment/infrastructure which is mostly a public cloud. Here, we are decoupling, refactoring, restructuring, rewriting a few pieces of code/modules. For example, breaking up a monolithic application into microservices.
- In replatforming, based on the performance/security or other requirements we will move certain parts of a legacy application to different offerings/infrastructure. For example, if my Database is not performing well under Kubernetes/VM then I might consider managed DB options for gaining performance/security and avoid operations overhead.
Application remediation is closely related to the application modernization in certain ways. The current IT business is heavily impacted by changing demands, competitive pressure, technological advancements, etc. So, you need to continuously keep your application aligned to the changing world. Application remediation includes such tasks as performance improvement, design/architectural changes, modernization, security enhancements, etc.
It is also called site reliability or SRE (Site Reliability Engineering). There are lots of material available on Google for SRE/Reliability so I will be very brief about this topic.
Reliability is a set of principles and practices to be applied on the infrastructure, application/website, etc. to create highly reliable and scalable infrastructure/website/app. Quite confusing right, in short reliability means your system should keep running or auto-recover immediately despite challenges, load, failures, etc. so that you can rely on the system.
Scalability means your system should ably scale up/down with the changing load/demands/traffic without affecting the working system.
This question was asked in many interviews. What is the difference between scalability and elasticity?
Elasticity is automation of scalability. When your infrastructure scales up/down (esp. many managed services offer this feature) automatically based on the load, traffic, etc.
Availability is a set of measurements to ensure that your site/app is up and running when user interacts with your site/app.
It’s simply called uptime.
Observability is a measure of how well internal states of a system can be inferred from knowledge of its external outputs. — Wikipedia
In general, observability is the extent to which you can understand the internal state or condition of a complex system based only on knowledge of its external outputs. The more observable a system, the more quickly and accurately you can navigate from an identified performance problem to its root cause, without additional testing or coding.
In cloud computing, observability also refers to software tools and practices for aggregating, correlating and analyzing a steady stream of performance data from a distributed application and the hardware it runs on, in order to more effectively monitor, troubleshoot and debug the application to meet customer experience expectations, service level agreements (SLAs) and other business requirements. — IBM
A blast radius is a way of measuring the total impact of a potential security event. For example, imagine an intruder worms their way into a cloud server. In this scenario, the blast radius would be the overall amount of damage that the intruder could inflict after gaining access into the system. — Security
In normal terminology, it’s used like how you can minimize blast radius? Means the amount of effect you can reduce. For example, microservices are used to minimize blast radius. If you have SOA or monolithic application, in case something fails it will have maximum effect on your system because it will turn down many modules/services. Using microservices, if something fails it is having reduced blast radius mean having minimal effect.
TCO – Total Cost of Ownership
It refers to the lifetime cost of buying, creating and maintaining an infrastructure or systems. In simple terms, we can say that it is the total monetary cost attributed to an asset spanning from the purchase planning to its disposal. There are costs associated with design and documentation (both for programmers and for users). There are also testing costs.
CAPEX – Capital Expenditure/Expenses
It is the initial investment/expenses involved like the software licenses, hardware, resources, etc. for a new project/contract. However, public cloud (mostly because of their pay-as-you-go offerings) has reduced CAPEX to a considerable amount.
OPEX – Operational Expenditure/Expenses
It is the expenses incurred to run day-to-day IT operations for a product/system/app. Like subscriptions to software, licenses, apps, etc.
The Turnkey system/contract means, when a system/app/software is delivered the user only has to “turn a key” to have a fully operable system.
Most of the time it includes hardware and software necessary for the particular application. That means it includes installation manuals, operational guide, after sales support, etc.
I’ll continue exploring few more such technical keywords in future parts of this series.