109
Portrait of the developeur as

Portrait of the Developer as the Artist - OpenTour Sofia

Embed Size (px)

Citation preview

Page 1: Portrait of the Developer as the Artist - OpenTour Sofia

Portrait of the developeur as

Page 2: Portrait of the Developer as the Artist - OpenTour Sofia

@chanezon

French

Polyglot

Server Side

San Francisco

Developer Relations

Page 4: Portrait of the Developer as the Artist - OpenTour Sofia

Very freely inspired from

... and a few years as an Enterprise consultant in France before

moving to California

Page 5: Portrait of the Developer as the Artist - OpenTour Sofia
Page 6: Portrait of the Developer as the Artist - OpenTour Sofia
Page 7: Portrait of the Developer as the Artist - OpenTour Sofia
Page 8: Portrait of the Developer as the Artist - OpenTour Sofia
Page 9: Portrait of the Developer as the Artist - OpenTour Sofia
Page 10: Portrait of the Developer as the Artist - OpenTour Sofia
Page 11: Portrait of the Developer as the Artist - OpenTour Sofia
Page 12: Portrait of the Developer as the Artist - OpenTour Sofia
Page 13: Portrait of the Developer as the Artist - OpenTour Sofia
Page 14: Portrait of the Developer as the Artist - OpenTour Sofia
Page 15: Portrait of the Developer as the Artist - OpenTour Sofia
Page 16: Portrait of the Developer as the Artist - OpenTour Sofia
Page 17: Portrait of the Developer as the Artist - OpenTour Sofia
Page 18: Portrait of the Developer as the Artist - OpenTour Sofia
Page 19: Portrait of the Developer as the Artist - OpenTour Sofia

2010

- George became CIO

Page 20: Portrait of the Developer as the Artist - OpenTour Sofia
Page 21: Portrait of the Developer as the Artist - OpenTour Sofia
Page 22: Portrait of the Developer as the Artist - OpenTour Sofia
Page 23: Portrait of the Developer as the Artist - OpenTour Sofia
Page 24: Portrait of the Developer as the Artist - OpenTour Sofia
Page 25: Portrait of the Developer as the Artist - OpenTour Sofia
Page 26: Portrait of the Developer as the Artist - OpenTour Sofia
Page 27: Portrait of the Developer as the Artist - OpenTour Sofia
Page 28: Portrait of the Developer as the Artist - OpenTour Sofia
Page 29: Portrait of the Developer as the Artist - OpenTour Sofia

What happened while

George was playing

Golf

Page 30: Portrait of the Developer as the Artist - OpenTour Sofia

Dreams Of my childhood

30

Page 31: Portrait of the Developer as the Artist - OpenTour Sofia

Accelerando / Singularity, in a Galaxy far far away

§Even if we automate ourselves out of a job every 10 years§ ...I don’t think the singularity is near!

31

Page 32: Portrait of the Developer as the Artist - OpenTour Sofia

Moore's Law is for Hardware Only

§Does not apply to software§Productivity gains not keeping up with hardware and bandwidth§Writing software is hard, painful, and still very much a craft

32

Page 33: Portrait of the Developer as the Artist - OpenTour Sofia

Predictions

“The future is already here — it's just not very evenly distributed” William Gibson

33

Page 34: Portrait of the Developer as the Artist - OpenTour Sofia

Architecture Changes: 60’s Mainframe

Page 35: Portrait of the Developer as the Artist - OpenTour Sofia

Architecture Changes: 80’s Client-Server

Page 36: Portrait of the Developer as the Artist - OpenTour Sofia

Architecture Changes: 90’s Web

Page 37: Portrait of the Developer as the Artist - OpenTour Sofia

Architecture Changes: 2010’s Cloud, HTML5, Mobile

Page 38: Portrait of the Developer as the Artist - OpenTour Sofia

Back to Client Server: Groovy Baby!

38

Page 39: Portrait of the Developer as the Artist - OpenTour Sofia

What is Cloud Computing?

39

Cloud According to my daughter Eliette

