View
36
Download
2
Category
Preview:
Citation preview
Agenda- Introduction- PaaS: What it brings to the table for DevOps- Cloud Foundry Overview- Demo- Continuous Delivery with Cloud Foundry
What is Meshcloud?
Public Cloud Platform: IaaS + PaaS
Open-Source: OpenStack + Cloud Foundry
European: Federation of local Service Providers
A typical SaaS Application Architecture
Microservice A Microservice B
Message Queue Cluster
DatabaseCluster
HA Load Balancer
A typical SaaS Application Architecture
Microservice A Microservice B
Message Queue Cluster
DatabaseCluster
HA Loadbalancer
99%
99% 99%
99%
99%
0,995 = 95% → 1h 12m Downtime per Day
Platform as a Service - Why Care?
DevOps Goals
● Zero Downtime● Failure Handling & Recovery● Automated Scalability● Security & Patching● Fast and reliable Deployments ● Supportable (Logging, Metrics)● … while maintaining Developer
Productivity
Cloud Foundry takes care of it.
Cloud FoundryPaaS, based on a container architecture
2 ways to deploy containers
Buildpacks for most languages Bring your own runC Container
Further Benefits:
● High-Availability Load Balancers
● Service Brokers for persistent services (Databases, Message Queues, etc.)
● Takes care of Failure & Recovery
→ Enables highly available applications, with minimal effort
CF builds, distributes and scales your containers
Platform Overview - Runtime Architecture
Source: https://www.cloudfoundry.org/platform/, https://docs.cloudfoundry.org/services/overview.html
Continuous Deployment with Cloud Foundry● Cloud Foundry has lots of “Batteries Included”
○ Infrastructure as Code■ CF CLI automation (manifest files)■ CF API automation (e.g. auto-scaling)
○ Use Blue/Green Deployments■ High availability during deployment■ Guards against failed deployments (e.g. App does not start)
○ Builtin Loadbalancer with TLS Termination○ Managed Application Services with Databases etc.○ Builtin logging infrastructure
● Automate Deployments to Dev / Staging / Prod ○ Identical environments in different cf spaces○ Control App Configuration via Environment Variables
● Deploy fast, deploy often ○ typically > 10 times per day to Dev○ typically > 1 times per day to Prod○ => Fast Feedback Loop!
● Diagnose production issues with logs, ssh & monitoring○ collect logs via syslog drain ○ monitor e.g. via ELK Stack
Continuous Deployment with Cloud Foundry
Excursion: Concourse CI● All Container-based CI ● Just three Core Concepts
○ Tasks: Execution of a script in an isolated environment (= container)○ Resources: Anything that can serve as versioned Input/Output○ Jobs: Connect Tasks + Resources
■ Think: function with Input/Output (Job->Job = Pipeline)
Cloud Foundry in the DevOps Ecosystem● CF readily automates many common DevOps Tasks
○ Ideal for teams with lots of “dev” but little “ops” experience● Make your own Control vs. Comfort Tradeoffs
■ Container vs. Buildpack Deployments■ Container-to-Container Networking vs. shared Networking
● CF vs. Kubernetes○ “Batteries included” vs. “just orchestration”○ Both have their place and are converging on many features
■ CF is moving “down the stack” (e.g. container-to-container networking)■ Kubernetes is moving “up the stack” (e.g. adoption of Service Broker API)
Thank you!Johannes Rudolph
jrudolph@meshcloud.iowww.meshcloud.io
@meshstack
@meshstack
Links● https://concourse.ci/● https://www.cloudfoundry.org/
● Blue/Green Deployments: https://docs.cloudfoundry.org/devguide/deploy-apps/blue-green.html
● Access Applications via SSH: https://docs.cloudfoundry.org/devguide/deploy-apps/ssh-apps.html
● Samples used: ○ https://github.com/cloudfoundry-samples/test-app○ https://github.com/cloudfoundry-samples/spring-music
Recommended