39
PKGSRC AUTONOMOUS APPLICATION DEPLOYMENT WITH

AUTONOMOUS APPLICATION DEPLOYMENT WITH …Deployment tools Maven, ANT, Make Capistrano, Vlad, Fabric, etc Puppet, Chef, Salt, Ansible HAPPILY EVER AFTER UNTIL… VULNERABILITY DISCOVERED

  • Upload
    others

  • View
    9

  • Download
    0

Embed Size (px)

Citation preview

Page 1: AUTONOMOUS APPLICATION DEPLOYMENT WITH …Deployment tools Maven, ANT, Make Capistrano, Vlad, Fabric, etc Puppet, Chef, Salt, Ansible HAPPILY EVER AFTER UNTIL… VULNERABILITY DISCOVERED

PKGSRCAUTONOMOUS APPLICATION DEPLOYMENT WITH

Page 2: AUTONOMOUS APPLICATION DEPLOYMENT WITH …Deployment tools Maven, ANT, Make Capistrano, Vlad, Fabric, etc Puppet, Chef, Salt, Ansible HAPPILY EVER AFTER UNTIL… VULNERABILITY DISCOVERED

THIS JACK-WAGON?

WHO IS

Page 3: AUTONOMOUS APPLICATION DEPLOYMENT WITH …Deployment tools Maven, ANT, Make Capistrano, Vlad, Fabric, etc Puppet, Chef, Salt, Ansible HAPPILY EVER AFTER UNTIL… VULNERABILITY DISCOVERED

A BIT ABOUT ME:

‘MURICAN

▸ overweight

▸ a little bit bigoted

▸ I own guns

▸ I probably don’t speak your language

Page 4: AUTONOMOUS APPLICATION DEPLOYMENT WITH …Deployment tools Maven, ANT, Make Capistrano, Vlad, Fabric, etc Puppet, Chef, Salt, Ansible HAPPILY EVER AFTER UNTIL… VULNERABILITY DISCOVERED

OVERWEIGHT

▸ Did I mention that I’m ‘Murican?

Page 5: AUTONOMOUS APPLICATION DEPLOYMENT WITH …Deployment tools Maven, ANT, Make Capistrano, Vlad, Fabric, etc Puppet, Chef, Salt, Ansible HAPPILY EVER AFTER UNTIL… VULNERABILITY DISCOVERED

LITTLE BIT BIGOTED

▸ GNU/Linux

▸ GNUbs

▸ Systems that do not include netstat, traceroute, a sane default command shell for /bin/sh

▸ Systems that turn $#!+ on just because you installed it

▸ version control systems that allow history to be rewritten

▸ ORMs

Page 6: AUTONOMOUS APPLICATION DEPLOYMENT WITH …Deployment tools Maven, ANT, Make Capistrano, Vlad, Fabric, etc Puppet, Chef, Salt, Ansible HAPPILY EVER AFTER UNTIL… VULNERABILITY DISCOVERED

LITTLE BIT BIGOTED (CONTINUED)

▸ PHP

▸ MySQL

▸ Oracle

▸ Chef

▸ Puppet

▸ Ansible

▸ Screen

▸ GLibC

Page 7: AUTONOMOUS APPLICATION DEPLOYMENT WITH …Deployment tools Maven, ANT, Make Capistrano, Vlad, Fabric, etc Puppet, Chef, Salt, Ansible HAPPILY EVER AFTER UNTIL… VULNERABILITY DISCOVERED

DON’T SCARE PEOPLE

I OWN GUNS

Page 8: AUTONOMOUS APPLICATION DEPLOYMENT WITH …Deployment tools Maven, ANT, Make Capistrano, Vlad, Fabric, etc Puppet, Chef, Salt, Ansible HAPPILY EVER AFTER UNTIL… VULNERABILITY DISCOVERED

I PROBABLY DON’T SPEAK YOUR LANGUAGE

▸ Spanish

▸ Esperanto

▸ Italian

▸ German

▸ Romanian

▸ Frisian

▸ Polish

▸ Czech

▸ Mandarin

Page 9: AUTONOMOUS APPLICATION DEPLOYMENT WITH …Deployment tools Maven, ANT, Make Capistrano, Vlad, Fabric, etc Puppet, Chef, Salt, Ansible HAPPILY EVER AFTER UNTIL… VULNERABILITY DISCOVERED

