问HN:云基础设施是否让我们忘记了本地文件系统和内存?
我在90年代开始编程,并一直持续到今天(尽管由于我在管理团队,所以编程的时间有限)。我经常看到一些在20年前会有非常简单或“愚蠢”解决方案的问题,如今却似乎需要复杂的工具、库或服务。
举两个例子:
我最近看到一位工程师为存储一个仅在当前会话中需要的临时文件而配置了一个S3桶,而这个文件只能被创建它的应用程序访问。对我来说,这正是本地文件系统的用途。
我还看到另一位工程师配置了一个内存中的键值存储,用于存储一些不经常变化的参考数据,这些数据可以在启动时轻松加载,并且在应用程序运行时内存在请求之间保持持久。对我来说,这正是本地堆内存的用途。我只需将数据加载到一个单例映射中。
这两种服务都有其合理的使用场景,但我不禁想知道,它们(以及其他我在这里不想详细讨论的工具和服务)是否开始让程序员忘记我们的应用程序运行在具有标准资源(CPU、内存、磁盘、网络接口)的机器上,这些资源通过操作系统提供,并通过开发平台提供的API进一步抽象化。
还有其他人有类似的经历吗?
[1] 我所工作的系统是非平凡且至关重要的:资本市场交易系统。因此,这并不是说那些“愚蠢”的解决方案在韧性、性能或可维护性方面存在问题。
查看原文
I started programming in the 90's and continue to do so to this day (though in a limited capacity since I'm managing teams). I frequently see things that would have had very simple/dumb solutions 20 years ago[1], which now seem to require complicated tools, libraries or services.<p>Two examples:<p>I recently saw an engineer provision an S3 bucket to store a temporary file that is only needed for the current session, and only accessible to the application that created it. For me, this is what the local file system is for.<p>I saw another engineer provision an in-memory key-value store to store some infrequently changing reference data that can be easily loaded at startup, in an application runtime where memory persists between requests. For me, this is what local heap memory is for. I would simply load the data into a singleton map.<p>Both of these services have legitimate use cases, but I can't help but wonder whether they (and other tools and services I won't go into here) are beginning to make programmers forget that our applications run on machines with a standard set of resources (CPU, memory, disk, network interface) made available through an operating system, and further abstracted by the API provided by the development platform.<p>Has anyone else experienced this?<p>[1] The systems I worked on were non-trivial and mission critical: capital market trading systems. So it's not a case of those "dumb" solutions being either non-resilient, non-performant or unmaintainable.