Scenario of Application Development and Deployment in Learning Thoughts
LT (a ficticious organization) is working on 4 projects
LT-ecomm:
This is ecommerce project developed in Java Tecnologies
LT-ehealth:
This is a Healthcare project developed in .net Technologies
LT-elogistics:
This is a logistics project developed in python Technologies
LT-elearn:
This a elearning project developed in node js
The developement and project lead teams are
LT-Management Ladder and QA and IT Team
Plan for deploying Applications into various environments
All the applications developed in LT will have to undergo QA in the following environments
Unit Testing/Developer
Functional Testing / System Test Env
Performance Testing/ Perf Test Env
UAT/Pre-Prod
Manual Testing Environment
Then the application can be deployed to Production
All the testing should be automated- Sandeep and his team is responsible for that (apart for Manual Testing Environment).
Unit Testing should happen on the developer system and for every change submitted by developers
All of the changes done by developers during one day are consolidated and a System Test Env has to be created and Automated Functional Tests should be executed during night and results should be send to all the team members
Manual Testing Environment is updated along with Functional Testing environment every night
On Every Friday night the Performance Testing Environment should be created and all the performance tests should run over weekend and on monday performance test results should be published.
Once in two weeks all the work done by developers in that two weeks will be consolidated and a small release will be made and UAT environment is created where UAT Testing happens
Once the UAT is succesful, these changes will be published to Production environment (Prod is updated once in two weeks)
Summary: There are actions to be done
Whenever developer submits code
On some schedules (Every weekday at 9:00 PM, Every Friday at 10 PM, Every alternative Thursday, Every alternative Monday)
How to realize this
We need create this pipeline
to create test environments
to execute tests
We need to understand the system where developers are submitting the code (Version Control System)
To Create pipelines to automatically create environments and execute the tests we need some system => CI/CD Engine (Jenkins, Azure DevOps (vsts))
Next Steps:
Understand Version Control Systems and Learning a VCS called as GIT