Alexander Lomov - Cloud Foundry и BOSH: истории из жизни

Preview:

Citation preview

FOUNDRYИСТОРИИ ИЗ ЖИЗНИ

CLOUD

by Alexander Lomov

https://speakerdeck.com/allomov/july-mlug

@code1n

@allomov

!

"

Hello!

R&D ENGINEERat

http://blog.altoros.com/

Human Keyboard

https://www.youtube.com/watch?v=RuUFnog29M4*Jordan Sissel on PuppetConf '12

way

git push

content management tools

vs.

Some

Theory

Пирамида потребностей разработчиков

Что такое PaaS

PaaSaaSRedHat OpenShift on demand

PaaSaaSaaS?

enefits

benefitsfor

Programmers

Простота деплоя

1. follow best practice 2. make cf push

http://12factor.net/

Позволяет заниматься своим любимым делом

benefitsfor

Operations Administrator

Новый уровень абстракции

Virtual Machines

Application and

Services

vs.

“over commitment”

Increasing Density

HA and Scaling Out of the box

benefitsfor

Business

Улучшение бизнес процессов

• customization • continuous delivery • blue green deployment • multi tenancy • speed up delivery • high level control over

resources • …

Стоимость

vs.

+

Privacy

HistorySome

History2007 Early beginnings, CloudTools

2008 Commercial version of CloudTools

2011 Open Source release of Cloud Foundry

2013 VMware and EMC formed PivotalPivotal introduced enterprise version of CF

2014 Cloud Foundry Foundation was announced

Cloud Foundry Foundation

Cloud Foundry Foundation

Cloud Foundry Foundation

Cloud Foundry Foundation

HOW TO DEPLOY

Orchestration Tools?

Terraform

BO H

WHY?

IT IS LAZY

IT IS LAZY

SELF HEALING

ROLLING UPDATES

REPRODUCIBLE ENVIRONMENTS

REPRODUCIBLE ENVIRONMENTS

BOSH

http://blog.altoros.com/how-to-add-bosh-support-to-a-custom-cloud-part-2-external-bosh-cpis.html

BO

SH

Manifest

BOSH Release

BOSH Release• Blobs • Jobs • Packages • Blobstorage config

BOSH RELESE BLOBS

blobs.blobssrc

BOSH RELASE JOBS

• templates• spec (dependencies, packages)

BOSH RELASE PACKAGES

• packaging script• spec (files in blobstore)

BOSH RELEASE CONFIG

blobs.ymlfinal.ymlprivate.ymldev.yml

BOSH RELEASE CONFIG

blobs.yml

BOSH RELEASE CONFIG

final.yml

BOSH RELEASE CONFIGprivate.yml

Where to start?

BOSH-LITE

Vagrant BOSH

+

Murano OpenStack Service

HOW IT WORKS

Основные компоненты

Messaging Bus

NATShttp://nats.io/

Router

UAA Login Server

Droplet Execution Agent(DEA)

Cloud Controller

DE

A

Router

NA

TS

Containers with

application instances

Cloud

Countroller

OAuth2

User Traffic

Application

Heartbeats

Application

DiscoveryH

ealthM

anager

Service

Broker

Service Management

Application

Management

ServiceUtilization

Messaging B

us

Application

Data

Service Data

CompiledApplications

Hea

lth M

anag

er

Services

12

3 4

Application LifecircleDeployment

1. Initializing deployment.2. Compilation.3. Storing blobs.4. Running application

12

3 4

Application LifecircleDeployment

Application LifecircleRunning

Hearbeats / Scaling / Service connection /Logging

Application LifecircleExtreme Situations

What if applicationfails?

Application LifecircleExtreme Situations

What if DEA fails?

Application LifecircleExtreme Situations

What if NATS fails?

Application LifecircleRunning

Some Features

• Auto-scaling • Zero-time deployments

Create Your Own Components

https://github.com/mgarciap/cf-auto-scaling

Learning from Cloud Foundry

• different languages and technologies • micro services: how to avoid tight coupling,

poor separations of concerns https://www.youtube.com/watch?v=1OkmVTFhfLY

• distributed computing always challenging: CAP Theorem, FLP impossibility http://the-paper-trail.org/

Cloud FoundryАЛЬТЕРНАТИВЫ

http://www.altoros.com/openshift_and_cloud_foundry_paas.html

Форки

Questions

BOSH

http://blog.altoros.com/how-to-add-bosh-support-to-a-custom-cloud-part-2-external-bosh-cpis.html