SlideShare a Scribd company logo
1 of 13
Download to read offline
1 | P a g e
Steven Viljoen
7-28-2015
VIRTUAL DESIGN MASTER 3
PUPAPHOBIA DESIGN
DOCUMENT V1.8
Challenge 4
2 | P a g e
Contents
Revision History ................................................................................................................................................................3
Executive summary...........................................................................................................................................................3
Disclaimer..........................................................................................................................................................................3
The Laptop ........................................................................................................................................................................3
Requirements....................................................................................................................................................................4
Constraints........................................................................................................................................................................4
Risks ..................................................................................................................................................................................4
Assumptions......................................................................................................................................................................4
Design Choices ..................................................................................................................................................................5
Container.......................................................................................................................................................................5
Web servers ..................................................................................................................................................................5
Orchestration tools.......................................................................................................................................................5
ANSIBLE-NGINX BUILD ......................................................................................................................................................6
Environment..................................................................................................................................................................6
Docker...........................................................................................................................................................................7
Ansible...........................................................................................................................................................................7
Deployment...................................................................................................................................................................9
Epistemophobics deployment ......................................................................................................................................9
PUPPET-APACHE BUILD...................................................................................................................................................10
Environment Setup .....................................................................................................................................................10
Common infrastructure services.............................................................................................................................10
Docker.........................................................................................................................................................................10
Puppet Master ............................................................................................................................................................11
Puppet Node ...........................................................................................................................................................11
Deployment.................................................................................................................................................................12
What still remains to be done:........................................................................................................................................12
Epilogue...........................................................................................................................................................................12
References ......................................................................................................................................................................13
3 | P a g e
Revision History
Date Revision
number
Author Comments
23 July 2015 V1.0 S.Viljoen Initial draft
24 July 2015 v1.1 S.Viljoen Added design choices
25 July 2015 V1.2 S.Viljoen My first Docker container is born on vacation in Croatia
25 July 2015 V1.3 S.Viljoen Ansible is awesome…Think I am getting this.
26 July 2015 V1.4 S.Viljoen Nope…Really hate Ansible.
26 July 2015 V1.5 S.Viljoen Ansible done…Probably quicker to just teach them how to deploy
a web server rather than waiting for me to figure this out.
27 July 2015 v1.6 S.Viljoen Puppet started…Ansible doesn’t seem so bad anymore in
comparison.
28 July 2015 v1.7 S.Viljoen uuughh…Feels like I reading ancient Greek documents.
28 July 2015 v1.8 S.Viljoen Out of time and grey matter
Executive summary
We’re heading back to Earth.
We will be sending a tough (but not so bright) group of humans called the Epistemophobics to secure certain areas
across the globe. To achieve this they will need working infrastructure.
As IT personnel are in short demand all infrastructure deployment will need to be handled by the technically
challenged Epistemophobics. For this reason an orchestrated system needs to be developed to rebuild the
infrastructure with little to no input from the !geeks.
Before leaving we will test out the approach by putting in 2 proof of concept models that will automate the
deployment of a simple web application that displays “Welcome Back to Earth!”
To properly evaluate and compare the deployment possibilities we will be using 2 orchestrating tools, 2 different OS
and 2 different web servers.
Given the unknown state and availability of the infrastructure on Earth the web servers will need to run within a
container.
Disclaimer
As of 23 July 2015 the lead design engineer (name withheld) had no experience with any orchestration tool or
Docker and his Linux skills fluctuated between a Stevie Wonder impression on his keyboard to ‘ls’ing the hell out of a
RHEL file system. While all efforts were made to ensure that all documented code works and build steps are accurate
he does profusely apologize for any preschool technical termsdescriptions.
The Laptop
Given the fact that no IT personnel will be sent back to Earth and that all deployments will be done by the
Epistemophobics it has been decided that each group will be given a preinstalled laptop running the following:
1. Orchestration tools
a. Ansible
b. Puppet master
2. Common infrastructure services
a. DNS server
b. NTP server
4 | P a g e
Requirements
Reference Description
RQ001 Needs to be able to be deployed by one of the Epistemophobics.
RQ002 Should require as little human interaction with the target infrastructure as possible
given the skill level of the one deploying it.
RQ003 Should include a step-by-step walk through.
RQ004 Should be supported on the most common Operating Systems on Earth.
(Windows, RHEL, CoreOS, Ubuntu, OS X)
RQ005 Should be scalable to extend past POC without full redesign.
Constraints
Reference Description
CS001 Unknown state of the shared infrastructure on Earth (hubs).
CS002 Severe lack of knowledge with anything related to Docker, Orchestration tools and
Linux.
CS003
Risks
Reference Description
RI001 Deployment team are technically illiterate.
RI002 Complex IT infrastructure (clouds) might not be available.
RI003
Assumptions
Reference Description
AS001 Electricity will still be working.
AS002 Basic NW connectivity will still be functional.
AS003
5 | P a g e
Design Choices
Container
As the state and type of infrastructure that remains on Earth is unknown it has been decided that the applications
will run in containers.
The container software of choice must fulfil the following requirements:
1. Must be able to use local image repositories. [CS001]
2. Needs to support at least 2 of the major Earth Operating systems.[RQ004]
3. Must be supported to run on major Earth based public cloud infrastructure.[RQ005]
4. Must be easy to extend functionality without impacting applications [RQ005]
Based on these requirements Docker has been chosen.
 Supports local image repositories ~ (Pustina)
 Runs on Ubuntu and CentOS~ (Docker.com)
 Supported on AWS and Azure ~ (Docker.com)
 Uses extension points to allow 3rd
parties to extend the base functionality with specific modules. ~ (Marsden)
 Who can resist that little whale logo.
Web servers
Given that the web server will run in a container there are no real Operating system requirement however the
following requirements have been identified to increase interoperability and future scalability.
1. Must support IPv6 [RQ005]
a. Old IPv4 IPs could still be recorded in Earth based public DNS servers.
2. Must support current Mars based programming skills (mostly Python)
Based on these requirements the following 2 web servers have been chosen: ~ (Wikipedia.com)
1. Apache (HTTP Server)
a. Supports WSGI
b. Supports IPv6
2. nginx
a. Supports WSGI
b. Supports IPv6
Orchestration tools
To provide a better evaluation platform for which deployment method works best it is needed to have:
 Push deployment and Pull deployment.
 Agent and Agentless
 Needs to support at least 2 of the major Earth Operating systems.[RQ004]
The following Orchestration tools have been chosen
1. Ansible
a. Push deployments
b. No agents needed
c. Runs on Ubuntu
2. Puppet
a. Pull deployments
b. Master server and node agents need to be installed
c. Runs on CoreOS
6 | P a g e
ANSIBLE-NGINX BUILD
For the first proof of concept I am using 2 Ubuntu 14.04 machines running on VMware workstation on my laptop (it
was a bit difficult to take my lab with me to Croatia on vacation).
This POC will be using:
Container Web Server Operating System Orchestration Tool
Docker Nginx Ubuntu Ansible
The deployment process is divided into 4 sections
 Environment: Setting up the management environment
 Docker: Installing Docker and creating the Nginx image
 Ansible: Installing Ansible and creating the playbook
 Deployment: Running the Ansible playbook.
Environment
1. Install Openssh-server if needed.
2. Open port 22 on the UFW
3. Create the working directory structure
o vdm3 directory
 vdm3/Dockerfile
 vdm3/content directory
 vdm3/content/index.html
