rht-labs / enablement-docs Goto Github PK
View Code? Open in Web Editor NEWCollection of Enablement material for Red Hat Open Innovation Labs
Home Page: https://rht-labs.github.io/enablement-docs/#/
Collection of Enablement material for Red Hat Open Innovation Labs
Home Page: https://rht-labs.github.io/enablement-docs/#/
During this lab, delegates will build out and update their OCP cluster environment using code. They will ultimately create a lightweight version of the CI/CD repo but start from nothing but an empty Ansible Inventory.
Sprint 1 Feature:
Create Nexus server using templates from ci/cd for use as part of the pipeline
Tasks
In this lab we will introduce the TODO list app, the backend and try get the walking skeleton of the app up and running, building and deploying through OCP. This is also where they’ll find their basic ToDoList App already created (in Lab 3, they’re going to add a feature). This plus the first exercise will simulate the full flow of the average first Sprint on a Residency.
Bring it all together in a Demo Day style event.
Content to introduce the practice of Metric Based Process Mapping, how we use it and show some examples of real MBPM artefacts.
Facilitate (with some pre-baked material) a MBPM of the E2E process of feature request generated from business to code running and being used in production. Capture some metrics associated with traditional software development (i.e. before automation, IaC, etc.). Brainstorm improvements we can apply using our engineering practices steering towards the key practices we're going to use in the following exercises. Show how we use this to build backlog of activities.
[ ] create content on MBPM in Google Slides
[ ] create a pre-baked example to showcase MBPM
[ ] create group exercise and test it out
[ ] collect real MBPMs and add to Google Slides
Sprint 1 Feature:
Add pipeline for app checking out from develop and deploying to labs-dev environment. Add master checkout to endup with app in test environment, replaying the pipeline.
Tasks
Create items for running the course as a backlog.
Adding non functional testing to the pipeline. Things like static code analysis, code coverage, mutation testing and light performance testing etc. ZAP and Arachni scanning for security tests
@tdbeattie - I think you've started some of this already so add your content here I guess?
Extend jenkins with configuration as code for pipelines using DSL or Declarative-pipeline-as-code. Introduce new Slaves for Jenkins to consume in future builds. Add a helper job for re-deploying specific version of the app.
Presentation of how we move from an Event Storm to a Product Backlog by using story mapping and value slicing techniques.
Time permitting, it would be good to do a short participation exercise to solidify this (perhaps Jeff Patton's exercise activities between waking up and getting to work).
Sprint 1 Feature:
Introduce the ref app. Get building locally and running locally so learners can explore the app. Check app into git instance created in previous lab.
Tasks
Collection of tasks needed to be done to be able to successfully delivery the enablement material
For the first pass; we're going to do things using Docsify
and revealJS.
Add grafana, prometheus or other monitoring tools to show vital box health and statistics of the nodes, and the application containers. Add Grafanna annotations in the App by combining with Elastic Search from Kibana
Sprint 1 Feature:
Add pipeline for app checking out from develop and deploying to learners dev environment. Add master checkout to endup with app in test environment, replaying the pipeline.
Tasks
Sprint 1 Feature:
Create Jenkins instance using the s2i. Have learners add new plugin eg Blue Balls to the s2i prior to build to allow hands on experience. Create from template on labs or cop repo
Tasks
going to use GitHub and the ZenHub plugin
@tdbeattie - when you get amoment can you uploaad the pic we have on the wall
Create the joining instructions and mail them to delegates.
This can be used as a starter for now.
Sprint 1 Feature:
Add Git (Lab or Gogs?) to the ci-cd namespace for the learner. Use templates from CoP library as starting point.
Tasks
Sprint 1 Feature:
Add a slave node for Jenkins to be able to execute builds in. Use the NodeJS one hosted on the CoP with Chrome installed already as will be used later. NOTE - this could be done as part of lab1 or lab2, figure out where it makes more sense to add when going through the material.
Tasks
Create CI / CD for labs content (slides, doc sites etc)
This is the Lab where a new feature will be built. We could update the Product Backlog created on Day 1 to reflect that some features have been built (we could say we’re fast forwarding to Sprint 2) and top priority item are the ones we’ve set in the Lab to create. The new feature would be built using TDD, and built as a single, fullstack feature. Probably a new flag on the todo list to mark an item as important
Write some content (e.g. a few slides) to introduce the enablement workshop and its the target outcomes / objectives.
Posters to include:
We're going to use Scrum and 3 x 1 week sprints to build out this enablement session.
Proposed Sprint Cadence
Content to introduce the practice of Event Storming, how we use it and show some examples of real Event Storm artefacts.
We will pre-bake an Event Storm map for the ToDoList business processes. We will use this to communicate the scope of the application using the event storming notation.
Perhaps some kind of group exercise or discussion to solidify learning.
Channel rhc-labs-enablement
created in Consulting Rocket Chat
Sprint 1 Feature:
Create learner-ci-cd, learner-dev, learner-test for each learner using the openshift applier. Guide learners by providing the templates.
Tasks
Somethings to get us started
I think we need to position a short introduction to Labs, it's mission and vision, what residencies are, etc. Suggest some re-use of our standard deck used for sales.
Create a slide deck highlighting the tools and tech used primarily across the labs
Sprint 1 Feature:
Add mongodb setup for each project namespace. NOTE - need to figure out how to add it into the build as will be required by the tests in lab3
Tasks
Add application monitoring tooling such as Jenkins Dashboards and API Traffic Lights. Tighten the feedback loop by using Build Fail Analyser to suggest why builds have failed.
Need two clusters (maybe could reuse them?) @makentenza and @oybed can you get me a 3.9 cluster to be able work in for building the content and testing it please?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.