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
Post a Comment