4. Modify the index.html file to display the required welcome message
7 | P a g e
Docker
1. Install Docker on the management server
2. Modify the vdm3/Dockerfile created in the beginning.
3. Build the nginx image using the Dockerfile.
4. Check the new image
Ansible
1. Install Ansible on the management server
2. Disabled StrictHostKeyChecking in ~/.ssh/config
*Don’t think we have to worry about Zombie hackers
3. Uncomment #ask_sudo_pass=True in /etc/ansible/ansible.cfg
4. Create Ansible hosts file in /etc/ansible
*This will need to be updated by the Epistemophobics to point to the target server IPs.
FROM nginx
COPY content/ /usr/share/nginx/html
$ sudo Docker build –t earth_i1
$ Docker images
$ sudo apt-add-repository -y ppa:ansible/ansible
$ sudo apt-get update
$ sudo apt-get install -y ansible
Host *
StrictHostkeyChecking no
ask_sudo_pass=True
[earthwebs]
192.168.241.130
$ sudo apt-get update
$ sudo apt-get install wget
$ wget -qO- https://get.docker.com/ | sh
8 | P a g e
5. Create the Ansible playbook ubuntunginx.yml
- name: Deploy nginx
hosts: earthwebs
sudo: True
tasks:
- name: install curl
apt: name={{ item }} update_cache=yes
with_items:
- git
- curl
- libpq-dev
- python-dev
- python-psycopg2
- name: install docker
shell: curl -sSL https://get.docker.com/ | sh
args:
creates: /usr/bin/docker
- name: install pip
shell: curl https://bootstrap.pypa.io/get-pip.py | python -
- name: Install docker-py
pip: name=docker-py
- name: Deploy container
docker:
name: earth_c1
image: earth_i1
state: started
9 | P a g e
6. Run the playbook
Deployment
Well that’s dissapointing….even more so when you have spent the last 2 days trying to get to this point.
However, from what I have read the issue is caused due to the fact that the docker module looks for the referenced
image in the public repository Docker Hub.
This could be solved by :
1. Uploading the image to the Docker Hub.
2. ‘Somehow’ pointing it to a local private repository
a. Numerous attempts to do this but still haven’t got it to work.
Epistemophobics deployment
The team will be directed to a predetermined site chosen for its infrastructure and suitable hosts.
Upon landing on Earth they will be expected to:
 Plug the laptop into an existing network
 Edit the ansible hosts file with the IPs of the appropriate target servers
 Run the playbook.
 Connect via browser to ensure that the web site is available and that the message is displayed.
$ ansible-playbook –s ubuntunginx.yml -k
10 | P a g e
PUPPET-APACHE BUILD
Container Web Server Operating System Orchestration Tool
Docker Apache (HTTP Server) Centos 7.0 Puppet
The deployment process is divided into 5 sections
 Environment: Setting up the management environment
 Docker: Creating the Apache image
 Puppet Master: Installing and configuring the Puppet Master
 Puppet Node: Installing and configuring the Puppet Node
 Deployment: Setting up and deploying the Apache image
Environment Setup
Common infrastructure services
Deploy the DNS server
 Name:NS1.earth.com
 Install and configure Bind as a DNS server.
Docker
1. Reusing the previous Docker installation (to save time) so no installation is needed.
2. Create a new Dockerfile in vdm3/apachebuild/
The content directory contains the same modified index.html file detailed in the nginx build.
3. Build the apache image using the Dockerfile.
4. Check the new image
FROM httpd
COPY content/ /usr/local/apache2/htdocs/
$ sudo Docker build –t earth_i2
$ Docker images
11 | P a g e
Puppet Master
Deploy the Puppet Master server
 Name: puppet.earth.com
 open port 8140 in UFW
 Install and configure NTP – needed for the certificates
Install Puppet Master
 Install
o $ sudo apt-get update
o $ apt-get install puppetmaster
Configure certificates
 Add the puppetmaster names to the [Main] section in /etc/puppet/puppet.conf
o certname = puppet
o dns_alt_names = puppet, puppet.earth.com
 Generate a new Certificate
o $ sudo puppet master --verbose --no-daemonize
Create the site.pp manifest file
 $ sudo touch /etc/puppet/manifests/site.pp
Start puppetmaster
 $ sudo service puppetmaster start
Puppet Node
On the node server
 Name: Node1.earth.com
Install the Puppet agent
 $ sudo apt-get update
 $ sudo apt-get install puppet
Configure agent to start at boot
 Change START to yes [Start=yes] in /etc/default/puppet
Configure /etc/puppet/puppet.conf
 Delete [master] section
 Add
o [agent]
o server = puppet.earth.com
Start the Puppet agent
 $ sudo service puppet start
Sign the agent node’s certificate
 On master
