Développement dans le cloud - Sacha Labourey

Preview:

DESCRIPTION

Session du 18 octobre 2011 avec Sach Labourey de Cloudbees pour parler du Développement dans le cloud

Citation preview

©2011 Cloud Bees, Inc. All Rights Reserved

Développeurs, bienvenue dans le cloud18 octobre 2011 – Lyon JUG

Sacha LaboureyCEO, CloudBees, Inc.

2©2011 CloudBees, Inc. All Rights Reserved

• Né en 1975 à Neuchâtel (Suisse)• JBoss

– Développeur du clustering - 2001– GM Europe de JBoss - 2003– CTO - 2005

• RHT– Acquisition de JBoss en juin 2006– co-GM de la division middleware chez RHT– Départ de RHT en avril 2009

• CloudBees– Fondé en avril 2010– Environ 30 employées, 6 pays

Présentation – Sacha Labourey

X

3©2011 CloudBees, Inc. All Rights Reserved

• Petit retour en arrière…• L’inexorable Cloud Computing• Ce que signifie le Cloud pour les

développeurs?• La plateforme CloudBees• Prévisions Météorologiques

Agenda

Un petit retour en arrière …

©2011 CloudBees, Inc. All Rights Reserved

5

• Au 19e siècle, les premiers générateurs électriques font leur apparition

• Certaines entreprises installent leur propre générateur afin de satisfaite leur propres besoins– Complexes, délicats,

très coûteux– Absolument pas accessibles

au consommateurs

Les premier consommateurs

©2011 CloudBees, Inc. All Rights Reserved

6

• Des villes investissent dans des usines électriques

• A la fin du 19e siècle, les premières usines électriques apparaissent– 1878 – Exposition Universelle de Paris– 1879 – St-Moritz (Grisons, Suisse)– 1882 – Londres & NYC – 1883 – Grenoble– 1884 – Le Locle

L’électricité se démocratise…

©2011 CloudBees, Inc. All Rights Reserved

7

Quelques exemples (Le Locle)

©2011 CloudBees, Inc. All Rights Reserved

8

De belles constructions (La Chaux-de-Fonds)

©2011 CloudBees, Inc. All Rights Reserved

9

• Installations très coûteuses• Pas de standard

– Courant continu ou alternatif?– Quelle fréquence?– 110V, 220V, 230V, 240V, autre?– Prise électrique? Quel format?

Et pourtant, ce n’est pas si simple

©2011 CloudBees, Inc. All Rights Reserved

10

Example: Paris (env. 1902)

?

Source: http://seaus.free.fr/spip.php?article601

©2011 CloudBees, Inc. All Rights Reserved

11

« The Grid »

Producteur A

Nucléaire

Producteur B

Solaire

Producteur C

Hydrolique

Producteur D

Thermique

Producteur ANucléaire

Producteur BSolaire

Producteur DThermique

Producteur CHydraulique

Distributeur

Autres Grilles

Et aujourd’hui? Vive les standards!

Consommateurs

©2011 CloudBees, Inc. All Rights Reserved

12

• L’ensemble de la chaîne de consommation de l’électricité est *standardisée*– Les producteurs d’électricité ne sont pas liés à un

consommateur en particulier– La distribution de l’électricité est standardisée– L’accès au réseau électrique est standardisé

• 230V, 50Hz, prises C+J, etc.

• Le consommateur est « libre »– On ne se soucie plus de « où » ni « comment » est créée

l’électricité– On ne se soucie pas de la façon dont elle est acheminée

chez soi– On ne se soucie pas de « comment » on consomme

l’électricité

L’électricité est devenue une commodité

©2011 CloudBees, Inc. All Rights Reserved

13

L’informatique actuelle ressemble aux générateur électriques du 19e siècle

Flashback

Premier Data-Center de Google

L’IT pourrait-elle évoluer de manière identique??

©2011 CloudBees, Inc. All Rights Reserved

14

Le Cloud Computing

Centrales électriques

Cloud Providers

La Grilleélectrique

Internet

Prise électrique

Browser Web

©2011 CloudBees, Inc. All Rights Reserved

15

• En 2006, Amazon lance AWS– Merci Jeff– Taille double chaque année

• De nombreux fournisseurs se « cloudifient »– Hosting providers cloud providers– Virtualization layers IaaS– ISVs SaaS

