buildpacks detect, compile, release

37
Cloud Foundry buildpacks

Upload: hristo-iliev

Post on 23-Jan-2017

45 views

Category:

Software


1 download

TRANSCRIPT

Page 1: Buildpacks  detect, compile, release

Cloud Foundry buildpacks

Page 2: Buildpacks  detect, compile, release

Hello!Hristo & Ivan You can find us at:@hsiliev@botu6aa

Page 3: Buildpacks  detect, compile, release

1.Pushing

applicationsStaging vs Starting

Page 4: Buildpacks  detect, compile, release

DemoCreate app

HTML

Page 5: Buildpacks  detect, compile, release

Push process

Upload Stage Start

Page 6: Buildpacks  detect, compile, release

Upload

▧Create metadata

▧Check missing filesHash

▧Upload in blobstore

Page 7: Buildpacks  detect, compile, release

BlobstoreStores binary data

Page 8: Buildpacks  detect, compile, release

Upload

Page 9: Buildpacks  detect, compile, release

DemoUpload

cf push app --no-start

Page 10: Buildpacks  detect, compile, release

Stage

▧Download dependencies

▧ Modify configuration

▧Build droplet

Page 11: Buildpacks  detect, compile, release

Droplet= application + frameworks + server +

runtime

Page 12: Buildpacks  detect, compile, release

Staging

Page 13: Buildpacks  detect, compile, release

Start

▧Download droplet

▧ Start app container

Page 14: Buildpacks  detect, compile, release

Container= binaries + metadata + process

Page 15: Buildpacks  detect, compile, release

Start

Page 16: Buildpacks  detect, compile, release

DemoStage & Start

cf start app

Page 17: Buildpacks  detect, compile, release

2.Buildpacks

What? How? When? Why?

Page 18: Buildpacks  detect, compile, release

“Buildpacks examine artifacts

to determine what dependencies to download

and how to configure applications to communicate

with bound services.

Page 19: Buildpacks  detect, compile, release

What they do?

▧Examine artifacts

▧ Download dependencies

▧Configure applications

Page 20: Buildpacks  detect, compile, release

How they do it?

/bin/detect

/bin/compile

/bin/release

Diagram featured by http://slidemodel.com

Page 21: Buildpacks  detect, compile, release

How?

▧ /bin/detectapply the buildpack?

▧/bin/compilepackage dependencies

▧/bin/releasestart command

Page 22: Buildpacks  detect, compile, release

Detect

▧ Inputapplication

▧ Output1 - I don’t like it0 - I’ll see what I can do

Page 23: Buildpacks  detect, compile, release

Compile

▧ Input: build dircache dir

▧ Outputlogs (stdout /stderr)droplet binaries

Page 24: Buildpacks  detect, compile, release

Release

▧ Input: build dir

▧ Outputstart command

Page 25: Buildpacks  detect, compile, release

When?

▧StagingInput: appOutput: droplet

▧ StartInput: dropletOutput: app process

Page 26: Buildpacks  detect, compile, release

Why?

▧Custom runtimes

▧SeparationPlatformRuntimes

▧Isolation & Security

Page 27: Buildpacks  detect, compile, release

3.Build build

pack

Page 28: Buildpacks  detect, compile, release

BackgroundBing’s image of the day

https://github.com/hsiliev/staticfile-buildpack

Page 29: Buildpacks  detect, compile, release

Modify buildpack

▧ChangeBashRuby, ...

▧ Packpackager

▧Uploadcf admin

Page 30: Buildpacks  detect, compile, release

DemoModify buildpack

change, pack, upload

Page 31: Buildpacks  detect, compile, release

4.Don’t do that!

at work

Page 32: Buildpacks  detect, compile, release

Goodbuild tools

distroscache

-->

vs.

Badapt-get

no rootdownload everything

speedresources

Page 33: Buildpacks  detect, compile, release

5.Testing

machete

Page 34: Buildpacks  detect, compile, release

Thanks!

Any questions?

You can find us at:@hsiliev & @botu6aa

[email protected] & [email protected]

Page 35: Buildpacks  detect, compile, release

Credits

Special thanks to all the people who made and released these awesome resources for free:▧ Presentation template by SlidesCarnival▧ Photographs by Unsplash▧ Backgrounds by Pixeden

Page 36: Buildpacks  detect, compile, release

SlidesCarnival icons are editable shapes.

This means that you can:● Resize them without losing

quality.● Change fill color and opacity.

Isn’t that nice? :)

Examples:

Page 37: Buildpacks  detect, compile, release

Now you can use any emoji as an icon!And of course it resizes without losing quality and you can change the color.

How? Follow Google instructions https://twitter.com/googledocs/status/730087240156643328

✋👆👉👍👤👦👧👨👩👪💃❤😂😉😋😒😭 😸🏃💑 👶 🐟🍒

🍔💣📌📖🔨🎃🎈🎨🏈🏰🌏🔌🔑 and many more...

��