COMP07172 2018 Open Stack Development

General Details

Full Title
Open Stack Development
Transcript Title
Open Stack Development
Code
COMP07172
Attendance
N/A %
Subject Area
COMP - Computing
Department
COEL - Computing & Electronic Eng
Level
07 - NFQ Level 7
Credit
05 - 05 Credits
Duration
Semester
Fee
Start Term
2018 - Full Academic Year 2018-19
End Term
9999 - The End of Time
Author(s)
Colm Davey, Mr. John Kelleher, Shane Banks
Programme Membership
SG_KSMAR_H08 201800 Bachelor of Science (Honours) in Computing in Smart Technologies SG_KSODV_H08 201800 Bachelor of Science (Honours) in Computing in Software Development SG_KCMPU_H08 201800 Bachelor of Science (Honours) in Computing SG_KSMAR_B07 201800 Bachelor of Science in Computing in Smart Technologies SG_KSODV_B07 201800 Bachelor of Science in Computing in Software Development SG_KCMPU_B07 201800 Bachelor of Science in Computing in Computing SG_KSOFT_B07 201800 Bachelor of Science in Computing in Software Development SG_KSMAR_H08 201900 Bachelor of Science (Honours) in Computing in Smart Technologies SG_KSODV_H08 201900 Bachelor of Science (Honours) in Computing in Software Development SG_KCMPU_H08 201900 Bachelor of Science (Honours) in Computing SG_KCMPU_B07 201900 Bachelor of Science in Computing in Computing SG_KSODV_B07 201900 Bachelor of Science in Computing in Software Development SG_KCMPU_H08 202000 Bachelor of Science (Honours) in Computing SG_KSODV_H08 202000 Bachelor of Science (Honours) in Computing in Software Development SG_KSMAR_H08 202000 Bachelor of Science (Honours) in Computing in Smart Technologies SG_KSODV_B07 202100 Bachelor of Science in Computing in Software Development SG_KSODV_H08 202100 Bachelor of Science (Honours) in Computing in Software Development SG_KCMPU_H08 202100 Bachelor of Science (Honours) in Computing SG_KCMPU_B07 202100 Bachelor of Science in Computing SG_KSMAR_H08 202100 Bachelor of Science (Honours) in Computing in Smart Technologies SG_KSODV_H08 202200 Bachelor of Science (Honours) in Computing in Software Development SG_KCMPU_H08 202200 Bachelor of Science (Honours) in Computing
Description

In this module, students will be required to develop full-stack web applications using open source technologies. Students will make use of containers and a cloud services in developing and deploying their applications.

Learning Outcomes

On completion of this module the learner will/should be able to;

1.

Design and create complex web applications using modern JavaScript frameworks and open source technologies

2.

Create a NoSQL database and implement operations to perform insert, delete and updates on the data.

3.

Describe Container concepts and integrate them into the development and deployment process.

4.

Evaluate and use cloud services such as Analytics to enhance an application

Teaching and Learning Strategies

A practical approach to teaching and learning will be used. Problem-based learning will be used where possible. The one hour lecture will be used to introduce core concepts. The lab practicals will be used to learn key concepts by developing web applications. Flipped learning will be employed as required. Screencasting by students of project work will be used to develop presentation skills.

Virtual Machines will be used to allow flexibility and enhance learning.

Module Assessment Strategies

100% continuous assessment. Assessment for and of learning will be carried out. Students participate in a project (70%) and have to complete lab work and a number of formative and in-class summative quizzes (30%) in weeks 3 and 5. Students will be required to peer review and provide feedback to each other on their project work.

Repeat Assessments

Repeat Project covering all learning outcomes.

Indicative Syllabus

Design and create complex web applications using modern JavaScript frameworks and open source technologies

  • Create complex responsive web front ends using a JavaScript framework
  • Examine the advanced language features
  • Examine how state is implemented using libraries such as Redux
  • Examine the MEAN stack, its components and how they integrate

Create a NoSQL database and implement operations to perform insert, delete and updates on the data.

  • Examine what NoSQL is and the need for it, look at the CAP theorem
  • Describe the different types of NoSQL databases such as Key-Value, Document, Column-Family, and Graph
  • Examine how to connect to an application to a NoSQL database and read/write/delete

Describe Container concepts and integrate them into the development and deployment process.

  • Examine the different containers such as Docker, why they are used and what problems they solve
  • Examine container repositories, how to build images and push to repositories
  • Investigate deployment operations such as AWS ECS
  • Use the role containers as part of the development and deployment process of an application
  • Test the application running in a container

Evaluate and use cloud services such as Analytics to enhance an application

  • Examine the different cloud hosting services such as AWS, Azure, GCP
  • Examine cloud storage options such as Firebase and AWS
  • Determine how Google Analytics integrates into Single Page Applications

Coursework & Assessment Breakdown

Coursework & Continuous Assessment
100 %

Coursework Assessment

Title Type Form Percent Week Learning Outcomes Assessed
1 Quizzes and Lab Work Coursework Assessment Multiple Choice/Short Answer Test 30 % OnGoing 1,2,3,4
2 Develop a full stack web application Coursework Assessment Project 70 % End of Term 1,2,3,4
             

Full Time Mode Workload


