Ben Brauer has a two-parter looking at how architecture is changing. Part 1 looks at containers and machine learning:
Let’s start describe containers at a high level. A container is a packaging and distribution mechanism that abstracts and resolves many of the installer issues that result from ‘unique’ environments. We’ve all heard developers exclaim “well, it works on my machine,” after pushing an application to a new environment only to realize its broken. Containers strive to address this problem by creating a hard boundary between the infrastructure and the software stack used by an application. External dependencies are not necessarily added to the container, but all your internal dependencies (frameworks, runtimes, etc.) are there. This makes the deployment of the application to a new environment significantly more predictable as the compute environment is consistent as its part of the container.
Part two looks at serverless compute and low-code/no-code development:
Low-code (or no-code) development for applications is not a new concept. It strives to democratize development in a similar way as decades ago Visual Basic expanded the number of developers from thousands of C++ developers to hundreds of thousands of developers creating Windows-based solutions. Low-code takes this concept to non-technical professionals. Although this notion is great for productivity and usability, the maintenance and performance of these apps can be daunting to say the least. Now non-technical application authors need to learn about application management, documentation and, application deployment. Without a clear understanding of these considerations, the environment can quickly become chaotic. The good news is that platforms and tools have come a long way since Visual Basic. For example, Microsoft’s Power Apps platform provides many of the platform services needed to maintain a healthy application lifecycle and governance paradigm.
These are good concepts to know about, regardless of your particular cloud platform.