Page 40: Portrait of the Developer as the Artist - OpenTour Sofia

Cloud Stack - Classic Pyramid

40

Platform As A Service

Infrastructure As A Service

SoftwareAs A Service

Page 41: Portrait of the Developer as the Artist - OpenTour Sofia

Cloud Stack - By Value

41

InfrastructureAs A Service

SoftwareAs A Service

Platform As A Service

Page 42: Portrait of the Developer as the Artist - OpenTour Sofia

Cloud Stack - History

§What does cloud mean, 4 main angles• Software 1994 Netscape• Infrastructure 2002 Amazon AWS• Platform 2008 Google• Development now!

42

§ Industrialization of hardware and software infrastructurelike electricity beginning of 20th century

§But software development itself is moving towards craftmanship

Page 43: Portrait of the Developer as the Artist - OpenTour Sofia

Cloud started at Consumer websites solving their needs

• Google, Amazon, Yahoo, Facebook, Twitter

• Large Data Sets

• Storage Capacity growing faster than Moore’s Law

• Fast Networks

• Vertical -> Horizontal scalability

• Open Source Software

• Virtualization

• Cloud is a productization of these infrastructures

• Public Clouds Services: Google, Amazon

• Open Source Software: Hadoop, Eucalyptus, Ubuntu, Cloud Foundry

Page 44: Portrait of the Developer as the Artist - OpenTour Sofia

44

Infrastructure

Page 45: Portrait of the Developer as the Artist - OpenTour Sofia

IaaS/Virtualization getting mainstream

§AWS, Joyent, Rackspace,...§Open Source projects: OpenStack, DeltaCloud, Eucalyptus§Automation: Chef, Juju, Cloud Foundry BOSH§Standardization? DMTF§ Inside the Firewall, Virtualization: VMware, Microsoft, Xen, KVM§60% of workloads are virtualized in 2012§Easy to provision, manage instance...BUT§Still need to manage backups, software stacks, monitor, upgrades

45

Page 46: Portrait of the Developer as the Artist - OpenTour Sofia

With Infrastructure, you still need to build your own platform

§Need to build a distributed platform on top of you infrastructure§Story of the AWS meltdown from last summer

• http://blog.reddit.com/2011/03/why-reddit-was-down-for-6-of-last-24.html

• http://www.readwriteweb.com/cloud/2010/12/chaos-monkey-how-netflix-uses.php

• http://news.ycombinator.com/item?id=2477296

• http://stu.mp/2011/04/the-cloud-is-not-a-silver-bullet.html

§Twilio, Smugmug, SimpleGeo survived it because they built their own distributed platform on top of IaaS

§Enterprise customers want to consider Infrastructure like CDNs• Multi Cloud usage

• Based on Open Source de facto standards, or full standards whenever that happens

46

Page 47: Portrait of the Developer as the Artist - OpenTour Sofia

47

Platforms

Page 48: Portrait of the Developer as the Artist - OpenTour Sofia

Platforms

§Raise the Unit of currency to be application & services instead of infrastructure

§Google App Engine, Cloud Foundry, Heroku, CloudBees, Amazon Elastic Beanstalk, Microsoft Azure, AppFog

§Single or a few languages, services

§Start of Multi language Polyglot platforms

§Enabler for Agile Developers -> Create Business value faster

§Lack of standards: risk, vendor lock-in

§Enterprise needs:•Control, customizability

•Private/Hybrid Cloud

•Avoid lock-in

48

Page 49: Portrait of the Developer as the Artist - OpenTour Sofia

Agile Development Processes

Page 50: Portrait of the Developer as the Artist - OpenTour Sofia

Agility as a survival skill

§Consumer software is becoming like fashion

•Phone apps, social apps, short lifetime, fast lifecycles

•A/B testing

§Enterprise

•Clay shirky situational apps

§Kent Beck, Usenix 2011 Talk, “Software G-Forces: the effects of acceleration”change in software process when frequency grows

§Cloud Platforms enables an Agile culture, driver for innovation

•Scalability is built in the platforms