La révolution « Cloud » est en marche!

©2011 CloudBees, Inc. All Rights Reserved

16

Data Centers – quelques examples

17

Croissance des data centers

18©2011 CloudBees, Inc. All Rights Reserved

Qu’est-ce que cela signifie pour moi, en tant que développeur?

Oui mais…

©2011 Cloud Bees, Inc. All Rights Reserved

Cloud 101

Le Cloud pour les pas si nuls

20©2011 CloudBees, Inc. All Rights Reserved

Pile Logicielle Typique

Serveur

Hypervisor

VM

AS

JVM

LB

Application

Installer

Monitorer

Patcher

Mettre à jour

Valider la Pile

VOUS

21©2011 CloudBees, Inc. All Rights Reserved

Serveurs

OS

VM

AS

JVM

LB

Applications

Installer

Monitorer

Patcher

Mettre à jour

Valider la Pile

Cloud Computing: comment faire? Qui fait quoi?

Cloud Provider

?

22

Services Cloud - Typologie

©2011 CloudBees, Inc. All Rights Reserved

"Cloud computing is on-demand access to virtualized IT resources that are housed outside of your own data center, shared by others, simple to use, paid for via subscription, and accessed over the Web.“

- John Foley, Information Week

SaaS

PaaS

IaaS

23©2011 CloudBees, Inc. All Rights Reserved

• Amazon – l’exemple le plus populaire• Blocs Lego de serveurs, VM’s, DBs, AS etc• Environnement de développement:

– Flexible mais compliqué– “Donne-moi un serveur, un OS, une

plateforme de virtualisation, un AS, une base de données. Je vais gérer le tout, de A à Z.”

• Point de vue de l’utilisateur– Applications et environnements sur mesure

IaaS

24©2011 CloudBees, Inc. All Rights Reserved

• SalesForce.com, Zendesk, NetSuite, etc.• Environnement de développement:

– Rigide – principalement par la CONFIGURATION

– Lorsqu’il est disponible, le développement prend place au sein du SaaS directement.

• Point de vue de l’utilisateur– Applications typiques– Mise en route très rapide– Lock-in souvent très élevé

SaaS

25©2011 CloudBees, Inc. All Rights Reserved

• CloudBees, BeansTalk, CloudFoundry, etc.• Environnement de développement:

– “Donne-moi mon environnement habituel et gère le reste pour moi – les serveurs, la montée en charge, etc.””

– Beaucoup de “philsophies”différentes selon les PaaS!

• Point de vue de l’utilisateur– Applications sur-mesure

PaaS

26©2011 CloudBees, Inc. All Rights Reserved

1ère décision: IaaS, SaaS ou PaaS?

IaasJongle avec les technologies

SaasContraint

PaasFlexible

Mais il y a PaaS et PaaS…

©2011 Cloud Bees, Inc. All Rights Reserved

PaaS 1.0 – Première approche

Le jour où vous avez décidé de remplacer l’IT

©2011 Cloud Bees, Inc. All Rights Reserved

29

• Vous ne changez pas la façon dont vous développez et déployez vos applications

• A la place d’utiliser un serveur SUN/HP/IBM/XYZ, vous utilisez les serveurs virtuels d’un IaaS (à la EC2)

PaaS 1.0

©2011 Cloud Bees, Inc. All Rights Reserved

?

30

PaaS 1.0 – Félicitations!

©2011 Cloud Bees, Inc. All Rights Reserved

“Grande” nouvelle: vous êtes désormais responsable du data-center!

31©2011 Cloud Bees, Inc. All Rights Reserved

Passer au PaaS 1.0

Configure OS Secure OS Setup JVM

Install AS on OS Configure AS Secure AS

provision nodesInstall load-

balancer (LB)Configure LB

Secure LBSetup BC for

clusterQA cluster

Configure DNS

Provision node:

Provision cluster:

Provision node Install DB Configure DB

Secure DB Setup BC for DB

Provision DB:

Provision cluster

Provision DB Deploy schema

Deploy App to each node

Deploy App:

(not a transparent update process)

Analyse sec. bulletins

Analyse QA bulletins

Analyse AS/OS logs

maintain OS maintain JVM maintain AS

maintain DB

Manage environment (recurring)

