Cloud Native and SaaS Applications


Overview

Modern applications and SaaS platforms are designed with a “cloud-native” methodology, using small stateless, elastic and versioned micro-services and deployed in lightweight VMs or Docker containers. Micro-service instances are added when applications need to scale. The overall service is not interrupted when things break or need to upgrade. The data and state of the application services are stored in a set of “persistent” services, and those have unique attributes such as atomicity, concurrency, elasticity, etc. specifically targeting the new model and enabling application fault-tolerance and scalability.

Cloud native applications require a minimum of five “stateful” data services:

  1. Message queue/stream – to reliably transfer messages between tiers.
  2. Fast Key-Value or NoSQL – storing application state and context.
  3. Log stream and time series data – for application and user monitoring.
  4. Object Storage – storing static content, images and files.
  5. File volumes/shares – storing application data in case of stateful apps.

These services are typically provided by the cloud vendor in public cloud environments.

Challenges

  • Resource drain and long deployments – installing, configuring, scaling, tuning and maintaining five or more stateful data service clusters, each one with three nodes as a minimum is quite a resource-consuming effort.
  • Long software development – developers find themselves dealing with plumbing, deploying and tuning stacks, writing glue layers and API services and benchmarking different components – all instead of focusing on writing useful application code that matters.
  • Inefficient and slow – currently available modern data services are typically slow, or CPU and memory intensive, driving low performance and high costs per GB.
  • Lack of end to end security – each tool has its own security mechanisms, driving more integration efforts. Some tools lack the minimum and lead to security gaps.
  • Not enterprise grade – enterprise organizations rely on a robust system with built-in data protection, high-availability, security and monitoring. They need to adhere to a set of rigorous standards and compliance rules. Modern data services typically lack many of these enterprise features.

Our Solution

iguazio’s Enterprise Data Cloud Platform provides all the required cloud-native data services, consumed and managed as a utility through self-service portals and industry standard APIs, enabling true stateless apps:

  • Streaming for message queues, logs, time-series and videos
  • Fast multi-model data store for objects, Key/Value, documents, and NoSQL data
  • File access for persistent Docker volumes or HDFS
  • Analytics offload services integrated with Hadoop, Spark and ELK

Data is accesses through standard APIs including Amazon-like HTTP APIs (S3, Kinesis, DynamoDB) with best in class fine-grain access control already built in, eliminating the need for custom API services and enabling data access from any client including mobile or IoT devices with zero coding.

The platform provides extreme performance with millions of ops/sec and 0.1ms latency, accelerating applications and requiring fewer server resources. Data is accessed simultaneously through different APIs and data models, reducing complexity, data copies and glue-layers. For example, data can be generated through a streaming API and be read as a file or Spark DataFrame for analytics. Objects can be created with rich metadata or be manipulated using smart procedures and be queried through the NoSQL APIs directly by an Angular dashboard app.

Data lifecycle and security or service levels are managed through abstract multi-layered policies, allowing application administrators to ensure regulatory compliance with the minimal effort.

The platform supports enterprise class automated scaling with built-in capacity planning, in-service upgrades, and fault-recovery making the life of both administrators and developers a breeze.

Benefits

  • Enable rapid and stateless development and deployment
  • Increase app performance while reducing total cost
  • Simplify and automate operations end to end
  • Enable on-prem, public cloud and mobile apps with the same consistent data
  • Guarantee availability, security and compliance with minimal effort