I PROBABLY DON’T SPEAK YOUR LANGUAGE

▸ Spanish

▸ Esperanto

▸ Italian

▸ German

▸ Romanian

▸ Frisian

▸ Polish

▸ Czech

▸ Mandarin

▸ shell

▸ AWK

▸ Python

▸ Lua

▸ Racket

▸ Ruby

▸ JavaScript

▸ Go

▸ Rust

Page 10: AUTONOMOUS APPLICATION DEPLOYMENT WITH …Deployment tools Maven, ANT, Make Capistrano, Vlad, Fabric, etc Puppet, Chef, Salt, Ansible HAPPILY EVER AFTER UNTIL… VULNERABILITY DISCOVERED

HUGE NERD

▸ Plone

▸ Web2py

▸ RVM

▸ SaltStack

▸ Ansible

▸ Capistrano

▸ RepozeBFG

▸ Fabric

▸ Fossil

▸ SQLite

▸ PyJS

▸ Wempy

▸ Linux Mint

▸ MidnightBSD

Page 11: AUTONOMOUS APPLICATION DEPLOYMENT WITH …Deployment tools Maven, ANT, Make Capistrano, Vlad, Fabric, etc Puppet, Chef, Salt, Ansible HAPPILY EVER AFTER UNTIL… VULNERABILITY DISCOVERED

GCW@ 8IONS.COM

Page 12: AUTONOMOUS APPLICATION DEPLOYMENT WITH …Deployment tools Maven, ANT, Make Capistrano, Vlad, Fabric, etc Puppet, Chef, Salt, Ansible HAPPILY EVER AFTER UNTIL… VULNERABILITY DISCOVERED

APPLICATION DEPLOYMENT SYSTEM VIRTUALIZATION ORCHESTRATION CONFIGURATION MANAGEMENT CONTAINERIZATION AUTOMATION

Page 13: AUTONOMOUS APPLICATION DEPLOYMENT WITH …Deployment tools Maven, ANT, Make Capistrano, Vlad, Fabric, etc Puppet, Chef, Salt, Ansible HAPPILY EVER AFTER UNTIL… VULNERABILITY DISCOVERED

APPLIC8ION DEPLOYMENT SYSTEM VIRTUALIZ8ION ORCHESTR8ION CONFIGUR8ION MANAGEMENT CONTAINERIZ8ION AUTOM8ION

Page 14: AUTONOMOUS APPLICATION DEPLOYMENT WITH …Deployment tools Maven, ANT, Make Capistrano, Vlad, Fabric, etc Puppet, Chef, Salt, Ansible HAPPILY EVER AFTER UNTIL… VULNERABILITY DISCOVERED

GCW@ 8IONS.COM

Page 15: AUTONOMOUS APPLICATION DEPLOYMENT WITH …Deployment tools Maven, ANT, Make Capistrano, Vlad, Fabric, etc Puppet, Chef, Salt, Ansible HAPPILY EVER AFTER UNTIL… VULNERABILITY DISCOVERED

LOVE/HATE STORY

Page 16: AUTONOMOUS APPLICATION DEPLOYMENT WITH …Deployment tools Maven, ANT, Make Capistrano, Vlad, Fabric, etc Puppet, Chef, Salt, Ansible HAPPILY EVER AFTER UNTIL… VULNERABILITY DISCOVERED

COMMON STORY

DEVELOPER HAS IDEA

▸ Developer builds app

▸ Developer runs app

▸ Developer needs to deploy app into production

Page 17: AUTONOMOUS APPLICATION DEPLOYMENT WITH …Deployment tools Maven, ANT, Make Capistrano, Vlad, Fabric, etc Puppet, Chef, Salt, Ansible HAPPILY EVER AFTER UNTIL… VULNERABILITY DISCOVERED

ABOUT THE APP

▸ POSIX-y

▸ Few dependencies

▸ System Libraries

▸ runtime language (JavaScript, Python, Ruby, etc)