maintain FW Validate/QA stack

Measure App performance

Acquire Hardware

Provision node

Update Cluster Update LB

Metering/Scaling (recurring)

Update Security

Deploy App to traditional Java platform:

Deploy App to PaaS 1.0 Java platform:

Configure OS Secure OS Setup JVM

Install AS on OS Configure AS Secure AS

provision nodesInstall load-

balancer (LB)Configure LB

Secure LBSetup BC for

clusterQA cluster

Configure DNS

Provision node:

Provision cluster:

Provision node Install DB Configure DB

Secure DB Setup BC for DB

Provision DB:

Provision cluster

Provision DB Deploy schema

Deploy App to each node

Deploy App:

(not a transparent update process)

Analyse sec. bulletins

Analyse QA bulletins

Analyse AS/OS logs

maintain OS maintain JVM maintain AS

maintain DB

Manage environment (recurring)

maintain FW Validate/QA stack

Measure App performance

Acquire Hardware

Provision node

Update Cluster Update LB

Metering/Scaling (recurring)

Update Security

32©2011 CloudBees, Inc. All Rights Reserved

• Gérer ses ressources IaaS directement vous offre l’élasticité des ressources (sans CAPEX), mais…

• La quantité d’IT à effectuer est généralement … plus élevée!– Toutes les activités traditionnelles persistent

(mises à jour OS+JVM+AS+DB++, etc.)– Auxquelles s’ajoutent les activités spécifiques au cloud– Et devinez qui sera responsable de ce nouvel

ensemble?

• Conseil: vous devriez passer votre tour…

PaaS 1.0 – Les conséquences

PaaS 1.5

Egalement connu sous le nom de “Hosting 2.0”

©2010 Cloud Bees, Inc. All Rights Reserved

34

• Une pile logicielle “pré-installée” et “pré-configurée” est mise à votre disposition– “Platform as a SOFTWARE”

• Avec de jolies interfaces graphiques afin de cacher la complexité

PaaS 1.5

©2011 Cloud Bees, Inc. All Rights Reserved

35

Passer au PaaS 1.5

Configure OS Secure OS Setup JVM

Install AS on OS Configure AS Secure AS

provision nodesInstall load-

balancer (LB)Configure LB

Secure LBSetup BC for

clusterQA cluster

Configure DNS

Provision node:

Provision cluster:

Provision node Install DB Configure DB

Secure DB Setup BC for DB

Provision DB:

Provision cluster

Provision DB Deploy schema

Deploy App to each node

Deploy App:

(not a transparent update process)

Analyse sec. bulletins

Analyse QA bulletins

Analyse AS/OS logs

maintain OS maintain JVM maintain AS

maintain DB

Manage environment (recurring)

maintain FW Validate/QA stack

Measure App performance

Acquire Hardware

Provision node

Update Cluster Update LB

Metering/Scaling (recurring)

Update Security

Deploy App to traditional Java platform:

Configure AS

provision nodes Configure LB

Setup BC for cluster

QA cluster

Configure DNS

Provision node:

Provision cluster:

Provision node

Setup BC for DB

Provision DB:

Provision cluster

Provision DB Deploy schema

Deploy App to each node

Deploy App:

(not a transparent update process)

Analyse sec. bulletins

Analyse QA bulletins

Analyse AS/OS logs

maintain OS maintain JVM maintain AS

maintain DB

Manage environment (recurring)

maintain FW Validate/QA stack

Measure App performance

Provision node

Update Cluster Update LB

Metering/Scaling (recurring)

Update Security

Deploy App to PaaS 1.5 Java platform:

©2011 CloudBees, Inc. All Rights Reserved

36

• Le début de votre projet a pu être rapide– Mais c’est un piège!

• Les éléments de travail restent des blocs IaaS– Serveurs, VM, AS, load-balancer, DB, etc.

• VOUS ÊTES TOUJOURS LE RESPONSABLE– Il s’agit toujours et encore de décisions IT– Vous êtes désormais en charge d’une partie

de l’IT• Mais vos collègues de l’IT étaient probablement

meilleurs

PaaS 1.5

©2011 Cloud Bees, Inc. All Rights Reserved

PaaS 2.0 –PaaS natifs

Bienvenue dans le monde de la virtualisation d’applications

