17
Your Name Cloud and agile software projects Overview and Benefits Alain Delafosse @adelafosse Guillaume Berche @gberche

Cloud for agile_sw_projects-final

Embed Size (px)

Citation preview

Your Name

Cloud and agile software projects

Overview and Benefits

Alain Delafosse @adelafosse Guillaume Berche @gberche

Welcome !

Guillaume Berche

• Orange, Y!, Kelkoo

• Cloud, PAAS, Dev

Alain Delafosse

• Capgemini, Kelkoo

• Cloud, IAAS, DevOps

• Session Contract:

Synthesis on leveraging Cloud for your agile

dev project

• Level: Beginner -> Experienced

• Audience : developers, projects managers,

architects

•Session Outline:

- Introduction

- Leveraging SAAS for software build

- Demo 1

- Running your software in the cloud

- Demo 2

- Conclusion

20 Nov 2014 2 Introduction

Agile software projects challenges

Software development tooling

• Getting complex

• Expensive to deploy and maintain

Team is agile, infrastructure is not

• Provisionning delays

• Architecture is evolving along with the business requirements changes

Agile Product definition

• Iterative requires strong collaboration

• Sometimes distributed team

• Frequent tests run

1

2 3

20 Nov 2014 3 Introduction

Cloud basics

SAAS PAAS IAAS

20 Nov 2014 4 Introduction

Cloud attributes

• Self-service & rapid provisionning

• Pay per use

• Rapid elasticity: illusion of infinite capacity

• Network based, location independence

• Cloud APIs

• Measured service, SLAs

Cloud and Agile software projects

Self-organizing teams •

Continuous attention to technical • excellence and good design--

Working software is delivered • frequently (weeks rather than--

months)--

Regular adaptation to changing • circumstances--

Welcome changing requirements • even late in development--

Agile principles

20 Nov 2014 5 Introduction

Leverage Saas for software build

• Description: Provision a software factory in the cloud

• Pro:

• Lead time, you have a software factory within minutes

• Try it with your credit card, show the benefits.

• Con

• Watch for confidentiality issues if your app is sensitive.

Scenario 1: develop in the cloud

• Description: Integrate SAAS tools into your on-premise software factory

• Pro:

• Some tools enables real-time collaboration for remote teams while most products available for private installation don’t.

• Tools remains up-to-date and patched.

• Con

• Assess integration costs and lock-in risk versus in house deployment

Scenario 2: integrate cloud/web SAAS solutions

Leverage the SaaS ecosystem can speed up agile teams bootstrap, and give access to best in class tools during the build phase.

20 Nov 2014 6 Leverage SAAS for software build

Case study : Cross browser testing

• Currently manually testing my web product on various browsers, both desktop and mobile

• http://www.gatewickairport.com/

• Need to automatically run automated tests on multiple browsers

Context

• Leverage Sauce labs offer !

• Features: systematic video recording, debugging tools. tunnelled accesses to private servers

Solution

DEMO Time !

20 Nov 2014 7 Leverage SAAS for software build

demo recording:

https://drive.google.com/file/d/0B_RQz82RzSUnNi1fenJ6VFZTeE0/view?usp=sharing

SaaS development tooling landscape

Load Test Browser testing

Product definition

Design Code / Build Release Tests Coordinate

Security testing

CI/CD

Collaboration

Specifications

SCM

Drawing

Bin Repositories

This is a selection as there are many more……

20 Nov 2014 8 Leverage SAAS for software build

Benefits Constraints

Running your software in the cloud

Other structuring choices: Iaas vs Paas Public/ private / hybrid

20 Nov 2014 9 Running your software in the cloud

Cloud landscape

20 Nov 2014 Running your software in the cloud

10

Open Paas Linux Containers

Iaas

Kubernetes

Google Container Engine

True Paas

Maturity / Adoption

Different models, different abstraction levels

Iaas Linux container Paas

compute & app delivery

