SlideShare ist ein Scribd-Unternehmen logo
1 von 25
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 migration
o 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 puppet
o 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
+ =

Weitere ähnliche Inhalte

Was ist angesagt?

Understanding how concurrency work in os
Understanding how concurrency work in osUnderstanding how concurrency work in os
Understanding how concurrency work in osGenchiLu1
 
welcome to gopherlabs - why go (golang)?
welcome to gopherlabs - why go (golang)?welcome to gopherlabs - why go (golang)?
welcome to gopherlabs - why go (golang)?sangam biradar
 
Daniel Steigerwald: EsteJS - javascriptové aplikace robusně, modulárně a komf...
Daniel Steigerwald: EsteJS - javascriptové aplikace robusně, modulárně a komf...Daniel Steigerwald: EsteJS - javascriptové aplikace robusně, modulárně a komf...
Daniel Steigerwald: EsteJS - javascriptové aplikace robusně, modulárně a komf...Develcz
 
Introducing CentOS container pipeline
Introducing CentOS container pipelineIntroducing CentOS container pipeline
Introducing CentOS container pipelineDharmit Shah
 
An introduction to go programming language
An introduction to go programming languageAn introduction to go programming language
An introduction to go programming languageTechnology Parser
 
Python id meetup, Maintaining a Dirty Code Django Project
Python id meetup, Maintaining a Dirty Code Django ProjectPython id meetup, Maintaining a Dirty Code Django Project
Python id meetup, Maintaining a Dirty Code Django ProjectIkhsan Noor Rosyidin
 
Daniel Steigerwald - Este.js - konec velkého Schizma
Daniel Steigerwald - Este.js - konec velkého SchizmaDaniel Steigerwald - Este.js - konec velkého Schizma
Daniel Steigerwald - Este.js - konec velkého SchizmaDevelcz
 
Why don't you Groovy?
Why don't you Groovy?Why don't you Groovy?
Why don't you Groovy?Orest Ivasiv
 
How I Implemented the #1 Requested Feature In Redis In Less than 1 Hour with ...
How I Implemented the #1 Requested Feature In Redis In Less than 1 Hour with ...How I Implemented the #1 Requested Feature In Redis In Less than 1 Hour with ...
How I Implemented the #1 Requested Feature In Redis In Less than 1 Hour with ...Itamar Haber
 
The Go programming language - Intro by MyLittleAdventure
The Go programming language - Intro by MyLittleAdventureThe Go programming language - Intro by MyLittleAdventure
The Go programming language - Intro by MyLittleAdventuremylittleadventure
 
Writing Fast Code - PyCon HK 2015
Writing Fast Code - PyCon HK 2015Writing Fast Code - PyCon HK 2015
Writing Fast Code - PyCon HK 2015Younggun Kim
 
Golang from Scala developer’s perspective
Golang from Scala developer’s perspectiveGolang from Scala developer’s perspective
Golang from Scala developer’s perspectiveSveta Bozhko
 
Practical idioms in Python - Pycon india 2014 proposal
Practical idioms in Python -  Pycon india 2014 proposalPractical idioms in Python -  Pycon india 2014 proposal
Practical idioms in Python - Pycon india 2014 proposalPratik M
 
Django On Jython (for Portland and Boulder Python user groups presentations)
Django On Jython (for Portland and Boulder Python user groups presentations)Django On Jython (for Portland and Boulder Python user groups presentations)
Django On Jython (for Portland and Boulder Python user groups presentations)Leonardo Soto
 

Was ist angesagt? (20)

DevOps Cebu Presentation
DevOps Cebu PresentationDevOps Cebu Presentation
DevOps Cebu Presentation
 
Phpmatsuri2010
Phpmatsuri2010Phpmatsuri2010
Phpmatsuri2010
 
Always be testing
Always be testingAlways be testing
Always be testing
 
Understanding how concurrency work in os
Understanding how concurrency work in osUnderstanding how concurrency work in os
Understanding how concurrency work in os
 
welcome to gopherlabs - why go (golang)?
welcome to gopherlabs - why go (golang)?welcome to gopherlabs - why go (golang)?
welcome to gopherlabs - why go (golang)?
 
