Skip to main content

Significance of Development and Production Environment for any Application

The concept of the environment that any application runs on was something that I was unaware of as a student. I got introduced to these concept after becoming a part of corporate IT sector. Two of the most important environment are Development environment and Production environment. Of course, there are testing environments like  OAT and UAT environment, but at times these are taken as a sub part of the above mentioned major environments.

So now the question arises, "What are  these environment? and why do I need to know about these?". Well, although subconsciously, we all are aware of these, not all of us are aware of how important these are to us and to each other.

Development environment is basically the environment where the application is developed and maintained. Any changes that needs to be made to any application are made in development environment as well. The application in development environment could be any application made from scratch or any third party application that the organization requires. In the case of application made from scratch, the application is developed and maintained in the development environment. In case of third party application, the application is configured according to organization's requirements. For example, when you are developing the JSP web application in Netbeans IDE and running the application in local host, you are actually running the application in Development Environment.

While Development environment is where the application is developed/maintained/configured, it is the Production Environment where the live application runs, in order to be used by business. Production Environment is the where the live application ends up getting used for it's true purpose. For example, you deploy the JSP web application that you were developing and running in local host using some web hosting services. Now your web app is running live in the Production Environment.

Another example of this is, say amazon app, the developers of amazon use Development  Environment to make any changes to the app. We as end users use the app in the Production Environment to either sell or buy products.

Now you may think "OK, so, as a developer, I just need to know about Development Environment, right? Why should I learn about the Production Environment at all?". Well, knowing about just the Development Environment is actually not enough, after all the applications we make are all made for Production Environment. Hence it is very important to learn about the Production Environment. Now you may ask "How does it make a difference?". Well, It does makes a huge difference. A lot of issues may appear when an application goes live in Prod(short for Production Environment) just because of it's developer being unaware of how the Prod is working.

One must understand that Dev (short for development environment) and prod works differently. For example, a web app may run fast in Dev, because at a time less number of users (mock users) are running the web app, say 5-10 users in parallel, however, in Prod, there could be thousands of users running the web app at the same time. This may cause the web app to even crash. Therefore, a developer must be aware of how the Prod work and develop/maintain/configure the required application accordingly.

Also, there is another thing that one must know as a developer, although as an individual developer, one may simply develop and directly deploy the app to Prod, things gets different when it comes to development as a part of an organization. In normal cases the below process is used for deploying the application/changes to Prod.
  • After the app is developed/changes are made, the app/changes are tested using what ever processes the organization follows.
  • If any bug(s) are found while testing, then the app/changes are sent back to Dev for debugging.
  • Once the app/changes passes all the test, a package is prepared to be deployed.
  • Organization may or may not have a separate team for deploying the app/changes. The package prepared is sent to the team that is responsible for deploying these.
  • This team then uses applications like Jenkins for deploying the app/changes to Prod.
The testing environments also works differently than Prod, therefore, even though the app/changes passed all the tests in testing phase, it may still have some uncaught bug(s) that might pop out in production environment. These bug(s) are then reported to the developers to be fixed and the app/changes may be needed to be rolled back. This could be prevented to a huge extent if the developers are well aware of how the Prod works and how will the app/changes impact in the Prod and would have developed the app/changes accordingly.

Understanding the significance of these environments will help you become a better developer.



Social Media Links:

Comments

Popular posts from this blog

Swap two numbers without using a temporary variable

It's been a while since I've posted any blogs and vlogs. I've been trying to record videos for Planet of Codes Youtube channel, but there's quite a lot of noise whenever I try to record, so I thought why not I communicate through these blogs instead till I am able to record something for Youtube. So here we are, blogging for something that I actually tried to record in the form of a video. Usually in high schools and colleges, when most of us initially learn programming, we get a programming problem to swap two numbers. Usually the solution looks something like the below. num1 = 32 num2 = 87 temp = num1 num1 = num2 num2 = temp print(num1) print(num2) Note: Usually institutions ask students to write this program in C or C++ in first semester, however the above program is in Python, because, It's the logic that matters. This program can be written in any other programming language too. Well, here we are using a temporary variable "temp".  This problem can ac...

Project Narutopedia Webscraper

Hello Guys, It's been a while since I have posted something, isn't it?  So, what's up you ask? Well, it happened on Monday, 22nd February, 2021. I was just passing my time, watching a Youtube video on a virtual assistant project. The video was quite impressive to be honest. They even used some package to extract data from Wikipedia. After watching that video, I thought to myself, is there any such package for Narutopedia? Now those of you who know me personally, know how big of a Naruto and Boruto fan I am, so I started to check if I could find one, however, I couldn't find any. I am not saying that there is no Python package for Narutopedia, there could be one, it's just that I couldn't find any. So I thought, "Why not make a simple app that can extract data from Narutopedia for anything we search?". The only problem back then was that I had no idea how to do that. I then started to research and it took only a few minutes until I realized that there i...