Automation driven operations culture

How we do Cloud Native?

Cloud Native Application Development isn't just a buzzword to us. We’ve built a culture of automation, orchestration, and security that is at the core of our organization. Our team integrates infrastructure as code, open source software, and SRE expertise to manage scalable clusters.

Automation

Agile systems that respond to rapid changes require automation. We obsess over automated pipelines like GitOps to provision our infrastructure, K8s to auto scale, slash commands to deploy code, and container runtime security to detect anomalous behavior.

Vendor Agnostic

Being tied to a specific vendor or technology incurs substantial long-term feed and reduces your agility. Instead, we architect open source solutions that provide flexibility to switch between cloud providers without impacting mission objective.

Scalability

Modern software should be scalable from the first day of production. For application level scalability, we break down the solution into microservices following the 12 factor app, reactive manifesto, and use non-blocking IO. Then on the infrastructure level, we utilize best battle tested open source container orchestration system currently available, Kubernetes.

Event Sourcing

A traditional database driven application can only answer questions about the current state of the application, however having access to the full history of the applicaton is incredibly valuable. By building event sourcing architecture, our engineers can decode the data evolution, clarify product operation, and allow for faster debugging.

Domain Driven Design (DDD)

Domain experts and engineers are two separate pieces of the development process, but they should speak the same language. By establishing a ubiquitous code (Domain Specific Language - DSL), tailored to our client's domain, we ensure collaborative cooperation and avoid programming discrepancies.

Fault Tolerance

Modern critical applications must remain available even in the presence of failures. At the application layer, our engineers provide automated fault tolerance (using Hystrix) when microservices fail. While at the infrastructure level, we configure multiple availability zones, and use K8s (control plane) to automatically reschedule the pods from the faulty node onto other healthy nodes in the cluster.

Our Expertise

Microservices

Smaller microservices working together to fulfill business requirements provide the software agility needed in enterprise software. Our team builds RESTFul microservices that are containerized and platform/cloud agnostic. Each microservice exposes its health metrics that are fetched by prometheus.

Kubernetes

Using a mix of open source tools and best practices, our engineering team builds Kubernetes clusters that are quick to setup and yet secure. The clusters built and maintained are production ready and include necessary tools like EFK, Prometheus, Grafana, Istio, and Admission Control.

Air Gapped Environments

Our team knows the process and benefits of building low and deploying high. The containers built by our team are self-contained, include all external dependencies, and can be built on air-gapped environments. Additionally, our team understands the intricacies between classified offering of cloud vendors (C2S, Azure Classified Cloud).

Kafka

Event driven architectures are made possible by using Kafka to pub/sub events between microservices. Our team also uses Kafka to prepare stream processing pipelines and KSQL to gather real time insights from the data.

Infrastructure as Code (IaC)

Our team lives by the moto if it isn't in code, it doesnt exist. Using IaC allows our engineers to build K8s clusters in shorter time and ensure that the clusters are security configured from Day 1.

Serverless

From writing one-off functions in the cloud to running complex microservices on serverless platforms, our team ensures costs, application state, and security are all managed with a fair balance.