©2010 Cloud Bees, Inc. All Rights Reserved

38

• Les applications et les données sont au centre du monde!– Oubliez les serveurs, VMs, load-balancers, etc.

• Les concepts du cloud sont appliqués aux applications et aux données directement– Pay as you go, elasticity, on-demand, etc.– Pas besoin de gérer les mises à jour, les patches,

la montée en charge, la tolérance aux pannes, etc.

Ceci est un Service, pas un Logiciel.

PaaS 2.0

©2011 Cloud Bees, Inc. All Rights Reserved

39

Cloud 2.0 - CloudBees

Configure OS Secure OS Setup JVM

Install AS on OS Configure AS Secure AS

provision nodesInstall load-

balancer (LB)Configure LB

Secure LBSetup BC for

clusterQA cluster

Configure DNS

Provision node:

Provision cluster:

Provision node Install DB Configure DB

Secure DB Setup BC for DB

Provision DB:

Provision cluster

Provision DB Deploy schema

Deploy App to each node

Deploy App:

(not a transparent update process)

Analyse sec. bulletins

Analyse QA bulletins

Analyse AS/OS logs

maintain OS maintain JVM maintain AS

maintain DB

Manage environment (recurring)

maintain FW Validate/QA stack

Measure App performance

Acquire Hardware

Provision node

Update Cluster Update LB

Metering/Scaling (recurring)

Update Security

Déployer l’Application

TERMINÉ

• Pas besoin d’instancier des serveurs, des load-balancers, des bases de données, etc.

• L’environnement est constamment géré et monitoré

• La montée en charge se fait en temps réel

• La tolérance aux pannes est intégrée

Deploy App to traditional Java platform:

Deploy App to CloudBees:

©2011 CloudBees, Inc. All Rights Reserved

40

• AWS and Azure sont une approche “naïve” au PaaS i.e. IaaS+Middleware• Les approches modernes fournissent une abstraction de l’infrastructure• Certaines plateformes (t.q. GAE) restreignent la capacité du développeur à faire

ce qu’il désire (API réduites, etc.), ce qui réduit d’autant la capacité de migrer une application existante depuis un AS

Survol (subjectif) de quelques approches

©2011 CloudBees, Inc. All Rights Reserved

Flexibilité/Compatibilité

SaaS-likeReally “as a SERVICE”

IaaS-like“do-it-yourself”

AzureGAE

CloudBees

VMWCF

ORCL

BeansTalk

OS Flex is server-centric

Basic orchestration of AWS blocks

.Net-on-a-Server, with only … more 

constraintsMulti-runtime with little Java-depth, focused on-premise

JVM-based offering - fully server-agnostic

Oldest SaaS-like offering but with 

lots of env. constraints

RHTOS

ASP model mostly!

41©2011 CloudBees, Inc. All Rights Reserved

• Puis-je avoir un “PaaS Privé”?– Oui, bien sûr– Tentant: promesse de pouvoir personnaliser

l’environnement!

• Mais…– Une grande partie de la valeur d’un PaaS provient du

“S”: SERVICE• Avec un PaaS public, vous out-sourcez vos

OPERATIONS&DEVOPS!

– Avec un PaaS privé, vous bénéficiez d’une délimitation plus propre entre DEV et IT … mais vous restez en charge des opérations

• Gain nettement réduit!

Un dernier avertissement

Pourquoi est-ce que je vous raconte ça?

Entrez dans le monde de CloudBees!

©2011 Cloud Bees, Inc. All Rights Reserved

43©2011 Cloud Bees, Inc. All Rights Reserved

A Propos de CloudBees

Notre Mission

Stratégie

Become the leading Java™ Platform as a Service (PaaS)

En quoi noussommes différents

CloudBees satisfait l’ensemble du cycle de vie d’une application, dans le cloud, du développement au déploiement.

CloudBees est le leader du support de Java, en profondeur.

CloudBees abstrait complètement l’infrastructure et permet aux développeurs de se focaliser à 150% sur ce qu’ils font le mieux: développer la meilleure application qu’il soit.

Pas de serveurs. Pas de machines virtuelles. Pas d’IT. Juste vous.

DEV@cloud – Services Clouds en phase de développement RUN@cloud – Services d’exécution d’applications Java

44

Sacha LaboureyCEO

