 It's not possible. So it's why this talk is more of a combination of Python stuff and I think I will make my point clear towards the end of talk. So this is it for you. Those who have a lot of people think that Python is very quick and still so much production ready that you can just make your idea and have something working and you can still deliver to have some value. So this is a mix of DevOps plus Python stuff. And just to give a highlight, what I'm going to talk about here, it's a big subject. I think a lot of people would be attracted to Django and related stuff. So basically what I wanted to highlight is Python is really a good choice if you are building stuff very quickly and it integrates to everything else very, very, very easily. So this is what I'm trying to help you out here and it will have some non-technical stuff also, which is the phase one, which we are going to talk about is basically, actually this is my intro. We can skip to it if we get some time. Basically you can meet me at your friend room if you wanted to have some discussion or if we are running out of time. So we are going into three phases, first phase, when you have an idea how would you formulate it to have a product. And then phase two will include Python related stuff and what you can do with Python, basically Django and how to integrate with the stuff mix, which works very easy. Phase three is definitely how to make it into production and why Django is one of the first choice when you are going for rapid development production and continuous improvement. So let's have the phase one. So you have an idea and now you have, it's abstracting how you make it concrete. So that's, okay, so all of this, what I'm going to talk about is a real product that we tried out and it's into production right now and we did it into a few weeks. So how we started off is something already something called hypothesis. So you have to have your ideas written down in this format, what, who and how. So I'll be sharing links and this presentation is already live on Google presentation. So you can actually click on the links and get a lot of details out of it. So basically what we are focusing here is how would you come up with your ideas and how would you make it more actionable. So this is how you should document our idea. I think you can read through it. So basically what you have is a business model hypothesis. You will like that, you know, okay, what you have to build. Okay, and then we kind of try to use stuff which actually gave us the extension items, the actual business objective that we have to build. So there's something on business model canvas. How many of you have heard of business model canvas? Okay, so this is a simpler version of business model canvas, lean business model, lean stack from lean stack. And this is how you actually start writing your problems and then you'll reach your solutions and which has some revenue streams also. So I highly recommend this before writing a single line. Of course, if you are into serious development, if you wanted to earn something, this is the way to go. Again, this is not a single stuff. You won't meet this once. You will meet this for all of your ideas, all of your problems. And one of the good thing about this is you constrain yourself to top three problems and top three solutions. So actually you try to visualize your product as lean as possible and that's the only way you could deliver some value within very short time. So I think this is a very top level thing that I would recommend if you are... So how many of you here are from a product background? Like, you know, they are building into products kind of, yeah. Okay, okay. So I think they will be really fun to live in this. So rules and rules are this, you have to iterate multiple times. You have to iterate in parallel. So like if you have two, two or three, you know, you should do it in parallel and then come up with something which the whole team agrees upon. And again, you don't need to use any commercial tool or don't need to use any high-five stuff to have this thing. Okay, you just have a word docs or just people who are going around here and there and then you come up with some strong ideas. So that's it. So we have it now. Then what to do? How to execute it? So basically, we want the actions which can be measurable because until if you do something that's not measurable, you won't be able to improve on it. So next step is we use Trello. This is the real board that we use. Trello, I think how many of you are fan of Trello boards? Okay, cool. So I think no introduction to Trello required. Basically, I just wanted to highlight you how we use two boards and to manage stuff. And I think it's from user voice guys and we kind of improved upon it or maybe modified it. So you need a planning board and when you put down your ideas and features at very top level, then you have things which are going on right now. So, you know, the current team, you wanted to walk up on some things from it. And then we obviously had this is not in the original user voice board. But we had the infrastructure requirement which was continuously going on because we were in a always to production mode. So, okay, one, two days we have something will be there to fill the Amazon and the actual production site. So we try to do this. So we already we have a infrastructure requirement going on. They have bugs. So anybody or even customer reports something we put it down here first and then we prioritize. So that's it. And everything else is going to be for must be moved to a different institution before going into next board. There's the last thing this board. It's the kind of archive stuff, but we call it post evaluation. So we put down ideas there which we are not going to do right now, that kind of stuff. So what we put it there for reference, you know, the guys could actually, you know, pick it up and if they can bring it back. So it is a simple stuff. We write out this is really helpful to prioritize what you are planning. Okay, so this is it. And then we use the another general board. So from that up next, we actually come here, sorry, from last year and for execution team will come here up next. And here the devs and the other team members will pick this task. And it's like a simple to doing and done thing. But what we did out of this is next up doing and something called launchpad. So I'll discuss more about this why we are not having a done thing. Why it's called not long spread because we are following something called master base development and so long spread seems empty right now because we need a release. So all of this individual things are released. Okay, so each product registration what we did is this. So all of this stuff what we are in planning and then come here and finally we have a release. So this is actually a release. So this is what we sent out to customers. So that's about the execution and that's it. This is the whole code flow. Only two more. That's it. Nothing more, nothing less. So this concludes the plan, the execution and all that part. And so I'm going to talk about a lot of small stuff that you already love about and how we use it. So get everybody. So no explanation about it. So get and get branches. Everybody are aware about branches and all that stuff. So we just try to simplify stuff as we use master base development. That means master is exactly always ready for production. So I think it goes into master. It's exactly what the normal get flow is where master is unstable or developed right. But we generally only do price maybe for developer actually working branch and master. And so what we had a very simple rule is each brand must represent fully working release. So else don't touch. Okay, so if you are going to deliver it then only do it. That's the other way to look at it that don't write or don't do anything which is not going to go into production. Because this is what we are talking about daily and not twice a day release and that's into production. So that's it. So sometimes there are a lot of questions about if you are working on something big and how would you come at it? How would you actually do it without affecting other things? So feature flag, feature flag are like normal if condition. Okay, if there is a setting x equal to your enable feature one yes, then you have some four that's not. It's a very simple stuff, very simple idea, very powerful idea. So that's it. So this is how we try to use skip. And it's definitely the real mid-jango. So I have around eight years of experience with Java Enterprise Technologies and we had to do this project due to NLP requirement. And I think the guy just discussed those sentiment analysis and there were some few energy features we had to use. And that's why our product was actually based on jango, based off of the new. And so we found it very, very effective in coming from the background of Java Enterprise application. That is one of the best framework which provide out of production readiness. So Django people understand that yes, this is not a toy. This is not something that you use it for thrower projects. This is serious stuff. So I'll just highlight few of those things which is the Django is definitely awesome. But I'm just going to highlight very, very minor things, few of the things which help us to do a very quick integration with the things. So, sorry, I'm not going to Django a lot of features. One of the very important part we found out about Django is it has a lot of extension points at each and every stop. So first point was and whenever we have a feature which is we, that's a simple mode to make it work first and then make it correct. And Django allows you to do this if you were into some other thing, but you might have to relate a lot of stuff. So that's what we like about Django at very high level. Okay, so as I told you, I'm only going to highlight very few items which I directed us. It's one of the best thing is data migration and Django is seriously serious about data migration and which obviously have that whole previously known as Django South. And now it's part, kind of a part of the code from Django 1.7 is Django Migrations where we can actually go to full manual mode. So I like this, I think not clear to the table, but it's a simple migration method. Those who are not aware with Django Migrations, it is a simple class with two methods for migration and backward migration. And you can actually write literal SQL DDLs. It's that simple if you want to. That's the point I wanted to highlight it. It has a full auto mode. You'll never have to write any SQL statement ever for migration. Yes, but when you wanted to make it correct, when you want to have the power, that flexibility, it still allows. It's that simple. Okay, anybody wants to go into Django Migrations? Okay, no, okay, so we can take it up later. So that's one thing we wanted to highlight. Okay, and so I'm talking about now going to talk about a lot of things which integrates very easily with Python and specifically Django. So PostgreSQL, we are from Django Mig data background. I was part of a particular team for HBs at Y. And when we came to this land, you know, from the last two years, I'm throwing this out as a word that used blue elephant before trying out yellow elephant. Anybody knows yellow elephant? I do. And blue elephant? So yeah, I think yellow elephant is a mascot of Hadoop and blue elephant is a PostgreSQL. That's the icon, okay, if you see. So it's a simple thing that a lot of friends, you actually don't need to scale that much. Okay, you think that you need that much big thing, but you don't. Okay, that's the saying that you hit a business scalability fast before you hit a scale. So that's how you start with. So start with yellow elephant, start with PostgreSQL. Again, PostgreSQL is a very, very, very giant stuff. And although it's a very easy to integrate with Python and Django, I just wanted to highlight one feature. It's a full text search. You can see that this is one of the powerful stuff which you can do with just a few cricks, a few command line instructions, and you have your whole current Django PostgreSQL server serving you the full text search engine. Okay, you don't need solar or any complex stuff, service running. You don't need to learn API. You don't need to build index. You don't need to maintain index. Everything has been taken care. So that's what I wanted to highlight that. Full text search. There's a small 200 line of port which gives you text. This is Django ORM. It's so powerful and so extensive of that. This 200 line of port actually allows you to integrate full text searching and indexing with your normal RDVMS tables. So if you have a table, let's say here we have a table and there's a text field passed with the text. And so just few configuration options. And you have a full text search going on onto all of this. Automatically, you don't have to do any line of port even by injection or things. On top of it, when you wanted to search. How many of you work with new scene or something for full text search? Full text search? Anybody? Okay. So that's a lot of you need to learn API. There's a REST API call you have to make. And here you will write normal like SQL query likes. And that actually does the full text search. So if you wanted to go into detail when to use it. There's a full detail discussion that I can use. You can go and read when to use, when not to use. So this is again PostgreSQL's big stuff but it's a very quick integration. You can use right away in your app. Just 10 line of configuration and one line of configuration for models. That's it. One of the cool stuff which we are. This is one of the things which picked up in our organization very, very quickly. Is the interval. Okay. How many of you work with configuration management, deployment, automation, pop-back? Okay. So I think this is the kind of simplified answer to most of the questions which Puppet tries to answer. It's as cool as it technically uses inside Python inside. It's based on Python. But you don't need to look into the box. It's so simple that it's simple as a search. Okay. We have to provision a lot of services around a lot of machines. So you have to say, okay, Django is always here. You already have a service there. You have Engine X running somewhere and all that stuff. So at least you have, if you go to production, you will at least have more than one machine. At least one more than one machine. So how do you make sure that when you deploy something or you want to do rapid development, rapid deployment. So how would it help? So it's so easy to integrate with your normal Django application. Why I wanted to highlight the folder section. Okay. How many Django is here? Django. Okay. Cool. So if you are aware, like in Django, if you are going to build modules, it's a folder section. You have to follow some patterns. And if you use .py and models.py, there are filenames and folder section. If you learn once, it's very easy to make modules. And that is the same stuff if you look here. The roles is actually modules. How would you want to set up your services? If you see very popular, I have DPE back kind of modules. And there are tasks which has to be done. So the whole structure is, if you just spend like 20 minutes, if you are Django guy and simple folder structure is exactly kind of very similar. Okay. So what would you do is, one thing about this is it's agent class. You don't need to set up anything on your machines. You have 50 production machine or 2 production machine. There is zero installation required on actual machine. You start with a blank machine, blank AWS machine. And you point out that it's well from your laptop to make it fully deployed. All of your application with database, with migration, with web servers, everything done just via one SSH connection. Done. Okay. So that's it. One of the powerful things about what we require. Like Django has a setting.xml file and you need to customize for environment and all that stuff. Right. So how do you do it? So they have a simple markdown template, which is a Jane Inger tool, some template, but it's as it is markdown, just like you're editing it pages. It's very simple. And yeah, I already highlighted it's a modelized, it's the same as modelized Django. Okay. So, okay. And so this is just a showcase how easy it is to let's install and configure a database web server to allow database connections. So you have host file, you have variable file and HP. This is the host grace configuration file. If you see I have, you can write down a very simple follow to customize your configuration file. It automatically does all this variables in place and all that stuff. So, you can come down to me later on if you want more detail on this, but it's just a showcase how easy it is even to do complex configuration like this. Next thing what we use very, very frequently with Django is, Django is sometimes you need to run some external services. So it's a hope most of you guys know Django CLI commands. It's a, you know, Django supports a CLI and you can run your custom logic. And so you will say Django manage.pun, your command and your custom code will run. So you can basically integrate all those CLI commands or your application. Let's say we had a use case that we have to run a Java service and Django app has to interact with that service. That's fine. You can make it very easy, but how do you ensure that the Java service is running properly and how do you make sure that when you deploy the things are latest into the Java service also? That's a simple thing. It's a simple supervised configuration, one configuration file and a few lines of Ansible code and you are done with. So this is the Django integration with non Python stuff. How do you do it? Okay. And then we have phd. So this is where we are integrating. We are targeting that. Okay. We try to do a lot of stuff repeatedly daily and we still have a running system. So technically speaking there is no phase three. You have to have same execution tool and design most support continuous integration just like Django. If you don't have a proper migration module, database migration, you have to do a lot of stuff manually. So you pick up a tool which actually allows you to do continuous improvement. So most of the tools what we discussed already provides that. So the learning is that you know separate phase three. When you are doing phase two execution, you have to make sure that you use right tools which allows you to do rapid things. Which allows you to do repetitive things, repetitive elements, continuous deployment. And so, but still I'll just give you two hints which mostly falls into monitoring part. Not technically measurements but you can use a very simple Google Python tracker. So we wanted to have all of the Django application internal APA performance metrics collected. So don't need to write a lot of stuff there. There is a hundred line of Python tracker code which you can pick up and by that you can actually measure each of your Python method performance with some metadata. You can actually log some metadata also. And you can just create a fancy report in Google Analytics or some other reporting services. It's static. So that is one thing we use heavily to measure the APA performance in Python. And one of the last tool is, this is for monitoring your life services, load average, open file network stack. This base and our favorite stuff is tailing and searching logs. So you have a production machine, you've got some issues or services that are slow. How would you find out that, you know, what's the state in that machine? You can just point to that machine, have the PSS installed. PSS is a simple Python tool which runs in the background. We configure it with super wizarding so it always runs. And, you know, whenever you have issues you can go to Python process Django. You can go be with the PSS process, see the open file, network state, everything. And some extra things to log files, everything from your browser. So, good one. And finally, covering some quality analysis and testing parts. So basically, definitely you have to focus on things when you deliver something. You have to test and make sure that things are working fine across releases. If you want to do multi-day release, you need this. So basically, what we did is we created a simple. This is a single page AngularJS app. AngularJS, anybody have tried out AngularJS, you're cool. So, this is a simple HTML page with some AngularJS goodies, which creates a fancy chart and reporting. Basically, it is all open so you can pick it up right now. And the good thing, what we wanted to have is you need a simple shell of Python existing test case or existing some message file with you. And it should produce a JSON test output. That's it. That's it. Test one, pass test two, fill some description, that thing. So, it's a very, very simple JSON there. And if you do this, you will have this fancy report. So, we do this on a release basis and we just keep it there just to make sure that everything is not breaking and that kind of stuff. So, that's it. That's it for me. One or two quick questions? Yes. I think we have two, three minutes. Any questions? So, it seems so easy, but it's actually dangerous to put people who don't know what this means behind the scenes, right? Yes. Okay. Okay, thank you guys. Again, thanks a lot.