DevOps Engineering
Looking to build a tool to test the behaviour of 1Million emulated mobile clients. Must know AWS.
ABOUT US
We help mobile apps ensuring every user has a 5-star experience, whether they’re connected through a fast WiFi network or a sluggish 3G connection.
User experience depends a lot on the user's WiFi, 4G or 3G connection. Metrics like user retention, conversion and even revenue are in the hand of wireless links., mobile apps get control over what's happening in the wireless links.
We are working towards a world where internet-based services are frustration-free. For every user, anytime, anywhere.
WHAT WE ARE LOOKING FOR
Cloud based deployment (infrastructure/architecture) to test and compare the behaviour of Android apps and its associated web services at a very large scale. The deployment should allow the testing of up to 1M simultaneous users.
MAJOR GOALS
* Measure the performance of web based mobile applications at very large scale
* Create a cloud infrastructure capable of emulating the behaviour of Android apps and web services and perform emulated behaviour
* Final delivery: July 2020
DELIVERABLES
Create, orchestrate and manage a cloud infrastructure to support the test and evaluation of a mobile app and its associated service. All cloud services must be built on top of AWS cloud infrastructure.
* Create web server capable of mocking behaviour from an HAR file
* Compatible with HTTP 1.1 and HTTP 2.0
* Must use HTTPS
* Orchestrate a dummy web service whose behaviour is defined via an HAR file
* Deploy and manage EC2 instances running web server (or Lambda based services) that must mocks the behaviour of an HAR file (known as ORIGIN)
* Deploy and manage an CloudFront endpoint (known as CDN) to provide scaling and caching to ORIGIN
* Add DNS entry for all CDN and ORIGIN endpoints via Route53
* Must be capable of scaling to support 1M clients
* Orchestrate the lifecycle of thousands of simultaneous Android apps
* Deploy and manages multiple EC2 instances capable of running Android (known as APP-AND) and automatically manage the lifecycle of an Android app
* Suggestion: make use of Anbox (https://anbox.io/)
* Allow configuration of number of emulated Android devices per instance
* Configure a network emulator to induce losses (tc based)
* Orchestrate the lifecycle of thousands of simultaneous cli based client apps
* Deploy and manages multiple EC2 instances capable of running cli applications (known as APP-CLI) and automatically manage the lifecycle of such cli applications
* Allow configuration of number of cli applications per instance
* Configure a network emulator to induce losses (tc based)
* Create an Rest API endpoint to manage and configure all entities, ORIGIN, CDN and APPS
* Make use of AWS DynamoDB (or similar) NoSQL DB
* Protected with OAuth2.0 authentication
* Allows the upload of an APK file and stores it in an S3 bucket
* Allows the upload of an binary file and stores it in an S3 bucket
* Allows the upload of an HAR file and stores it in an S3 bucket
* Creation of a deployment of all entities via input of:
* Total number of APPS to run simultaneously
* Number of Android
* Number CLIs
* Number of simultaneous APPS to be periodically increased at a time
* Time interval between periodically increases of APPS running simultaneously
* Number of simultaneous APPS to be periodically decrease at a time
* Time interval between periodically decrease of APPS running simultaneously
* Test duration
* Number of Android devices per instance
* Number of CLI devices per instance
* Allow Android devices configuration and cli configuration independently
* Such as network emulator conditions
* APK file id to be used in the test in APP-AND
* Binary file id to be used in the test in APP-CLI
* HAR file id to be used in the test in ORIGIN
* Register Route53 domains, for both ORIGIN
* Select if must use CDN
* Select AWS regions to deploy (can be multiple)
* Lists the deployments already created (from previous point)
* Orchestrates the creation and management of a deployment of all entities
* Allows the cancellation of a deployment
* Destroys all instances and resources created upon the end or cancelation of a deployment
* Create a simple website that communicates with the API, used to start and stop a test
* Protected with OAuth2.0 authentication
* List available deployments
* Start a deployment from the available list
* Stop a deployment that is running
* Versioning: Git
Job Type
Client Payroll
Positions
DevOps Engineer
Must have Skills
Languages
english -Basic
Skip


Refer a friend for this role and earn
25 USD
Use the share options below Learn More
Refer a friend for this role and earn 25 USD
Don’t forget to share your referral URL
Up to 200 USD/Hour
200 USD
Up to 200 K/Year USD (Annual salary)
Longterm (Duration)
Fully Remote
Diogo F