Co-founder of JBossGM JBoss EMEA, then JBoss CTO.  After JBoss acquisition by Red Hat, co-GM middleware division, left in March 2009; 

Adrian BrockArchitect

Chief Scientist at JBoss, Office of the JBoss CTO at Red HatLed most of JBoss AS key technologies

Michael NealeArchitect

Senior engineer at Red HatLeading key JBoss-in-the-cloud projects at Red Hat

Ryan CampbellArchitect

JBoss QA manager at JBoss and then Red Hat; Java Enterprise Developer at Debix

Spike WashburnArchitect

Founder Stax.  Middleware engineer and Dev Mgr. IBM WebSphere  Allaire, Macromedia, Aptana and Microsoft.

The CloudBees Team

©2011 Cloud Bees, Inc. All Rights Reserved

Kohsuke KawaguchiArchitect

Founder and lead developer of Hudson

Vivek PandeyArchitect

Senior Staff Engineer at Sun Microsystems, Inc.Specialist in Java and dynamic languages, Glassfish and lead of Sun’s Web Services stack

François DécheryServices

Dir. Services EMEA at JBoss, Dir. JBoss Support at Red Hat, Dir. Support Partners at Red Hat, KPMG Peat Marwick, Sun Microsystems, Metaware, Infor

Bob BickelAdvisor

GM HP middleware/Bluestone, VP Strategy & Business Dev at JBoss; Hyperic, Metaverse, Ringside Networks, eXo Platform and more

Proven team of developers and entrepreneurs

45

18 mois dans le rétroviseur

©2011 CloudBees, Inc. All Rights Reserved

04.2010 – start of 

CloudBees

04.2010 – Plan for v1.0 locked-down

April 2010

may june july aug. sept. oct. nov. dec. jan. feb.

08.2010 – release of 

DEV@cloud Beta

10.2010 – InfraDNA joins CloudBees

12.2010 – Stax.net joins CloudBees

1.2011 – DEV@ & 

RUN@ go GA

10.2010 - Raises Series-A

From Matrix

mar. apr. may.

04.2011 – DEV@cloud goes for-pay

05.2011 – RUN@cloud goes for-pay

June

06.2011 – CloudBees Ecosystem

July Aug. Sept.

7.2011 – Series-BFrom LightSpeed Venture Partners

10.2011 – Organizes 

Jenkins Conf.

10.2011 – First Java EE PaaS in GA

Oct.

46©2011 Cloud Bees, Inc. All Rights Reserved

Cloud Services Market

"Cloud computing is on-demand access to virtualized IT resources that are housed outside of your own data center, shared by others, simple to use, paid for via subscription, and accessed over the Web.“

- John Foley, Information Week

SaaS

PaaS

IaaS

47©2011 CloudBees, Inc. All Rights Reserved

Pourquoi CloudBees est le meilleur PaaS?

Configure OS Secure OS Setup JVM

Install AS on OS Configure AS Secure AS

provision nodesInstall load-

balancer (LB)Configure LB

Secure LBSetup BC for

clusterQA cluster

Configure DNS

Provision node:

Provision cluster:

Provision node Install DB Configure DB

Secure DB Setup BC for DB

Provision DB:

Provision cluster

Provision DB Deploy schema

Deploy App to each node

Deploy App:

(not a transparent update process)

Analyse sec. bulletins

Analyse QA bulletins

Analyse AS/OS logs

maintain OS maintain JVM maintain AS

maintain DB

Manage environment (recurring)

maintain FW Validate/QA stack

Measure App performance

Acquire Hardware

Provision node

Update Cluster Update LB

Metering/Scaling (recurring)

Update Security

(transparent, multi-version,HA, scalable)

• Pas besoin d’instancier des serveurs, des load-balancers, des bases de données, etc.

• L’environnement est constamment géré et monitoré

• La montée en charge se fait en temps réel

• La tolérance aux pannes est intégrée

• On fait « Ops », vous faites « Dev »

Deploy App to traditional Java platform

Deploy App to CloudBees

DEPLOY

48

Public Edition - IaaS Providers

©2011 CloudBees, Inc. All Rights Reserved

CloudBees Platform as a Service

Continuous Deployme

ntProduction

Build

Test

Provisioning

Maintenance

Jenkins