•Can iterate faster

•Focus on design

§Cloud Platforms lets developers focus on driving business value

50

Page 51: Portrait of the Developer as the Artist - OpenTour Sofia

Main Risk: Lock-In

51

Welcome to the hotel californiaSuch a lovely placeSuch a lovely facePlenty of room at the hotel californiaAny time of year, you can find it here

Last thing I remember, I wasRunning for the doorI had to find the passage backTo the place I was before’relax,’ said the night man,We are programmed to receive.You can checkout any time you like,But you can never leave!

Page 52: Portrait of the Developer as the Artist - OpenTour Sofia

Cloud Foundry: The Open PaaS

52

Clou

d Pr

ovide

r Int

erfa

ce

Application Service Private Clouds

PublicClouds

MicroClouds

Data Services

Other Services

Msg Services

vFabric Postgres

vFabric RabbitMQTM

• Open Source: Apache 2 Licensed• multi language/frameworks• multi services• multi cloud

Page 53: Portrait of the Developer as the Artist - OpenTour Sofia

53

CloudFoundry.COM – Multi-Tenant PaaS Operated by VMware

Frameworks

Services

vCenter / vSphere

CloudFoundry.COM (beta)

Infrastructure

Page 54: Portrait of the Developer as the Artist - OpenTour Sofia

54

Micro Cloud FoundryTM – Industry First Downloadable PaaS

Single VM instance of Cloud Foundry that runs on a developer’s MAC or PCNew release v116 last weekTracks CloudFoundry.com

Frameworks

Services

Micro Cloud Foundry

Your Laptop/PC

Page 55: Portrait of the Developer as the Artist - OpenTour Sofia

55

Open Source

Page 56: Portrait of the Developer as the Artist - OpenTour Sofia

56

CloudFoundry.ORG – Community Open Source Project

github.com/cloudfoundry

.NET x 2 PHP JRuby Python Rails 2.x Clojure Erlang Haskell

§Memcached§SQL Server§Neo4j§CouchDB§VirtualBox§Mono§Rack

Page 57: Portrait of the Developer as the Artist - OpenTour Sofia

57

CloudFoundry.ORG – Community Open Source Project

DownloadCode

Setup Environment

Deploy Behind Firewall

Tool Chain &Scripts

Apache2 license

Your Infrastructure

Cloud Foundry BOSH

CloudFoundry.ORG

Community Frameworks Contributions

Community Services Contributions

Page 58: Portrait of the Developer as the Artist - OpenTour Sofia

58

Cloud Foundry Open Source Workflow

Reviewers +2/-2

test verification score ✓ ✗ git push triggers test execution

Gerrit Code Review

reviews.cloudfoundry.org

Jenkins CI

ci.cloudfoundry.org

github

github.com/cloudfoundry

+1/-1 Committers

on +2 and ✓ change pushed to github

cloudfoundry.com

production updated ~2x/week

Page 59: Portrait of the Developer as the Artist - OpenTour Sofia

Open Source Advantage: speed

§http://code.google.com/p/googleappengine/issues/detail?id=13

59

• https://github.com/cloudfoundry/vcap/pull/25

Page 60: Portrait of the Developer as the Artist - OpenTour Sofia

Open Source Advantage: breadth

60

Page 61: Portrait of the Developer as the Artist - OpenTour Sofia

61

Ecosystem

Page 62: Portrait of the Developer as the Artist - OpenTour Sofia

62

Broad Industry Investment

Page 63: Portrait of the Developer as the Artist - OpenTour Sofia

63

Cloud Foundry - Making Multi-Cloud a Reality

Public Cloud Operators

.COM

Management and Private Cloud Distributions

Bare metal

Page 64: Portrait of the Developer as the Artist - OpenTour Sofia

Cloud Foundry Architecture

Page 65: Portrait of the Developer as the Artist - OpenTour Sofia

Architectural Goals

65

Page 66: Portrait of the Developer as the Artist - OpenTour Sofia

No single point of failure

Architectural Goals

65

