The Power of a Technology Stack

A technology stack is the underlying infrastructure building blocks of a software application. These are the frameworks, languages, and third-party software products that the application is built on.

Choosing the right tech stack is one of the most important decisions when building a software product.

The ability to scale quickly depends on many factors, but having the right tech stack may be the most important one.

A properly selected tech stack not only impacts the scalability in terms of performance, it also provides flexibility and agility on product design and evolution, shortens development cycles, eases the creation of ecosystems, and -most importantly- attracts and retains talent.

In this article, I am sharing some of the main building blocks of our tech stack at Intraway that are working great for us.

Cloud-native on AWS

We rely on AWS to deploy our solutions, and we use the well-architected framework as guidance to design and run scalable cloud applications.

Don’t confuse cloud-ready with cloud-native. Only cloud-native applications take total advantage of cloud’s scalability.

technology stack

Kubernetes and Docker

We use Kubernetes and Docker to run our containerized microservices applications.

This approach ensures scalability and provides an infrastructure abstraction layer to run your applications virtually anywhere.

technology stack

TIG Stack (Telegraf, InfluxDB, Grafana)

A very powerful solution for metrics collection, analysis, and monitoring:

  • Telegraf – The agent that collects the data
  • InfluxDB – The database that stores the data
  • Grafana – The UI that makes the data looks pretty
technology stack

ELK Stack (Elasticsearch, Logstash, Kibana)

Provides centralized logging and makes log searching, analyzing, and visualizing easy:

  • Elasticsearch – The database and search engine for log data
  • Logstash – The agent that collects, parse and transform log files
  • Kibana – The UI to visualize and manage log information
technology stack

Frontend: Angular

Angular is one of the most popular JavaScript frameworks for developing front-end (client-side) mobile and desktop web apps.

It is supported by Google with a large community and a lot of well-documented resources.

Don’t confuse Angular with AngularJS.

technology stack

Backend: Java / Spring Boot / Microservices

Java is the main language we use to develop back-end applications and SpringBoot is a Java-based framework used to create microservices that you can “just run”.

We also use C++ and GO for some specific components.

technology stack

Database: MongoDB and MySQL

We use MongoDB for most applications. MongoDB is a document-oriented NoSQL database that performs great for unstructured data.

We use Mongo Atlas that is the cloud, managed version of the MongoDB.

We also use MySQL for those use cases where we need to manage structured and relational data.

technology stack

Messaging System: Apache Kafka

Kafka is a stream-process platform with high-throughput and low-latency for handling real-time data feeds.

We use Kafka as a messaging system to share information between applications, creating a scalable decoupled architecture.

technology stack

Industry-standard APIs

Adopting standards simplifies interoperability with your ecosystem and makes it easier for customers and partners to understand and integrate your applications

In the telecom industry, we use Open APIs from TM Forum and LSO from MEF.

No alt text provided for this image

Infrastructure as Code (IaC) with Terraform

IaC is the answer to managing large-scale, distributed systems, cloud-native applications, and service-based architectures.

Continuous Delivery with Git / Jenkins / Helm

A good CI/CD pipeline speeds up the process to get changes of all types -new features, configuration changes, and bug fixes- into production, safely and quickly.

Slack for Communication and Automation

We embrace ChatOps as part of our DevOps practice.

We leverage Slack and Botpress integration for automating repetitive Q&A, support, and operation tasks.

We also use different slack channels for receiving alarms from our monitoring systems.

Building a great software product is the art of productizing industry knowledge and best practices by creatively combining a scalable tech stack with an amazing user experience journey.

You may also like

No results found.