x86 vm image (AMI, OVF)

+ VM parameters (accessible

thru REST metadata service,

vmwaretools)

os image (docker image)

+ ENV vars

app source or binaries:

(*.php, *.jar, *.js)

+ ENV vars

networking

L2 virtual networking: virtual nic (eth,

mac addr), public/private IP, virtual

network (CIDR)

Load Balancer (TCP, HTTP)

Managed DNS (Route 53 API)

L4 TCP port binding

L7 HTTP(S) virtual host

storage

Device block (attached device),

epheremal + persistent

Data volumes ( file system) Ephemeral file system

Object store (S3)

additional services

blob store, long term archival

CDN

RDB, NoSql, Cache, Analytics...

idem idem

20 Nov 2014 11 Running your software in the cloud

Case study: CloudFoundry paas deployment

• compile app: travel.war

• download CLI

• login

• create newrelic

• create redis

• create mysql

• push app binaries

(travel.war)

– with route, ram,

• watch logs

• watch metrics

• scale 5

DEMO Time !

20 Nov 2014 12 Running your software in the cloud

demo recording:

https://drive.google.com/file/d/0B_RQz82RzSUnRndqdjQyZ1FxWlk/view?usp=sharing

Iaas or Paas Consider IAAS if you have Consider PAAS if you have

Technology Atypical/specific needs

(protocols, language, middlewares)

Standardized software stack and

programming model

• An existing wide technical

expertise (from build, qa, run) to

manage the whole stack

• A capacity to select, integrate,

maintain many individual

heterogeneous components

Skills

A preference for reduced

complexity and a focus customer

needs rather than tech plumbing

Team

A team with tight collaboration

among dev and ops withshared

ownership of infrastructure

automation

A dev oriented team with few

competencies across the full

stack

Benefit

Risk Iaas services lock-in

Effort to maintain platform Paas platform lock-in

Freedom, good control on platform Productivity,

Time to market

20 Nov 2014 13

Cloud architecture

• Design for failure , for scalability , hence stateless

• No local data on servers, servers storage is ephemeral => move all state to services

• Data: cipher you “critical” data when running in the cloud: HTTPS, ciphered payload (CPU is not expensive)

• Separate read and writes services (CQRS pattern)

• Hybrid patterns

• Cloud overflow

• Web UI in the cloud, Core web services on premise

Cloud lock-in

• Encapsulate API usage of external services

• Balance usage of added value services versus lock-in. Automation: use the maximum of multicloud APIs: jclouds, fog, libcloud,

Developing and running: The key points

20 Nov 2014 14 Conclusion

• Conclusion: Try it during build or run • Questions ? • ROTI (Return on time invested)

– don’t forget to give your feedback • Slides to be shared, check out our twitter accounts

• Let’s meet tomorrow at Agile Innovation

• Share your own cloud adoption experience #AG14 #cloud

@gberche @alaindelafosse

20 Nov 2014 15 Conclusion

Backup slides for Q&A

20 Nov 2014 16

Public / Hybrid / Private infrastructure

•Controlable model but more

integration work required

•Private for dev and public

for run (or the opposite!)

•Mixed run mode (private for

webservices and critical

data, cloud for front-end

and CDN)

•Overflow/bursting to Cloud

• Cost might not be that effective

if you’re using basic infra

(automation is key)

• Have to deal with

confidentiality and security

• Risk of lock-in

• Reversibility to

private/dedicated hosting

• Enable access to a large

ecosystem: monitoring, logs

PUBLIC

More mature and more

comprehensive

HYBRID

Take the best of both

worlds

•Significant investments and

maintenance costs

•Much restricted offering

•Products are still maturing for

basic offers (Iaas, Paas)

•Fewer products for

specialized services

(RDBMS, NoSql, Caches,

Logs, Analytics, BigData…)

PRIVATE

Deploy a IAAS of

PAAS framework on

your premises

20 Nov 2014 17 Running your software in the cloud