Upgrade to Pro — share decks privately, control downloads, hide ads and more …

ITT 2018 - Amir Chaudhry - Engineering for a mo...

ITT 2018 - Amir Chaudhry - Engineering for a more distributed future

In the last few years we've had several waves of change from microservices, to containerisation, and more recently serverless and unikernels. Even the notion of an 'application' has changed over the years, as we now have to consider mobile apps, back-end AI algorithms, and even remote devices like IoT and autonomous vehicles.

The general idea of these approaches point in the same direction — that of applications becoming a collection of components that perform discrete tasks. However, since the architecture of such applications is more distributed, there are many trade-offs and new considerations. Including security implications, orchestration, monitoring, and much more. These are things that engineers need to become more aware of when creating and maintaining such systems. This talk will cover some of the issues that engineers should be aware of and we'll also discuss some of the tools and technologies that might be useful to consider.

Istanbul Tech Talks

April 17, 2018
Tweet

More Decks by Istanbul Tech Talks

Other Decks in Programming

Transcript

  1. ENGINEERING FOR THE FUTURE OVERVIEW ▸ Software today ▸ A

    brief history ▸ Fresh approaches ▸ Unikernels ▸ New considerations ▸ Discussion
  2. SOFTWARE TODAY… … is an application… … on top of

    an Operating System. ENGINEERING FOR THE FUTURE
  3. SOFTWARE TODAY… ▸ Multiple users? ▸ Multiple apps? ▸ System

    services? ▸ Physical hardware? ENGINEERING FOR THE FUTURE
  4. SOFTWARE TODAY… … is built locally… … but deployed remotely…

    … very remotely. ENGINEERING FOR THE FUTURE
  5. SUMMARY SO FAR ▸ World looks very different: ▸ Model

    of deployment is changing ▸ How we write apps is changing ▸ But underlying assumptions are still baked in ENGINEERING FOR THE FUTURE
  6. FRESH(ISH) APPROACHES ▸ Move to microservices
 Cattle vs Pets
 Multi-repo

    apps
 Containers
 Unikernels ▸ More distributed approaches ▸ Immutable artefacts ▸ Design systems not just apps
  7. UNIKERNELS ABOUT UNIKERNELS ▸ Represent an extreme view ▸ Constructed

    from Library OSs ▸ OS functionality available as modular components ▸ Link only the OS functionality your app needs ▸ Target alternative platforms from single codebase
  8. UNIKERNEL PROJECTS ▸ ClickOS ▸ Clive ▸ Drawbridge ▸ HaLVM

    ▸ IncludeOS ▸ LING ▸ MirageOS ▸ OSv ▸ Rumprun ▸ runtime.js UNIKERNELS
  9. EXAMPLE: STATIC WEBSITE ▸ Highly specialised ▸ Immutable by default

    ▸ Well defined interfaces ▸ Minimal attack surface UNIKERNELS
  10. NEW CONSIDERATIONS ▸ Pipelines
 From Dev to Production
 Staged roll-outs


    Tool building ▸ Security
 New threat models
 Maintenance burden
 Dependency tracking
  11. NEW CONSIDERATIONS ▸ Pipelines
 From Dev to Production
 Staged roll-outs


    Tool building ▸ Orchestration
 Beyond ‘cloud native’
 Embedded devices ▸ Security
 New threat models
 Maintenance burden
 Dependency tracking
  12. NEW CONSIDERATIONS ▸ Pipelines
 From Dev to Production
 Staged roll-outs


    Tool building ▸ Orchestration
 Beyond ‘cloud native’
 Embedded devices ▸ Security
 New threat models
 Maintenance burden
 Dependency tracking ▸ Designing systems
 Logging strategies
 Monitoring systems
 No longer just ‘apps’
 No one-size-fits-all
  13. SUMMARY ▸ Software is eating the world
 Cloud, Embedded devices.

    etc ▸ Must revisit legacy assumptions
 So we don’t carry forward tech debt ENGINEERING FOR THE FUTURE
  14. SUMMARY ▸ Software is eating the world
 Cloud, Embedded devices.

    etc ▸ Must revisit legacy assumptions
 So we don’t carry forward tech debt ▸ Everyone will be a systems dev
 At least for a while :) ENGINEERING FOR THE FUTURE
  15. SUMMARY ▸ Software is eating the world
 Cloud, Embedded devices.

    etc ▸ Must revisit legacy assumptions
 So we don’t carry forward tech debt ▸ Everyone will be a systems dev
 At least for a while :) ▸ Exciting time to be a dev! ENGINEERING FOR THE FUTURE