4 ms·
Software developer at Transport for London here. A substantial part of a few of our systems use Azure Functions. We've actually found them excellent to work w
by simplesleeper 8y ago
Software developer at Transport for London here.
A substantial part of a few of our systems use Azure Functions.
We've actually found them excellent to work with, fairly cheap and scaling very efficiently.
The main issues we've had are internal disagreements about how to pass app settings in efficiently. Originally we put all the app settings in the ARM templates used to deploy them. Then we put them as variables in VSTS. And then finally we decided to put them inti variable groups, which are within task groups, which are used by releases. It's a bit of a weird chain of dependencies, but now all of our parameters are located in one place
- tinco 8y agoWas latency a concern for you at all? If serverless did not exist, would the functions have been (micro) services with similar latency overhead?
- simplesleeper 8y agoI've found functions apps have a slow startup time, but once they are going, they perform pretty fast. I think we currently don't have any functions in time-sensitive streams (they're rather new, so they are used for new features such as Oyster automated refunds, which can be applied a few days later if need be), so when I say we haven't had any performance issues with them, it has to be taken with a pinch of salt. I think if we were using microservices, they would have substantially more logic in them than the individual functions have, so they would have a lower network overhead. They wouldn't scale automatically, so we'd have to have quite a few machines on all the time, which would cost a bit more. The main benefit we enjoy from functions is the ability to change code with zero downtime, low risk and minimum disruptions to the whole service. We've found the interfaces in Azure also to be great - we can write end-to-end tests that can poll service bus to check when all messages are delivered to assert against any final case.
- tomspeak 8y agoThis is fascinating stuff — every time I use my oyster card I have wondered what it is doing behind the scenes. Do you know of any write ups about TFL's infrastructure/processes? Would love to read about it. I'd also like to buy whoever lead the TFL API's move from XML to JSON a coffee|beer!
- simplesleeper 8y agoI don't know of any comprehensive writeups - even the internal wiki is lacking
- azuuure 8y agoYou should check out CosmosDB for holding the app settings. Integrated with azure functions out of the box.