Social IRC bots in the Cloud with OpenShift - Mongo London presentation by Marek Jelen
1. 1
Social IRC
bots in the cloud
with Node.js and MongoDB
Marek Jelen
PaaS Evangelist, Red Hat
MongoLondon, 2013
2. 2
i. basic understanding what cloud is and what it is not
ii. you are a developer and you know what Node.js
iii. basic knowledge of MongoDB
iv. questions are good!
v. questions are awesome!
vi. discussion is preferred to my monologue
My expectations
3. 3
What is IRC?
• Communication protocol
• Open (RFC1459) & Simple
• Text based
• Realtime-communication
• Group chat & One-to-One chat
• Users => #channels <= Bots
• Clients, Bouncers, Bots
4. 4
Basic IRC commands
• /join #openshif
• /msg mjelen This is awesome
• /me is presenting in London
• /topic Don't be afraid to ask questions.
5. 5
Is it any good?
• Basic communication channel of tech companies
• Community building environment
• Support channel for users
• etc. etc. etc.
• OpenSource servers & clients (standalone, web)
6. 6
What is OpenShift?
Red Hat's free, auto-scaling Platform as a Service (PaaS) for
applications in the cloud.
8. 8
Looks great, but what’s the catch?
• OpenShif is free-as-in-beer & free-as-in-freedom
• Three times 0.5GB RAM/1GB storage
• Need more resources, just ask!
• We are in Developer Preview
• Sign up at openshift.com
• Promo code: MongoDBLondon
9. 9
Three flavours
• OpenSource project => OpenShif Origin
• Enterprise ready product => OpenShif Enterprise
• Service by Red Hat => OpenShif Online
11. 11
My bots on OpenShift (1)
• Create new deployment environment
• rhc app create ircbot nodejs
• clones a git repository locally
• setups node.js environment
• allows you ssh access
• provides logs tailing
• sets public DNS records
12. 12
My bots on OpenShift (2)
• Enter the directory
• cd ircbot
• Install dependencies
• npm install irc -s
• Write the code
13. 13
My bots on OpenShift (3)
• Record changes (when needed)
• git add package.json server.js
• Commit the changes
• git commit -m “My first commit”
• And deploy
• git push [origin [master]]
14. 14
My bots on OpenShift (4)
• Add MongoDB to the mix
• rhc cartridge add mongodb-2.2 -a ircbot
• Add RockMongo to inspect MongoDB
• rhc cartridge add rockmongo-1.1 -a ircbot
• Install dependencies
• npm install -S mongojs
• Write the code
• Connect to MongoDB from application
15. 15
My bots on OpenShift (5)
• Record changes (when needed)
• git add package.json server.js
• Commit the changes
• git commit -m “My first commit”
• And deploy
• git push (origin (master))
16. 16
Conclusion
• Three flavors of OpenShif
• Origin, Enterprise, Online
• Sign up for Online for free
• Promo code: MongoLondon
• IRC is fun
• Open, Simple, Feature-full
• Node.js makes it simple to write apps
• MongoDB helps with data persistence