Utilizing Managed Services and Serverless Architectures to Minimize Cost
Amazon API Gateway
Amazon Elastic Map Reduce
Design a Multi-Tier Solution
When To Go Serverless
Which services should I use to build a decoupled architecture?
The course is part of this learning path
This section of the AWS Certified Solutions Architect - Professional learning path introduces common AWS solution architectures relevant to the AWS Certified Solutions Architect - Professional exam and the services that support them. These services form a core component of running resilient and performant architectures.
- Learn how to utilize managed services and serverless architectures to minimize cost
- Understand how to use AWS services to process streaming data
- Discover AWS services that support mobile app development
- Understand when to utilize serverless services within your AWS solutions
- Learn which AWS services to use when building a decoupled architecture
In this next section, we'll describe the Amazon Device Farm Service and talk about how and why we should use it.
What is Amazon Device Farm? By definition, AWS Device Farm is an app testing service that lets you test and interact with your Android, iOS, and web apps on many devices at once, or reproduce issues on a device in real time. View video, screenshots, logs, and performance data to pinpoint and fix issues before shipping your app. So what does that mean?
Device Farm can replace that collection of devices that application developers and companies must purchase and maintain for app testing. It can be used for all stages of testing applications whether iterative changes or cumulative and there are hundreds of both iOS and Android devices to choose from. It can also be used to reproduce any reported issues about application performance. Device Farm can also be used through a remote access session which allows developers and testers to interact with a device through a browser, emulating the same experience they would get as they were testing the physical device.
With so many variables like the wide variety of phones on the market, a multitude of tablet options, different operating systems and OS versions, carrier and manufacturer modifications to firmware, along with environmental factors such as signal strength, it's no wonder that developers struggle with building quality into their mobile applications. Purchasing the hardware for testing is expensive. Plus, it must be maintained and updated and technology changes so quickly that old devices must be replaced with new ones to keep up with the latest innovations. On top of that, the mobile application market is highly competitive. Users discard a malfunctioning app for a functioning one and a customer is lost. On top of losing a customer, poor ratings can affect the ranking of an application and make discoverability more difficult.
Now let's take a look at some important features of Amazon Device Farm. The Device Farm service enables you to test applications on real mobile devices, not emulators. Amazon provides a wide variety of Android and iOS phones and tablets to choose from.
Device Farm offers flexible testing methods. You can perform automated tests using the built-in tests or custom scripts or use compatible open source frameworks like Appium, Calabash, Espresso, and more. The automated testing feature allows you to run many tests across many devices in parallel with results returned in minutes. You can also test manually with the remote access option. During a remote access session, you can interact with a device as if it was on your desk, but you use your browser instead. You can rotate the device, install applications, swipe and gesture, as well as other interactions.
In Device Farm, devices are secured on both the hardware and the software side. The physical devices in the farm cannot take video or photos of other devices in the farm. They can't connect or communicate with each other over a WiFi connection. Each has a dedicated WiFi connection. Devices do not share any kind of network infrastructure, LAN, WAN, or internet. In a standard testing environment, the mobile device is usually connected to a host machine like a laptop or a server, and then tests are run against the device from the host machine. Device Farm offers a similar configuration. You have dedicated devices for your session. Once you have completed your session, the host is wiped clean or destroyed to ensure that you have a clean environment that is not affected by another customer's test or even yours from a previous session.
Amazon provides non-rooted iOS and Android devices on which you can install any appropriate applications necessary. You can choose different languages and locations and other features to simulate the real world environment that your users experience when they use the application.
You can also catch potential issues during the development process. Device Farm includes service plugins and APIs that can be configured to automatically initiate tests from IDEs and continuous integration systems like Jenkins, Android Studio, and more.
Device Farm also provides reports containing pass/fail information, crash reports, both the test and device logs, and they can contain screenshots based on when you want to take those screenshots. You can download testing logs and performance data. The reports provide detailed data per device and also high-level information like how many occurrences there were of a specific problem.
Danny has over 20 years of IT experience as a software developer, cloud engineer, and technical trainer. After attending a conference on cloud computing in 2009, he knew he wanted to build his career around what was still a very new, emerging technology at the time — and share this transformational knowledge with others. He has spoken to IT professional audiences at local, regional, and national user groups and conferences. He has delivered in-person classroom and virtual training, interactive webinars, and authored video training courses covering many different technologies, including Amazon Web Services. He currently has six active AWS certifications, including certifications at the Professional and Specialty level.