A agile journey from Scania with tips on working practices and pitfalls. Cultural and technical ones. Was arranged by Meetup: Go Agile! - Stockholm at the 3 office, 2015-08-12.
An agile journey - Scania Connected Services at Meetup Go Agile - Stockholm (2015-08-12)
1. An agile journey
Pitfalls and working practices
Anders Lundsgård
Scania Connected Services
Go Agile! – Stockholm, 2015-08-12
2. Smartphone access
to driver/vehicle
data
Scania Connected Services
FMP
Communication
Servers
Web Servers
Monitoring
Report
Email and
SMS
remiders/
alarms
Fleet
Management
Portal
Remote Diagnosis
Current status message
every minute
Web Service
Interface
FMP
MPMP
50+ engineers
2 TB of data
.NET
AngularJS
3. About me
Anders Lundsgård
Senior Engineer (Developer, Architect)
Scania Connected Services
@anderslundsgard
2003 2008 2015
Small Startup Big Enterprise
4. Disclaimer #1
The opinions expressed in this presentation and on the following
slides are solely those of the presenter and not necessarily those
of Scania as a whole.
5. Disclaimer #2
Tools are only random selected. Scania does not value these
more than those not mentioned.
6. Started to
automate
manual tasks
Short summary
2008 2015
MAJOR release
failure
2010 20122009 2011 2013 2014
Started to do
Continuous
Integration
(as we thought)
Started to do
Continuous
Integration
(as we think )
Integration
Driven
Development
No Projects!
Continuous Deployment
DevOps
Microservices
iOSS Model
Agile > Scrum
No test team!
Best lead times from commit to Prod 3-12 months 1-2 month 1-14 days
19. Automation – Deployment Pipeline
Version Control
Pull & Push several
times a day
Continuous
Integration Server
- Build
- Test
- Package
Deploy Server
Target Servers
(Dev, Staging, Prod)
Version Everything
- Code
- Tests
- Configuration
- Database
- Infrastructure
24. DB
Web1 Web2
Load balancer
1. Add new schema
2. Write to both schemas
3. Backfill historical data
4. Read from new schema
5. Remove writes to old schema
6. Remove old schema
28. All Infra
needs
User Interface
Service
1
Service
2 Service
5
Service
7
Service
8
Service
10
Service
12
Service
14
Service
3
Service
4
Service
6
Service
9
Service
11
Service
15
Service
13
Microservices
All Infra
needs
All Infra
needs
All Infra
needs
All Infra
needs
All Infra
needs
All Infra
needs
All Infra
needs
GUI
Database
Infra
Business
Logic
Why Microservices?
1. Autonomous teams
2. Build, Test, Deploy SPEED
30. We at infra need to be an enabler for developers.
Enable automatic deployments and roll-backs.
Creating tools/dashboards with relevant KPI’s so that
the developer can fast and easily see the consequences
of a deployment.
- Mattias Järnhäll, Group manager Scania IT
DevOps definition
33. Level 1
Level 2+3
Infrastructure As A Service
Infra/
Operations
Feature
Team
Feature
Team
Feature
Team
Feature
Team
GUI
Business
Logic
Database
Virtual Machine Integration Network Change Management Database Monitoring
Forward
34. Infrastructure As A Service
Infra/
Operations
Feature
Team
Feature
Team
Feature
Team
Feature
Team
GUI
Business
Logic
Database
Virtual Machine Web server Load Balancer Change Management Monitoring
You build it You
run it!
Infrastructure
as code
Cultural Technical
35. Database tests
(FeatureToggle MS)
1. Create SQL Server
2. Create empty database
3. Run delta scripts
4. Run Integration tests
5. Delete Server
6. Result in Team City
Check-in
Why is this nice?
No available is server required to run the tests
Everything needed is created from source
43. Inspired by
Martin Fowler Jez Humble Adrian Cockcroft
Agile Manifesto
Continuous Integration
Continuous Delivery
Lean Enterprise
DevOps
Microservices
Water – Defines the upfront project planning process that typically happens between IT and the business.
Scrum – An iterative and adaptive approach to achieving the overall plan that was first laid out in the 'Water' stage.
Fall – A controlled, infrequent production release cycle that is governed by organizational policy and infrastructure limitations.
(From: http://www.infoq.com/news/2011/12/water-scrum-fall-is-the-norm)
Water – Defines the upfront project planning process that typically happens between IT and the business.
Scrum – An iterative and adaptive approach to achieving the overall plan that was first laid out in the 'Water' stage.
Fall – A controlled, infrequent production release cycle that is governed by organizational policy and infrastructure limitations.
(From: http://www.infoq.com/news/2011/12/water-scrum-fall-is-the-norm)
http://theagileadmin.com/what-is-devops/
You have still automation to do if…
You can’t have a dev environment up and running with one single command
Someone does manual regressions
Prepare test data on test environment
You have to order a server
Anyone have to log in to a server
Someone does manual installations
”It’s a trade from code complexity to operational complexity”
Martin Fowler:
https://www.youtube.com/watch?v=wgdBVIX9ifA
http://martinfowler.com/articles/microservices.html
Adrian Cockcroft:
https://www.youtube.com/watch?v=nMTaS07i3jk&feature=youtu.be
Gene Keen, Randy Shoup
http://youtu.be/MRa21icSIQk 43:00
Randy Shoup:
http://gotocon.com/dl/goto-cph-sept-2014/slides/DeanWampler_and_EvaAndreasson_and_KevlinHenney_and_RandyShoup_WheresCaptainKirkChartingACourseThroughEnterpriseArchitecturePartI.pdf
http://theagileadmin.com/what-is-devops/
What is Chaos Monkey?
Chaos Monkey is a service which runs in the Amazon Web Services (AWS) that seeks out Auto Scaling Groups (ASGs) and terminates instances (virtual machines) per group. The software design is flexible enough to work with other cloud providers or instance groupings and can be enhanced to add that support. The service has a configurable schedule that, by default, runs on non-holiday weekdays between 9am and 3pm. In most cases, we have designed our applications to continue working when an instance goes offline, but in those special cases that they don't, we want to make sure there are people around to resolve and learn from any problems. With this in mind, Chaos Monkey only runs within a limited set of hours with the intent that engineers will be alert and able to respond.
Zerg demo
http://zerg.erlangonxen.org/
http://theagileadmin.com/what-is-devops/
Other inspirers: Eric Ries, Gene Kim, Randy Shoup, …