Cloud Native Architecture - sambos/Architectures GitHub Wiki

Cloud Native Principles

Cloud Native generally applies to architecting and desining applications that can be ported to any IaaS cloud provider without any changes to the application code. Many of the lessons learned are drived originally from the Heroku project (including the 12factor), following is a short list for some of them :

  • Pivotal Cloud Native definition - read more
  • Adopt Cloud Migration and Deployment strategies
  • Use DevOps/DevSecOps
  • Use convention over configuration
  • Follow 12-Factor Principles (Heroku proj)
    • 3 additional: telemetry, API, security
  • Establish a contract between apps and underlying platform
  • Cloud Native apps are Ephemeral, minimize/eliminate dependency on underlying platform
  • Deployable as JAR file (exampl for java apps), Application is self contained
    • start as command/shell (e.g. java -jar) or
    • register your applications as systemd or init.d on linux-based systems - so it can start when the server starts
    • Use cloud ecosystem (such as PaaS - PCF)
  • Drive Cloud Mindset for building application from start
  • Use Spring Cloud Services (Spring Cloud Netflix:OSS) and or Service Mesh Best Practice Frameworks
Service Description
Config Server Central Configuration server
Eureka Service Registration & Discovery for Client/Server
Ribbon Client-side Load Balancer
Hystrix Circuit Breaker
Turbine Hystrix stream provides information on a single application, Turbine provides a way to aggregate this information across all installations of an application in a cluster (overall health of the system)
zuul Intelligent Routing - Reverse Proxy
Feign Declarative Webservice Client
Archaius External Configuration

https://i.stack.imgur.com/v5r46.png