The distribute system is more complex and there are some practice will help us improve the communication efficiency and reduce risk in development cycle.
- Standard environment
Standard environment includes hardware and software environment. The software environment are the third party library, which our system will depend on the runtime.
It is fundament for the entire development process. The unstable or dirty environment will bring up a lot of unnecessary issues.
The following table can be example to maintain the list to declare stardard software environment in our current situation.
Software Environment |
Version |
Location |
Comment |
Owner |
Apache |
|
|
|
|
Tomcat |
|
|
|
|
JVM |
|
|
|
|
MemeyCache |
|
|
|
|
…. |
|
|
|
|
DataBase |
|
|
|
|
- Automation deployment
This is the most error-prone step if deployment is done by hand. If we automate entire process of deployment, it will reduce risk to the lowest.
The ideal way is that everything is done on one command or one clickJ.
- Self Test ( smoke test)
If the deployment is done , what we need to know whether it works or not. It need some smoke test in system level. But it also need the component level smoke test.
- Monitor
If we visualize the system status, we are easy and quick to know when the system go wrong.
- Log
The distribute system is not easy to reproduce the debug, but log can. When we need to debug, it will help us locate the component.
standard log format can take advantage of the exsited anlysis tools.