SaaS Vendor Applications

Enterprise UserApplications

JVM – Java EEJava, Python, Scala,

CloudBees Core Platform Services

RUN@DEV@

Repositories

Data Services

MeteringBilling

MonitoringManagement

Messaging IdentityLogging/Auditing

Back-end services

Runtime services

Development Projects

CloudBees Ecosystem

GIT Maven …SVN

APIs

CloudBees Smart

Plugins

Databases

Other SaaS

On Premise

Private Edition - On-Premise

49

Public Edition - IaaS Providers

©2011 CloudBees, Inc. All Rights Reserved

CloudBees Platform as a Service

Continuous Deployme

ntProduction

Build

Test

Provisioning

Maintenance

Jenkins

SaaS Vendor Applications

Enterprise UserApplications

JVM – Java EEJava, Python, Scala,

CloudBees Core Platform Services

RUN@DEV@

Repositories

Data Services

MeteringBilling

MonitoringManagement

Messaging IdentityLogging/Auditing

Back-end services

Runtime services

Development Projects

CloudBees Ecosystem

GIT Maven …SVN

APIs

CloudBees Smart

Plugins

Databases

Other SaaS

On Premise

Private Edition - On-Premise

Code

BuildTest

Deploy

Stage Deploy Scale

Iterate

50©2011 CloudBees, Inc. All Rights Reserved

51

• CloudBees couvre l’ensemble du cycle de vie de l’application – “dev-to-prod”– Développement, build, tests, déploiement, maintenance,

etc.

• Focalisé sur Java et la JVM– “profondeur, use-cases”– Support pour des frameworks et langages multiples:

EE6-WP, Spring, Play, Scala, ColdFusion, JRuby, etc.

• Abstrait l’infrastructure du développeur– C’est quoi un serveur?

• Disponible en GA – “le future c’est maintenant!”– L’ensemble est disponible en GA, avec de vrais clients

qui déploient des applications critiques dessus.

Elements clefs

©2011 CloudBees, Inc. All Rights Reserved

52

CloudBees: End-to-End Application Lifecycle

©2011 Cloud Bees, Inc. All Rights Reserved

App Project

Deploy

DEV@cloud RUN@cloud

Elastic AppElastic AppElastic AppSource

Control

JenkinsBuild/Test

Push

53©2011 CloudBees, Inc. All Rights Reserved

• Lose It!– Application mobile pour gérer votre consommation– 1.5 millions de clients– 20’000 transactions par minute en charge de pointe

• Et… 5 développeurs seulement!– Pas d’IT, pas de serveurs, pas de DevOps– Focus exclusif sur le développement de leur application– Tout est géré par CloudBees (PaaS + DB)

• Ceci représente un niveau de productivité inégalé– Ceci est possible AUJOURD’HUI– Comment comptent faire les acteurs du marché pour rester

compétitif?

Example: LoseIt!

54

• Le Cloud est la nouvelle plateforme universelle

• D’ici à 2020, >80% des charges de calculs auront lieu dans des clouds publics– Vous n’acheterez plus de logiciel SaaS– L’informatique “sur site” et “sur mesure” sera du

passé• Plus lent, moins sûr, distant de “l’action”

• Et entre maintenant et 2020?– Des sociétés vont naître sur le cloud directement et

forcer les vendeurs traditionnels à devenir compétitifs

• Les développeurs vont initier ce changement (oui, vous.)– (Pas votre CIO)– Vous souvenez-vous de l’Open Source? Idem.

Le Cloud – Météo

©2011 Cloud Bees, Inc. All Rights Reserved

55©2011 CloudBees, Inc. All Rights Reserved

• Et maintenant, qu’attendez-vous? • Enregistrez-vous sur CloudBees.com, c’est gratuit et

complet:– Jenkins as a Service– Repositories: Git, SVN, Maven/DAV– MySQL as a Service– Runtime PaaS, Java EE, etc.– Elasticity, clustering, HA, etc.– Eclipse plugin– Programme gratuit étendu pour projet Open Source

https://grandcentral.cloudbees.com/account/signup

Rejoignez le côté clair de la Force!

56

Merci!

©2011 Cloud Bees, Inc. All Rights Reserved

Hier

Extra IT

CloudBees

Build. Test. Run.

No IT

Recommended