Instantly Run An App in the Cloud

From Foss2Serve
(Difference between revisions)
Jump to: navigation, search
(updated top table)
(Suggestions to Open Source Mentors:)
 
(34 intermediate revisions by one user not shown)
Line 4: Line 4:
 
|'''Title''' || Instantly Run An App in the Cloud Using OpenShift
 
|'''Title''' || Instantly Run An App in the Cloud Using OpenShift
 
|-
 
|-
|'''Overview''' || Students need to know what Cloud Computing really means, how it fits into the wider computing context, and how they can use an open source cloud alternative to quickly host coding platforms for them to toy around in. This activity sets out to do all of this as a walkthrough learn-as-you-go tutorial.
+
|'''Overview''' || Students need to know what Cloud Computing really means, how it fits into the wider computing context, and how they can use an open source cloud alternative to quickly host coding platforms for them to toy around in. This activity sets out to do all of this as a walkthrough learn-as-you-go tutorial via Red Hats Open Shift platform - a completely open sourced cloud-hosted coding platform.
 
|-  
 
|-  
|'''Prerequisite Knowledge''' || Command line skills and Beginner Git experience (git activity 1)
+
|'''Prerequisite Knowledge''' || Basics of computing, programming & virtualization concepts
 
|-
 
|-
 
|'''Learning Objectives''' ||  
 
|'''Learning Objectives''' ||  
 
* Understand what Cloud / Utility Computing is
 
* Understand what Cloud / Utility Computing is
 
* Be able to quickly spin up an app in an online PaaS environment
 
* Be able to quickly spin up an app in an online PaaS environment
* Learn the context of SSH and URLs and components of online applications
+
* Able to express your troubleshooting and solutions
 +
* Create your own open source blog and post to it
 +
* Explain what else PaaS can be used for
 
|}
 
|}
 +
 +
[[File:WordpressOpenShift.png|500px]]
 +
 +
----
  
 
=== Background: ===
 
=== Background: ===
 +
What is the rational for this activity?
 +
 
Students need to know what Cloud Computing really means, how it fits into the wider computing context, and what the different types are (IaaS, PaaS, SaaS). Students can dig into PasS, as a powerful development platform - and understand how quickly, easily, and powerfully they can spin up new applications. Gone are the days of having to setup a physical server, know the details on how to setup the OS, fiddle with the kernel, setup web-servers (Apache), databases (Postgres, Mysql), and middle-ware micros-services (AMQP Message busses, JBoss Fuse, Apache Camel). In a PaaS environment like OpenShift, the developer just fires up an instance of whatever pieces they want, and start coding. Seriously - its that easy. Of course, the developer has to know how to develop in said language or platform, but it makes development considerably easier by removing focus from lower layers. Basically, those lower layers (most mentioned above) are automated away by the PaaS platform.
 
Students need to know what Cloud Computing really means, how it fits into the wider computing context, and what the different types are (IaaS, PaaS, SaaS). Students can dig into PasS, as a powerful development platform - and understand how quickly, easily, and powerfully they can spin up new applications. Gone are the days of having to setup a physical server, know the details on how to setup the OS, fiddle with the kernel, setup web-servers (Apache), databases (Postgres, Mysql), and middle-ware micros-services (AMQP Message busses, JBoss Fuse, Apache Camel). In a PaaS environment like OpenShift, the developer just fires up an instance of whatever pieces they want, and start coding. Seriously - its that easy. Of course, the developer has to know how to develop in said language or platform, but it makes development considerably easier by removing focus from lower layers. Basically, those lower layers (most mentioned above) are automated away by the PaaS platform.
  
 +
This activity shows students, step-by-visual-step, how to start up a new coding environment and actually implement a small chunk of working software on Openshift.
  
We need an activity that can show students, step-by-visual-step, how to start up a new coding environment and actually code a small chunk of working software on Openshift. Make it something sexy, like Node.js. Make it an effective piece of code (contact someone within red hat for advise) and it would be even more amazing.
+
Background readings:
  
https://hub.openshift.com/
+
* What is Cloud Computing? http://csrc.nist.gov/publications/nistpubs/800-145/SP800-145.pdf
 +
* Read about Cloud Computing paradigm and deployment patterns. http://www.pcmag.com/article2/0,2817,2372163,00.asp
 +
* Read about open sources role in cloud computing. http://opensource.com/business/13/1/future-cloud-computing
 +
* Read about PaaS. http://www.thoughtsoncloud.com/2014/02/what-is-platform-as-a-service-paas/
  
  
 +
=== Directions: ===
 +
