1. Your Name
Cloud and agile software projects Overview and Benefits
Alain Delafosse @adelafosse
Guillaume Berche @gberche
2. 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
3. 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
5. 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
6. 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
7. 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
8. 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
9. 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
10. 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
11. 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
12. 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
13. 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
14. 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
15. •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
17. 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