Type Location Description Hours Frequency Avg Workload
Lecture Computer Laboratory Lecture 1 Weekly 1.00
Practical / Laboratory Computer Laboratory Lab Programming 4 Weekly 4.00
Independent Learning Computer Laboratory Self-Directed Learning 3 Weekly 3.00
Total Full Time Average Weekly Learner Contact Time 5.00 Hours

Required & Recommended Book List

Recommended Reading
2016-03-27 Docker in Action Manning Publications
ISBN 1633430235 ISBN-13 9781633430235

Summary

Docker in Action teaches readers how to create, deploy, and manage applications hosted in Docker containers.

Purchase of the print book includes a free eBook in PDF, Kindle, and ePub formats from Manning Publications.

About the Technology

The idea behind Docker is simple. Create a tiny virtual environment, called a container, that holds just your application and its dependencies. The Docker engine uses the host operating system to build and account for these containers. They are easy to install, manage, and remove. Applications running inside containers share resources, making their footprints small.

About the Book

Docker in Action teaches readers how to create, deploy, and manage applications hosted in Docker containers. After starting with a clear explanation of the Docker model, you will learn how to package applications in containers, including techniques for testing and distributing applications. You will also learn how to run programs securely and how to manage shared resources. Using carefully designed examples, the book teaches you how to orchestrate containers and applications from installation to removal. Along the way, you'll discover techniques for using Docker on systems ranging from dev-and-test machines to full-scale cloud deployments.

What's Inside

  • Packaging containers for deployment
  • Installing, managing, and removing containers
  • Working with Docker images
  • Distributing with DockerHub
  • About the Reader

    Readers need only have a working knowledge of the Linux OS. No prior knowledge of Docker is assumed.

    About the Author

    Jeff Nickoloff, a software engineer, has presented Docker and its applications to hundreds of developers and administrators at Desert Code Camp, Amazon.com, and technology meetups.

    Table of Contents

    PART 1 KEEPING A TIDY COMPUTER

    1. Welcome to Docker
    2. Running software in containers
    3. Software installation simplified
    4. Persistent storage and shared state with volumes
    5. Network exposure
    6. Limiting risk with isolation
    7. PART 2 PACKAGING SOFTWARE FOR DISTRIBUTION

    8. Packaging software in images
    9. Build automation and advanced image considerations
    10. Public and private software distribution
    11. Running customized registries
    12. PART 3 MULTI-CONTAINER AND MULTI-HOST ENVIRONMENTS

    13. Declarative environments with Docker
    14. Clusters with Machine and Swarm

    Recommended Reading
    2015-06-25 Mastering AWS Development Packt Publishing - ebooks Account
    ISBN 1782173633 ISBN-13 9781782173632

    Develop and migrate your enterprise application to the Amazon Web Services platform

    About This Book

    • Identify and recognize cloud architecture features to design highly available, cost efficient, fault tolerant, and scalable distributed systems
    • Code and implement a cloud solution with the help of appropriate techniques and methods such as Amazon EC2, Amazon S3, Elastic Beanstalk, and so on
    • A hands-on, example-driven guide that helps you leverage the vast powers of the AWS infrastructure

    Who This Book Is For

    This book is for web and Cloud computing developers with knowledge of databases, basic virtualization, and Cloud computing. Having prior understanding of architecting on AWS is recommended.

    What You Will Learn

    • Get to grips with the AWS development platform to access, authenticate, and manage the identity of various applications
    • Create a scalable infrastructure using EC2, EBS, the Elastic load balancer, and auto scaling efficiently as per your web traffic requirements
    • Manage the whole storage life cycle of AWS using different services such as RDS, S3, and RedShift programmatically
    • Design and develop a web application, a batch processing system, and their required infrastructures
    • Understand the importance of APIs at the development phase with AWS and leverage the benefits of REST-based APIs call over AWS services
    • Explore troubleshooting best practices, security on AWS and disaster recovery plans
    • Bootstrap AWS EC2 instances with preconfiguration commands to set up the environment and use Chef for automation and deployment

    In Detail

    This book is a practical guide to developing, administering, and managing applications and infrastructures with AWS. With this, you'll be able to create, design, and manage an entire application life cycle on AWS by using the AWS SDKs, APIs, and the AWS Management Console.

    You'll start with the basics of the AWS development platform and look into creating stable and scalable infrastructures using EC2, EBS, and Elastic Load Balancers. You'll then deep-dive into designing and developing your own web app and learn about the alarm mechanism, disaster recovery plan, and connecting AWS services through REST-based APIs. Following this, you'll get to grips with CloudFormation, auto scaling, bootstrap AWS EC2 instances, automation and deployment with Chef, and develop your knowledge of big data and Apache Hadoop on AWS Cloud.

    At the end, you'll have learned about AWS billing, cost-control architecture designs, AWS Security features and troubleshooting methods, and developed AWS-centric applications based on an underlying AWS infrastructure.

    Recommended Reading
    2017-10-23 Node.js, MongoDB and Angular Web Development: The definitive guide to using the MEAN stack to build web applications (Developer's Library) Addison Wesley
    ISBN 0134655532 ISBN-13 9780134655536

    Module Resources

    URL Resources

    http://mean.io/

    https://www.docker.com/

    https://angular.io/

    https://material.angular.io/

    https://aws.amazon.com/documentation/

    https://github.com/

    Other Resources

    IT Sligo Virtual Machines

    Additional Information

    None