You may have heard of Software as a Service (SaaS), or Cloud Computing before. Examples of SaaS are that of Google Docs, Twitter, DropBox. Another flavor of Cloud Computing is Platform as a Service (PaaS). This cloud-hosted service allows developers to program apps and functionality in an easy to grasp, scale, and demo online environment. You can push stuff live '''very''' quickly, and you don't have to worry about the Operating System or getting database services running. Your infrastructure and coding platform are pre-taken-care-of. You just code your app. In the below tutorial, you will signup to the Openshift PaaS environment and start a simple Wordpress blog app.
  
Is there background reading material?
 
  
Are there other activities the student should have done first?
+
Assure that you read the Background readings, so that you understand the Cloud Computing paradigm and what a Paas is.
  
What is the rational for this activity?
 
  
Include helpful hints to faculty here.
+
Follow this tutorial:
 +
* <font size="4">http://code.tutsplus.com/tutorials/running-wordpress-on-openshift-an-introduction--cms-20058</font>
 +
** Do not follow 2B
 +
***Likely, you will not need to follow Step 2B, though skim through it for some additional understanding of the OpenShift structure.
 +
** Do not follow 3, 3A, 3B
 +
***Likely, you will not need to read or follow Steps 3, 3A or 3B - unless you have interest in using an existing domain name that you own.
  
  
=== Directions: ===
+
----
What should the student do?
+
  
  
 
=== Deliverables: ===
 
=== Deliverables: ===
What will the student hand in?
+
Create a blog post, with public URL, that talks about:
 
+
# What you learned
 +
#* Both specific to OpenShift and generally about Cloud Computing and PaaS
 +
# What troubles or more info you came across
 +
#* Troubleshooting you did, additional info you learned about, etc
 +
# What other ways you might use a PaaS environment in the future
 +
#* What other apps and coding platforms / languages could you use?
  
 
=== Assessment: ===
 
=== Assessment: ===
How will the activity be graded?
 
 
How will learning will be measured?
 
 
Include sample assessment questions/rubrics.
 
  
 
{| border="1" class="wikitable"
 
{| border="1" class="wikitable"
Line 52: Line 68:
 
! Level 1 (fail)
 
! Level 1 (fail)
 
! Level 2 (pass)
 
! Level 2 (pass)
! Level 3 (good)
+
! Level 3 (exceptional)
! Level 4 (exceptional)
+
 
|-
 
|-
| '''The purpose of the project'''
+
| '''Understands what Cloud / Utility Computing is'''
|  
+
| Little to no understanding of Cloud Computing concepts and what was done
|  
+
| Some understanding of wider concepts, though no extra work was done to understand it further
|
+
| Explained what they learned not only about the technical portion, but also about the Cloud computer paradigm in general; Showed proof of doing extra research or reading to understand wider concepts
|
+
  
 
|-
 
|-
| '''Why the project is open source'''
+
| '''Be able to quickly spin up an app in an online PaaS environment'''
|  
+
| Couldnt get it running, didnt ask for help
|  
+
| Got it running, but with problems that needed teacher help
|  
+
| Wordpress Running, URL provided, no teacher help
|  
+
 
 +
|-
 +
| '''Able to express your troubleshooting and solutions'''
 +
| Little to no explanation of misunderstandings or errors or additional knowledge attained
 +
| Explanation of a problem or gaining of clarity via self-driven curiosity or need
 +
| Multiple points of troubleshooting and/or searching for separate / additional information because of personal curiosity
 +
 
 +
|-
 +
| '''Create your own open source blog and post to it'''
 +
| Blog non-existant or blank
 +
| Blog expresses process and lessons learned but does not go further
 +
| Blog expresses what process the student went through, troubleshooting, and further uses of PaaS environments
 +
 
 +
|-
 +
| '''Explain what else PaaS can be used for'''
 +
| No explanation of additional uses, or a complete mis-understanding of what PaaS offers
 +
| Explanation of one additional language and usage-pattern, with little imagination behind PaaS's expansive possibilities
 +
| Multiple creative uses explained for coding applications, and building web platforms
  
 
|}
 
|}
Line 72: Line 103:
 
=== Comments: ===
 
=== Comments: ===
 
What should the instructor know before using this activity?
 
What should the instructor know before using this activity?
 +
Instructor should understand what Cloud Computing is; If not, the pre-readings are necessary for the instructor.
 +
It would be useful for instrcutor to step through the instructions and create an app themselves.
  
 
What are some likely difficulties that an instructor may encounter using this activity?
 
What are some likely difficulties that an instructor may encounter using this activity?
 +
Grading the activity may be subjective and not reflective of student effort since much of the effort goes into implementing the Wordpress app, but then they are graded on the blog they post that recaps what they did.
  
  
Line 79: Line 113:
 
