Title
AWS re:Invent 2022 - Modern cloud applications: Do they lock you in? (ARC207)
Summary
- Gregor, an enterprise strategist and application builder, discusses the concerns around modern cloud applications and vendor lock-in.
- He defines modern cloud applications as a combination of languages, architectures, ways of working, automation, and managed services, not just the runtime environment.
- Gregor emphasizes the importance of understanding that serverless at AWS is not just about Lambda and Fargate but includes a suite of services like EventBridge, Step Functions, SQS, SNS, and DynamoDB.
- He introduces the concept of the "Architect Elevator" from his book, which is about connecting different organizational levels and seeing more dimensions in decision-making.
- Gregor argues that lock-in is not binary but has many dimensions and gradations, and it's more about switching costs than being "locked in."
- He critiques service mappings and abstraction layers as ineffective strategies for reducing lock-in and suggests that they can lead to underutilization and increased complexity.
- Gregor advocates for good software engineering practices, such as maintaining design intent, using design patterns, and increasing development velocity to reduce switching costs and avoid mental lock-in.
- He demonstrates how AWS CDK can be used to code design patterns, making them more than just theoretical constructs and aiding in reducing switching costs.
- Gregor concludes that using modern cloud applications with good software engineering practices can mitigate concerns around switching costs and lock-in.
Insights
- Modern cloud applications are not solely about the technology stack but also about the processes and practices that surround their development and operation.
- Vendor lock-in is a nuanced issue that requires a multi-dimensional view, considering not just the potential to switch vendors but also the costs and trade-offs involved.
- Open source is not a silver bullet for avoiding lock-in, as it addresses vendor-related switching costs but not other types such as product, version, or architecture switching costs.
- The concept of "mental lock-in" is introduced, where developers may become too focused on specific services and lose sight of the broader architectural intent, making it harder to adapt or switch platforms.
- Gregor's approach to reducing lock-in involves increasing the velocity of development and operations, which can lower switching costs and improve the organization's ability to adapt to change.
- The use of AWS CDK to code design patterns is a practical example of how cloud services can be abstracted, allowing for more flexibility and easier transitions between different cloud environments.
- The talk reinforces the idea that good software engineering practices are essential for building modern, adaptable, and maintainable cloud applications.