alwaysastudent / CNA_tutorial

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

CNA Tutorial

work in progress

The aim of this tutorial is to introduce the basic concepts of cloud native application development.
Starting by introducing the basic concepts of version control systems like git. This tutorial demonstrates the basic interaction with Cloud Foundry and shows how to push a small static website to Cloud Foundry. Furthermore the tutorial shows how to build a continuous integration pipeline with Concourse CI in order to push application code to Cloud Foundry. Furthermore the integration of S3 targets and slack into integration pipelines are shown. Lastly this tutorial intends to give a short introduction to the use of Docker containers.

Prerequisite

The prerequisites for using this tutorial is the installation of VirtualBox and Vagrant on your local system. In addition, it makes sense to use a SSH client such as Putty:

Once the software is downloaded and installed just clone this repository, go to the cloned folder and spin the development environment up by using vagrant:

git clone https://github.com/smichard/CNA_tutorial.git
cd CNA_tutorial
vagrant up

Any text that is shown in brackets (e. g. <some_text>) requires an adjustment in the course of this tutorial.

Tutorial environment

wip describe environment

Component IP Port
Docker Host 192.168.58.2
Portainer 192.168.58.3 9000
Container registry srv 192.168.58.4 5000
Container registry gui 192.168.58.5 8080
Minio S3-target 192.168.58.6 9000
GitLab 192.168.58.7 30080
Concourse 192.168.58.8 8080

GitLab
username:
password:
link: 192.168.58.7:30080
GitLab is the first single application built from the ground up for all stages of the DevOps lifecycle for Product, Development, QA, Security, and Operations teams to work concurrently on the same project. GitLab enables teams to collaborate and work from a single conversation, instead of managing multiple threads across disparate tools. GitLab provides teams a single data store, one user interface, and one permission model across the DevOps lifecycle allowing teams to collaborate, significantly reducing cycle time and focus exclusively on building great software quickly.
GitLab

Concourse
username:
password:
link: 192.168.58.8:8080
Concourse CI is an open source continuous integration tool written in Go. Concourse limits itself to three core concepts: tasks, resources, and the jobs that compose them. Interesting features like timed triggers and synchronizing usage of external environments are modeled in terms of these.
Concourse CI

Minio S3-target
username:
password:
link: 192.168.58.6:9000
Minio is an object storage server released under Apache License v2.0. It is compatible with Amazon S3 cloud storage service. It is best suited for storing unstructured data such as photos, videos, log files, backups and container / VM images. Size of an object can range from a few KBs to a maximum of 5TB. Minio server is light enough to be bundled with the application stack, similar to NodeJS, Redis and MySQL.
find more


Container Registry GUI
username:
password:
link: 192.168.58.5:8080
A web UI, authentication service and event recorder for a private docker registry v2. Supports the following features:

  • browsing repositories, tags and images in docker registry v2
  • optional token based authentication provider with role-based permissions
  • Docker registry notification recording and audit find more

Portainer
username:
password:
link: 192.168.58.3:9000
Portainer is a lightweight management UI which allows you to easily manage your different Docker environments. Portainer is meant to be as simple to deploy as it is to use. It consists of a single container that can run on any Docker engine. Portainer allows you to manage your Docker containers, images, volumes, networks and more ! It is compatible with the standalone Docker engine and with Docker Swarm mode.
find more

Getting Started

check if everything is running using portainer
use e.g. Putty to connect to vagrant box
Hostname: 127.0.0.1
Port: 2222
User: vagrant
Password: vagrant

cd /vagrant
ls

1. Introduction to Git

2. Introduction Cloud Foundry

  • connect to Cloud Foundry
  • pushing an app to Cloud Foundry
  • scaling an app
  • pushing an app to Cloud Foundry using a manifest
  • blue / green deployment with zero downtime
cd chapter_2

Follow Read Me of Chapter 2

3. Introduction to Concourse CI to build an integration pipeline

  • install the fly CLI in order to connect to the Concourse CI target
  • create an integrtion pipeline with Concourse CI
  • set concourse pipeline
  • zero downtime deployment to Cloud Foundry through Concourse CI
  • versioning semver
  • push to S3 target -> minio -> ECS Testdrive
  • slack integration
cd chapter_3

Follow Read Me of Chapter 3

4. Introduction to Docker

About


Languages

Language:JavaScript 39.8%Language:CSS 38.9%Language:HTML 20.8%Language:Shell 0.5%