Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Spyros Lambrinidis
CTO PeoplePerHour
25
th
April 2016, Athens
Shifting from agility to anti-fragility
Some of the agile principles and goals:
•responding to change over following a plan
•continuous delivery of valuable softw...
Do it quick, redo it even quicker and do it correctly
Today we will try to answer the question:
Is this possible without s...
Agile development example
TECH
T
E
C
H
T
E
C
H
T
E
C
H
Techniques
Isolated changes are immediately tested and reported on when they are
added to a larger code base.
Goal: Rapid feedback of...
Extension of CI – SW that can be released to production at anytime
Follow deployment pipeline to ensure you go through all...
Example of deployment pipeline
Triggers in code and hardware to get information about application and
hardware performance
Goal: The more you measure and...
Developers should send code to production AS IS with small configuration
changes.
Consistent and portable environments
Mos...
Old technique - new trend
Deploy to production your local container (no more worked on my local)
OS agnostic / plays with ...
Robust architectures are stepping stones for developers to enhance stability
and development speed.
Goal: The more goodies...
Building software without operating any servers
Speeds in developments are rapid
Offered by the use of cloud services (aws...
Architectures that can be brought up and thrown away with the click of a button
Immutable: once created you don't change i...
12 months with 2 Senior FT resources to reach acceptable level
Local Development: Containers / clones of production with d...
A good (and painful) long term investment
Methodology is necessary but developers need more tools
Providing these tools is...
Thank you
Upcoming SlideShare
Loading in …5
×

Deploying more technology to shift from agility to anti-fragility

377 views

Published on

This talk focusses on the technologies that can be adopted in order to enhance agility and speed of development through advances in system stability. We will span over techniques such as containerization, server-less architectures, logging technologies and application architectures that can have an immediate effect in an organisations' agility.

Published in: Internet
  • Be the first to comment

  • Be the first to like this

Deploying more technology to shift from agility to anti-fragility

  1. 1. Spyros Lambrinidis CTO PeoplePerHour 25 th April 2016, Athens Shifting from agility to anti-fragility
  2. 2. Some of the agile principles and goals: •responding to change over following a plan •continuous delivery of valuable software •changing requirements even late in development •deliver working software frequently •working software is the primary measure of progress •continuous attention to technical excellence and good design enhances agility Agile goals
  3. 3. Do it quick, redo it even quicker and do it correctly Today we will try to answer the question: Is this possible without solid underlying technology and systems? (and without breaking stuff?) What do they mean?
  4. 4. Agile development example TECH T E C H T E C H T E C H
  5. 5. Techniques
  6. 6. Isolated changes are immediately tested and reported on when they are added to a larger code base. Goal: Rapid feedback of a possible defect being introduced into the code base Testing methodologies: unit, functional, contract, behavioral, web browser Tools: Jenkins, CircleCI, Shippable, drone.io, codeship Continuous Integration
  7. 7. Extension of CI – SW that can be released to production at anytime Follow deployment pipeline to ensure you go through all the stages Goal: Faster reaction times, reduced risk Continuous Delivery
  8. 8. Example of deployment pipeline
  9. 9. Triggers in code and hardware to get information about application and hardware performance Goal: The more you measure and easier to view - the faster the reaction to errors = shortened development cycles. Tools: •ELK •New Relic / DataDog HQ, appneta •Nagios, AWS cloudwatch Logging / application monitoring
  10. 10. Developers should send code to production AS IS with small configuration changes. Consistent and portable environments Most important aspect of 12 factor apps - central configuration Goal: No more bugs due to inconsistent environments Local Development Practices
  11. 11. Old technique - new trend Deploy to production your local container (no more worked on my local) OS agnostic / plays with all Oldies know it as lxc Most trendy is Docker Containerisation
  12. 12. Robust architectures are stepping stones for developers to enhance stability and development speed. Goal: The more goodies developers have available the quicker the speed Micro services / SOA - separation of code/logic to multiple reusable parts Message buses / queues - put payload on bus and worry no more Automated Fallbacks - queues, retries Easy logging - easy to log errors in specific parts Application Architectures
  13. 13. Building software without operating any servers Speeds in developments are rapid Offered by the use of cloud services (aws, gce, heroku etc) Goal: Quicker speed to market with minimal operational and maintainance cost Tools: Pioneer is aws with the offering of lambda, API gateway and the connection of their event system Server less architectures
  14. 14. Architectures that can be brought up and thrown away with the click of a button Immutable: once created you don't change it - you only replace Clustered: fault tolerant cluster with no master SPOF Goal: Infrastructure is wholy replacable providing confidence to try and fail Highlander Architectures
  15. 15. 12 months with 2 Senior FT resources to reach acceptable level Local Development: Containers / clones of production with default local config Classic Development Cycle: Local → Staging → Production Continuous Integration: github and circleci. Container tested with mocha and unit tests Continuous Deployment: ansible tower callbacks (ansible). Upon merge in github code is automatically tested and deployed Infrastructure: Immutable, clustered architecture ad introducing serverless microservices Monitoring: New Relic, ELK, sensitive notification services (pd, pingdom, elastalert) Real life example
  16. 16. A good (and painful) long term investment Methodology is necessary but developers need more tools Providing these tools is a great addition to agile principles Realization that without these tools agile is closer to fragile must be made However, immense cost and effort is required to reach a good level Once this tin opens then possibilities are endless Conclusion
  17. 17. Thank you

×