JNTU IoT Based Smart Home Automation System

Ethical HACKING
April 17, 2023
Commercial Database Systems
April 17, 2023

JNTU IoT Based Smart Home Automation System

Description

#Assignment

Approach to problem solving. We’re especially interested in how you approach problems that are complex and open-ended. This implementation could take months or hours, we request you to make appropriate decisions and choose how detailed you want the solution to be. You can chose to describe if you were to spend additional time how you would make this a better solution.

For this puzzle we’ll ask you to do two things:

Coding: Write code, scripts, and/or configurations that solve a problem in a basic way.

Discussion: Write a few paragraphs describing how your answer could be improved.

Package your code answers to the questions in a .tar.gz file. Include information on why you took your approach and anything else you’d like us to know when trying it.

We will evaluate responses according to, in order:

correctness of approach

quality of discussion

quality of code

Don’t rush: this isn’t intended to be a speed test. It’s up to you how much you work on the puzzle. If you find it’s taking too long, focus on something minimal that works and write down thoughts on how you’d improve it.

INSTRUCTIONS

Coding

Build

Suppose we have a very simple, stateless web application. Here’s a simple one based on the Hello World application from:

https://github.com/pdurbin/maven-hello-world (or use any hello world code base to generate the war file)

Implement a build system that constructs a deployable package for this code.

Configure

Implement a configuration management system that deploys your build package along with any necessary requirements. Use any tool you’re comfortable with: ansible, chef, puppet, salt, etc. Arrange for the service to start up when the instance does. Test to make sure you can change the listener port and the “Hello world” message.

Deploy

Write scripts or configurations to deploy this minimal application on AWS\GCP using Linux. Use any tools, languages, or APIs you think are appropriate, but automate everything you can. We suggest using a tool like Terraform or CloudFormation.

Be sure to include the following features:

Launch Configuration

Auto Scaling Group

Elastic Load Balancer

Health Check

Expose any configuration, such as the instance type, as template parameters.

You should be able to do all that using the AWS\GCP “free tier”. Document setup of all tools that are needed, so we can try it.

Discussion

With more time and resources, how could you improve on this deployment? Consider the following topics, along with anything else that you consider important.

How reliable and available is your deployment? What could affect this?

How automated is your answer? How suitable is the process to maintenance and updates? What changes would you make to improve the deployment process or improve maintainability?

How scalable is your answer? What would you do allow the deployment to handle more traffic?

How secure is your answer? Would seeing your template expose any sensitive information?

How could you preserve log data from these instances, even if they terminate