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.

API Zen for Developers

4,255 views

Published on

Presented by Steven Willmott at API World Sept. 17, 2014

Published in: Technology
  • Hi there! Get Your Professional Job-Winning Resume Here - Check our website! http://bit.ly/resumpro
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

API Zen for Developers

  1. 1. API Zen For Developers Steven Willmott 3scale Inc @3scale - http://www.3scale.net
  2. 2. Powering 450 APIs Billions API Calls / Month On Demand API Infrastructure: http://3scale.net @3scale me: @njyx on twitter
  3. 3. Chicago 24-26th September http://www.apistrategyconference.com
  4. 4. To the Content…
  5. 5. “Software is Eating the World” Marc Andreessen – WSJ / August 2011
  6. 6. “APIs are Eating Software” API Days San Francisco 2013
  7. 7. Meaning: Almost every major industry is becoming software driven Retail Video Telephony Music …
  8. 8. Examples Lytro: “Software Defined Cameras” Philips Hue: “Software Controlled Lighting” Amazon: “Software Driven Retail” Pixar: “Software powered animation”
  9. 9. APIs Are Changing the Way we Write Software But also:
  10. 10. API Based App Development How are APIs Changing Application Development?
  11. 11. APIs are the new “Libs” “In computer science, a library is a collection of implementations of behavior, written in terms of a language, that has a well-defined interface by which the behavior is invoked” Credit: Wikipedia
  12. 12. Download & Add to Classpath Became Find and Integrate
  13. 13. Speed (Time to Market) e.g. + Devops Borat e.g. (Top Mashup on Progr Web)
  14. 14. Richness / Functionality e.g. e.g.
  15. 15. Offboarding e.g. e.g. (Rich Photo Effects For Mobile by SDK) (Monitoring System in the Cloud)
  16. 16. Reliability e.g. e.g. (Email by API) (Amazon S3)
  17. 17. Mobile & Non Mobile
  18. 18. Single Page Apps
  19. 19. Buddhist Principles
  20. 20. Four Noble Truths 1. To live means to suffer. 2. The origin of suffering is attachment. 3. The cessation of suffering is attainable. 4. The path to the cessation of suffering.
  21. 21. To live means to suffer Human beings are not perfect. Likewise, the world inhabited by them is also ridden with imperfections.
  22. 22. The origin of suffering is attachment the attachment to the desire to have (craving) and the desire not to have (aversion)
  23. 23. The cessation of suffering is attainable This liberation from attachment and sorrow frees the mind of all troubles and worries.
  24. 24. The path to the cessation of suffering Lead a Balanced life by following the Eightfold path which is a 'gradual path of self-improvement'
  25. 25. Four Noble Truths of (Modern) App Development 1. There will be suffering – APIs and Tools are imperfect, likewise the world created by them. 2. Suffering is attachment – Dependencies create pain, breakages, frustration, as do unmet expectations. 3. The cessation of suffering is attainable – liberation from hard dependencies, graceful failure, alternatives, . 4. The path to the cessation of suffering – Wisdom in what is going to happen, Good Behaviour , putting your efforts into the right things.
  26. 26. APIs Inside…
  27. 27. The Eightfold Path is Zen
  28. 28. The Eightfold Path • The right view • The right thought • The right speech • The right action • The right Livelyhood • The right Effort • The right Mindfullness • The right Concentration } } } Wisdom Ethical Conduct Concentration
  29. 29. Back to the Real World Recognize the opportunity and Chaos of API Powered APP Development
  30. 30. The Imperfect World Software Before 1995 Software 1995 – 2010 Software 2010 -
  31. 31. APIs are NOT Like Libs… They Change & Break
  32. 32. Beware of the Type of API & App VIEW = FORM MODEL = DATA Model View Controller CONTROLLER = BUSINESS LOGIC
  33. 33. How Attached are you…?
  34. 34. To Live means to suffer
  35. 35. Apps Tend to be Complex
  36. 36. 10 Hard Things About Attachment… • Interface Definition & Consistency • Latency • Slow or Dead? • Distributed State Synchronization • Remote Clock Problems • Error Detection • Change Management • Static & Dynamic Testing • Code Validation / Verification • Frame Problems
  37. 37. But Wait… It’s even harder than that …
  38. 38. Distributed Across Organizational Boundaries • No access to source code • No knowledge of Server Environment • Security and Access Permissions Everywhere • Identity Problems • Shared Semantics are much harder to achieve • Unknown / Mismatched Scale Issues • Danger of Much Wider Interdependencies – Frame problem is worse!)
  39. 39. Most of these problems are completely unaddressed Need to be if we are to reach 100’s of thousands of APIs
  40. 40. Progress Today R&D / Experimental • Distributed Verification • Distributed Systems Contracts • Semantic Web Ontologies • Service Descriptions? Tools • API Science, API Metrics • APITools, Runscope • API-Hub • Swagger • Pingdom et. al. Lots of Interesting Problems to be Solved!
  41. 41. Stuff We Do Make APIs Better… • http://3scale.net • Onboarding, Docs, Version Management, Communications, … Help Developers… • http://apitools.com • Track & manipulate traffic, alert, cache, analyze, …
  42. 42. Strategies to Avoid Headaches API Provider • Publish Specifications • Handle Versioning Carefully • Provision for Scale & Rate Limit • Code Libraries • Buffers, Queues, Webhooks and Asychronous Responses • Multiple Data Centers Tools • Monitoring • Caching • Mocks for Testing • Buffers & Queues • Failover Services • Graceful Failure Modes • Assume Failure Will happen
  43. 43. Conclusions
  44. 44. Take Away’s 1 2 API Driven Development is an Awesome new Frontier But it’s incredibly hard if you get attached => Take a deep breath and find the Zen path to distributed systems..
  45. 45. Keep Building! steve@3scale.net @njyx, @3scale We make awesome API management tools: http://www.3scale.net/

×