Si les Startups le peuvent pourquoi pas vous · As a continuousphp user I want to select Behat...

Preview:

Citation preview

Si les Startups le peuvent pourquoi pas vous ?

Qui suis-jeOswald De Riemaecker

• CEO & Co-Founder of Continuous S.A. / continuousphp©

• Cloud Architect/Agile Enthousiaste

https://lu.linkedin.com/in/oswaldderiemaecker

@oswald_odr

Il est plus difficile que jamais de rester au TOP ...

@cbinsights

Imaginez … “Et si vous étiez une Startup”

Traits d’une Startup

● Lean Startup

Traits d’une Startup

● Lean Startup

● Agilité

Traits d’une Startup

● Lean Startup

● Agilité

● DevOps

Regardons maintenant un cas d’étude

Scrum pour la gestion de Produit Agile

As a continuousphp user I want to select Behat Testing Framework in the Testing Settings

As a continuousphp user I want to provide the path(s) of application behat.yml

As a continuousphp user I want to provide the target(s) I want to run before starting behat scenarios

As a continuousphp user I want to make the build blocking if behat fails

………...

Product Backlog

- As a continuousphp user I want to select Behat Testing Framework in the Testing Settings

- As a continuousphp user I want to provide the path(s) of application behat.yml

- As a continuousphp user I want to provide the target(s) I want to run before starting behat scenarios

- As a continuousphp user I want to make the build blocking if behat fails

……

Prio

riser

Gestion du flux de travail (Kanban)

As a continuousphp user I want to select Behat Testing Framework in the Testing Settings

As a continuousphp user I want to provide the path(s) of application behat.yml

As a continuousphp user I want to provide the target(s) I want to run before starting behat scenarios

As a continuousphp user I want to make the build blocking if behat fails

………...

Product Backlog

TODO (3) WIP (2) DONE

PullAs a continuousphp user I want to select Behat Testing Framework in the Testing Settings

As a continuousphp user I want to provide the path(s) of application behat.yml

As a continuousphp user I want to provide the target(s) I want to run before starting behat scenarios

As a continuousphp user I want to make the build blocking if behat fails

………...

Gestion du flux de travail (Kanban)

As a continuousphp user I want to select Behat Testing Framework in the Testing Settings

As a continuousphp user I want to provide the path(s) of application behat.yml

As a continuousphp user I want to provide the target(s) I want to run before starting behat scenarios

As a continuousphp user I want to make the build blocking if behat fails

………...

Product Backlog

TODO (3) WIP (2) DONE

Gestion du flux de travail (Kanban)

As a continuousphp user I want to select Behat Testing Framework in the Testing Settings

As a continuousphp user I want to provide the path(s) of application behat.yml

As a continuousphp user I want to provide the target(s) I want to run before starting behat scenarios

As a continuousphp user I want to make the build blocking if behat fails

………...

Product Backlog

TODO (3) WIP (2) DONE

Définition du terminé (Done)● Une Pull Request est ouverte de la branche de feature vers la branche master● Tous les tests passent sur le pipeline de la Pull Request ● Un environnement éphémère est prêt pour faire des tests d'acceptance pour

cette Pull Request si les tests sont passés● Après les tests d’acceptance, la Pull Request est acceptée et mergée dans la

branche master● Une fois mergé, le pipeline de la master mets à jour la production.

TODO (3) WIP (2) DONE

Environnement d'acceptance à la demande● Infrastructure en tant que dépendance● Fournisseur de cloud (IaaS)

○ Infrastructure Codée reproductible à la demande pour n’importe quel environment○ réduire les coûts (OPEX vs CAPEX)

[aws-cf-runstack] 2016-03-17T14:38:03+00:00: AWS::CloudFormation::Stack (CREATE_IN_PROGRESS)

[aws-cf-runstack] 2016-03-17T14:38:25+00:00: AWS::EC2::SecurityGroup (CREATE_COMPLETE)

[aws-cf-runstack] 2016-03-17T14:38:25+00:00: AWS::EC2::EIP (CREATE_COMPLETE)

[aws-cf-runstack] 2016-03-17T14:39:02+00:00: AWS::Route53::RecordSetGroup (CREATE_COMPLETE)

[aws-cf-runstack] 2016-03-17T14:39:20+00:00: AWS::IAM::Role (CREATE_COMPLETE)

[aws-cf-runstack] 2016-03-17T14:39:24+00:00: AWS::IAM::Policy (CREATE_COMPLETE)

[aws-cf-runstack] 2016-03-17T14:41:24+00:00: AWS::IAM::InstanceProfile (CREATE_COMPLETE)

[aws-cf-runstack] 2016-03-17T14:42:20+00:00: AWS::EC2::Instance (CREATE_COMPLETE)

[aws-cf-runstack]

WebServerIP: 52.19.236.43

WebServerURL: http://demo.subsite-starterkit.ec-europa.continuous.lu/

Le branching model et pipelines

Master

Feature #1

Fork

Le branching model et pipelines

Master

Feature #1

Le branching model et pipelines

Master

Feature #1PR #1

Le branching model et pipelines

Master

Feature #1

Le branching model et pipelines

Master

Feature #1

Le branching model et pipelines

Master

Feature #1

Infra Éphémère

Le branching model et pipelines

Master

Feature #1

Infra ÉphémèrePR Accepté

Le branching model et pipelines

Master

Feature #1

Infra Éphémère

Le branching model et pipelines

Master

Feature #1

Production

Stratégie de Déploiement● Livraison Continue● Déploiement Continu

Challenge● Faites que votre Application soit Deployment-ready/Cloud-ready

○ Phing, Rake, Make, Grunt

...

PullPush

Challenge● Brisez vos dépendances

○ Service Adapter, Gestionnaire de Package, Gestion de versions, Injection de dépendances

File System

Challenge● Migration de base de données

○ Phinx, Doctrine Migration, Liquibase

V2.1.1 V2.1.2

Challenge● Automatisez vos tests (spécification par l’exemple)

○ Behat, PHPUnit, rspec, jasmine

Challenge● Accélérez la gestion de vos systèmes (Système provisioning)

○ Vagrant, Chef, Kitchen, Ansible, Puppets, Packer, Docker

Challenge● Migrez vers une infrastructure Cloud hybride ou complète

Development Staging ProductionTesting

Quelques références complémentaires