The Node 10 release and the retiring of the Node 6 runtime created a debate around what you can expect from runtimes and from AWS. With that, came some criticism about AWS Lambda being too slow in adopting the Node LTS long-term support releases. However, shortly after the release, a bug was found in the Node 10 initial runtime which raised a question – should we give things a little bit of time to settle before rushing in and adopting them? To answer this question and more, we got Hillel Solow, CTO & Co-Founder here at Protego and Eoin Shanaghy, CTO of fourTheorem to discuss all the latest topics in cloud-native and serverless.
Around the same time the Node release was announced, AWS announced a new runtime model, which they stated will allow them to adopt the long-term support versions of Node more quickly. As mentioned, a bug was found in the Node 10 initial runtime, which meant AWS had to come out and ask people to hold off on upgrading to Node 10. With the new runtime model, AWS also stripped down to use a much smaller operating system runtime under the hood, which means the cold start time will be a lot shorter since it’s a much more lightweight deployment, which is truly what you want from Lambda.
Unfortunately, this also attracted a bit of ire from the community because there were a lot of people who had built systems that were dependent on certain shared libraries being in place there, creating a migration path involvement for some. Eoin chose to call these “teething problems”, and stated that people should probably give new technologies time to settle before they jump on the boat.
If you look at the Node release cycle and how quickly things go from non-existent – to LTS – to no longer supported, the long-term support isn’t that long in the Node world. Runtimes are going to change – Just like Node 6 went out of fashion, Node 8 will be out of fashion by the end of the year. It is a much more live environment and organizations definitely need to be looking at this as something they need to support in terms of migrating from platform to platform, and try to move forward to the newest possible runtime so there is as long a window as possible before it rolls out.
When it comes to runtime, organizations must understand the support package around it. This applies to more than just Lambda. To help with that, Node Foundation published a schedule for the LTS releases. For example, Node 12 is now coming into the current LTS release, and is going to be supported into 2021. This means there are a good couple of years before that, but it’s something all developers have to be mindful of.
According to Hillel, these fast transitions are not a problem but rather a positive thing that is making companies be more mindful of their applications, and not just assume they can run them forever if support, bugs and patching are not something they care about. Instead, the cloud-native approach is to retire runtimes that are no longer supported since they create security risks, thus forcing companies to behave better with better functioning and more secure applications.