Functions vs Containers: The Serverless Landscape • Marcia Villalba & Julian Wood • GOTO 2024

Discover the similarities and differences between serverless functions and containers, and learn best practices for efficient development and deployment in this engaging discussion with Marcia Villalba and Julian Wood.

Key takeaways

Functions vs Containers: Key Takeaways

  • Functions vs Containers: Despite being distinct, functions and containers share a common goal: to provide a lightweight and efficient way to run code.
  • Containerization: Containerization allows for a portable and consistent development environment, making it easier to develop, test, and deploy code without worrying about underlying infrastructure.
  • Lambda Function Caching: Lambda functions cache frequently accessed code and assets, reducing the need to re-download and re-run code, making it more efficient.
  • Minimal Image Size: Lambda functions can run with minimal image sizes, reducing package sizes and improving performance.
  • Packaging and Deployment: Packaging and deployment are made easier with tools like Docker and AWS SAM.
  • Portability: Portability allows for seamless migration of applications between environments, making it easier to manage and maintain code.
  • Lambda Function Development: Lambda functions can be developed and tested locally, and then deployed to the cloud, streamlining the development process.
  • Cold Starts: Cold starts occur when an application is invoked for the first time, requiring a one-time initialization process.
  • Code Optimization: Optimizing code for performance and minimizing image sizes can reduce the need for cold starts and improve overall performance.
  • Customization: While containers offer a high degree of customization, not all applications require this level of customization.
  • Testing and Development: Local development and testing, along with tools like Docker, can simplify and streamline the development process.
  • Scalability: Lambda functions can scale to meet demand, reducing the need for manual scaling and improving overall performance.
  • Best Practices: Best practices for functions and containers include using caching, minimizing image sizes, and optimizing code for performance.