DevOps to NoOps 10 cloud services you should be using - - PowerPoint PPT Presentation

devops to noops
SMART_READER_LITE
LIVE PREVIEW

DevOps to NoOps 10 cloud services you should be using - - PowerPoint PPT Presentation

DevOps to NoOps 10 cloud services you should be using Ross Mason, MuleSo= @rossmason, @mulejockey About Me Agenda Impact of APIs Top 10


slide-1
SLIDE 1

DevOps ¡to ¡NoOps ¡

10 ¡cloud ¡services ¡you ¡should ¡be ¡using ¡

Ross ¡Mason, ¡MuleSo= ¡

¡ @rossmason, ¡@mulejockey ¡

slide-2
SLIDE 2

About ¡Me ¡

slide-3
SLIDE 3

Agenda ¡

  • Impact ¡of ¡APIs ¡
  • Top ¡10 ¡you ¡should ¡be ¡looking ¡at ¡
  • IntegraGng ¡with ¡APIs ¡
slide-4
SLIDE 4

The ¡Impact ¡of ¡APIs ¡ ¡

slide-5
SLIDE 5

API ¡ProliferaGon ¡

Source: ¡Programmable ¡Web ¡

slide-6
SLIDE 6

The ¡tradiGonal ¡3-­‑Ger ¡architecture ¡

6 ¡

PresentaGon ¡Tier ¡ Middle ¡Tier ¡ Data ¡Tier ¡

Client ¡ App ¡Server ¡ HTML ¡ ¡ Database ¡

slide-7
SLIDE 7

…is ¡being ¡decomposed ¡

7 ¡

Middle ¡Tier ¡ Data ¡Tier ¡

database ¡

Client ¡ ¡ Server ¡ ¡ Data ¡

JSON ¡/ ¡XML ¡ JSON ¡/ ¡XML ¡

PresentaGon ¡Tier ¡ PresentaGon ¡Tier ¡

slide-8
SLIDE 8

…is ¡being ¡decomposed ¡

8 ¡

Middle ¡Tier ¡ Data ¡Tier ¡

database ¡

Client ¡ ¡ Server ¡ ¡ Data ¡

JSON ¡/ ¡XML ¡ JSON ¡/ ¡XML ¡ JSON ¡/ ¡XML ¡

PresentaGon ¡Tier ¡ PresentaGon ¡Tier ¡ 3rd ¡party ¡Apps ¡

slide-9
SLIDE 9

…is ¡being ¡decomposed ¡

9 ¡

Middle ¡Tier ¡

Client ¡ ¡ Server ¡ ¡ Data ¡ ¡

JSON ¡/ ¡XML ¡ JSON ¡/ ¡XML ¡ JSON ¡/ ¡XML ¡

PresentaGon ¡Tier ¡ PresentaGon ¡Tier ¡ 3rd ¡party ¡Apps ¡

Data ¡Tier ¡

database ¡ SaaS, ¡Infrastructure ¡Services, ¡ Social ¡Media ¡APIs ¡

API ¡ API ¡ API ¡ API ¡ API ¡ API ¡ API ¡ API ¡ API ¡ API ¡ API ¡ API ¡

slide-10
SLIDE 10

PlaXorm ¡Shi= ¡

Tradi&onal ¡Applica&on ¡Environments ¡

Applica&on ¡ Database ¡ Web/App ¡Server ¡ Opera&ng ¡System ¡

slide-11
SLIDE 11

PlaXorm ¡Shi= ¡

New ¡Applica&on ¡Environments ¡

Applica&on ¡ Database ¡ Web/App ¡Server ¡ Opera&ng ¡System ¡ IaaS ¡ Applica&on ¡ PaaS ¡

slide-12
SLIDE 12

Technology ¡Shi= ¡

Tradi&onal ¡Applica&on ¡Environments ¡

Applica&on ¡ Database ¡ Web/App ¡Server ¡ Opera&ng ¡System ¡ Applica&on ¡ Business ¡Logic ¡ UI ¡ Data ¡ Security ¡

slide-13
SLIDE 13

