PA200 Project 2: Cloud hands-on Project deadline 9. 5. 2017 23:59 Project submission folder: https://is.muni.cz/auth/el/1433/jaro2017/PA200/ode/ode_69107155/?lang=en Maximum number of points: 20 (+5 bonus) Project contact: janca@ics.muni.cz Description This project should provide students with real hands-on cloud experience in a dynamic cloud-based environment. Scenario You are working for a small IT company called NoNoobIT ltd. as an Executive developer-operator chief. It is a traditional long running (5 years) IT company providing mainly web services and virtual private servers. One day your visionary boss storms into the office with his brilliant new idea that your center of operations should move towards more cloud-centric services. (The aim is to put Cloud Enabled sticker on the company door and web page). You have been selected for this task (since you have mentioned word container and cloud in last two meetings, you are considered a cloud expert in the company). Task Your task is to deploy a nontrivial (no helloworld page) web application running on a clustered web server (at least two clustered servers). The web servers should be running in some container - ideally Docker container. The deployment should be done in repeatable way (orchestrated or scripted in some fashion). Task in detail 1. You should select a cloud provider, but its services should be free of charge for you. We recommend: - https://www.metacentrum.cz/en/Sluzby/MetaCloud/ - https://wiki.ics.muni.cz/openstack 2. Choose some web application (anything more sophisticated than html hello world page) 3. Choose a production ready web server, on which you will be running your application. We recommend: - https://www.nginx.com/resources/wiki/ - https://httpd.apache.org/ 4. Choose a container technology in which the web server will run. We recommend https://www.docker.com/ 5. Automate the deployment of web server and the application. Automation can be done via. Scripting, orchestration tools, automation tools… It’s up to you to choose! We recommend https://www.ansible.com/, however feel free to look at Heat (OpenStack), Puppet, Chef, SaltStack, Docker Swarm... Your output 1. Documentation - This will be the main result of your work. In documentation you are supposed to describe the following: a. Technology choices and reasoning b. Your solutions (it’s design) and discuss pros and cons c. Proof of a successful application run d. Project feedback 2. Used scripts receipts etc. (Everything should be either well documented in your project documentation or commented heavily) Evaluation The maximum points for this project is 20. Up to 5 bonus points may be awarded to students with novel or extended solutions. Additional tips ● Don’t get frustrated if something does not work on fifth run. ● Be willing to change technology, if you find yourself in dead end (in cloud, marketing can often be far away from reality) ● Include your troubles into documentation (you can still get points for it) ● If some subtask seems too difficult, feel free to omit it, but expect penalisation. ● Take the project documentation seriously! ● Don’t expect to finish the project night before the deadline, your points will suffer. ● Trust the previous tip, start working on the project at least week before deadline! ● Be creative, there is no need to stick with recommended tools in the task detail. Creative approach will be taken in mind during evaluation, even if the final product is not 100% refined.