Conf42 DevOps 2025 - Online

- premiere 5PM GMT

Mastering Cloud and Serverless Automation: The SDET’s Guide to Success

Video size:

Abstract

Unlock the future of testing with cloud and serverless automation! This talk equips SDETs with practical strategies to validate APIs, test infrastructure, and tackle performance issues. With Java demos, you’ll learn what works, what to avoid, and how to build scalable, high-quality apps confidently.

Summary

Transcript

This transcript was autogenerated. To make changes, submit a PR.
Hello, everyone. Thank you so much for joining me today. I'm Saily, and I've been an esthete for almost 10 years now. Over the years, I have worked on testing a variety of systems, especially in cloud and serverless environments, and I've learned a lot along the way. Today, I'm here to talk about mastering cloud and serverless automation, the esthetes guide to success. I'll share some key lessons and practical tips that truly work in this field. I'd love to hear from you, your experiences, thoughts, or anything I might have missed. I'll share my contact at the end so we can stay connected. So let's get started. way we build and deploy software has changed dramatically with the rise of cloud and serverless technologies. This shift demands a new, more adaptable approach to testing. As esthetes, we need to evolve our skills and strategies to stay ahead. Mastering cloud and serverless automation isn't just a nice to have anymore. It's a must for ensuring applications are reliable, scalable, and high quality. In this talk, I'll share strategies, tools, and best practices that can help you excel in cloud native and serverless environments. These approaches will empower you to become a key contributor to your team's success. So why is cloud and serverless automation so important in today's tech landscape? First, the cloud environments are dynamic. Cloud Infrastructures change and scale in real time. Automation is essential for testing and validating these changes quickly and reliably. Second, cloud native applications have complex dependencies. They often involve multiple interconnected services, and testing these systems end to end, without automation, can be a real challenge. And finally, it's also about cost and efficiency. Automation saves time by reducing manual testing effort and speed up release cycles. Plus, identifying defects early can significantly cut costs. With this foundation in mind, let's dive into how we can master this critical area. Let's start with infrastructure as code automation. If you're working in the cloud, this is a must have skill. ISE, or infrastructure as code, lets us define and manage cloud infrastructure using code, making deployments consistent and scalable. However, misconfigurations can lead to issues like security vulnerabilities, unexpected costs, and performance bottlenecks. ISE validation ensures that infrastructure is reliable, secure, and compliant. So what tools can we focus on? We can start with Terraform, AWS CloudFormation, or Azure Resource Management. here's some advice on automating infrastructure as code. Validating before deployment. write tests to validate your ISE templates before deploying them. Tools like Teratest can streamline and automate this process. Next, enforce standards. Use linting tools like Checkout to ensure your code adheres to security, performance, and benchmarks. These tools can help maintain coding standards across the team. rollbacks. Set up automated rollback mechanisms for failed deployments to minimize downtime and reduce risk. for drift. Regularly validate infrastructure drift to ensure your configurations remain consistent with your desired state. Now let's move on to API testing for serverless application. APIs are the backbone of serverless systems, enabling communications between services. Testing them is crucial to ensure they work reliably under various conditions. Why is this important? APIs connect distributed systems and serverless architecture. Without proper testing, issues can ripple through the system, causing major problems. By testing APIs thoroughly, we ensure they function as expected, even under stress. what are some tools we can focus on? There's Rest Assured, Postman, Neumann, Karate, etc. There are some really great tools. our IDE approach, Automating API Testing. Start with functional tests to check API responses, payloads, and status codes. This makes sure the basics are working. Next, move to integration testing to see how APIs work together seamlessly. Use contract testing to validate dependencies between services and ensure everything aligns. Try fault injection to test resilience and error handling by simulating failures. Don't skip on security testing. Validate things like authentication, authorization, and input sanitization. Finally, use schema validation to make sure APIs meet specifications like OpenAPI standards. Now let's talk about performance testing and optimization. Serverless applications bring unique challenges, things like cold start, concurrency limits, and scaling behavior. These can impact your app's performance and user experience. If performance isn't optimized, your app might struggle during traffic spikes or leave users frustrated by delays caused by cold start. Performance testing ensures your app is both efficient and reliable. Tools like Gatling, JMeter, Artillery, AWS X Ray are great options for testing serverless performance. So here's how I'd approach automating this. user test traffic to test impacts of cold start and concurrency. Monitor key matrix like latency, throughput, and response time under different loads. Use distributed testing tools to mimic large scale and real world user scenarios effectively. Analyze results to identify bottlenecks and fix them. Test for scalability to ensure your system can handle sudden traffic spikes. Automate performance testing as part of your CICD pipeline for ongoing monitoring and improvement. Next, let's discuss observability and monitoring integration. This is a, this is critical for keeping systems healthy and resolving issues quickly. Observability provides real time insights into how your system is behaving. Without it, finding and diagnosing problems can feel impossible. But with the right setup, you can catch performance issues, errors, or failures as they happen. Tools like Grafana, Prometheus, Elk Stack, etc. are powerful options for observability. So let's see how we can approach automating that. We can set up automated alerts to notify us of performance drops or failures. Using dashboards to track key metrics like latency, error rates, and uptime. We can integrate observability tools into CICD pipelines for immediate feedback during deployments. Leveraging distributed tracing to understand how services interact and pinpoint bottlenecks also helps. Automating log aggregation to simplify troubleshooting and ensuring compliance is also very important. Now let's dive into. CI CD pipelines for cloud environments. They are essential for modern software delivery. CI CD pipeline automation and testing, validation, and deployment is all a key part. They help deliver software faster, more reliably, while reducing errors and simplifying development. There are tools like Jenkins, GitHub Actions, Circle CI, GitLab CI CD, they are widely used and worth learning. So here's how I'd automate this. Embed automation tests in your pipelines to validate code quality and deployments. Use infrastructure as code tools to quickly spin up and tear down test environments. Use canary deployments to test updates in a controlled environment. Use blue green deployments for zero downtime releases. Automate rollback mechanisms to maintain stability in case of failures. automated security and compliance check to ensure your system stays robust and secure. Next up is fault injection testing. This is a proactive way to improve system reliability by simulating real world failures. Fault injection helps us find weaknesses in our system before users are affected. By intentionally introducing failures, we can validate recovery mechanisms and ensure the system is designed to handle unexpected scenarios. Tools like Chaos Monkey, Gremlin, AWS Fault Injection Simulator, Litmus Chaos are excellent for creating fault injection tests. So here's how we can automate this. Simulate failure scenarios like network latency, timeouts, or service unavailability. Test for cascading failures in microservices based systems to understand how dependencies interact. failure scenarios to validate your system's recovery and self healing capabilities. capabilities. Integrate fault injection tests into your CICD pipeline to make this a consistent practice. let's move on to security automation. This is a critical part of modern testing workflows. As systems grow more complex, automating security processes is essential to stay ahead of vulnerabilities. Security automation ensures compliance with standards, identifies issues early, and protects your application from potential attacks. Thank you. So here's how we can automate this. We can validate APIs for authentication, authorization, and input sanitization. We can automate vulnerability scans for infrastructure as code templates and container images to catch issues early. We can test for common attack vectors like SQL injection and cross site scripting using automated tools. Integrate security checks in the CICD pipeline to ensure compliance throughout development and deployment. let's discuss about automated environment cleanup, a practice that's often overlooked, but highly important. In cloud environments, Resources can be left running unnecessarily, leading to increased cost in cluttered environments. Automating cleanup helps reduce cost, prevents resource sprawl, and keeps environment consistent for testing and deployment. Tools like Terraform, Ansible, AWS Lambda are excellent for automating cleanup tasks. So here's how we can approach testing it. We write test scripts to identify and remove unused cloud resources. We use lifecycle policies to automatically delete old snapshots or unused objects. We can schedule cleanup jobs to run after deployments or test execution to keep environments clean. We can automate tagging and resource tracking to manage resources more effectively and simplify cleanup. So now that we have explored the key areas to master, We can shift our focus to strategies for future growth and continuous learning. These are actionable strategies that will help you to grow and thrive in this field. The first one is keep learning and get certified. Start by building a strong foundation. Take certifications on platforms like AWS, Azure, or Google Cloud. To understand the basics of cloud computing, Next, we can dive into serverless frameworks like AWS Lambda, Azure Functions, or Google Cloud Functions to see how they work in real world situations. Next, learning a programming language. Choose a popular language like Java, Python, or JavaScript and focus on mastering it. These are essential for creating scripts, writing test cases, and building automation frameworks. collaborating with DevOps team. Working closely with developers and operations team. helps align the testing with their workflows. By understanding how they operate, you can integrate testing more effectively and ensure better results. Last, trying out open source tools. Exploring open source tools to expand your skill set can be very helpful. Tools like Open Policy Agent can help with policy compliance and serverless frameworks are great for local testing and debugging. pipeline. Now let's look, let's look at some best practices that can help us approach cloud and automations, serverless automations effectively. First, start small. Focus on automating one part of your pipeline, like API tests, and then gradually expand to other areas. Starting small lets you refine your approach without getting overwhelmed. Next, fail fast. Catching issues early in the development cycle is key. Prioritize early testing to save time and prevent problems from escalating further down the pipeline. tests modular. Writing small, reusable, and independent tests is very important. Modular tests make debugging easy and allows you to quickly adapt when your system changes. security. Make security a core part of your automation strategy. Automate checks for APIs, ISE templates, and serverless resources to ensure your system remains secure and compliant. Optimizing costs. Keeping an eye out for the costs of running tests, especially in the cloud, is very important. Monitoring and managing these expenses will help you stay efficient and avoid unnecessary overspending. By following these best practices, you'll be build automation framework workflows that are scalable, efficient, and secure, creating a strong foundation for long term success. Now let's wrap up with some common challenges in cloud and serverless automation, along with practical solutions to tackle them effectively. big challenges with cloud infrastructure is that it is dynamic. It spins up and down on demand. This makes it tricky to keep testing consistent. So what's the solution? Using ephemeral infrastructure. Using tools like Terraform or AWS CloudFormation to set up resources on demand and ensure consistency across your environments. let's talk about cold starts in serverless applications. Serverless functions can slow down during their first run because containers take time to start. fix this, we can use warm up scripts. They keep the container active or try caching strategies to reduce latencies during critical operations. lack of observability in serverless. When we can't see what's happening inside a distributed system, troubleshooting issues become tough. The solution is to use AWS CloudWatch, Azure Monitor, or custom logging frameworks. They give us real time insights. Distributed tracing is also great for spotting bottlenecks between services. Next, tool chain complexity. Having too many tools for automation, monitoring, and deployment can make things messy and inefficient. To simplify, pick a set of tools that work well together and stick with them. Make sure your document to make sure workflow so your team stays aligned and productive. By tackling these challenges with these strategies, we can build a solid and efficient automation system that works smoothly in cloud and serverless environments. Mastering cloud and serverless automation is no longer just an advantage. Microsoft It's an essential skill for SDETs to thrive in modern software development. This journey requires a commitment to continuous learning, hands on experimentation, and collaboration with cross functional teams. With the right tools and mindset, you, as SDETs, can play a pivotal role in ensuring the success of cloud native and serverless systems. you so much for your time and attention today. I hope this session has given you practical insights and inspiration. I'd like, love to connect with you, hear your thoughts, and discuss further. So please feel free to reach out. Let's continue learning and growing together in this exciting space.
...

Saili Maliye

Tools and Automation Engineer

Saili Maliye's LinkedIn account



Join the community!

Learn for free, join the best tech learning community for a price of a pumpkin latte.

Annual
Monthly
Newsletter
$ 0 /mo

Event notifications, weekly newsletter

Delayed access to all content

Immediate access to Keynotes & Panels

Community
$ 8.34 /mo

Immediate access to all content

Courses, quizes & certificates

Community chats

Join the community (7 day free trial)