Jelastic - Presentatie Exception Twente - 08-10-2015

18
Jelastic Exception Twente 08-10-2015 Wouter Schoot 1

Transcript of Jelastic - Presentatie Exception Twente - 08-10-2015

Page 1: Jelastic - Presentatie Exception Twente - 08-10-2015

Jelastic Exception Twente08-10-2015Wouter Schoot

1

Page 2: Jelastic - Presentatie Exception Twente - 08-10-2015

Even voorstellen...@WouterSchoot Sinds 2010 @ Oxilion "Disclaimer"

2

Page 3: Jelastic - Presentatie Exception Twente - 08-10-2015

Programma Over Jelastic Wat kan Jelastic API Over Docker en Jelastic Live demo

Duurt ongeveer een half uur.

Vragen? Gerust tussendoor maar opsparen mag ook :-)

3

Page 4: Jelastic - Presentatie Exception Twente - 08-10-2015

Wat is Jelastic Platform-as-a-Service

Sinds 2010, begonnen als "Java Elastic" Pay-as-you-grow Gebruikt containertechnologie van Parallels Rekent in cloudlets (100MHz / 128MB RAM) Automatisch schalen (horizontaal / verticaal) Eenvoudig deployen van je applicatie API

4

Page 5: Jelastic - Presentatie Exception Twente - 08-10-2015

Ondersteuning voor talen Java

Via Glassfish, Tomcat, Jetty, e.d. PHP (5.3 t/m 5.6)

Via Apache (mod_php) of nginx (php-fpm) Python (2.7, 3.3 & 3.4) Node.JS (v0.10 & v0.12) Ruby MySQL/MariaDB/PostgreSQL (Mongo|Couch)DB, Memcached, Redis (.Net) Proxy/load balancing dmv Apache, Nginx, HA Proxy of Varnish

5

Page 6: Jelastic - Presentatie Exception Twente - 08-10-2015

Containers

6

Page 7: Jelastic - Presentatie Exception Twente - 08-10-2015

Autoscaling (verticaal)

7

Page 8: Jelastic - Presentatie Exception Twente - 08-10-2015

Autoscaling (horizontaal)

8

Page 9: Jelastic - Presentatie Exception Twente - 08-10-2015

Deployen & OTAP

Clonen van je environment

Incl. build/deploy tooling

9

Page 10: Jelastic - Presentatie Exception Twente - 08-10-2015

Ook ondersteuning voor Linux VPS (Windows VPS) Docker

10

Page 11: Jelastic - Presentatie Exception Twente - 08-10-2015

Docker binnen Jelastic Support aanwezig sinds maart 2015 Gebruik van eigen (private) Docker hub’s mogelijk Maakt een Jelastic environment van je docker image Koppel je Docker containers aan elkaar

11

Page 12: Jelastic - Presentatie Exception Twente - 08-10-2015

Docker en Jelastic samen Live migration van Docker containers Verticaal schalen Volledig geïsoleerde containers Verdeling van Docker containers over het cluster voor zowel

performance als high availability Mogelijkheid tot het hibernaten van Docker containers bij rust

12

Page 13: Jelastic - Presentatie Exception Twente - 08-10-2015

Verbinden

13

Page 14: Jelastic - Presentatie Exception Twente - 08-10-2015

APIJelastic API follows REST principles. REST API determines a set of functions which can be requested by a developer, who then receives a response. The interaction is performed via HTTP protocol.

14

Page 15: Jelastic - Presentatie Exception Twente - 08-10-2015

#!/usr/bin/pythonimport sys, string, requestsimport json, random, ConfigParser

config = ConfigParser.RawConfigParser()config.read('jelastic.ini')

jelastic_url = 'https://app.groundctrl.nl/1.0/'login_uri = 'users/authentication/rest/signin'login_url = jelastic_url + login_uriappid = '1dd8d191d38fff45e62564fcf67fdcd6'user = config.get('auth', 'username')password = config.get('auth', 'password')

data = { 'appid': appid, 'login': user, 'password': password}

r = requests.get(login_url, params=data)session = json.loads(r.text)[u'session']

create_env_url = 'environment/environment/rest/createenvironment'shortdomain = 'exceptiontwente-' + ''.join(random.choice(string.ascii_lowercase) for x in range(6))

15

Page 16: Jelastic - Presentatie Exception Twente - 08-10-2015

nodes = [{ 'nodeType': 'apache2', 'extip': False, 'count': 2, 'fixedCloudlets': 2, 'flexibleCloudlets': 8},{ 'nodeType': 'mysql5', 'extip': False, 'count': 1, 'fixedCloudlets': 2, 'flexibleCloudlets': 8}]

env = { 'shortdomain': shortdomain, 'ishaenabled': False, 'engine': 'php5.6'}

params = { 'appid': appid, 'session': session, 'actionkey': 'createenv', 'env': json.dumps(env), 'nodes': json.dumps(nodes)}

16

Page 17: Jelastic - Presentatie Exception Twente - 08-10-2015

print requests.get(jelastic_url + create_env_url, params=params).text

requests.get( jelastic_url + 'users/authentication/rest/signout', params={ 'appid': appid, 'session': session})

## Execute

$ ./create_env_apache_mysql.py | python -m json.tool{ "response": { "appid": "544c4a4e39dcb6c8221e914415fce4d0", "creatorAppid": "77047754c838ee6badea32b5afab1882", "date": "2015-10-07 02:37:04", "env": { "appid": "544c4a4e39dcb6c8221e914415fce4d0", "contexts": [], "creatorUid": 701, "domain": "exceptiontwente-delcde.groundctrl.nl", "engine": { "id": 28, "keyword": "php5.6", "name": "PHP 5.6", "type": "php", "vcsSupport": true, "version": "5.6.10"[[...]]

17

Page 18: Jelastic - Presentatie Exception Twente - 08-10-2015

Live demo & probeer het uit!Registreer jezelf op https://app.groundctrl.nl

18