devops and continuous delivery with cloudfoundry

16
DevOps with Cloud Foundry April 11, 2017

Upload: johannes-rudolph

Post on 16-Apr-2017

35 views

Category:

Technology


2 download

TRANSCRIPT

DevOps with Cloud Foundry

April 11, 2017

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

What is Meshcloud?

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

Demo

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)

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