preview

Essay On Mtr

Decent Essays

One of the most challenging aspects of the job so far for me is how to stage changes without breaking anything and how to always keep the service running without any downtime. When you factor in the multiple microservices we have and the number of developers checking in at any time plus the multiple client applications we have, then you can have a sense of the combinatorial explosion of possibilities that are possible. The following are a couple of techniques that I use - I learnt most the hard way and so far they've worked great for me and I always use them when developing new features or potentially harmful features. 1. Live configurations Most applications allow you to set configuration as part of code but distinct from it. The …show more content…

The major goal is that changes should be transparent to the users and things should not break. I remember once trying to integrate a brand new v1 service into our offering. the challenge was that the v1 service we were going to depend on was in flux and things were broken at times - not pointing fingers or blaming them but that is expected when you are building things from scratch at the beginning. Consequently I had to mock the expected responses and thankfully the set of possible responses then was quite small - there were only two possible states since we were just starting out. I hardcoded these responses into our configuration files, wrote the code in such a way that it would read the configuration files and choose the expected response and return it. To the end-users, it didn't make a difference however the beauty of it was that it gave us a way to slowly swithc to the service without any downtime. And when the v1 service did break, all we had to do was flip the flag / feature switch and we would fall back to the configuration without having to do a code deploy or spin up a live site incident. Eventually the service became mature and stable and the hardcoded configuration fallback went away. 3. Opt-ins for breaking changes Breaking changes are inevitable - the service has to grow and evolve and things have to change. In fact, some underlying major piece of the software might get rewritten and we'll have to respond (Yes, I am looking at you

Get Access