Download - The Cloud Native Stack
AGENDA
▸ The Cloud Native Stack, Josef Adersberger (QAware)
▸ Spark/Solr and machine learning/recommenders with Fusion, Jake Mannix (Lucidworks)
▸ Mesos and the Architecture of the New Datacenter, Jörg Schad (Mesosphere)
▸ Spring Cloud Apps auf Kubernetes, Mario-Leander Reimer & Josef Fuchshuber
▸ Q&A, Networking
SELF-DELIVERING SOFTWARE
RUNNINGTESTEDSOFTWAREINCREMENT
EVERYTHING AS CODE: ‣ codes applications ‣ codes tests ‣ codes infrastructure ‣ codes delivery workflow{ }
EVERYTHING AS CODE
node('master') { git url: 'https://git.qaware.de/apps/qaerp.git' stage 'Build' sh 'mvn clean package' archive artifact
stage 'Code Coverage' sonarqube
stage 'QA' parallel(tests: { runWithServer {url -> sh “gatling run omg.scala“}})
stage name: 'Staging', concurrency: 1 tomcat.deploy(artifact, 'staging', deployClosure)}
version: '2'services: web: build: . ports: - "5000:5000" volumes: - .:/code depends_on: - redis redis: image: redis
DELIVERY WORKFLOW: Jenkins Workflow DSLINFRASTRUCTURE:Docker Compose
THE CLOUD NATIVE LANDSCAPE 2016
Cluster Orchestrator
Cluster Scheduler
ClusterVirtualization
ApplicationPlatform
Configuration & Coordination:
Service Discovery:
Edge & API Server:
Cluster Diagnosability:
Cluster Resources
Container
Applications
Code
Node Resources
Operating System
Spring Cloud
PaaS
IaaS
public
private / hybrid
Cluster Infrastructure
OS Virtualization Network Virtualization Storage Virtualization Memory Virtualization
Caa
S
Microservices Dataservices
YARN
Helios
Spring Cloud PaaSTA
Singularity
Apollo
Zookeeper
TurbineAtlas
CLUSTER ORCHESTRATION
CLUSTER ORCHESTRATOR
CLUSTER SCHEDULER
APPLICATIONBLUEPRINT
APPLICATIONOPS COMMANDS
HAproxy
NGINX NGINX
MySQL
HTTP 80
HAproxy (standby)
Auto-Scaling
Replication
Stateful
‣ deploy ‣ canary-deploy ‣ rollback ‣ scale ‣ status ‣ config-change ‣ …
CLUSTER ORCHESTRATION WITH KUBERNETES
KUBERNETES
KUBERNETES, MESOS
POD, SERVICE, RC/RS, DEPLOYMENT (.YAML)
KUBECTL,REST API,
KUBE DASHBOARD
Container
Container
PodIP
Volume
Port Port Port
Service
DNS-Name
Labe
l: <K
,V>
ReplicationController
‣ Endpoint with DNS name ‣ Logical group of Pods ‣ Policy how to access the Pods
‣ Atomic unit of orchestration and scheduling
‣ Group of co-located containers(one node, one lifecycle)
‣ Containers share an unique IP,persistent volumes and env vars ‣ Controls Pod lifecycle
‣ Ensures that a defined nbr. of Pod instances is running
new gen: Replica Set
Deployment: Declarative update (target state description) for Pods and Replica Sets.