Alex Bolboacă: Why You Should Start Using Docker at I T.A.K.E. Unconference 2015
Adi Bolboacă: Architecture For Disaster Resistant Systems at I T.A.K.E. Unconference 2015
-
Upload
mozaic-works -
Category
Software
-
view
86 -
download
0
Transcript of Adi Bolboacă: Architecture For Disaster Resistant Systems at I T.A.K.E. Unconference 2015
Architecture for Disaster Resistant Systems
- Resilience (materials science) -
www.mozaicworks.com
Me
Adi BolboacăProgrammer
Organizational & TechnicalTrainer & Coach
www.mozaicworks.com
Disaster Resistant System
A system's degree of resistance to disasters is a measurement of its stability under stress conditions
caused by the outside environment or by the people who manipulate it.
www.mozaicworks.com
We will talk about
● Software Architecture● Fligtht safety vs Product safety
● Risk management in Aviation vs Software● Briefing in Aviation vs Software
● Checklists● Measurements for fast feedback
● Tools and techniques to avoid disasters
www.mozaicworks.com
Architecture
Ἀρχιτέκτων = ἀρχι-τέκτωνArchitect = chief builder
www.mozaicworks.com
Pilot – Authority andResponsibility
● Operate aircraft according to regulations● Operate within the aircraft limitations
● Refuse any unsafe flight● Evaluate and approve or refuse missions
● Before departure understands request● Have all resources to perform flight
www.mozaicworks.com
Architect – Authority and Responsibility
● Focus on non-functional requirements (security, maintainabiliy, extensibility, scalability, usability, etc)
● Help the teams create standards● Enforce standards● Maximize reusage
● Modularize system with feedback from the stakeholders (eg. product roadmap, usability tests)
● Work closely with teams and code with them● Adapt architecture depending on the feedback
● Responsible for the system's health (Architecture Stewardship)
www.mozaicworks.com
Aviation – Risk Management
Is a five-step process
1. Identify the Hazard2. Asses the Hazard / Risk3. Make a Risk Decision4. Implement Controls5. Supervize / Evaluate
www.mozaicworks.com
Architect – Risk Management
1. Assess2. Brainstorm
3. Assign probability4. Estimate impact
5. Decide which to consider6. Create contingency plan
7. Create guidelines8. Gather feedback on guidelines
9. Enforce guidelines10. Go to 1.
www.mozaicworks.com
Deployment & Risk Management2. Brainstorm
1. Risk: Security between GUI and WS2. Risk: Communication to Hospitals DB
3. Risk: Storage API to stop working4. Risk: GUI to stop working
5. Risk: Cloud storage to stop working6. Risk: WS stops working
7. Risk: ...
www.mozaicworks.com
Deployment & Risk Management4. Estimate Impact
1. Risk: Security between GUI and WS → HIGH2. Risk: Communication to Hospitals DB → HIGH3. Risk: Storage API to stop working → MEDIUM
4. Risk: GUI to stop working → HIGH5. Risk: Cloud storage to stop working → HIGH
6. Risk: WS stops working → HIGH7. Risk: ...
www.mozaicworks.com
Deployment & Risk Management5. Decide Which to Consider
1. Risk: Security between GUI and WS → HIGH2. Risk: Communication to Hospitals DB → HIGH3. Risk: Storage API to stop working → MEDIUM
4. Risk: GUI to stop working → HIGH5. Risk: Cloud storage to stop working → HIGH
6. Risk: WS stops working → HIGH7. Risk: ...
www.mozaicworks.com
Deployment & Risk Management6. Create Contingency Plan
Risk: GUI to stop working → HIGH
● Measure the live system performance● Message suport when it fails
● When service stops, start automatically another service
● If service cannot be started, create new machine, start service and reroute to new machine
● Message support if failure continues for more than 5 minutes
www.mozaicworks.com
Deployment & Risk Management7. Guidelines
● Always create a deployment script● Use the deployment script to automatically spawn
new service● Always log
● Always message support about system failure
www.mozaicworks.com
Deployment & Risk Management
All these practices help us to
minimize the risks
www.mozaicworks.com
Aviation – Checklist Usage
The checklists are used:a) Before engine start
b) Before Startingc) Before takeoff
d) Cruisee) Before landingf) After landing
g) Engine shutdown
www.mozaicworks.com
Checklist – Before Engine Start
● Auxiliary fuel pump — Off● Flight controls — Free and correct
● Instruments and radios — Checked and set● Landing gear position lights — Checked
● Altimeter — Set● Directional gyro — Set
● Fuel gauges — Checked● Trim — Set
● Propeller — Exercise● Magnetos — Checked
● Engine idle — checked● Flaps — As required
● Seat belts/shoulder harnesses — Fastened● Parking brake — Off
www.mozaicworks.com
Architecture – Checklist Usage
What if we use checklists:a) Before project start
b) Before kick-off projectc) Before first sprint
d) During developmente) Before deployment
f) After deploymentg) For retrospective
www.mozaicworks.com
Checklist – Before Project Starts
● Requirements are clear● Customer needs are identified
● Final user types (personas) are identified● Architecture sketch finalized: system
diagram, deployment diagram● Architecture reviewed by another architect
● Architecture reviewed by QA● Architecture reviewed by Operations
www.mozaicworks.com
Checklist – Before kick-off
● We have the minimum architecture● The team members know their roles and
responsibilities● We have all the necessary roles in the team● The team understand the business concept
● We have enough hardware in place● All the software tools are installed and ready
www.mozaicworks.com
Checklist – Before First Sprint
● We have enough requirements clarified● The team read and understood the
requirements for the next period● The architecture is clear to the team
● We have architecture guidelines in place● Standards and team rules have been
defined and improved with the team
www.mozaicworks.com
Aviation - Measurements
Pilots use tools to continously assess the current situation
www.mozaicworks.com
Architecture - Measurements
Architects should use appropriate metrics and tools to continously assess the current
situation
The difference: metrics need to be chosen
www.mozaicworks.com
Architecture - Measurements
Number of failing tests: Integration, Performance, Security, etc
Automated = current situation
Hint: Always prefer automated metrics
www.mozaicworks.com
Architecture - Standards
● Code standards per language● Code review standards
● Tool usage standards (ie commit at least once per day)
Hint: use automated tools to enforce code standards (ie Sonar, Code Cop)
www.mozaicworks.com
Architecture - Policies
● Security Policies ● Always encrypt when outside the LAN
● Programming policies● Do not return null, always use Null Object Pattern
● Process Policies● When the architecture is not helping, talk with the
architect(s) immediately● The team takes decisions about the detailed
architecture
www.mozaicworks.com
Aviation - Practices
www.mozaicworks.com
- From Lufthansa magazine -
Always pair when a high risk is involved!
Architecture - Practices
www.mozaicworks.com
● Code review● Architecture review● Pair-programming
● Team feedback● Continous improvement
All these practices minimize the risks and make the system resistant to
disasters
General Guideline
Pilots Architects should not allow themselves to be persuaded to
attempt anything against their better judgment.
When in doubt, don't!
(Operations and Safety Procedures Guide for Helicopter Pilots, page 25)
www.mozaicworks.com
Disaster Resistant Systems
www.mozaicworks.com
A system is disaster resistant if we:
● Perform risk management before and during the project
● Use checklists to minimize mistakes● Continously assess risks and rate impact
● Use transparency and honesty in the team● Use always our better judgement
Thank [email protected]
Twitter: @adibolb
Blog: blog.adrianbolboaca.ro
www.mozaicworks.com
See the slides at http://www.slideshare.net/adibolb
References
http://upload.wikimedia.org/wikipedia/commons/8/84/Stress_Strain_Ductile_Material.png
Lufthansa Magazine
http://www.nifc.gov/aviation/av_documents/av_helicopters/SafetyBrief.pdf
http://upload.wikimedia.org/wikipedia/commons/5/5e/Tape_measure_colored.jpeg http://pixabay.com/p-41335
www.mozaicworks.com
Extend your mentoring & training capacityAccelerate learning through communities of practiceGrow your functional leaders and top talents
http://www.mozaicworks.com
@adibolb
References
http://upload.wikimedia.org/wikipedia/commons/8/84/Stress_Strain_Ductile_Material.png
Lufthansa Magazinehttp://www.nifc.gov/aviation/av_documents/av_helicopters/SafetyBrief.pdf
http://pixabay.com/p-41335http://pixabay.com/p-33364
http://pixabay.com/p-311409 http://pixabay.com/p-296438http://pixabay.com/p-29503
http://upload.wikimedia.org/wikipedia/commons/thumb/4/44/Official_policy_seal.svg/329px-Official_policy_seal.svg.png
https://www.flickr.com/photos/barrydahl/6675297699http://pixabay.com/p-155486http://pixabay.com/p-303113
https://c1.staticflickr.com/9/8067/8163592864_fa4a9ba8ed_z.jpg
www.mozaicworks.com