prototype4production presented at fossasia2015 at singapore
TRANSCRIPT
Prototype for Production
Use FOSS smartly to Deliver your ideas with
Speed and Quality
What’s in it for you?
● If you have an Idea and want to launch it in a
week with production quality using free &
open source tools.
● If you are a DevOps looking for code
snippets of real life usage cases.
● ...Or..
..or.. If you just love to hear about
Django
NLP
Ansible
LibreOffice
AngujarJS
REST APIs
Postgresql
Editors
Supervisord Diagram Tools
Nginx+Uwsgi Test Reports
Trello
Git
Agile, Business Model Canvas…
…. & Simple common sense ;-)
Who am I?
FOSS Advocate everywhere
Delivering BigData products to Telco giants @Ishisystems
was part of Apache Hadoop contributor team @Huawei
was building JavaEE products for Telco @IBM
Driving Largest Meetup Group in State Gujarat,India
- More @ end of presentation, if we have time ;-)
- If you are reading this then you should tweet me @yourfrienddhruv
Let’s divide and rule!
Phase 1: Things about IDEA
Phase 2: Things about Execution
Phase 3: Continues Improvements
Abstract to Actionable
Phase1 : IDEA
Business Model Hypotheses
http://practicetrumpstheory.com/businessmodelcanvas/
(Lean) Business Model Canvas
http://www.leanstack.com/
Do's &
Dont’s
● Iterate multiple times
● Iterate in parallel
● Let whole team agree
on BMC
● Don’t create BMC with
hi-fi tools (just use
docs/whiteboard)
● Don’t complicate single
BMC
Actionable to Measurable
Phase2 : Execution
Trello : Boards that Boosts!
https://community.uservoice.com/blog/trello-google-docs-product-management/
Trello : Boards that Executes ;-)
https://community.uservoice.com/blog/trello-google-docs-product-management/
GIT : branch me if you can
- Master based git development
- “master” => always ready for Production.
- use “develop” branch as working branch
- each branch must represent fully working release..
- else .. Don’t branch!
- use Feature Flags
The real meat: Django!
● One of the best frameworks which provides
out of the box Production readiness
● One of the best doc, from where copy
pasted code can actually work in production!
● Lot of extension points:o Make it work first => then make it correct.
● Django is awesome: o but will talk about only few relevant features to
highlight integration
Data Migration : Git for database!
● Django is serious about migrationo Auto migration
o Full manual mode
PostgreSQL : Pinnacle in FOSS DB
● “Use Blue elephant before trying out Yellow elephant” - @yourfrienddhruv
● Again, talking about only few PostgreSQL thing here
● Full Text Search
o Without writing Lot of code, without running external services!
o https://github.com/niwibe/djorm-ext-pgfulltext
o Full pros/cons
https://news.ycombinator.com/item?id=8714477
Ansible : Git for Infrastructure!
● Cool as git
● Simple as SSH
● Works as puppeto but does it install like puppet :Hell NO!
● Template like Markdown
● Modularize like Django
I see docker there: Yes but not enough time to talk about it now, Sorry!
Ansible : Templatize configuration
dbname: myAppDB
dbuser: myAppDBUser
[webservers]
webserver1
webserver2
hosts file vars file
SupervisorD: Integrating with Non
Python Stuff
● Run java service in background
Measure to Take Action
Phase 3 : Continues
Improvement
Learning: There is no separate phase-3
Phase 3 :
Execution tools/Design
must support Continuous
Improvement
Few quick things helps you measure
● Measure Python API performance!o Google UA python Tracker
o Actually you can send some meta data too ;-)
o P.S: For production kindly use reverseAsyncProxy to avoid slowdown
in case of slow HTTPS calls to GA.
PsDash : Monitor ThingsMonitor live process, Load Avg, Open Files, Network state, Disk Space,
Even tail & search logs!
https://github.com/Jahaja/psdash
QA:Test and Report Business Cases
Use even simple tools:
Write simple Shell/Python script to invoke Django CLI custom
commands to trigger tests which produces Json Results
https://github.com/yourfrienddhruv/SPARTA
Thanks! -
@yourFriendDhruv
yourFriendDhruv@Gmail
+yourFriendDhruv
+ =