Page 67: Portrait of the Developer as the Artist - OpenTour Sofia

No single point of failure Distributed state

Architectural Goals

65

Page 68: Portrait of the Developer as the Artist - OpenTour Sofia

No single point of failure Distributed state Self healing

Architectural Goals

65

Page 69: Portrait of the Developer as the Artist - OpenTour Sofia

No single point of failure Distributed state Self healing Horizontally scalable

Architectural Goals

65

Page 70: Portrait of the Developer as the Artist - OpenTour Sofia

Architectural Principles

66

Page 71: Portrait of the Developer as the Artist - OpenTour Sofia

Loose coupling

Architectural Principles

66

Page 72: Portrait of the Developer as the Artist - OpenTour Sofia

Loose coupling Event-driven

Architectural Principles

66

Page 73: Portrait of the Developer as the Artist - OpenTour Sofia

Loose coupling Event-driven Asynchronous

Architectural Principles

66

Page 74: Portrait of the Developer as the Artist - OpenTour Sofia

Loose coupling Event-driven Asynchronous Non-blocking

Architectural Principles

66

Page 75: Portrait of the Developer as the Artist - OpenTour Sofia

Loose coupling Event-driven Asynchronous Non-blocking Idempotent

Architectural Principles

66

Page 76: Portrait of the Developer as the Artist - OpenTour Sofia

Loose coupling Event-driven Asynchronous Non-blocking Idempotent Eventually consistent

Architectural Principles

66

Page 77: Portrait of the Developer as the Artist - OpenTour Sofia

Loose coupling Event-driven Asynchronous Non-blocking Idempotent Eventually consistent Language-independent communication

Architectural Principles

66

Page 78: Portrait of the Developer as the Artist - OpenTour Sofia

Cloud Foundry Layers

67

Page 79: Portrait of the Developer as the Artist - OpenTour Sofia

Cloud Foundry Layers

Clients

67

Page 80: Portrait of the Developer as the Artist - OpenTour Sofia

Cloud Foundry Layers

Inner Shell

Clients

67

Page 81: Portrait of the Developer as the Artist - OpenTour Sofia

Cloud Foundry Layers

Outer Shell

Inner Shell

Clients

67

Page 82: Portrait of the Developer as the Artist - OpenTour Sofia

Cloud Foundry Layers

Infrastructure as a Service

Outer Shell

Inner Shell

Clients

67

Page 83: Portrait of the Developer as the Artist - OpenTour Sofia

Cloud Foundry Layers

Hardware (CPU, Memory, Storage, Network)

Infrastructure as a Service

Outer Shell

Inner Shell

Clients

67

Page 84: Portrait of the Developer as the Artist - OpenTour Sofia

Cloud Foundry Core

Components

Page 85: Portrait of the Developer as the Artist - OpenTour Sofia

Dynamically discoverable components No inter-component dependencies

• Launch in any order• Scale up and down independently

Monitor using HTTP end points

Design Principles

69

Page 86: Portrait of the Developer as the Artist - OpenTour Sofia

Cloud Foundry Logical View

Routers

CloudControllers App

Services

App

HealthManagerExecution Agents (DEA)

Pool

Messaging

UsersDevelopersvmc

Page 87: Portrait of the Developer as the Artist - OpenTour Sofia

71

Cloud Foundry BOSH

Page 88: Portrait of the Developer as the Artist - OpenTour Sofia

72

500 – 5,000 VMs 40+ unique node types 75+ unique software packages 75+ unique environments 2x/week cf.com updates 24x7x365 non-stop operation No-downtime deployments Reliable, robust, repeatable deployments, updates, capacity adjustments

Small teams manage many instances

Production Grade Cloud Foundry Clusters

Google style problem è Google style solution

cloudfoundry.com

production, staging, stress, qa, dev

Page 89: Portrait of the Developer as the Artist - OpenTour Sofia

73

Cloud Foundry BOSH is an open source tool-chain for release engineering, deployment, and lifecycle management of large scale distributed services•Prescriptive way of creating releases and managing systems and services• It is not a collection of shell scripts, not a pile of Perl