Daniel Steigerwald: EsteJS - javascriptové aplikace robusně, modulárně a komf...
Daniel Steigerwald: EsteJS - javascriptové aplikace robusně, modulárně a komf...Daniel Steigerwald: EsteJS - javascriptové aplikace robusně, modulárně a komf...
Daniel Steigerwald: EsteJS - javascriptové aplikace robusně, modulárně a komf...
 
Introducing CentOS container pipeline
Introducing CentOS container pipelineIntroducing CentOS container pipeline
Introducing CentOS container pipeline
 
An introduction to go programming language
An introduction to go programming languageAn introduction to go programming language
An introduction to go programming language
 
Python id meetup, Maintaining a Dirty Code Django Project
Python id meetup, Maintaining a Dirty Code Django ProjectPython id meetup, Maintaining a Dirty Code Django Project
Python id meetup, Maintaining a Dirty Code Django Project
 
Daniel Steigerwald - Este.js - konec velkého Schizma
Daniel Steigerwald - Este.js - konec velkého SchizmaDaniel Steigerwald - Este.js - konec velkého Schizma
Daniel Steigerwald - Este.js - konec velkého Schizma
 
Why don't you Groovy?
Why don't you Groovy?Why don't you Groovy?
Why don't you Groovy?
 
Presentasi jlp
Presentasi jlpPresentasi jlp
Presentasi jlp
 
How I Implemented the #1 Requested Feature In Redis In Less than 1 Hour with ...
How I Implemented the #1 Requested Feature In Redis In Less than 1 Hour with ...How I Implemented the #1 Requested Feature In Redis In Less than 1 Hour with ...
How I Implemented the #1 Requested Feature In Redis In Less than 1 Hour with ...
 
The Go programming language - Intro by MyLittleAdventure
The Go programming language - Intro by MyLittleAdventureThe Go programming language - Intro by MyLittleAdventure
The Go programming language - Intro by MyLittleAdventure
 
Writing Fast Code - PyCon HK 2015
Writing Fast Code - PyCon HK 2015Writing Fast Code - PyCon HK 2015
Writing Fast Code - PyCon HK 2015
 
Golang from Scala developer’s perspective
Golang from Scala developer’s perspectiveGolang from Scala developer’s perspective
Golang from Scala developer’s perspective
 
Golang
GolangGolang
Golang
 
Besut Kode Challenge 1
Besut Kode Challenge 1Besut Kode Challenge 1
Besut Kode Challenge 1
 
Practical idioms in Python - Pycon india 2014 proposal
Practical idioms in Python -  Pycon india 2014 proposalPractical idioms in Python -  Pycon india 2014 proposal
Practical idioms in Python - Pycon india 2014 proposal
 
Django On Jython (for Portland and Boulder Python user groups presentations)
Django On Jython (for Portland and Boulder Python user groups presentations)Django On Jython (for Portland and Boulder Python user groups presentations)
Django On Jython (for Portland and Boulder Python user groups presentations)
 

Ähnlich wie Prototype4Production Presented at FOSSASIA2015 at Singapore

Python Django Intro V0.1
Python Django Intro V0.1Python Django Intro V0.1
Python Django Intro V0.1Udi Bauman
 
Powering tensorflow with big data (apache spark, flink, and beam) dataworks...
Powering tensorflow with big data (apache spark, flink, and beam)   dataworks...Powering tensorflow with big data (apache spark, flink, and beam)   dataworks...
Powering tensorflow with big data (apache spark, flink, and beam) dataworks...Holden Karau
 
Simplifying training deep and serving learning models with big data in python...
Simplifying training deep and serving learning models with big data in python...Simplifying training deep and serving learning models with big data in python...
Simplifying training deep and serving learning models with big data in python...Holden Karau
 
Powering Tensorflow with big data using Apache Beam, Flink, and Spark - OSCON...
Powering Tensorflow with big data using Apache Beam, Flink, and Spark - OSCON...Powering Tensorflow with big data using Apache Beam, Flink, and Spark - OSCON...
Powering Tensorflow with big data using Apache Beam, Flink, and Spark - OSCON...Holden Karau
 
