Team Setup and Experience with Serverless Teams
Serverless teams require a wide range of skills to ensure that dynamic infrastructure works smoothly. Since updates and maintenance are no longer performed in the same location, but rather through replacement, the approach to automation and deployment undergoes significant changes.
Increasing level of automation
Automation has indeed been a significant factor in traditional infrastructures, but it reaches an even higher level of importance when working with advanced cloud services. Environments must be constructed and updated using tools like Terraform, CloudFormation, CDK, or similar options due to the sheer complexity arising from the multitude of services involved. Even small applications can swiftly encompass hundreds of infrastructure components, and it becomes unmanageable without full automation.
Testing culture
A robust, iterative, automation-driven, and test-focused approach to application development is essential in this context. While it may not always involve test-driven development, a solid testing culture and infrastructure for both the application code and the infrastructure are imperative. The days of handing over the latest application for manual or semi-manual quality assurance checks before a release are long gone. This approach simply cannot keep up with the demands and pace of a Serverless Team.
These checks go far beyond the application code. Static assessments of your infrastructure code, validations to ensure that all infrastructure code remains valid and deployable, even after module changes. Moreover, similar checks are crucial for maintaining productivity. When combined with a strict rule that all infrastructure changes must be executed through automation, preferably via a CI/CD system, you can ensure that everything is adequately tracked and documented.
Debugging using logs and metricsa
Another significant change is the way these systems are debugged. For most higher-level AWS services, direct access to the containers or instances where the code is executing is not feasible. Consequently, debugging must rely on logs and metrics and essentially relying on data exported from running systems. Ideally they have undergone automated health checks and have removed any failing components.
This shift has been a substantial adjustment for many companies, as metrics and logging infrastructure were often neglected in favor of direct instance-based debugging. However, this option is no longer available, and the current approach is actually more beneficial. It compels us to have comprehensive access to vital data necessary for understanding our application. This also enables the use of additional services for analyzing our logs and metrics, such as Athena, for regular application or security queries across all of our infrastructure.
Conclusion
Automation for infrastructure and testing, a well-defined and consistent logging and metrics strategy, and an iterative process that allows for continuous improvement are essential for the efficient operation of a Serverless Team. These, along with skills spanning from deep cloud expertise and effective testing tooling for your applications, are the key factors to enhance speed and productivity of your team.
If you need any assistance, please don't hesitate to reach out.