Modern Cloud Applications Do They Lock You in Arc207

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.