o $ sudo puppet cert list to identify all pending requests (no + prefix)
12 | P a g e
o $ sudo puppet cert sign <agent fqdn> or sudo puppet cert sign --all
Deployment
I will be using the puppet Docker module created by Gareth R (https://github.com/garethr/garethr-docker).
Install requirements
 $ puppet module install puppetlabs/stdlib
 $ puppet module install --force stahnma-epel
Install Docker module
 $ puppet module install garethr/docker
Configure Docker on PuppetAgents
 Modify site.pp
node default {
include ‘docker’
 $ puppet agent –t
Setup the Apache image
 docker::image {‘earth_i2’
}
......Time’s up….
What still remains to be done:
Time and vMiss33 wait for no man… or something like that.
The following tasks would need to be accomplished but due to severe time restrictions are not documented in this
manual.
 Define a private repository
 Deploy the images to the Puppet agents
Epilogue
As of 28 July 2015 the lead design engineer (name forgotten at this stage) has volunteered to join the
Epistemophobics and lead the charge back on Earth.
13 | P a g e
References
Docker, Acodemy and. Docker: Learn Docker In A DAY! 2015.
Docker.com. Installing docker on Ubuntu. n.d. <https://docs.docker.com/installation/ubuntulinux/#installing-docker-
on-ubuntu>.
—. Supported installation. n.d. <https://docs.docker.com/installation/>.
Hochstein, Lorin. Ansible: Up and Runing. 2014.
Marsden, Luke. Extending Docker with Plugins. 22 6 2015. <http://blog.docker.com/2015/06/extending-docker-with-
plugins/>.
Pustina, Lukas. Docker Registry or How to Run your own Private Docker Image Repository. 18 02 2014.
<https://blog.codecentric.de/en/2014/02/docker-registry-run-private-docker-image-repository/>.
R, Gareth. garethr-docker. n.d. <https://github.com/garethr/garethr-docker>.
Ubuntu.com. Using the terminal. n.d. <https://help.ubuntu.com/community/UsingTheTerminal>.
Wikipedia.com. Comparison of web server software. n.d.
<https://en.wikipedia.org/wiki/Comparison_of_web_server_software>.
Wittig, Elizabeth. 2014. <https://puppetlabs.com/blog/starting-puppet-basics-from-puppet-labs-employee>.

More Related Content

What's hot

Byron Schaller - Challenge 3 - Virtual Design Master
Byron Schaller - Challenge 3 - Virtual Design MasterByron Schaller - Challenge 3 - Virtual Design Master
Byron Schaller - Challenge 3 - Virtual Design Mastervdmchallenge
 
Docker New York Meetup May 2015 - The Docker Orchestration Ecosystem on Azure
Docker New York Meetup May 2015 - The Docker Orchestration Ecosystem on Azure Docker New York Meetup May 2015 - The Docker Orchestration Ecosystem on Azure
Docker New York Meetup May 2015 - The Docker Orchestration Ecosystem on Azure Patrick Chanezon
 
Devoxx France 2015 - The Docker Orchestration Ecosystem on Azure
Devoxx France 2015 - The Docker Orchestration Ecosystem on AzureDevoxx France 2015 - The Docker Orchestration Ecosystem on Azure
Devoxx France 2015 - The Docker Orchestration Ecosystem on AzurePatrick Chanezon
 
Kernel linux lab manual feb (1)
Kernel linux lab manual feb (1)Kernel linux lab manual feb (1)
Kernel linux lab manual feb (1)johny shaik
 
Installaling Puppet Master and Agent
Installaling Puppet Master and AgentInstallaling Puppet Master and Agent
Installaling Puppet Master and AgentRanjit Avasarala
 
Introduction about Kubernates Cluster
Introduction about Kubernates ClusterIntroduction about Kubernates Cluster
Introduction about Kubernates Cluster♛Kumar Aneesh♛
 
Introduction to Docker and deployment and Azure
Introduction to Docker and deployment and AzureIntroduction to Docker and deployment and Azure
Introduction to Docker and deployment and AzureJérôme Petazzoni
 
L'affaire CentOS
L'affaire CentOSL'affaire CentOS
L'affaire CentOSSUSE
 
Docker Swarm for Beginner
Docker Swarm for BeginnerDocker Swarm for Beginner
Docker Swarm for BeginnerShahzad Masud
 
Tsunami of Technologies. Are we prepared?
Tsunami of Technologies. Are we prepared?Tsunami of Technologies. Are we prepared?
Tsunami of Technologies. Are we prepared?msyukor
 
SCALE 2011 Deploying OpenStack with Chef
SCALE 2011 Deploying OpenStack with ChefSCALE 2011 Deploying OpenStack with Chef
SCALE 2011 Deploying OpenStack with ChefMatt Ray
 
Docker Security Paradigm
Docker Security ParadigmDocker Security Paradigm
Docker Security ParadigmAnis LARGUEM
 
Under the Hood with Docker Swarm Mode - Drew Erny and Nishant Totla, Docker
Under the Hood with Docker Swarm Mode - Drew Erny and Nishant Totla, DockerUnder the Hood with Docker Swarm Mode - Drew Erny and Nishant Totla, Docker
Under the Hood with Docker Swarm Mode - Drew Erny and Nishant Totla, DockerDocker, Inc.
 
Evoluation of Linux Container Virtualization
Evoluation of Linux Container VirtualizationEvoluation of Linux Container Virtualization
Evoluation of Linux Container VirtualizationImesh Gunaratne
 
IRJET- Container Live Migration using Docker Checkpoint and Restore
IRJET-   	  Container Live Migration using Docker Checkpoint and RestoreIRJET-   	  Container Live Migration using Docker Checkpoint and Restore
IRJET- Container Live Migration using Docker Checkpoint and RestoreIRJET Journal
 
Rishidot research briefing notes Cloudscaling
Rishidot research briefing notes   CloudscalingRishidot research briefing notes   Cloudscaling
Rishidot research briefing notes CloudscalingRishidot Research
 

What's hot (20)

Byron Schaller - Challenge 3 - Virtual Design Master
Byron Schaller - Challenge 3 - Virtual Design MasterByron Schaller - Challenge 3 - Virtual Design Master
Byron Schaller - Challenge 3 - Virtual Design Master
 
Docker New York Meetup May 2015 - The Docker Orchestration Ecosystem on Azure
Docker New York Meetup May 2015 - The Docker Orchestration Ecosystem on Azure Docker New York Meetup May 2015 - The Docker Orchestration Ecosystem on Azure
Docker New York Meetup May 2015 - The Docker Orchestration Ecosystem on Azure
 
Docker
DockerDocker
Docker
 
Devoxx France 2015 - The Docker Orchestration Ecosystem on Azure
Devoxx France 2015 - The Docker Orchestration Ecosystem on AzureDevoxx France 2015 - The Docker Orchestration Ecosystem on Azure
Devoxx France 2015 - The Docker Orchestration Ecosystem on Azure
 
Kernel linux lab manual feb (1)
Kernel linux lab manual feb (1)Kernel linux lab manual feb (1)
Kernel linux lab manual feb (1)
 
Corba 2
Corba 2Corba 2
Corba 2
 
Installaling Puppet Master and Agent
Installaling Puppet Master and AgentInstallaling Puppet Master and Agent
Installaling Puppet Master and Agent
 
Introduction about Kubernates Cluster
Introduction about Kubernates ClusterIntroduction about Kubernates Cluster
Introduction about Kubernates Cluster
 
Introduction to Docker and deployment and Azure
Introduction to Docker and deployment and AzureIntroduction to Docker and deployment and Azure
Introduction to Docker and deployment and Azure
 
L'affaire CentOS
L'affaire CentOSL'affaire CentOS
L'affaire CentOS
 
Docker Swarm for Beginner
Docker Swarm for BeginnerDocker Swarm for Beginner
Docker Swarm for Beginner
 
Tsunami of Technologies. Are we prepared?
Tsunami of Technologies. Are we prepared?Tsunami of Technologies. Are we prepared?
Tsunami of Technologies. Are we prepared?
 
SCALE 2011 Deploying OpenStack with Chef
SCALE 2011 Deploying OpenStack with ChefSCALE 2011 Deploying OpenStack with Chef
SCALE 2011 Deploying OpenStack with Chef
 
Docker Security Paradigm
Docker Security ParadigmDocker Security Paradigm
Docker Security Paradigm
 
Subversion howto
Subversion howtoSubversion howto
Subversion howto
 
Under the Hood with Docker Swarm Mode - Drew Erny and Nishant Totla, Docker
Under the Hood with Docker Swarm Mode - Drew Erny and Nishant Totla, DockerUnder the Hood with Docker Swarm Mode - Drew Erny and Nishant Totla, Docker
Under the Hood with Docker Swarm Mode - Drew Erny and Nishant Totla, Docker
 
Overview of Docker
Overview of DockerOverview of Docker
Overview of Docker
 
Evoluation of Linux Container Virtualization
Evoluation of Linux Container VirtualizationEvoluation of Linux Container Virtualization
Evoluation of Linux Container Virtualization
 
IRJET- Container Live Migration using Docker Checkpoint and Restore
IRJET-   	  Container Live Migration using Docker Checkpoint and RestoreIRJET-   	  Container Live Migration using Docker Checkpoint and Restore
IRJET- Container Live Migration using Docker Checkpoint and Restore
 
Rishidot research briefing notes Cloudscaling
Rishidot research briefing notes   CloudscalingRishidot research briefing notes   Cloudscaling
Rishidot research briefing notes Cloudscaling
 

Viewers also liked

IoT, M2M - missä mennään ja mitä se merkitsee minulle kun kaikki on kiinni in...
IoT, M2M - missä mennään ja mitä se merkitsee minulle kun kaikki on kiinni in...IoT, M2M - missä mennään ja mitä se merkitsee minulle kun kaikki on kiinni in...
IoT, M2M - missä mennään ja mitä se merkitsee minulle kun kaikki on kiinni in...Customer Experience Professionals Association
 
Kmbakonam mutual benefit fund ltd
Kmbakonam mutual benefit fund ltdKmbakonam mutual benefit fund ltd
Kmbakonam mutual benefit fund ltdA.m. Mathavan
 
Resíduos de Solow industriais: um estudo empírico para o Brasil
Resíduos de Solow industriais: um estudo empírico para o BrasilResíduos de Solow industriais: um estudo empírico para o Brasil
Resíduos de Solow industriais: um estudo empírico para o BrasilMatheus Albergaria
 
Insights - A photo program of nature’s wisdom and inspiration
Insights - A photo program  of nature’s wisdom and inspirationInsights - A photo program  of nature’s wisdom and inspiration
Insights - A photo program of nature’s wisdom and inspirationvzt00
 
Mother teresa[1]
Mother teresa[1]Mother teresa[1]
Mother teresa[1]Soo Yiying
 
JAVA J2EE Training in Coimbatore - Fundamentals of Java J2EE
JAVA J2EE Training in Coimbatore - Fundamentals of Java J2EE JAVA J2EE Training in Coimbatore - Fundamentals of Java J2EE
JAVA J2EE Training in Coimbatore - Fundamentals of Java J2EE abile technologies
 
Garage band
Garage bandGarage band
Garage bandevolutis
 
Evaluation
EvaluationEvaluation
Evaluationevolutis
 
#VirtualDesignMaster 3 Challenge 2 - Abdullah Abdullah
#VirtualDesignMaster 3 Challenge 2 - Abdullah Abdullah#VirtualDesignMaster 3 Challenge 2 - Abdullah Abdullah
#VirtualDesignMaster 3 Challenge 2 - Abdullah Abdullahvdmchallenge
 
Praveen datla business_development_manager_15_years_cv
Praveen datla business_development_manager_15_years_cvPraveen datla business_development_manager_15_years_cv
Praveen datla business_development_manager_15_years_cvPraveen Datla
 
#FindPassion Keynote by Carla Echevarria, Creative Strategy Lead at Facebook
#FindPassion Keynote by Carla Echevarria, Creative Strategy Lead at Facebook#FindPassion Keynote by Carla Echevarria, Creative Strategy Lead at Facebook
#FindPassion Keynote by Carla Echevarria, Creative Strategy Lead at FacebookFindSpark
 
Assignment 4 parts 1, 2 & 3
Assignment 4 parts 1, 2 & 3Assignment 4 parts 1, 2 & 3
Assignment 4 parts 1, 2 & 3Christinatsewell
 
Before you Get Into Business
Before you Get Into BusinessBefore you Get Into Business
Before you Get Into BusinessGuita Gopalan
 
#VirtualDesignMaster 3 Challenge 3 - Lubomir Zvolensky
#VirtualDesignMaster 3 Challenge 3 - Lubomir Zvolensky#VirtualDesignMaster 3 Challenge 3 - Lubomir Zvolensky
#VirtualDesignMaster 3 Challenge 3 - Lubomir Zvolenskyvdmchallenge
 

Viewers also liked (20)

Assignment 5: Parts 1-3
Assignment 5: Parts 1-3Assignment 5: Parts 1-3
Assignment 5: Parts 1-3
 
Task 4
Task 4Task 4
Task 4
 
IoT, M2M - missä mennään ja mitä se merkitsee minulle kun kaikki on kiinni in...
IoT, M2M - missä mennään ja mitä se merkitsee minulle kun kaikki on kiinni in...IoT, M2M - missä mennään ja mitä se merkitsee minulle kun kaikki on kiinni in...
IoT, M2M - missä mennään ja mitä se merkitsee minulle kun kaikki on kiinni in...
 
Task 1
Task 1Task 1
Task 1
 
Kmbakonam mutual benefit fund ltd
Kmbakonam mutual benefit fund ltdKmbakonam mutual benefit fund ltd
Kmbakonam mutual benefit fund ltd
 
Blindsquare - Ilkka Pirttimaa - MIPsoft
Blindsquare - Ilkka Pirttimaa - MIPsoftBlindsquare - Ilkka Pirttimaa - MIPsoft
Blindsquare - Ilkka Pirttimaa - MIPsoft
 
Resíduos de Solow industriais: um estudo empírico para o Brasil
Resíduos de Solow industriais: um estudo empírico para o BrasilResíduos de Solow industriais: um estudo empírico para o Brasil
Resíduos de Solow industriais: um estudo empírico para o Brasil
 
Insights - A photo program of nature’s wisdom and inspiration
Insights - A photo program  of nature’s wisdom and inspirationInsights - A photo program  of nature’s wisdom and inspiration
Insights - A photo program of nature’s wisdom and inspiration
 
Mother teresa[1]
Mother teresa[1]Mother teresa[1]
Mother teresa[1]
 
JAVA J2EE Training in Coimbatore - Fundamentals of Java J2EE
JAVA J2EE Training in Coimbatore - Fundamentals of Java J2EE JAVA J2EE Training in Coimbatore - Fundamentals of Java J2EE
JAVA J2EE Training in Coimbatore - Fundamentals of Java J2EE
 
Task 5 development
Task 5  developmentTask 5  development
Task 5 development
 
Garage band
Garage bandGarage band
Garage band
 
New Presentation
New PresentationNew Presentation
New Presentation
 
Evaluation
EvaluationEvaluation
Evaluation
 
#VirtualDesignMaster 3 Challenge 2 - Abdullah Abdullah
#VirtualDesignMaster 3 Challenge 2 - Abdullah Abdullah#VirtualDesignMaster 3 Challenge 2 - Abdullah Abdullah
#VirtualDesignMaster 3 Challenge 2 - Abdullah Abdullah
 
Praveen datla business_development_manager_15_years_cv
Praveen datla business_development_manager_15_years_cvPraveen datla business_development_manager_15_years_cv
Praveen datla business_development_manager_15_years_cv
 
#FindPassion Keynote by Carla Echevarria, Creative Strategy Lead at Facebook
#FindPassion Keynote by Carla Echevarria, Creative Strategy Lead at Facebook#FindPassion Keynote by Carla Echevarria, Creative Strategy Lead at Facebook
#FindPassion Keynote by Carla Echevarria, Creative Strategy Lead at Facebook
 
Assignment 4 parts 1, 2 & 3
Assignment 4 parts 1, 2 & 3Assignment 4 parts 1, 2 & 3
Assignment 4 parts 1, 2 & 3
 
Before you Get Into Business
Before you Get Into BusinessBefore you Get Into Business
Before you Get Into Business
 
#VirtualDesignMaster 3 Challenge 3 - Lubomir Zvolensky
#VirtualDesignMaster 3 Challenge 3 - Lubomir Zvolensky#VirtualDesignMaster 3 Challenge 3 - Lubomir Zvolensky
#VirtualDesignMaster 3 Challenge 3 - Lubomir Zvolensky
 

Similar to #VirtualDesignMaster 3 Challenge 4 - Steven Viljoen

Using Docker EE to Scale Operational Intelligence at Splunk
Using Docker EE to Scale Operational Intelligence at SplunkUsing Docker EE to Scale Operational Intelligence at Splunk
Using Docker EE to Scale Operational Intelligence at SplunkDocker, Inc.
 
INN694-2014-OpenStack installation process V5
INN694-2014-OpenStack installation process V5INN694-2014-OpenStack installation process V5
INN694-2014-OpenStack installation process V5Fabien CHASTEL
 
En rhel-deploy-oracle-rac-database-12c-rhel-7
En rhel-deploy-oracle-rac-database-12c-rhel-7En rhel-deploy-oracle-rac-database-12c-rhel-7
En rhel-deploy-oracle-rac-database-12c-rhel-7Rotua Damanik
 
Cloud Forms Iaa S V2wp 6299847 0411 Dm Web 4
Cloud Forms Iaa S V2wp 6299847 0411 Dm Web 4Cloud Forms Iaa S V2wp 6299847 0411 Dm Web 4
Cloud Forms Iaa S V2wp 6299847 0411 Dm Web 4Yusuf Hadiwinata Sutandar
 
Deploying Splunk on OpenShift – Part2 : Getting Data In
Deploying Splunk on OpenShift – Part2 : Getting Data InDeploying Splunk on OpenShift – Part2 : Getting Data In
Deploying Splunk on OpenShift – Part2 : Getting Data InEric Gardner
 
給 RD 的 Kubernetes 初體驗
給 RD 的 Kubernetes 初體驗給 RD 的 Kubernetes 初體驗
給 RD 的 Kubernetes 初體驗William Yeh
 
Isp Setup Red Hat Howto
Isp Setup Red Hat HowtoIsp Setup Red Hat Howto
Isp Setup Red Hat Howtoguest60864fc
 
DEF CON 27 - workshop - ISAAC EVANS - discover exploit and eradicate entire v...
DEF CON 27 - workshop - ISAAC EVANS - discover exploit and eradicate entire v...DEF CON 27 - workshop - ISAAC EVANS - discover exploit and eradicate entire v...
DEF CON 27 - workshop - ISAAC EVANS - discover exploit and eradicate entire v...Felipe Prado
 
Why Micro Focus Chose Pulsar for Data Ingestion - Pulsar Summit NA 2021
Why Micro Focus Chose Pulsar for Data Ingestion - Pulsar Summit NA 2021Why Micro Focus Chose Pulsar for Data Ingestion - Pulsar Summit NA 2021
Why Micro Focus Chose Pulsar for Data Ingestion - Pulsar Summit NA 2021StreamNative
 
Montreal OpenStack Q3-2017 MeetUp
Montreal OpenStack Q3-2017 MeetUpMontreal OpenStack Q3-2017 MeetUp
Montreal OpenStack Q3-2017 MeetUpStacy Véronneau
 
Delivering a bleeding edge community-led openstack distribution: RDO
Delivering a bleeding edge community-led openstack distribution: RDO Delivering a bleeding edge community-led openstack distribution: RDO
Delivering a bleeding edge community-led openstack distribution: RDO Chandan Kumar
 
Delivering a bleeding edge community led open stack distribution- rdo
Delivering a bleeding edge community led open stack distribution- rdoDelivering a bleeding edge community led open stack distribution- rdo
Delivering a bleeding edge community led open stack distribution- rdoChandan Kumar
 

Similar to #VirtualDesignMaster 3 Challenge 4 - Steven Viljoen (20)

Trans.pdf
Trans.pdfTrans.pdf
Trans.pdf
 
Using Docker EE to Scale Operational Intelligence at Splunk
Using Docker EE to Scale Operational Intelligence at SplunkUsing Docker EE to Scale Operational Intelligence at Splunk
Using Docker EE to Scale Operational Intelligence at Splunk
 
Knowledge base
Knowledge baseKnowledge base
Knowledge base
 
thesis
thesisthesis
thesis
 
thesis
thesisthesis
thesis
 
INN694-2014-OpenStack installation process V5
INN694-2014-OpenStack installation process V5INN694-2014-OpenStack installation process V5
INN694-2014-OpenStack installation process V5
 
En rhel-deploy-oracle-rac-database-12c-rhel-7
En rhel-deploy-oracle-rac-database-12c-rhel-7En rhel-deploy-oracle-rac-database-12c-rhel-7
En rhel-deploy-oracle-rac-database-12c-rhel-7
 
Epics Qt design specification
Epics Qt design specificationEpics Qt design specification
Epics Qt design specification
 
Cloud Forms Iaa S V2wp 6299847 0411 Dm Web 4
Cloud Forms Iaa S V2wp 6299847 0411 Dm Web 4Cloud Forms Iaa S V2wp 6299847 0411 Dm Web 4
Cloud Forms Iaa S V2wp 6299847 0411 Dm Web 4
 
Install
InstallInstall
Install
 
Deploying Splunk on OpenShift – Part2 : Getting Data In
Deploying Splunk on OpenShift – Part2 : Getting Data InDeploying Splunk on OpenShift – Part2 : Getting Data In
Deploying Splunk on OpenShift – Part2 : Getting Data In
 
給 RD 的 Kubernetes 初體驗
給 RD 的 Kubernetes 初體驗給 RD 的 Kubernetes 初體驗
給 RD 的 Kubernetes 初體驗
 
Isp Setup Red Hat Howto
Isp Setup Red Hat HowtoIsp Setup Red Hat Howto
Isp Setup Red Hat Howto
 
HPC on OpenStack
HPC on OpenStackHPC on OpenStack
HPC on OpenStack
 
DEF CON 27 - workshop - ISAAC EVANS - discover exploit and eradicate entire v...
DEF CON 27 - workshop - ISAAC EVANS - discover exploit and eradicate entire v...DEF CON 27 - workshop - ISAAC EVANS - discover exploit and eradicate entire v...
DEF CON 27 - workshop - ISAAC EVANS - discover exploit and eradicate entire v...
 
Why Micro Focus Chose Pulsar for Data Ingestion - Pulsar Summit NA 2021
Why Micro Focus Chose Pulsar for Data Ingestion - Pulsar Summit NA 2021Why Micro Focus Chose Pulsar for Data Ingestion - Pulsar Summit NA 2021
Why Micro Focus Chose Pulsar for Data Ingestion - Pulsar Summit NA 2021
 
Montreal OpenStack Q3-2017 MeetUp
Montreal OpenStack Q3-2017 MeetUpMontreal OpenStack Q3-2017 MeetUp
Montreal OpenStack Q3-2017 MeetUp
 
Delivering a bleeding edge community-led openstack distribution: RDO
Delivering a bleeding edge community-led openstack distribution: RDO Delivering a bleeding edge community-led openstack distribution: RDO
Delivering a bleeding edge community-led openstack distribution: RDO
 
Lenovo midokura
Lenovo midokuraLenovo midokura
Lenovo midokura
 
Delivering a bleeding edge community led open stack distribution- rdo
Delivering a bleeding edge community led open stack distribution- rdoDelivering a bleeding edge community led open stack distribution- rdo
Delivering a bleeding edge community led open stack distribution- rdo
 

More from vdmchallenge

#VirtualDesignMaster 3 Challenge 3 – James Brown
#VirtualDesignMaster 3 Challenge 3 – James Brown#VirtualDesignMaster 3 Challenge 3 – James Brown
#VirtualDesignMaster 3 Challenge 3 – James Brownvdmchallenge
 
#VirtualDesignMaster 3 Challenge 3 - Harshvardhan Gupta
#VirtualDesignMaster 3 Challenge 3 - Harshvardhan Gupta#VirtualDesignMaster 3 Challenge 3 - Harshvardhan Gupta
#VirtualDesignMaster 3 Challenge 3 - Harshvardhan Guptavdmchallenge
 
#VirtualDesignMaster 3 Challenge 3 - Dennis George
#VirtualDesignMaster 3 Challenge 3 - Dennis George#VirtualDesignMaster 3 Challenge 3 - Dennis George
#VirtualDesignMaster 3 Challenge 3 - Dennis Georgevdmchallenge
 
#VirtualDesignMaster 3 Challenge 3 - Abdullah Abdullah
#VirtualDesignMaster 3 Challenge 3 - Abdullah Abdullah#VirtualDesignMaster 3 Challenge 3 - Abdullah Abdullah
#VirtualDesignMaster 3 Challenge 3 - Abdullah Abdullahvdmchallenge
 
#VirtualDesignMaster 3 Challenge 2 - Steven Viljoen
#VirtualDesignMaster 3 Challenge 2 - Steven Viljoen#VirtualDesignMaster 3 Challenge 2 - Steven Viljoen
#VirtualDesignMaster 3 Challenge 2 - Steven Viljoenvdmchallenge
 
#VirtualDesignMaster 3 Challenge 2 - Lubomir Zvolensky
#VirtualDesignMaster 3 Challenge 2 - Lubomir Zvolensky#VirtualDesignMaster 3 Challenge 2 - Lubomir Zvolensky
#VirtualDesignMaster 3 Challenge 2 - Lubomir Zvolenskyvdmchallenge
 
#VirtualDesignMaster 3 Challenge 2 – James Brown
#VirtualDesignMaster 3 Challenge 2 – James Brown#VirtualDesignMaster 3 Challenge 2 – James Brown
#VirtualDesignMaster 3 Challenge 2 – James Brownvdmchallenge
 
#VirtualDesignMaster 3 Challenge 2 - Harshvardhan Gupta
#VirtualDesignMaster 3 Challenge 2 - Harshvardhan Gupta#VirtualDesignMaster 3 Challenge 2 - Harshvardhan Gupta
#VirtualDesignMaster 3 Challenge 2 - Harshvardhan Guptavdmchallenge
 
#VirtualDesignMaster 3 Challenge 2 - Dennis George
#VirtualDesignMaster 3 Challenge 2 - Dennis George#VirtualDesignMaster 3 Challenge 2 - Dennis George
#VirtualDesignMaster 3 Challenge 2 - Dennis Georgevdmchallenge
 
#VirtualDesignMaster 3 Challenge 1 - Abdullah Abdullah
#VirtualDesignMaster 3 Challenge 1 - Abdullah Abdullah#VirtualDesignMaster 3 Challenge 1 - Abdullah Abdullah
#VirtualDesignMaster 3 Challenge 1 - Abdullah Abdullahvdmchallenge
 
#VirtualDesignMaster 3 Challenge 1 - Dennis George
#VirtualDesignMaster 3 Challenge 1 - Dennis George#VirtualDesignMaster 3 Challenge 1 - Dennis George
#VirtualDesignMaster 3 Challenge 1 - Dennis Georgevdmchallenge
 
#VirtualDesignMaster 3 Challenge 1 - Harshvardhan Gupta
#VirtualDesignMaster 3 Challenge 1 - Harshvardhan Gupta#VirtualDesignMaster 3 Challenge 1 - Harshvardhan Gupta
#VirtualDesignMaster 3 Challenge 1 - Harshvardhan Guptavdmchallenge
 
#VirtualDesignMaster 3 Challenge 1 – James Brown
#VirtualDesignMaster 3 Challenge 1 – James Brown#VirtualDesignMaster 3 Challenge 1 – James Brown
#VirtualDesignMaster 3 Challenge 1 – James Brownvdmchallenge
 
#VirtualDesignMaster 3 Challenge 1 - Lubomir Zvolensky
#VirtualDesignMaster 3 Challenge 1 - Lubomir  Zvolensky#VirtualDesignMaster 3 Challenge 1 - Lubomir  Zvolensky
#VirtualDesignMaster 3 Challenge 1 - Lubomir Zvolenskyvdmchallenge
 
#VirtualDesignMaster 3 Challenge 1 - Mohamed Ibrahim
#VirtualDesignMaster 3 Challenge 1 - Mohamed Ibrahim#VirtualDesignMaster 3 Challenge 1 - Mohamed Ibrahim
#VirtualDesignMaster 3 Challenge 1 - Mohamed Ibrahimvdmchallenge
 
#VirtualDesignMaster 3 Challenge 1 - Steven Viljoen
#VirtualDesignMaster 3 Challenge 1 - Steven Viljoen#VirtualDesignMaster 3 Challenge 1 - Steven Viljoen
#VirtualDesignMaster 3 Challenge 1 - Steven Viljoenvdmchallenge
 
Timothy Patterson - Challenge 4 - Virtual Design Master
Timothy Patterson - Challenge 4 - Virtual Design MasterTimothy Patterson - Challenge 4 - Virtual Design Master
Timothy Patterson - Challenge 4 - Virtual Design Mastervdmchallenge
 
Byron Schaller - Challenge 4 - Virtual Design Master
Byron Schaller - Challenge 4 - Virtual Design MasterByron Schaller - Challenge 4 - Virtual Design Master
Byron Schaller - Challenge 4 - Virtual Design Mastervdmchallenge
 
Daemon Behr - Challenge 4 - Virtual Design Master
Daemon Behr - Challenge 4 - Virtual Design MasterDaemon Behr - Challenge 4 - Virtual Design Master
Daemon Behr - Challenge 4 - Virtual Design Mastervdmchallenge
 
Daemon Behr - Challenge 3 - Virtual Design Master
Daemon Behr - Challenge 3 - Virtual Design Master Daemon Behr - Challenge 3 - Virtual Design Master
Daemon Behr - Challenge 3 - Virtual Design Master vdmchallenge
 

More from vdmchallenge (20)

#VirtualDesignMaster 3 Challenge 3 – James Brown
#VirtualDesignMaster 3 Challenge 3 – James Brown#VirtualDesignMaster 3 Challenge 3 – James Brown
#VirtualDesignMaster 3 Challenge 3 – James Brown
 
#VirtualDesignMaster 3 Challenge 3 - Harshvardhan Gupta
#VirtualDesignMaster 3 Challenge 3 - Harshvardhan Gupta#VirtualDesignMaster 3 Challenge 3 - Harshvardhan Gupta
#VirtualDesignMaster 3 Challenge 3 - Harshvardhan Gupta
 
#VirtualDesignMaster 3 Challenge 3 - Dennis George
#VirtualDesignMaster 3 Challenge 3 - Dennis George#VirtualDesignMaster 3 Challenge 3 - Dennis George
#VirtualDesignMaster 3 Challenge 3 - Dennis George
 
#VirtualDesignMaster 3 Challenge 3 - Abdullah Abdullah
#VirtualDesignMaster 3 Challenge 3 - Abdullah Abdullah#VirtualDesignMaster 3 Challenge 3 - Abdullah Abdullah
#VirtualDesignMaster 3 Challenge 3 - Abdullah Abdullah
 
#VirtualDesignMaster 3 Challenge 2 - Steven Viljoen
#VirtualDesignMaster 3 Challenge 2 - Steven Viljoen#VirtualDesignMaster 3 Challenge 2 - Steven Viljoen
#VirtualDesignMaster 3 Challenge 2 - Steven Viljoen
 
#VirtualDesignMaster 3 Challenge 2 - Lubomir Zvolensky
#VirtualDesignMaster 3 Challenge 2 - Lubomir Zvolensky#VirtualDesignMaster 3 Challenge 2 - Lubomir Zvolensky
#VirtualDesignMaster 3 Challenge 2 - Lubomir Zvolensky
 
#VirtualDesignMaster 3 Challenge 2 – James Brown
#VirtualDesignMaster 3 Challenge 2 – James Brown#VirtualDesignMaster 3 Challenge 2 – James Brown
#VirtualDesignMaster 3 Challenge 2 – James Brown
 
#VirtualDesignMaster 3 Challenge 2 - Harshvardhan Gupta
#VirtualDesignMaster 3 Challenge 2 - Harshvardhan Gupta#VirtualDesignMaster 3 Challenge 2 - Harshvardhan Gupta
#VirtualDesignMaster 3 Challenge 2 - Harshvardhan Gupta
 
#VirtualDesignMaster 3 Challenge 2 - Dennis George
#VirtualDesignMaster 3 Challenge 2 - Dennis George#VirtualDesignMaster 3 Challenge 2 - Dennis George
#VirtualDesignMaster 3 Challenge 2 - Dennis George
 
#VirtualDesignMaster 3 Challenge 1 - Abdullah Abdullah
#VirtualDesignMaster 3 Challenge 1 - Abdullah Abdullah#VirtualDesignMaster 3 Challenge 1 - Abdullah Abdullah
#VirtualDesignMaster 3 Challenge 1 - Abdullah Abdullah
 
#VirtualDesignMaster 3 Challenge 1 - Dennis George
#VirtualDesignMaster 3 Challenge 1 - Dennis George#VirtualDesignMaster 3 Challenge 1 - Dennis George
#VirtualDesignMaster 3 Challenge 1 - Dennis George
 
#VirtualDesignMaster 3 Challenge 1 - Harshvardhan Gupta
#VirtualDesignMaster 3 Challenge 1 - Harshvardhan Gupta#VirtualDesignMaster 3 Challenge 1 - Harshvardhan Gupta
#VirtualDesignMaster 3 Challenge 1 - Harshvardhan Gupta
 
#VirtualDesignMaster 3 Challenge 1 – James Brown
#VirtualDesignMaster 3 Challenge 1 – James Brown#VirtualDesignMaster 3 Challenge 1 – James Brown
#VirtualDesignMaster 3 Challenge 1 – James Brown
 
#VirtualDesignMaster 3 Challenge 1 - Lubomir Zvolensky
#VirtualDesignMaster 3 Challenge 1 - Lubomir  Zvolensky#VirtualDesignMaster 3 Challenge 1 - Lubomir  Zvolensky
#VirtualDesignMaster 3 Challenge 1 - Lubomir Zvolensky
 
#VirtualDesignMaster 3 Challenge 1 - Mohamed Ibrahim
#VirtualDesignMaster 3 Challenge 1 - Mohamed Ibrahim#VirtualDesignMaster 3 Challenge 1 - Mohamed Ibrahim
#VirtualDesignMaster 3 Challenge 1 - Mohamed Ibrahim
 
#VirtualDesignMaster 3 Challenge 1 - Steven Viljoen
#VirtualDesignMaster 3 Challenge 1 - Steven Viljoen#VirtualDesignMaster 3 Challenge 1 - Steven Viljoen
#VirtualDesignMaster 3 Challenge 1 - Steven Viljoen
 
Timothy Patterson - Challenge 4 - Virtual Design Master
Timothy Patterson - Challenge 4 - Virtual Design MasterTimothy Patterson - Challenge 4 - Virtual Design Master
Timothy Patterson - Challenge 4 - Virtual Design Master
 
Byron Schaller - Challenge 4 - Virtual Design Master
Byron Schaller - Challenge 4 - Virtual Design MasterByron Schaller - Challenge 4 - Virtual Design Master
Byron Schaller - Challenge 4 - Virtual Design Master
 
Daemon Behr - Challenge 4 - Virtual Design Master
Daemon Behr - Challenge 4 - Virtual Design MasterDaemon Behr - Challenge 4 - Virtual Design Master
Daemon Behr - Challenge 4 - Virtual Design Master
 
Daemon Behr - Challenge 3 - Virtual Design Master
Daemon Behr - Challenge 3 - Virtual Design Master Daemon Behr - Challenge 3 - Virtual Design Master
Daemon Behr - Challenge 3 - Virtual Design Master
 

Recently uploaded

DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DayH2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DaySri Ambati
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 

Recently uploaded (20)

DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DayH2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 

#VirtualDesignMaster 3 Challenge 4 - Steven Viljoen

  • 1. 1 | P a g e Steven Viljoen 7-28-2015 VIRTUAL DESIGN MASTER 3 PUPAPHOBIA DESIGN DOCUMENT V1.8 Challenge 4
  • 2. 2 | P a g e Contents Revision History ................................................................................................................................................................3 Executive summary...........................................................................................................................................................3 Disclaimer..........................................................................................................................................................................3 The Laptop ........................................................................................................................................................................3 Requirements....................................................................................................................................................................4 Constraints........................................................................................................................................................................4 Risks ..................................................................................................................................................................................4 Assumptions......................................................................................................................................................................4 Design Choices ..................................................................................................................................................................5 Container.......................................................................................................................................................................5 Web servers ..................................................................................................................................................................5 Orchestration tools.......................................................................................................................................................5 ANSIBLE-NGINX BUILD ......................................................................................................................................................6 Environment..................................................................................................................................................................6 Docker...........................................................................................................................................................................7 Ansible...........................................................................................................................................................................7 Deployment...................................................................................................................................................................9 Epistemophobics deployment ......................................................................................................................................9 PUPPET-APACHE BUILD...................................................................................................................................................10 Environment Setup .....................................................................................................................................................10 Common infrastructure services.............................................................................................................................10 Docker.........................................................................................................................................................................10 Puppet Master ............................................................................................................................................................11 Puppet Node ...........................................................................................................................................................11 Deployment.................................................................................................................................................................12 What still remains to be done:........................................................................................................................................12 Epilogue...........................................................................................................................................................................12 References ......................................................................................................................................................................13
  • 3. 3 | P a g e Revision History Date Revision number Author Comments 23 July 2015 V1.0 S.Viljoen Initial draft 24 July 2015 v1.1 S.Viljoen Added design choices 25 July 2015 V1.2 S.Viljoen My first Docker container is born on vacation in Croatia 25 July 2015 V1.3 S.Viljoen Ansible is awesome…Think I am getting this. 26 July 2015 V1.4 S.Viljoen Nope…Really hate Ansible. 26 July 2015 V1.5 S.Viljoen Ansible done…Probably quicker to just teach them how to deploy a web server rather than waiting for me to figure this out. 27 July 2015 v1.6 S.Viljoen Puppet started…Ansible doesn’t seem so bad anymore in comparison. 28 July 2015 v1.7 S.Viljoen uuughh…Feels like I reading ancient Greek documents. 28 July 2015 v1.8 S.Viljoen Out of time and grey matter Executive summary We’re heading back to Earth. We will be sending a tough (but not so bright) group of humans called the Epistemophobics to secure certain areas across the globe. To achieve this they will need working infrastructure. As IT personnel are in short demand all infrastructure deployment will need to be handled by the technically challenged Epistemophobics. For this reason an orchestrated system needs to be developed to rebuild the infrastructure with little to no input from the !geeks. Before leaving we will test out the approach by putting in 2 proof of concept models that will automate the deployment of a simple web application that displays “Welcome Back to Earth!” To properly evaluate and compare the deployment possibilities we will be using 2 orchestrating tools, 2 different OS and 2 different web servers. Given the unknown state and availability of the infrastructure on Earth the web servers will need to run within a container. Disclaimer As of 23 July 2015 the lead design engineer (name withheld) had no experience with any orchestration tool or Docker and his Linux skills fluctuated between a Stevie Wonder impression on his keyboard to ‘ls’ing the hell out of a RHEL file system. While all efforts were made to ensure that all documented code works and build steps are accurate he does profusely apologize for any preschool technical termsdescriptions. The Laptop Given the fact that no IT personnel will be sent back to Earth and that all deployments will be done by the Epistemophobics it has been decided that each group will be given a preinstalled laptop running the following: 1. Orchestration tools a. Ansible b. Puppet master 2. Common infrastructure services a. DNS server b. NTP server
  • 4. 4 | P a g e Requirements Reference Description RQ001 Needs to be able to be deployed by one of the Epistemophobics. RQ002 Should require as little human interaction with the target infrastructure as possible given the skill level of the one deploying it. RQ003 Should include a step-by-step walk through. RQ004 Should be supported on the most common Operating Systems on Earth. (Windows, RHEL, CoreOS, Ubuntu, OS X) RQ005 Should be scalable to extend past POC without full redesign. Constraints Reference Description CS001 Unknown state of the shared infrastructure on Earth (hubs). CS002 Severe lack of knowledge with anything related to Docker, Orchestration tools and Linux. CS003 Risks Reference Description RI001 Deployment team are technically illiterate. RI002 Complex IT infrastructure (clouds) might not be available. RI003 Assumptions Reference Description AS001 Electricity will still be working. AS002 Basic NW connectivity will still be functional. AS003
  • 5. 5 | P a g e Design Choices Container As the state and type of infrastructure that remains on Earth is unknown it has been decided that the applications will run in containers. The container software of choice must fulfil the following requirements: 1. Must be able to use local image repositories. [CS001] 2. Needs to support at least 2 of the major Earth Operating systems.[RQ004] 3. Must be supported to run on major Earth based public cloud infrastructure.[RQ005] 4. Must be easy to extend functionality without impacting applications [RQ005] Based on these requirements Docker has been chosen.  Supports local image repositories ~ (Pustina)  Runs on Ubuntu and CentOS~ (Docker.com)  Supported on AWS and Azure ~ (Docker.com)  Uses extension points to allow 3rd parties to extend the base functionality with specific modules. ~ (Marsden)  Who can resist that little whale logo. Web servers Given that the web server will run in a container there are no real Operating system requirement however the following requirements have been identified to increase interoperability and future scalability. 1. Must support IPv6 [RQ005] a. Old IPv4 IPs could still be recorded in Earth based public DNS servers. 2. Must support current Mars based programming skills (mostly Python) Based on these requirements the following 2 web servers have been chosen: ~ (Wikipedia.com) 1. Apache (HTTP Server) a. Supports WSGI b. Supports IPv6 2. nginx a. Supports WSGI b. Supports IPv6 Orchestration tools To provide a better evaluation platform for which deployment method works best it is needed to have:  Push deployment and Pull deployment.  Agent and Agentless  Needs to support at least 2 of the major Earth Operating systems.[RQ004] The following Orchestration tools have been chosen 1. Ansible a. Push deployments b. No agents needed c. Runs on Ubuntu 2. Puppet a. Pull deployments b. Master server and node agents need to be installed c. Runs on CoreOS
  • 6. 6 | P a g e ANSIBLE-NGINX BUILD For the first proof of concept I am using 2 Ubuntu 14.04 machines running on VMware workstation on my laptop (it was a bit difficult to take my lab with me to Croatia on vacation). This POC will be using: Container Web Server Operating System Orchestration Tool Docker Nginx Ubuntu Ansible The deployment process is divided into 4 sections  Environment: Setting up the management environment  Docker: Installing Docker and creating the Nginx image  Ansible: Installing Ansible and creating the playbook  Deployment: Running the Ansible playbook. Environment 1. Install Openssh-server if needed. 2. Open port 22 on the UFW 3. Create the working directory structure o vdm3 directory  vdm3/Dockerfile  vdm3/content directory  vdm3/content/index.html 4. Modify the index.html file to display the required welcome message
  • 7. 7 | P a g e Docker 1. Install Docker on the management server 2. Modify the vdm3/Dockerfile created in the beginning. 3. Build the nginx image using the Dockerfile. 4. Check the new image Ansible 1. Install Ansible on the management server 2. Disabled StrictHostKeyChecking in ~/.ssh/config *Don’t think we have to worry about Zombie hackers 3. Uncomment #ask_sudo_pass=True in /etc/ansible/ansible.cfg 4. Create Ansible hosts file in /etc/ansible *This will need to be updated by the Epistemophobics to point to the target server IPs. FROM nginx COPY content/ /usr/share/nginx/html $ sudo Docker build –t earth_i1 $ Docker images $ sudo apt-add-repository -y ppa:ansible/ansible $ sudo apt-get update $ sudo apt-get install -y ansible Host * StrictHostkeyChecking no ask_sudo_pass=True [earthwebs] 192.168.241.130 $ sudo apt-get update $ sudo apt-get install wget $ wget -qO- https://get.docker.com/ | sh
  • 8. 8 | P a g e 5. Create the Ansible playbook ubuntunginx.yml - name: Deploy nginx hosts: earthwebs sudo: True tasks: - name: install curl apt: name={{ item }} update_cache=yes with_items: - git - curl - libpq-dev - python-dev - python-psycopg2 - name: install docker shell: curl -sSL https://get.docker.com/ | sh args: creates: /usr/bin/docker - name: install pip shell: curl https://bootstrap.pypa.io/get-pip.py | python - - name: Install docker-py pip: name=docker-py - name: Deploy container docker: name: earth_c1 image: earth_i1 state: started
  • 9. 9 | P a g e 6. Run the playbook Deployment Well that’s dissapointing….even more so when you have spent the last 2 days trying to get to this point. However, from what I have read the issue is caused due to the fact that the docker module looks for the referenced image in the public repository Docker Hub. This could be solved by : 1. Uploading the image to the Docker Hub. 2. ‘Somehow’ pointing it to a local private repository a. Numerous attempts to do this but still haven’t got it to work. Epistemophobics deployment The team will be directed to a predetermined site chosen for its infrastructure and suitable hosts. Upon landing on Earth they will be expected to:  Plug the laptop into an existing network  Edit the ansible hosts file with the IPs of the appropriate target servers  Run the playbook.  Connect via browser to ensure that the web site is available and that the message is displayed. $ ansible-playbook –s ubuntunginx.yml -k
  • 10. 10 | P a g e PUPPET-APACHE BUILD Container Web Server Operating System Orchestration Tool Docker Apache (HTTP Server) Centos 7.0 Puppet The deployment process is divided into 5 sections  Environment: Setting up the management environment  Docker: Creating the Apache image  Puppet Master: Installing and configuring the Puppet Master  Puppet Node: Installing and configuring the Puppet Node  Deployment: Setting up and deploying the Apache image Environment Setup Common infrastructure services Deploy the DNS server  Name:NS1.earth.com  Install and configure Bind as a DNS server. Docker 1. Reusing the previous Docker installation (to save time) so no installation is needed. 2. Create a new Dockerfile in vdm3/apachebuild/ The content directory contains the same modified index.html file detailed in the nginx build. 3. Build the apache image using the Dockerfile. 4. Check the new image FROM httpd COPY content/ /usr/local/apache2/htdocs/ $ sudo Docker build –t earth_i2 $ Docker images
  • 11. 11 | P a g e Puppet Master Deploy the Puppet Master server  Name: puppet.earth.com  open port 8140 in UFW  Install and configure NTP – needed for the certificates Install Puppet Master  Install o $ sudo apt-get update o $ apt-get install puppetmaster Configure certificates  Add the puppetmaster names to the [Main] section in /etc/puppet/puppet.conf o certname = puppet o dns_alt_names = puppet, puppet.earth.com  Generate a new Certificate o $ sudo puppet master --verbose --no-daemonize Create the site.pp manifest file  $ sudo touch /etc/puppet/manifests/site.pp Start puppetmaster  $ sudo service puppetmaster start Puppet Node On the node server  Name: Node1.earth.com Install the Puppet agent  $ sudo apt-get update  $ sudo apt-get install puppet Configure agent to start at boot  Change START to yes [Start=yes] in /etc/default/puppet Configure /etc/puppet/puppet.conf  Delete [master] section  Add o [agent] o server = puppet.earth.com Start the Puppet agent  $ sudo service puppet start Sign the agent node’s certificate  On master o $ sudo puppet cert list to identify all pending requests (no + prefix)
  • 12. 12 | P a g e o $ sudo puppet cert sign <agent fqdn> or sudo puppet cert sign --all Deployment I will be using the puppet Docker module created by Gareth R (https://github.com/garethr/garethr-docker). Install requirements  $ puppet module install puppetlabs/stdlib  $ puppet module install --force stahnma-epel Install Docker module  $ puppet module install garethr/docker Configure Docker on PuppetAgents  Modify site.pp node default { include ‘docker’  $ puppet agent –t Setup the Apache image  docker::image {‘earth_i2’ } ......Time’s up…. What still remains to be done: Time and vMiss33 wait for no man… or something like that. The following tasks would need to be accomplished but due to severe time restrictions are not documented in this manual.  Define a private repository  Deploy the images to the Puppet agents Epilogue As of 28 July 2015 the lead design engineer (name forgotten at this stage) has volunteered to join the Epistemophobics and lead the charge back on Earth.
  • 13. 13 | P a g e References Docker, Acodemy and. Docker: Learn Docker In A DAY! 2015. Docker.com. Installing docker on Ubuntu. n.d. <https://docs.docker.com/installation/ubuntulinux/#installing-docker- on-ubuntu>. —. Supported installation. n.d. <https://docs.docker.com/installation/>. Hochstein, Lorin. Ansible: Up and Runing. 2014. Marsden, Luke. Extending Docker with Plugins. 22 6 2015. <http://blog.docker.com/2015/06/extending-docker-with- plugins/>. Pustina, Lukas. Docker Registry or How to Run your own Private Docker Image Repository. 18 02 2014. <https://blog.codecentric.de/en/2014/02/docker-registry-run-private-docker-image-repository/>. R, Gareth. garethr-docker. n.d. <https://github.com/garethr/garethr-docker>. Ubuntu.com. Using the terminal. n.d. <https://help.ubuntu.com/community/UsingTheTerminal>. Wikipedia.com. Comparison of web server software. n.d. <https://en.wikipedia.org/wiki/Comparison_of_web_server_software>. Wittig, Elizabeth. 2014. <https://puppetlabs.com/blog/starting-puppet-basics-from-puppet-labs-employee>.