How to Choose a Deep Learning Framework
How to Choose a Deep Learning FrameworkHow to Choose a Deep Learning Framework
How to Choose a Deep Learning FrameworkNavid Kalaei
 
Introducing Yeoman 1.0 beta
Introducing Yeoman 1.0 betaIntroducing Yeoman 1.0 beta
Introducing Yeoman 1.0 betadigitalzombie
 
Getting started contributing to Apache Spark
Getting started contributing to Apache SparkGetting started contributing to Apache Spark
Getting started contributing to Apache SparkHolden Karau
 
Getting big without getting fat, in perl
Getting big without getting fat, in perlGetting big without getting fat, in perl
Getting big without getting fat, in perlDean Hamstead
 
Introduction to go lang
Introduction to go langIntroduction to go lang
Introduction to go langAmal Mohan N
 
“Practical DevOps by a small team of devs” by Ilgvars Jēcis from FinoTech  at...
“Practical DevOps by a small team of devs” by Ilgvars Jēcis from FinoTech  at...“Practical DevOps by a small team of devs” by Ilgvars Jēcis from FinoTech  at...
“Practical DevOps by a small team of devs” by Ilgvars Jēcis from FinoTech  at...DevClub_lv
 
OSDC 2015: Kris Buytaert | From ConfigManagementSucks to ConfigManagementLove
OSDC 2015: Kris Buytaert | From ConfigManagementSucks to ConfigManagementLoveOSDC 2015: Kris Buytaert | From ConfigManagementSucks to ConfigManagementLove
OSDC 2015: Kris Buytaert | From ConfigManagementSucks to ConfigManagementLoveNETWAYS
 
etcd based PostgreSQL HA Cluster
etcd based PostgreSQL HA Clusteretcd based PostgreSQL HA Cluster
etcd based PostgreSQL HA Clusterwinsletts
 
Devops Devops Devops, at Froscon
Devops Devops Devops, at FrosconDevops Devops Devops, at Froscon
Devops Devops Devops, at FrosconKris Buytaert
 
Python enterprise vento di liberta
Python enterprise vento di libertaPython enterprise vento di liberta
Python enterprise vento di libertaSimone Federici
 
Django: Beyond Basics
Django: Beyond BasicsDjango: Beyond Basics
Django: Beyond Basicsarunvr
 
icebreakerwithdevops-150218112943-conversion-gate02
icebreakerwithdevops-150218112943-conversion-gate02icebreakerwithdevops-150218112943-conversion-gate02
icebreakerwithdevops-150218112943-conversion-gate02Manohar Kumar
 
Xdebug for Beginners
Xdebug for BeginnersXdebug for Beginners
Xdebug for BeginnersSean Prunka
 

Ähnlich wie Prototype4Production Presented at FOSSASIA2015 at Singapore (20)

Python Django Intro V0.1
Python Django Intro V0.1Python Django Intro V0.1
Python Django Intro V0.1
 
Powering tensorflow with big data (apache spark, flink, and beam) dataworks...
Powering tensorflow with big data (apache spark, flink, and beam)   dataworks...Powering tensorflow with big data (apache spark, flink, and beam)   dataworks...
Powering tensorflow with big data (apache spark, flink, and beam) dataworks...
 
Simplifying training deep and serving learning models with big data in python...
Simplifying training deep and serving learning models with big data in python...Simplifying training deep and serving learning models with big data in python...
Simplifying training deep and serving learning models with big data in python...
 
Me&g@home
Me&g@home Me&g@home
Me&g@home
 
Tensorflow go
Tensorflow goTensorflow go
Tensorflow go
 
Powering Tensorflow with big data using Apache Beam, Flink, and Spark - OSCON...
Powering Tensorflow with big data using Apache Beam, Flink, and Spark - OSCON...Powering Tensorflow with big data using Apache Beam, Flink, and Spark - OSCON...
Powering Tensorflow with big data using Apache Beam, Flink, and Spark - OSCON...
 
How to Choose a Deep Learning Framework
How to Choose a Deep Learning FrameworkHow to Choose a Deep Learning Framework
How to Choose a Deep Learning Framework
 
