Purpose
The purpose of the workshop is to give a general and hands-on introduction to Radix. We do this by "forking" and example application, get familiar with the application, establish a CI environment locally, move the application into Radix and then establish the full CI/CD DevOps cycle.
- 1. Omnia Radix Workshop 1
- Have access to the Radix Playground
- Apply for access to the Radix Playground in AccessIT (seach for
Radix Playground Users
) - Find Radix at https://console.playground.radix.equinor.com
- Apply for access to the Radix Playground in AccessIT (seach for
- Account on github.com
- Git installed and working locally against github.com
- Docker running locally
- Local dev. environment (IDE++)
- Node js eco system installed and running (Downnload Nodejs)
- Laptop that "works" on “Statoil Approved” WiFi. If not - know how to handle proxy fun for both Docker and local development environment
- Fork repository to your home on github. Consider choosing an alternative name for the repository
- Clone your newly forked repository down to your developer laptop
- Move into the echo folder and explore how to develop the Echo app using
Node.js
as well as Dockerizing the application.
- Move into the www folder and explore how to develop the WWW app using
Node.js
as well as Dockerizing the application.
Remember that the Echo app needs to run somewhere to get proper response.
- The Radix cluster we use for the workshop is available at https://console.playground.radix.equinor.com/
- Radix documentation is available at https://www.radix.equinor.com/
Important to know:
- The difference between
platform user
andapplication user
- Important terminology:
application
,environments
,components
, andreplicas
Important Radix Concepts radixconfig.yaml
- lives on the master branch and is your infrastrucure as code - drive your app in Radix.
- Reading the docs docs app
- Exploring the config file for the example app ./radixconfig.yaml
- Update the name of
your instance
of the application in radixconfig.yaml - Follow the getting started guide (www.radix.equinor.com) or "just do it!"
- Do a change to trigger the initial build (or use the "New job" feature in the jobs/environment section). Examine web-hooks and reponse in Radix
- Verify that the app work on the public end-point it has been given.
Radix support connecting a branch to a specific environment. Let's explore this.
- Update the radixconfig.yaml file in
master
, commit, push and explore what's happening in Radix. (Copy the file ./radixconfigs/radixconfig-feature1.yaml to ./radixconfig.yaml. Remember to update app name) - Check out the "new" branch (feature1)
- Examine code - the new feature (getting a new env variable from Echo (node_env))
- Alternatively:
- Checkout a new branch
- Update the tests for Echo
- Run tests - which fails
- Add feature to Echo
- Run tests - hopefully with success
- Build Docker image and verify
- Update views for echo.ejs in WWW
- Run npm start and verify
- Commit changes and push
- (Do a change, commit, push and) explore what's happening in Radix.
The Echo component is exposing metrics on the /metrics endpoint. These metrics are scraped by Prometheus and made available in Grafana. Consult the docs for Prometheus and Grafana for how to work with metrics and monitoring.
(Status as of January 2019)
- Storage - databases
- Authentication
- Logging
- Metrics - Monitoring
- Radix CLI (Api)
- Backup & Disaster recovery
- Own domain names / urls for apps
- Radix on #Slack (#omnia_radix, #omnia_radix_support)
- Raidx front app
- Radix on github.com
- Radix Getting Started - https://www.radix.equinor.com/
It makes sense to examing existing issues and perhaps discuss on Slack prior to logging a new one
- Move your own apps into Radix