Giter Club home page Giter Club logo

aws-workshop's Introduction

AWS Workshop: Dive into the Cloud

Project is still in development

An interactive introduction to Amazon Web Services.

Created by developers to developers.

Example of the system

For lecturer (AWS guru)

See docs for setting up infrastructure

For student (participant, colleague)

See docs for getting personalized credentials

Why

  • You, as a colleague:

    • Will get practical experience with AWS (logging in to the real AWS)
    • (In project's future releases) Will learn in a fun (internal jokes, scoreboard) and efficient (hear, see, try) way
    • (In project's future releases) Learn at your pace and depth (basic and extra tasks, links for official documentation, open-source)
    • (In project's future releases) Technical topics (and jokes) tailored to your usual work
  • I, as a creator/contributor:

    • Believe in DevOps transformation, and it should start from the culture. Like git become a de facto tool for the software developer (remember days of svn?), I believe Cloud solutions should also become this de facto tool for modern software developers.
    • AWS based learning material about AWS is an alternative way to learn in becoming AWS Certified professional. (however, it takes a lot of time also)
    • It is fun to hack what is possible and create value to the community (however, not all assumptions are valid and workarounds requires a lot of effort)
  • In this format (while there already A Cloud Guru, Full day introduction classes, AWS Classroom training, etc...)

    • From Practice to theory

      Most online material starts with abstract concepts and then goes to Hello world examples. But in day to day work, we are dealing with more complex situations So picking a more complex example and using it as an illustration for various concepts, could be a better way to lean (going from steep learning curve to story telling format)

    • Long term reference instead of one time information dump

      Most of the learning materials are slides or video recording of some technical aspects. But technologies (and AWS in particular) is changing too frequently, so updating slides/videos is not feasable. Moreover, learning material ideally should be used not only during workshop, but as a reference in day-to-day job. So using git and automation to make learning material easy to update (Pull requests), link (open source), and validate (run/deploy).

    • Local instead of global use case

      Internet is full of various AWS material, but the goal is to have not only one guru in organization, but to share knowledge, so everyone could grow. In common learning materials/conferences a generalized examples and use cases are discussed. But in day to day work, confidential and business project specific questions/issues are more useful. So this interactive tool should help colleagues to try and identify unknown/alternative ways of using AWS. During workshop (video call) colleagues could use confidential business project specific issues to discuss and better relate learning material with day-to-day job.

    • (in project's future releases) Learn at participant, not lecturer pace

      In any group there will always be people of different knowledge levels and different learning pace. Lecturer could try to align with the average level, but there will always be someone already bored and mind-blown. So adding multiple ways (difficulties) to finish the task, will occupy both experts and newcomers. In addition, seeing a complex example and not understanding it at first – is better than just simple topics, because in the future day-to-day job it would be easier to reference this example and learn it fully.

How to contribute

  • Tell your pain points or how you are using AWS daily – so learning material could be tailored for you
  • Improve visual feel (JavaScript magic, images) of the game (preferably via Pull requests)
  • Use your creativity for AWS/game tasks, that would be interesting to do and possible to automate (because it supposes to be a game)
  • Improve links to documentation, the wording of the tasks, etc (preferably via Pull requests)
  • Fork and do your own (and better) version (future of learning should be interactive and open-source)

Road map

  • ⚠️ Proof of concept: Making learning interactive
    • Automating creation of users
      • Simple script
      • ✔️ Serverless plugin
    • Call lambda
      • Store score by Lambda on S3
    • ⚠️ Automating score (gamification)
      • CloudTrail API
      • ❗ Fetch cloud trail: Can get only 15min old records
    • Interactive frontend
      • Vue.js
      • Check score on frontend
      • Frontend: Read scores of all (teacher would use user's flow)
  • ✔️ v0.1.0 Tool just to create AWS logins
    • Cleanup PoC code
    • Store Frontend on S3
    • Credentials from e-mail
    • Limit IAM access (can read credentials, but will not accidentally purchase/change something big)
    • Image upload issues (Byte stream?)
    • ListObject security leak
  • ❌ v0.2.0 Tool code to illustrate AWS concepts (concepts explain verbally)
    • Remember User login in the browser (not reentering after browser refresh)
    • Put some text (topics) to guide the speaking (feels not natural, skipping)
  • ⌛ v0.3.0 Single realistic example and references in the code
    • VPC example
    • Cost optimization while in development
    • Creation of EC2
    • Docs for beginners and experts
    • Automating per user nginx/parameters creation (postponed)
    • Automating check of response (before and after (postponed))
    • ❌ Spot instance quotas for new AWS accounts
  • ⌛ v0.4.0 Gamification via Lambda based quizzes
    • Steps to EC2
  • ⌛ v0.5.0 Multiple realistic examples
    • Costs
    • Security
    • Networking
  • ⌛ v0.6.0 Gamification via Lambda based resource checks
    • Creation of lambda
  • ⌛ v0.7.0 Gamification via quizzes and CloudTrail data
    • Append CloudTrail data
  • ⌛ v0.8.0 Increase number of realistic examples
  • ⌛ v0.9.0 Polishing UI/UX (nice to haves)
    • Replace this.$parent to Vue $emit
    • Adding new student without regenerating password
    • Log invalid CheckTask inputs in CloudWatch
    • Lambda: List score S3 to Summary file
    • Better way to authenticate participants
    • Error checks for array out of index access
    • Better stack cleanup (remove from S3)
    • Split serverless.yml (required additional plugins)
    • For ssm TerminateSession use arn:aws:ssm:*:*:session/${aws:username}-*
  • ⌛ v0.10.0 More content

LICENCE

Code and documentation is under MIT.

Browser will access other libraries/ilustrations via external links with their respective licenses.

Some themes illustrations are under Creative Commons, so they are included as an optional dependency.

aws-workshop's People

Contributors

aurelijusb avatar aurelijusbanelis avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.