Introducing Yeoman 1.0 beta
Introducing Yeoman 1.0 betaIntroducing Yeoman 1.0 beta
Introducing Yeoman 1.0 beta
 
Getting started contributing to Apache Spark
Getting started contributing to Apache SparkGetting started contributing to Apache Spark
Getting started contributing to Apache Spark
 
Getting big without getting fat, in perl
Getting big without getting fat, in perlGetting big without getting fat, in perl
Getting big without getting fat, in perl
 
Introduction to go lang
Introduction to go langIntroduction to go lang
Introduction to go lang
 
“Practical DevOps by a small team of devs” by Ilgvars Jēcis from FinoTech  at...
“Practical DevOps by a small team of devs” by Ilgvars Jēcis from FinoTech  at...“Practical DevOps by a small team of devs” by Ilgvars Jēcis from FinoTech  at...
“Practical DevOps by a small team of devs” by Ilgvars Jēcis from FinoTech  at...
 
Ploneide
PloneidePloneide
Ploneide
 
OSDC 2015: Kris Buytaert | From ConfigManagementSucks to ConfigManagementLove
OSDC 2015: Kris Buytaert | From ConfigManagementSucks to ConfigManagementLoveOSDC 2015: Kris Buytaert | From ConfigManagementSucks to ConfigManagementLove
OSDC 2015: Kris Buytaert | From ConfigManagementSucks to ConfigManagementLove
 
etcd based PostgreSQL HA Cluster
etcd based PostgreSQL HA Clusteretcd based PostgreSQL HA Cluster
etcd based PostgreSQL HA Cluster
 
Devops Devops Devops, at Froscon
Devops Devops Devops, at FrosconDevops Devops Devops, at Froscon
Devops Devops Devops, at Froscon
 
Python enterprise vento di liberta
Python enterprise vento di libertaPython enterprise vento di liberta
Python enterprise vento di liberta
 
Django: Beyond Basics
Django: Beyond BasicsDjango: Beyond Basics
Django: Beyond Basics
 
icebreakerwithdevops-150218112943-conversion-gate02
icebreakerwithdevops-150218112943-conversion-gate02icebreakerwithdevops-150218112943-conversion-gate02
icebreakerwithdevops-150218112943-conversion-gate02
 
Xdebug for Beginners
Xdebug for BeginnersXdebug for Beginners
Xdebug for Beginners
 

Kürzlich hochgeladen

Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Google AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGGoogle AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGSujit Pal
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 

Kürzlich hochgeladen (20)

Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Google AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGGoogle AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAG
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 

Prototype4Production Presented at FOSSASIA2015 at Singapore

  • 1. Prototype for Production Use FOSS smartly to Deliver your ideas with Speed and Quality
  • 2. 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..
  • 3. ..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 ;-)
  • 4. 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
  • 5. Let’s divide and rule! Phase 1: Things about IDEA Phase 2: Things about Execution Phase 3: Continues Improvements
  • 8. (Lean) Business Model Canvas http://www.leanstack.com/
  • 9. 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
  • 11. Trello : Boards that Boosts! https://community.uservoice.com/blog/trello-google-docs-product-management/
  • 12. Trello : Boards that Executes ;-) https://community.uservoice.com/blog/trello-google-docs-product-management/
  • 13. 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
  • 14. 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
  • 15. Data Migration : Git for database! ● Django is serious about migration o Auto migration o Full manual mode
  • 16. 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
  • 17. Ansible : Git for Infrastructure! ● Cool as git ● Simple as SSH ● Works as puppet o 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!
  • 18. Ansible : Templatize configuration dbname: myAppDB dbuser: myAppDBUser [webservers] webserver1 webserver2 hosts file vars file
  • 19. SupervisorD: Integrating with Non Python Stuff ● Run java service in background
  • 20. Measure to Take Action Phase 3 : Continues Improvement
  • 21. Learning: There is no separate phase-3 Phase 3 : Execution tools/Design must support Continuous Improvement
  • 22. 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.
  • 23. PsDash : Monitor ThingsMonitor live process, Load Avg, Open Files, Network state, Disk Space, Even tail & search logs! https://github.com/Jahaja/psdash
  • 24. 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