Logistics

Morning

Part I. Overview/architecture

  1. NDS Labs mission statement (David)
    1. A place to build, deploy, collaborate
    2. "NDS Labs is an environment where developers can prototype tools and capabilities that help build out the NDS framework and services." 
  2. NDS mission (David)
    1. Search, Publish, Link, Reuse
      1. We think of this as searching for data, publishing data, linking to data, and reusing data
      2. But now, think of it for software infrastructure
      3. Find software, publish, link (integrate), re-use
  3. Demo (Craig)
    1. Proof-of-concept/prototype (a realization)
    2. Emphasize collaboration
  4. Architecture - high-level (David)
    1. NDSLabs services (PaaS)
    2. Kubernetes/orchestration
    3. Docker/containers
    4. Clusters/Data storage (OpenStack)
  5. NDS Labs services (David)
    1. Service catalog
    2. Interfaces for configuring and deploying services
    3. Development environment
    4. Deployed in containers
  6. Docker (containers) (David)
    1. Standardized method of packaging and distributing software and dependencies
    2. Very lightweight (100-1000x smaller than typical OS), fast (10-100x faster than a VM) and reliable
    3. Microservices enabling technology
    4. Transformative: it's changing how software is deployed
  7. Clusters/storage (David)
    1. Reference NDSLabs implementation is running on OpenStack.
  8. Kubernetes (manages containers) (David)
    1. Highly-reliable, scalable, easy to deploy containers 
    2. Schedule containers, cluster manager
    3. Used by NDS Labs
  9. Wrap-up/transition

Part II. How can you use NDS Labs?

  1. How can you leverage NDS Labs?  (Craig)
    1. Find 
      1. Find and reuse other people's stuff
      1. publish your services to the catalog
      2. Other people can find and reuse your stuff
    2. Develop: Use our development environment/framework to integrate with others
      1. Containerize your services
      2. Use other people's containerized services
      3. Glue them together
    3. Collaborate with NDS Labs
      1. Applications, infrastructure, issues/wants, standards
  2. Tour of Code Base? (Craig)
    1. Service catalog
    2. Development environment
      1. Easy to use, doesn't require a cluster (you can run it on your laptop)
      2. Framework for integrating services
  3. Contribute/collaborate (Craig)
    1. Github
    2. Slack/Gitter/IRC
    3. Google groups/discuss@nds.org
  4. We need you (Craig)
    1. Do you have an expertise, help us make this better
  5. Use case: Running existing containers
    1. Clowder
  6. Use case: Containerizing an existing applications
    1. Dataverse
  7. Use case: A new collaborative project
    1. Plants in Silico
    2. Microservices architecture
      1. Independent, independently scalable
      2. Communication mechanisms
      3. Workflow over the top
    3. Collaborative/remote developers
  8. What have we learned? 
    1. Docker and Kubernetes are moving targets/young
    2. Reading upside down: there's a learning curve
  9. Where we're headed
  10. Q&A

Break

Afternoon: Hands-On

Part III (2 hours)

  1. Agenda
    1. Access a VM
    2. Boot up your microcluster
    3. Boot up NDS Labs services
    4. Add your own services
      1. Show you how to make a container
      2. Show you how to make a service spec
  2. Login to your VM
    1. Tutorial Environment Specs
  3. Walk through tutorial materials
    1. git clone nds-org/developer-tutorial
    2. Each step is a branch?
    3. ?
  4. docker run --rm -it ndslabs/system-shell usage docker
    1. kube-up.sh
    2. ndslabs-up.sh
    3. toolserve-up.sh
  5. Walk through GUI, apictl, kubectl, docker
    1. Let user play around on the instance they just built
  6. docker run --rm -it ndslabs/developer-shell bash
    1. Walk them through running NDSDEV
    2. This will enable them to add custom software to their instance
    3. Check out nds-labs from Github
  7. Example 1: create a service from an existing container
    1. Walk the user through adding a custom service (OwnCloud?)
    2. Introduce our service spec
    3. Prerequisite: Docker image: sort non-technical description?
    4. Analogy to Kubernetes? short non-technical description?
    5. Show how to define a custom service (OwnCloud) using our spec
    6. Load custom spec into etcd
    7. Launch new "OwnCloud" stack with the CLI or GUI
  8. Example 2: create your own container (Minecraft)
    1. Create a new container...
  9. Closing
    1. This is early access, we're looking for feedback
    2. Questions:
      1. Small staff
      2. Use community tools
    3. We welcome feedback, here's how you can give feedback

  • No labels