Student | JinYang Zhao |
---|---|
Organisation | The Apache Software Foundation |
Project | Introduce New CRD ShardingSphereChaos |
GitHub | @moomman |
agoiyanzsaban@gmail.com |
Hello, I am JinYang Zhao, I am in my pre-final year the time when I am doing my GSoC, I am from China. I started contributing to Apache Software Foundation a while ago, for issues regarding the features I did during my GSoC period, feel free to reach me through my Email.
-
Design chaos based on ShardingSphere in a production environment.
-
Implement it to out environment by operator.define the status and spec of the corresponding crd based on the actual chaos implemented (considering its duration, running state). The chaos can be managed by writing corresponding logic code in reconcile.
-
Make it automatic and do a lot chaos experiments to improve system availability.
The main goal was somewhat already implemented, my work was mostly to retune the existing way to have a better experience for end users. I did the way to make chaos crds and controller to set chaos engineer in shardingsphere become easy and automatic.
The difficult part for me was implementing is inject pressure in chaos and how to verify result, I tried many ways to finish this job, but the results were not satisfactory. So we had to reinvent the wheel, took help from my mentor mlycore on this one on working by using litmus,which depend on argo workflow.
Another interesting part was when inject pressure req to environment.I made a Pressure measuring tool to handle it.In finishing this tool days, I learn a lot interesting program skills.
- Explored the working of the whole project
- Explored more about the Project details, learned more about async programming
- Learning more about Chaos Engineer, make crds and controller
- Explored chaos in the whole project
- Discussed with mentors how to get the thing done well
-
Add ShardingSphereChaos CRD and convert chaos to Chaos Mesh logic in Reconcile function #286
-
Add basic convert type: Selector,Pod Chaos,Network Chaos,WorkFlow.
-
Add convert functions in Controller.Add convert and create chaos logic in Reconcile function.
-
Add ChaoKind Enums
-
-
Add inject req and pressure spec and reconcile logic #303
- add spec to specify inject pressure and job
- add reconcile logic to control
-
change docker images and push,change images for job #311
- change docker images and push to dockerhub
- change images for job default use
-
add event and status.phase to control resource create check #312
- add event to show sschaos info or warn
- add status.phase to controller sschaos create resource time
-
add verify Spec && update reconcile logic #316
- add verify Spec in chaos
- update reconcile logic to prevent error in running operator
-
Fix status.result bug #323
- Fix status.result bug
-
change chaos deletion to finalizer rather than ownreference #337
- Delete chaos resource by finalizer
- remove ownreference.
-
add chaos mock and test case for ssChaos #343
- add chaos and db mock
- test case for ssChaos
-
add-pressure-exec replace job(get pod log) #358
- add pressureCfg spec for pressure-exec
- change status Msg to express steady And chaos experiment
-
add cpu,memory,podkill chaos #399
- make cpu,memory,podkill chaos available
Since I get to know more about community the better I realized the number of people that are being affected by my work (my first time working on a project being used by thousands). In between the project, I stepped over my responsibilities to fix some ongoing issues in the production to further help the team deliver regular updates with fixed patches and a better experience.
- apache/shardingsphere-on-cloud#252
- apache/shardingsphere-on-cloud#257
- apache/shardingsphere-on-cloud#275
- apache/shardingsphere-on-cloud#305
- apache/shardingsphere-on-cloud#403
- apache/shardingsphere-on-cloud#364
- Loved the community and going to stay here and enjoy the open source culture, Met really good mentors and organizers, That being said I can say I got what GSoC was intended for ie. loving the way to love doing opensource
- Further fix bugs, look into more features if intended to be implemented