cloud-native-apps

Step-by-step guide to build 12-Factor cloud native apps with Spring Cloud, Netflix OSS, Grails and AngularJS

Features

Spring Cloud focuses on providing good out of box experience for typical use cases and extensibility mechanism to cover others.

  • Distributed/versioned configuration
  • Service registration and discovery
  • Routing
  • Service-to-service calls
  • Load balancing
  • Circuit Breakers
  • Global locks
  • Leadership election and cluster state
  • Distributed messaging

Infrastructure Services

  • Netflix Eureka: Service registry & discovery
  • Netflix Hystrix: Resiliency - Circuit breaker, Fallback, Concurrency, RxJava
  • Netflix Hystrix Dashboard: Monitoring and metrics dashboard
  • Netflix Turbine: Aggregate hystrix streams
  • Netflix Ribbon: Client-side load-balancing
  • Netflix Zuul: Reverse proxy for API gateway
  • Spring Cloud Config: Centralized configuration
  • Spring Cloud Bus: PubSub messaging over RabbitMQ
  • Spring Cloud Security: SSO for APIs - OAuth/JWT
  • Logging: Centralized logging - Logstash, ES, Kibana (LEK)
  • Swagger: API Docs

Application Services

Getting Started

  1. Prerequisites
  2. Setup

Start on Local Machine

Starting Order > Kafka -> Euraka -> Config -> (Producer, GORM, …), -> (Zuul, Turbine, Hystrix Dashboard)

Quickstart examples

start following two apps, one at a time as they use same port.

Starting Tweetable App

cd tweetable
spring run .

Starting Mongo Example

cd mongo
spring run .

Full-stack cloud native examples

Starting Eureka Server

cd eureka
spring run .

Starting Config Server

cd config
spring run .

Start up Producer Service

cd producer
spring run .

Starting Gorm Service

cd gorm
spring run .

Starting Monitoring App

cd hystrix-dashboard
spring run .

Starting mybatis Service

Follow instructions mybatis

Starting Aggregate Service

Follow instructions aggregator

Starting API Gateway

cd zuul
spring run .

Starting Blog App

Related Repositories

linkerd

linkerd

Resilient service mesh for cloud native apps ...

pulumi

pulumi

Pulumi is an SDK for cloud native infrastructure as code. Use your favorite language to deploy apps and infrastructure to any cloud, no YAML required. ...

AdobeNativeFullscreen

AdobeNativeFullscreen

A plugin to make some Adobe Creative Cloud apps support the native fullscreen mode on OS X. ...

cloud-native-pwas

cloud-native-pwas

Cloud Native Progressive Web Apps with Spring Boot and Angular 2 ...

cloud-native-apps

cloud-native-apps

12 factor cloud native apps ...