Technology ¡Shi= ¡

Newer ¡Applica&on ¡Environments ¡

Applica&on ¡ Database ¡ Web/App ¡Server ¡ Opera&ng ¡System ¡ Applica&on ¡ Business ¡Logic ¡ UI ¡ API ¡ Data ¡ Security ¡ Integra&on ¡

slide-14
SLIDE 14

Technology ¡Shi= ¡

Applica&on ¡Decomposi&on ¡

Applica&on ¡ Business ¡Logic ¡ UI ¡ API ¡ Data ¡ Security ¡ Integra&on ¡

slide-15
SLIDE 15

Top ¡10 ¡APIs ¡

API ¡ Descrip&on ¡ Category ¡ Mashups ¡ Google ¡Maps ¡ Mapping ¡service ¡ Mapping ¡ 2278 ¡ Twi[er ¡ Microblogging ¡ Social ¡ 622 ¡ YouTube ¡ Video ¡sharing ¡and ¡search ¡ Video ¡ 585 ¡ Flickr ¡ Photo ¡sharing ¡ Photo ¡ 583 ¡ Amazon ¡eCommerce ¡ Online ¡retailer ¡ Shopping ¡ 396 ¡ Facebook ¡ Social ¡networking ¡ Social ¡ 301 ¡ Twilio ¡ Telephony ¡service ¡ Telephony ¡ 290 ¡ eBay ¡ Online ¡aucGon ¡marketplace ¡ Shopping ¡ 213 ¡ Last.fm ¡ Online ¡radio ¡service ¡ Music ¡ 201 ¡ Google ¡Search ¡ Search ¡services ¡ Search ¡ 175 ¡

Source: ¡ProgrammableWeb.com, ¡Sept ¡2011 ¡

slide-16
SLIDE 16

Top ¡10 ¡Infrastructure ¡APIs ¡ ¡

slide-17
SLIDE 17
  • 10. ¡ ¡
  • MySQL ¡Database ¡as ¡a ¡Service ¡
  • Direct ¡replacement ¡for ¡MySQL ¡
  • AlternaGves: ¡Amazon ¡RDS, ¡Rackspace, ¡Heroku ¡
  • API: ¡REST ¡or ¡SOAP ¡for ¡provisioning ¡and ¡

controlling ¡the ¡DB ¡instance ¡

  • So ¡What? ¡

– Fully ¡managed, ¡auto-­‑scale, ¡HA ¡ – Management ¡tools ¡built-­‑in ¡ – API ¡makes ¡the ¡service ¡scriptable ¡

slide-18
SLIDE 18
  • 9. ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡S3 ¡
  • File ¡System ¡as ¡a ¡Service ¡
  • Simple ¡API ¡for ¡storing ¡large ¡and ¡small ¡files ¡
  • AlternaGves: ¡RS ¡Cloud ¡Files, ¡CloudLayer ¡Storage ¡
  • API: ¡REST, ¡SOAP ¡or ¡BitTorrent ¡
  • So ¡What? ¡

– Many ¡Apps ¡need ¡file ¡storage ¡ – Unlimited ¡data ¡ – Leverage ¡the ¡Amazon ¡global ¡network, ¡CDN ¡support ¡

slide-19
SLIDE 19
  • 8. ¡ ¡
  • Logging ¡as ¡a ¡Service ¡
  • Manages ¡logs, ¡enables ¡easy ¡search ¡and ¡navigaGon ¡ ¡
  • AlternaGves: ¡Splunk ¡
  • API: ¡REST, ¡Syslog ¡for ¡data ¡collecGon ¡
  • So ¡What? ¡

– Easy ¡to ¡set ¡up, ¡centralized ¡view ¡of ¡App ¡logs ¡ – No ¡more ¡ssh-­‑ing ¡to ¡different ¡boxes ¡and ¡tailing ¡logs ¡ – AnalyGcs ¡as ¡standard ¡

slide-20
SLIDE 20
  • 7. ¡
  • Email ¡as ¡a ¡Service ¡
  • Replace ¡email ¡infrastructure, ¡its ¡like ¡normal ¡email ¡

but ¡way ¡be[er ¡

  • AlternaGves: ¡Postmark ¡
  • API: ¡REST, ¡SMTP ¡
  • So ¡What? ¡

– Set ¡up ¡in ¡minutes ¡no ¡need ¡to ¡run ¡an ¡email ¡server ¡ – bulk, ¡delivery ¡management, ¡analyGcs ¡ – Web ¡Hooks ¡Event ¡API ¡

slide-21
SLIDE 21
  • 6. ¡ ¡
  • MongoDB ¡as ¡a ¡Service ¡
  • Create ¡a ¡MongoDB ¡in ¡seconds, ¡conGnue ¡wriGng ¡

your ¡applicaGon ¡

  • AlternaGves: ¡Couch ¡One ¡
  • API: ¡MongoDB ¡client ¡API ¡
  • So ¡What? ¡

– Fully ¡managed, ¡auto-­‑scale, ¡HA ¡ – Management ¡tools ¡built-­‑in ¡ – Code ¡compaGble ¡with ¡MongoDB ¡ ¡

slide-22
SLIDE 22
  • 5. ¡ ¡ ¡ ¡ ¡ ¡Airbrake ¡ ¡
  • Error ¡Management ¡as ¡a ¡Service ¡
  • collects ¡errors ¡generated ¡by ¡other ¡applicaGons, ¡and ¡

aggregates ¡the ¡results ¡for ¡review. ¡

  • AlternaGves: ¡? ¡
  • API: ¡REST ¡
  • So ¡What? ¡

– InteresGng ¡approach ¡to ¡error ¡management, ¡no ¡need ¡to ¡ hit ¡the ¡logs ¡ – See ¡errors ¡in ¡real-­‑Gme, ¡track ¡and ¡fix ¡

slide-23
SLIDE 23
  • 4. ¡ ¡
  • ApplicaGon ¡Security ¡as ¡a ¡Service ¡
  • User ¡account ¡management, ¡authenGcaGon, ¡and ¡

access ¡control ¡in ¡your ¡applicaGon ¡

  • Currently ¡in ¡private ¡Beta ¡
  • API: ¡REST ¡
  • So ¡What? ¡

– Every ¡app ¡needs ¡user ¡security, ¡avoid ¡rolling ¡the ¡ same ¡code ¡over ¡and ¡over ¡

slide-24
SLIDE 24
  • 3. ¡ ¡
  • Publish ¡/ ¡Subscribe ¡Messaging ¡as ¡a ¡Service ¡
  • Real-­‑Gme, ¡global ¡messaging ¡for ¡cloud ¡and ¡mobile ¡

apps ¡

  • AlternaGves: ¡Pusher, ¡Amazon ¡SNS ¡
  • API: ¡REST ¡
  • So ¡What? ¡

– Amazingly ¡quick; ¡as ¡about ¡real-­‑Gme ¡as ¡the ¡web ¡gets ¡ – Asynchronous, ¡streaming ¡API ¡ – Cheap ¡even ¡for ¡millions ¡of ¡messages ¡

slide-25
SLIDE 25
  • 2. ¡ ¡
  • File ¡Sharing ¡as ¡a ¡Service ¡
  • Share ¡files ¡between ¡all ¡your ¡devices ¡and ¡friends/co-­‑

workers ¡

  • AlternaGves: ¡Box.net, ¡SpiderOak, ¡Wuala, ¡etc ¡
  • So ¡What? ¡

– Great ¡for ¡content ¡delivery, ¡service ¡handles ¡all ¡ synchronizaGon ¡issues ¡ – Good ¡way ¡to ¡integrate ¡mobile ¡with ¡desktop ¡and ¡web ¡ – (Almost) ¡everyone ¡has ¡it ¡

slide-26
SLIDE 26
  • 1. ¡ ¡
  • Telephony ¡as ¡a ¡Service ¡
  • Build ¡text/sms ¡and ¡voice ¡apps ¡really ¡easily ¡
  • AlternaGves: ¡Tropo ¡
  • So ¡What? ¡

– This ¡stuff ¡was ¡hard ¡before ¡Twilio ¡came ¡along ¡ – Integrate ¡text/sms ¡into ¡your ¡apps ¡for ¡alerGng, ¡udaGng, ¡ user ¡confirmaGon, ¡etc ¡ – Easy ¡to ¡create ¡voice ¡access ¡to ¡data ¡in ¡an ¡app ¡(i.e. ¡ account ¡balance) ¡

slide-27
SLIDE 27

The ¡API ¡Challenge ¡

slide-28
SLIDE 28

All ¡APIs ¡are ¡not ¡equal ¡

  • Hard ¡to ¡work ¡with ¡different ¡APIs ¡

– Different ¡approaches ¡ – Different ¡security ¡schemes ¡ – Different ¡data ¡formats ¡ – Different ¡‘interpretaGons’ ¡of ¡REST ¡

  • Lots ¡of ¡custom ¡code ¡in ¡your ¡app ¡
slide-29
SLIDE 29

iPaaS: ¡Don’t ¡clu[er ¡your ¡app ¡

Your Killer App Integration Layer Cool Stuff

integration PaaS

slide-30
SLIDE 30

Benefits ¡

  • ConfiguraGon ¡approach ¡to ¡APIs ¡
  • Handled ¡for ¡you: ¡

– Security ¡(OAuth, ¡SAML, ¡Basic) ¡ ¡ – Session ¡Management ¡ – Streaming ¡ – HTTP ¡Callbacks ¡

  • Consume ¡and ¡invoke ¡mulGple ¡services ¡
  • Retries, ¡Error ¡handling ¡
  • Decouple, ¡keep ¡your ¡applica&on ¡code ¡clean ¡
slide-31
SLIDE 31

Quick Demo

  • Listen to Salesforce Chatter API for messages
  • ‘#now’ tag in Chatter messages get filtered
  • Calls Twilio API to send an SMS to the user’s

phone

31

slide-32
SLIDE 32

The Flow

32

<twilio:config ¡name="twilio-­‑default" ¡accountSid=”xxxxxxx" ¡authToken=”xxxxxx"/> ¡ ¡<sfdc:config ¡name="salesforce-­‑default" ¡username=”xxxxx" ¡password=”xxxxx"/> ¡ ¡ <flow ¡name="sendSmsNoGficaGons"> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<sfdc:subscribe-­‑topic ¡config-­‑ref="salesforce-­‑default” topic="/SMSNoGficaGons"/> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<logger ¡level="INFO" ¡message="#[payload]"/> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<regex-­‑filter ¡pa[ern="\#now"/> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<twilio:send-­‑sms-­‑message ¡config-­‑ref="twilio-­‑default" ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡accountSid=”xxxxxxx" ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡from=”+14086457888" ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡to="#[map-­‑payload:To__c]" ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡body="#[map-­‑payload:Text__c]"/> ¡ </flow> ¡ ¡ ¡ ¡ ¡ ¡

slide-33
SLIDE 33

Summary ¡

  • APIs ¡are ¡becoming ¡part ¡of ¡our ¡applicaGon ¡

architecture ¡

  • All ¡APIs ¡are ¡different ¡making ¡them ¡hard ¡to ¡

consume ¡

  • Coding ¡directly ¡to ¡APIs ¡clu[ers ¡the ¡applicaGon ¡

and ¡creates ¡a ¡dependency ¡(Gght-­‑coupling) ¡

  • iPaaS ¡can ¡do ¡the ¡integraGon ¡heavy ¡li=ing, ¡

decouple ¡your ¡app ¡from ¡the ¡APIs ¡it ¡consumes ¡

slide-34
SLIDE 34

QuesGons, ¡Ideas, ¡Comments? ¡

  • Mule ¡iON ¡free ¡account ¡: ¡h[p://muleion.com ¡
  • Twi[er: ¡@rossmason, ¡@mulejockey ¡
  • Blog: ¡h[p://blogs.muleso=.org ¡ ¡
  • Company: ¡h[p://muleso=.com ¡ ¡(we’re ¡hiring!) ¡