Built to deploy and manage production-class, large scale clusters•Production grade Cloud Foundry clusters: 500+ VMs, 40+ jobs, 75+ packages •Multi-node, multi-tier, complex clusters: e.g., our Gerrit/Jenkins Cluster

Built for devops usage and scale by a crack team of veterans•A project, not a product: command line interface, YAML, etc. •Continuous improvement, iterative development, rough edges

Cloud Foundry BOSH

github.com/cloudfoundry/bosh

Page 90: Portrait of the Developer as the Artist - OpenTour Sofia

74

BOSH: under the hood

bosh cli

redis natsdb

director healthmon

IaaS CPI

workers

stemcellagent

blobs

“BOSH is deployed by BOSH”

cloudfoundry.com

BOSH User

active jobs

disk

Page 91: Portrait of the Developer as the Artist - OpenTour Sofia

75

IaaS neutral by design

CPI: code completefunctional status: “work in progress”

vSphere: battle tested implementation, thousands of deployments

vCloud Director: “work in progress”, 2H 2012

contribute: github.com/cloudfoundry/bosh

Cloud Provider Interface (CPI)

Cloud Foundry BOSH

github.com/piston/openstack-bosh-cpi

Page 92: Portrait of the Developer as the Artist - OpenTour Sofia

76

Lessons for Developers

Page 93: Portrait of the Developer as the Artist - OpenTour Sofia

Predictions

•Software is becoming like fashion, design rules•Welcome to Babel, use the best tool for the job, embrace multiple language & heterogeneity

•Our jobs will change, build yourself out of your current job•Sysadmin jobs will morph, there will be less of them•Many opportunities open when you embrace change

77

Page 94: Portrait of the Developer as the Artist - OpenTour Sofia

Things to forget

•First normal form•Waterfall model•Single server deployment•Single language skill•Build everything from scratch•Build custom infrastructure

78

Page 95: Portrait of the Developer as the Artist - OpenTour Sofia

Things to learn

•Agile•Take risks, fail often, fail fast and learn•API Design: create the API first•UI Design, Javacript, HTML5, CSS3•A/B Testing•Open Source, Open Standards•Architecture, Distributed Computing (CAP theorem, 8 fallacies)•Cloud Platforms and APIs•Multiple types of languages (imperative, object, functional, logic)•Ability to encapsulate domain knowledge in a DSL•Build on the shoulders of giants: reuse, REST APIs•Pick your battles, choose what you need to build yourself to add value

•Learn to live in a box (embrace platform limitations) to think outside the box

•Use an App Store for distribution79

Page 96: Portrait of the Developer as the Artist - OpenTour Sofia

Redemption

Page 97: Portrait of the Developer as the Artist - OpenTour Sofia
Page 98: Portrait of the Developer as the Artist - OpenTour Sofia
Page 99: Portrait of the Developer as the Artist - OpenTour Sofia
Page 100: Portrait of the Developer as the Artist - OpenTour Sofia
Page 101: Portrait of the Developer as the Artist - OpenTour Sofia
Page 102: Portrait of the Developer as the Artist - OpenTour Sofia
Page 103: Portrait of the Developer as the Artist - OpenTour Sofia
Page 104: Portrait of the Developer as the Artist - OpenTour Sofia
Page 105: Portrait of the Developer as the Artist - OpenTour Sofia
Page 106: Portrait of the Developer as the Artist - OpenTour Sofia
Page 107: Portrait of the Developer as the Artist - OpenTour Sofia
Page 108: Portrait of the Developer as the Artist - OpenTour Sofia

The (Happy) End

Page 109: Portrait of the Developer as the Artist - OpenTour Sofia

Register today

93

http://cloudfoundry.com/signup

cfopentoursofiaUse Promo Code

To avoid approval queue waiting timeDownload Micro Cloud Foundry locallyftp://192.168.5.5/micro-v116-20121101.000204.zipEvents we do on Lanyrdhttp://lanyrd.com/2012/cloud-foundry-open-tour-sofia/