▸ packages for language (NPM, CPAN, PyPI, Gems, etc.

Page 18: AUTONOMOUS APPLICATION DEPLOYMENT WITH …Deployment tools Maven, ANT, Make Capistrano, Vlad, Fabric, etc Puppet, Chef, Salt, Ansible HAPPILY EVER AFTER UNTIL… VULNERABILITY DISCOVERED

DEPLOYMENT OPTIONS

▸ Tarball

▸ Debs/RPMs

▸ Language tools (pip, gem, cpan, etc)

▸ Deployment tools

▸ Maven, ANT, Make

▸ Capistrano, Vlad, Fabric, etc

▸ Puppet, Chef, Salt, Ansible

Page 19: AUTONOMOUS APPLICATION DEPLOYMENT WITH …Deployment tools Maven, ANT, Make Capistrano, Vlad, Fabric, etc Puppet, Chef, Salt, Ansible HAPPILY EVER AFTER UNTIL… VULNERABILITY DISCOVERED

HAPPILY EVER AFTER

Page 20: AUTONOMOUS APPLICATION DEPLOYMENT WITH …Deployment tools Maven, ANT, Make Capistrano, Vlad, Fabric, etc Puppet, Chef, Salt, Ansible HAPPILY EVER AFTER UNTIL… VULNERABILITY DISCOVERED

UNTIL…

Page 21: AUTONOMOUS APPLICATION DEPLOYMENT WITH …Deployment tools Maven, ANT, Make Capistrano, Vlad, Fabric, etc Puppet, Chef, Salt, Ansible HAPPILY EVER AFTER UNTIL… VULNERABILITY DISCOVERED

VULNERABILITY DISCOVERED IN APPLICATION CODE

Page 22: AUTONOMOUS APPLICATION DEPLOYMENT WITH …Deployment tools Maven, ANT, Make Capistrano, Vlad, Fabric, etc Puppet, Chef, Salt, Ansible HAPPILY EVER AFTER UNTIL… VULNERABILITY DISCOVERED

VULNERABILITY IN APPLICATION CODE

▸ Re-roll Tarballs and deploy

▸ Re-build deb/rpm packages, put in repo, deploy

▸ Update deployment tools/recipes and deploy

Page 23: AUTONOMOUS APPLICATION DEPLOYMENT WITH …Deployment tools Maven, ANT, Make Capistrano, Vlad, Fabric, etc Puppet, Chef, Salt, Ansible HAPPILY EVER AFTER UNTIL… VULNERABILITY DISCOVERED

VULNERABILITY IN COMMUNITY PACKAGE

Page 24: AUTONOMOUS APPLICATION DEPLOYMENT WITH …Deployment tools Maven, ANT, Make Capistrano, Vlad, Fabric, etc Puppet, Chef, Salt, Ansible HAPPILY EVER AFTER UNTIL… VULNERABILITY DISCOVERED

VULNERABILITY IN COMMUNITY PACKAGE

▸ Check for update

▸ Check update for compatibility with application code

▸ Check updated application for compatibility underlying stack

Page 25: AUTONOMOUS APPLICATION DEPLOYMENT WITH …Deployment tools Maven, ANT, Make Capistrano, Vlad, Fabric, etc Puppet, Chef, Salt, Ansible HAPPILY EVER AFTER UNTIL… VULNERABILITY DISCOVERED

NEW VERSION OF YOUR RUNTIME IS RELEASED

Page 26: AUTONOMOUS APPLICATION DEPLOYMENT WITH …Deployment tools Maven, ANT, Make Capistrano, Vlad, Fabric, etc Puppet, Chef, Salt, Ansible HAPPILY EVER AFTER UNTIL… VULNERABILITY DISCOVERED

▸ Check compatibility with application

▸ Find/fix edge-case issues

Page 27: AUTONOMOUS APPLICATION DEPLOYMENT WITH …Deployment tools Maven, ANT, Make Capistrano, Vlad, Fabric, etc Puppet, Chef, Salt, Ansible HAPPILY EVER AFTER UNTIL… VULNERABILITY DISCOVERED

NEW SYSTEM LIBRARIES

Page 28: AUTONOMOUS APPLICATION DEPLOYMENT WITH …Deployment tools Maven, ANT, Make Capistrano, Vlad, Fabric, etc Puppet, Chef, Salt, Ansible HAPPILY EVER AFTER UNTIL… VULNERABILITY DISCOVERED

▸ Check compatibility with community packages

▸ Check compatibility with application

Page 29: AUTONOMOUS APPLICATION DEPLOYMENT WITH …Deployment tools Maven, ANT, Make Capistrano, Vlad, Fabric, etc Puppet, Chef, Salt, Ansible HAPPILY EVER AFTER UNTIL… VULNERABILITY DISCOVERED

WHAT IF THEY DON’T WORK TOGETHER?

Page 30: AUTONOMOUS APPLICATION DEPLOYMENT WITH …Deployment tools Maven, ANT, Make Capistrano, Vlad, Fabric, etc Puppet, Chef, Salt, Ansible HAPPILY EVER AFTER UNTIL… VULNERABILITY DISCOVERED

FORK IT!

Page 31: AUTONOMOUS APPLICATION DEPLOYMENT WITH …Deployment tools Maven, ANT, Make Capistrano, Vlad, Fabric, etc Puppet, Chef, Salt, Ansible HAPPILY EVER AFTER UNTIL… VULNERABILITY DISCOVERED

OR WORSE

Page 32: AUTONOMOUS APPLICATION DEPLOYMENT WITH …Deployment tools Maven, ANT, Make Capistrano, Vlad, Fabric, etc Puppet, Chef, Salt, Ansible HAPPILY EVER AFTER UNTIL… VULNERABILITY DISCOVERED

DON’T UPGRADE ANYTHING

Page 33: AUTONOMOUS APPLICATION DEPLOYMENT WITH …Deployment tools Maven, ANT, Make Capistrano, Vlad, Fabric, etc Puppet, Chef, Salt, Ansible HAPPILY EVER AFTER UNTIL… VULNERABILITY DISCOVERED

BUT THERE’S A BETTER WAY

Page 34: AUTONOMOUS APPLICATION DEPLOYMENT WITH …Deployment tools Maven, ANT, Make Capistrano, Vlad, Fabric, etc Puppet, Chef, Salt, Ansible HAPPILY EVER AFTER UNTIL… VULNERABILITY DISCOVERED

THE OS IS SUBSTRATE YOUR APPLICATION IS THE COLONY

Page 35: AUTONOMOUS APPLICATION DEPLOYMENT WITH …Deployment tools Maven, ANT, Make Capistrano, Vlad, Fabric, etc Puppet, Chef, Salt, Ansible HAPPILY EVER AFTER UNTIL… VULNERABILITY DISCOVERED

TWO SETS OF DEFINITIONS

▸ A host on your network

▸ monitoring

▸ orchestration

▸ (system) packages

▸ Your application stack

▸ apps that make up your stack

Page 36: AUTONOMOUS APPLICATION DEPLOYMENT WITH …Deployment tools Maven, ANT, Make Capistrano, Vlad, Fabric, etc Puppet, Chef, Salt, Ansible HAPPILY EVER AFTER UNTIL… VULNERABILITY DISCOVERED

THE BENEFITS

▸ Your application is now autonomous

▸ You can move from OS to OS as long as your application stack is supported on the target platform

▸ You can push updates to your substrate much more easily

▸ You can update your dependencies at will

▸ You can maintain your own forks without system conflicts

▸ You can run multiple versions in parallel on the same system

▸ You can wrap it all in meta-packages

Page 37: AUTONOMOUS APPLICATION DEPLOYMENT WITH …Deployment tools Maven, ANT, Make Capistrano, Vlad, Fabric, etc Puppet, Chef, Salt, Ansible HAPPILY EVER AFTER UNTIL… VULNERABILITY DISCOVERED

THE BENEFITS (CONTINUED)

▸ Parallel installations with ${PREFIX}

▸ Chroot “jail” for simple process isolation

▸ Tarball-able (not recommended but better than some solutions)

▸ Highly portable and easily maintainable

▸ Many many more…

Page 38: AUTONOMOUS APPLICATION DEPLOYMENT WITH …Deployment tools Maven, ANT, Make Capistrano, Vlad, Fabric, etc Puppet, Chef, Salt, Ansible HAPPILY EVER AFTER UNTIL… VULNERABILITY DISCOVERED

QUESTIONS

Page 39: AUTONOMOUS APPLICATION DEPLOYMENT WITH …Deployment tools Maven, ANT, Make Capistrano, Vlad, Fabric, etc Puppet, Chef, Salt, Ansible HAPPILY EVER AFTER UNTIL… VULNERABILITY DISCOVERED

GCW@ 8IONS.COM