{| border="1"
 
{| border="1"
 
|-  
 
|-  
|'''Knowledge Area/Knowledge Unit''' || What ACM Computing Curricula 2013 knowledge area and units does this activity cover? [[ACM_Body_of_Knowledge]]
+
|'''Knowledge Area/Knowledge Unit''' || PD. Parallel and Distributed Computing / PD - Cloud Computing, PBD - Platform-based Development / PBD Web Platforms from [[ACM_Body_of_Knowledge]]
 
|-
 
|-
|'''Topic''' || What specific topics are addressed? The Computing Curriucula 2013 provides a list of topics - https://www.acm.org/education/CS2013-final-report.pdf
+
|'''Topic''' || Cloud services , Infrastructure as a service, Web programming languages (e.g., HTML5, Java Script, PHP, CSS)  , Web platform constraints
 
|-
 
|-
|'''Level of Difficulty''' || Is this activity easy, medium or challenging?
+
|'''Level of Difficulty''' || Easy, though the Cloud Computing and Platform as a Service (PaaS) concepts are of medium difficulty to grasp
 
|-
 
|-
|'''Estimated Time to Completion''' ||  How long should it take for the student to complete the activity?
+
|'''Estimated Time to Completion''' ||  2-3 hours
 
|-
 
|-
|'''Materials/Environment''' || What does the student need?  Internet access, IRC client, Git Hub account, LINUX machine, etc.?
+
|'''Materials/Environment''' || What does the student need?  Internet access, Email
 
|-
 
|-
|'''Author''' || Who wrote this activity?
+
|'''Author''' || [https://www.linkedin.com/in/nickyeates Nick Yeates], Vinh Quốc Nguyễn
 
|-
 
|-
|'''Source''' || Is there another activity on which this activity is based?  If so, please provide a link to the original resource.
+
|'''Source''' || http://code.tutsplus.com/tutorials/running-wordpress-on-openshift-an-introduction--cms-20058
 
|-
 
|-
|'''License''' || Under which license is this material made available? (http://creativecommons.org/licenses/)
+
|'''License''' || Creative Commons CC-BY
 
|}
 
|}
 
  
 
=== Suggestions to Open Source Mentors: ===
 
=== Suggestions to Open Source Mentors: ===
 
Suggestions for an open source community member who is working in conjunction with the instructor.
 
Suggestions for an open source community member who is working in conjunction with the instructor.
 +
* Has the mentor ever programmed in a web or cloud computing environment of any kind? Share your experience and knowledge with the students.
 +
* Help students through troubleshooting and the last blog question: What else might PaaS platforms be used for? What kind of coding languages and apps might you use it to develop?
  
  
 
--------------------
 
--------------------
 
This work is licensed under a  
 
This work is licensed under a  
[http://creativecommons.org/licenses/by-sa/4.0/ Creative Commons Attribution-ShareAlike 4.0 International License]
+
[http://creativecommons.org/licenses/by/4.0/ Creative Commons Attribution 4.0 International License]
 
+
[[File:CC_license.png]]
+
  
 
[[Category: Learning_Activity]]
 
[[Category: Learning_Activity]]
[[Category: LEARNING_ACTIVITY_SUBCATEGORY]]
+
[[Category: Introduction]]
 +
[[Category: Communication_and_Tools]]
 +
[[Category: Use_and_Evaluate]]
 +
[[Category:Good Draft]]

Latest revision as of 17:54, 8 March 2017

Title Instantly Run An App in the Cloud Using OpenShift
Overview Students need to know what Cloud Computing really means, how it fits into the wider computing context, and how they can use an open source cloud alternative to quickly host coding platforms for them to toy around in. This activity sets out to do all of this as a walkthrough learn-as-you-go tutorial via Red Hats Open Shift platform - a completely open sourced cloud-hosted coding platform.
Prerequisite Knowledge Basics of computing, programming & virtualization concepts
Learning Objectives
  • Understand what Cloud / Utility Computing is
  • Be able to quickly spin up an app in an online PaaS environment
  • Able to express your troubleshooting and solutions
  • Create your own open source blog and post to it
  • Explain what else PaaS can be used for

WordpressOpenShift.png


Background:

What is the rational for this activity?

Students need to know what Cloud Computing really means, how it fits into the wider computing context, and what the different types are (IaaS, PaaS, SaaS). Students can dig into PasS, as a powerful development platform - and understand how quickly, easily, and powerfully they can spin up new applications. Gone are the days of having to setup a physical server, know the details on how to setup the OS, fiddle with the kernel, setup web-servers (Apache), databases (Postgres, Mysql), and middle-ware micros-services (AMQP Message busses, JBoss Fuse, Apache Camel). In a PaaS environment like OpenShift, the developer just fires up an instance of whatever pieces they want, and start coding. Seriously - its that easy. Of course, the developer has to know how to develop in said language or platform, but it makes development considerably easier by removing focus from lower layers. Basically, those lower layers (most mentioned above) are automated away by the PaaS platform.

This activity shows students, step-by-visual-step, how to start up a new coding environment and actually implement a small chunk of working software on Openshift.

Background readings:


Directions:

You may have heard of Software as a Service (SaaS), or Cloud Computing before. Examples of SaaS are that of Google Docs, Twitter, DropBox. Another flavor of Cloud Computing is Platform as a Service (PaaS). This cloud-hosted service allows developers to program apps and functionality in an easy to grasp, scale, and demo online environment. You can push stuff live very quickly, and you don't have to worry about the Operating System or getting database services running. Your infrastructure and coding platform are pre-taken-care-of. You just code your app. In the below tutorial, you will signup to the Openshift PaaS environment and start a simple Wordpress blog app.


Assure that you read the Background readings, so that you understand the Cloud Computing paradigm and what a Paas is.


Follow this tutorial:




Deliverables:

Create a blog post, with public URL, that talks about:

  1. What you learned
    • Both specific to OpenShift and generally about Cloud Computing and PaaS
  2. What troubles or more info you came across
    • Troubleshooting you did, additional info you learned about, etc
  3. What other ways you might use a PaaS environment in the future
    • What other apps and coding platforms / languages could you use?

Assessment:

Criteria Level 1 (fail) Level 2 (pass) Level 3 (exceptional)
Understands what Cloud / Utility Computing is Little to no understanding of Cloud Computing concepts and what was done Some understanding of wider concepts, though no extra work was done to understand it further Explained what they learned not only about the technical portion, but also about the Cloud computer paradigm in general; Showed proof of doing extra research or reading to understand wider concepts
Be able to quickly spin up an app in an online PaaS environment Couldnt get it running, didnt ask for help Got it running, but with problems that needed teacher help Wordpress Running, URL provided, no teacher help
Able to express your troubleshooting and solutions Little to no explanation of misunderstandings or errors or additional knowledge attained Explanation of a problem or gaining of clarity via self-driven curiosity or need Multiple points of troubleshooting and/or searching for separate / additional information because of personal curiosity
Create your own open source blog and post to it Blog non-existant or blank Blog expresses process and lessons learned but does not go further Blog expresses what process the student went through, troubleshooting, and further uses of PaaS environments
Explain what else PaaS can be used for No explanation of additional uses, or a complete mis-understanding of what PaaS offers Explanation of one additional language and usage-pattern, with little imagination behind PaaS's expansive possibilities Multiple creative uses explained for coding applications, and building web platforms

Comments:

What should the instructor know before using this activity? Instructor should understand what Cloud Computing is; If not, the pre-readings are necessary for the instructor. It would be useful for instrcutor to step through the instructions and create an app themselves.

What are some likely difficulties that an instructor may encounter using this activity? Grading the activity may be subjective and not reflective of student effort since much of the effort goes into implementing the Wordpress app, but then they are graded on the blog they post that recaps what they did.


Additional Information:

Knowledge Area/Knowledge Unit PD. Parallel and Distributed Computing / PD - Cloud Computing, PBD - Platform-based Development / PBD Web Platforms from ACM_Body_of_Knowledge
Topic Cloud services , Infrastructure as a service, Web programming languages (e.g., HTML5, Java Script, PHP, CSS) , Web platform constraints
Level of Difficulty Easy, though the Cloud Computing and Platform as a Service (PaaS) concepts are of medium difficulty to grasp
Estimated Time to Completion 2-3 hours
Materials/Environment What does the student need? Internet access, Email
Author Nick Yeates, Vinh Quốc Nguyễn
Source http://code.tutsplus.com/tutorials/running-wordpress-on-openshift-an-introduction--cms-20058
License Creative Commons CC-BY

Suggestions to Open Source Mentors:

Suggestions for an open source community member who is working in conjunction with the instructor.

  • Has the mentor ever programmed in a web or cloud computing environment of any kind? Share your experience and knowledge with the students.
  • Help students through troubleshooting and the last blog question: What else might PaaS platforms be used for? What kind of coding languages and apps might you use it to develop?



This work is licensed under a Creative Commons Attribution 4.0 International License

Personal tools
Namespaces
Variants
Actions
Events
Learning Resources
HFOSS Projects
Evaluation
Navigation
Toolbox