friday, april 16, 2010 - goldmann.pl · marek goldmann software developer, jboss by red hat...

74
Friday, April 16, 2010

Upload: dodat

Post on 28-Feb-2019

215 views

Category:

Documents


0 download

TRANSCRIPT

Friday, April 16, 2010

Marek GoldmannSoftware Developer, JBoss by Red Hat15.04.2010, Gliwice

StormGrind – hackowanie w chmurkach

Friday, April 16, 2010

Agenda• Cloud computing

• StormGrind

• CirrAS

• Demo

• BoxGrinder

• CoolingTower

• StormFolio, Cantiere

• Q&A

Friday, April 16, 2010

Marek Goldmann, czyli ja

• Pracownik JBoss’a

• Programista?

• Zainteresowania

• Open source

• Wirtualizacja, cloud computing, klastrowanie

• Muzyka elektroniczna

• XMPP/Jabber

Friday, April 16, 2010

Cloud computing

• Temat rzeka

• Mnóstwo definicji i niejasności

• Kolejny etap rozwoju

• (Ciekawe) problemy

Friday, April 16, 2010

Co otrzymujemy?

• Zasoby – szybko i stosunkowo tanio

• Swobodę – wybieramy dostawców

Friday, April 16, 2010

Najważniesze cechy cloud computingu

• Płać za wykorzystane zasoby

• Iluzja nieskończonych zasobów

Friday, April 16, 2010

Problemy cloud computingu

• Bezpieczeństwo i zaufanie

• Przenośność aplikacji

• Współpraca pomiędzy różnymi dostawcami (API)

• Gdzie przechowywać dane w chmurze? RDBMS? NoSQL?

• SLA?

Friday, April 16, 2010

Kto się bawi w te klocki?

• IBM

• Amazon

• VMware

• Microsoft

• Red Hat

Friday, April 16, 2010

Zastanów się...

• Na świecie jest 4 razy więcej procesorów niż ludzi

• Wiele z kontrolerów ma wbudowany protokół TCP

• Ilość rdzeni w procesorach będzie rosnąć...

Friday, April 16, 2010

Cloud computing – modele

• IaaS (Infrastructure as a Service)

• Amazon EC2, Rackspace

• PaaS (Paltform as a Service)

• Google AppEngine

• SaaS (Software as a Service)

• SalesForce, Facebook

Friday, April 16, 2010

Zależność modeli

Software(SaaS)

Platform(PaaS)

Infrastructure(IaaS)

Flexib

ility

Co

mp

lexityGoogle Docs

Salesforce.com

Google AppEngine

Microsoft Azure

Amazon EC2 & S3

Friday, April 16, 2010

On-premises

Applications

Runtimes

SOA / Integrations

Databases

Server SW

Virtualization

Server HW

Storage

Networking

Hosted(Iaas)

Applications

Runtimes

SOA / Integrations

Databases

Server SW

Virtualization

Server HW

Storage

Networking

Cloud(Paas)

Applications

Runtimes

SOA / Integrations

Databases

Server SW

Virtualization

Server HW

Storage

Networking

Yo

u m

anag

e Yo

u m

anag

e

Yo

u m

anag

e

We

man

age

We

man

age

Friday, April 16, 2010

Cloud computing – rodzaje

• Public

• Private

• Hybrid

Friday, April 16, 2010

oddthesis.org?

Friday, April 16, 2010

Odd Thesis > StormGrind

JBoss Cloud

Odd Thesis StormGrind

JBoss Appliance Support

CirrAS

BoxGrinder Build

Cantiere

Friday, April 16, 2010

StormGrind = JBoss w chmurach

Friday, April 16, 2010

Friday, April 16, 2010

Cel

Klaster JBoss AS w chmurze bez konieczności konfiguracji

czegokolwiek. Klaster prosto z pudełka.

Friday, April 16, 2010

CirrAS technicznie

• Składa się z 3 obrazów (wirtualnych maszyn):

• front-end

• back-end

• management

Friday, April 16, 2010

Front-end appliance

• Apache httpd 2.2+

• mod_cluster

Friday, April 16, 2010

Back-end appliance

• JBoss AS 6

Friday, April 16, 2010

Management appliance

• RHQ

• PostgreSQL

• Usługa zarządzania

Friday, April 16, 2010

Architektura CirrAS

front-end

back-end

management

back-end

back-end

back-end

...

Zapytania

Friday, April 16, 2010

Pokaż to w końcu!

Friday, April 16, 2010

RHQ

Friday, April 16, 2010

RHQ –– możliwości

• Monitorowanie

• Zarządzanie

• Powiadamianie

• Wykonywanie zdalnych operacji

Friday, April 16, 2010

mod_cluster

• Dynamiczna konfiguracja workerów

• Współczynnik obciążenia obliczany po stronie serwera

• Pełna kontrola cyklu życia aplikacji

Text

http://ordinarythoughts.org/2008/12/27/mod_cluster-nowe-spojrzenie-na-load-balancery/

Friday, April 16, 2010

Co dalej?

• Wsparcie dla EAP

• Podążanie za nowymi wersjami komponentów

Friday, April 16, 2010

Friday, April 16, 2010

Cel

Budowanie obrazów systemów operacyjnych wraz z niezbędnymi

aplikacjami z prostych definicji

Friday, April 16, 2010

Na czym to polega?

OS

App 1

App 2

App N

Repozytorium 1

AppAppAppAppAppAppAppAppAppApp

Repozytorium 2

AppAppApp

Friday, April 16, 2010

Łączenie funkcjonalności (dziedziczenie)

OS

Apache

PostgreSQL

OS

Apache

PostgreSQL

OS

Friday, April 16, 2010

Cechy

• Obsługa wielu platform

• Xen/KVM

• VMware

• EC2

• VirtualBox

• Narzędzie łatwe w użyciu i stosunkowo szybkie!

Friday, April 16, 2010

Cechy c.d.

• Możliwość spakowania obrazu

• ZIP, TGZ

• Możliwość wysłania wysłania obrazu

• SSH, CloudFront

• Reprodukcja obrazów z definicji

Friday, April 16, 2010

BoxGrinder Build

BoxGrinder REST

BoxGrinder StudioWeb front-end

to BoxGrinder Build

RESTful APIto BoxGrinder Build

Set of Rake tasksto build appliances

Podprojekty

Friday, April 16, 2010

Friday, April 16, 2010

BoxGrinder Build

Aplikacja konsolowa

Friday, April 16, 2010

Budowanie obrazu

• Stwórz definicję obrazu

name: httpdsummary: Apache HTTPDappliances:  - jeospackages:  includes:    - httpd

Friday, April 16, 2010

Budowanie obrazu

• Umieść definicję w katalogu appliances/

• Uruchom BoxGrinder:

• Poczekaj 2 minuty...

boxgrinder appliance:httpd

Friday, April 16, 2010

Chcę to zobaczyć!

Friday, April 16, 2010

Ciekawsza definicja

name: your-appliancesummary: This describes your applianceos:  name: fedora  version: 12  password: weakpasswordimage:  cpus: 2  memory: 512  partitions:    - root: "/"      size: 10packages:  includes:    - httpd

Friday, April 16, 2010

Podsumowanie definicji

• Łatwe w zrozumieniu i edycji

• Łatwe do wersjonowania

• Jeden format dla wielu systemów operacyjnych

• Duże możliwości:

• Dziedziczenie

name: httpdsummary: Apache HTTPDappliances:! - jeos

Friday, April 16, 2010

Friday, April 16, 2010

BoxGrinder REST

REST API dla BoxGrinder Build

Friday, April 16, 2010

Rzut okiem na BG REST

BoxGrinder BuildBoxGrinder REST

CLI

REST client

Friday, April 16, 2010

A co jest w środku?

Rails + TorqueBox + JBoss AS

Friday, April 16, 2010

Rejestracja workerów

BoxGrinder REST

BoxGrinder REST node

BoxGrinder REST node

BoxGrinder REST node

Friday, April 16, 2010

Obsługa definicji

BoxGrinder REST

Queue

BoxGrinder REST node

BoxGrinder REST node

BoxGrinder REST node

Definition

Friday, April 16, 2010

Cechy

• Różne możliwości wdrożenia

• prywatne datacenter

• publiczna chmura

• Wewnętrzna komunikacja oparta o JMS

• Wiele formatów na wyjściu

• HTML, JSON, YAML, XML

Friday, April 16, 2010

Przyszłość BG REST

• Pracuję nad pierwszą wersją

• Repozytorium obrazów

Friday, April 16, 2010

Friday, April 16, 2010

BoxGrinder Studio

UI dla BoxGrinder REST

Friday, April 16, 2010

Stan BG Studio?

• Projekt w planach

Friday, April 16, 2010

CoolingTower

Friday, April 16, 2010

CoolingTower

Bezobsługowe rozwiązanie PaaS oparte na projektach JBossa

Friday, April 16, 2010

Process

Software(Software as a Service)

Platform(Platform as a Service)

Infrastructure(Infrastructure as a Service)

PhysicalEnvironments

Business Services

Information Services

Managed Services

Business Process

Outsourcing

Multi- Enterprise

Applications

Business Applications

Enterprise Applications Cloud Agents Composite

ApplicationsSocial

Computing

Application Runtimes Data Services Security

ServicesIntegration

ServicesBilling & Metering

Servers Databases Grid / HPC Lifecycle Management

Service Provisioning

Hardware Storage Virtualization Networking Admin. & Management

Friday, April 16, 2010

Cechy/motywacje CT• Bezobsługowość

• REST

• Zbudowane na standardach

• Java EE

• Uruchamiasz w publicznej lub prywatnej chmurze

• Aplikacja w centrum zainteresowania (PaaS)

• Zarządzane przez politykę (silnik reguł biznesowych)

• Obsługa wielu platform (Deltacloud)Friday, April 16, 2010

Deltacloud – wsparcie dla platform

Friday, April 16, 2010

Cechy/motywacje CT

• Skalowalność

• do góry – więcej użytkowników

• wgłąb – bardziej zasobożerne obliczenia

• ilość – wiele małych aplikacji

Friday, April 16, 2010

Architekura CT

Friday, April 16, 2010

Heroku (Ruby)

Friday, April 16, 2010

Google AppEngine (Java, Python)

Friday, April 16, 2010

Co mają wspólnego te rozwiązania?

• Bardzo przyjazne deweloperom

• (nie zainteresowanych administracją)

• Natychmiastowe efekty

• Brak administracji serwerami

• Skalowanie

• Wspaniałe dla małych/średnich aplikacji

Friday, April 16, 2010

Ograniczenia

• Na ogół podzbiór usług

• Dostęp przez API

• Możliwość korzystania tylko z wybranych wersji blibliotek

Friday, April 16, 2010

Komponenty CT

• API (RESTful)

• Elastic scaler

• Server minimiser

• Naming service

• Klienty: web, Eclipse, RESTful

Friday, April 16, 2010

Wyzwania

• Accounting

• Billingi

• Monitorowanie

• Skalowanie

• Dostęp do usług (JPA > Infinispan? ESB? )

• Izolacja!

Friday, April 16, 2010

CoolingTower API

• GET /cooling-towerget a list of links to something like the following:

• POST /cooling-tower/applicationspost the war/app contents, will return a link to status

• GET /cooling-tower/applications/your-appreturn the status of it (where it is running, if it is ready etc)

• POST /cooling-tower/applications/your-appupdate the version

• DELETE /cooling-tower/applications/your-appdecommission the app (may result in some server savings)

• GET /cooling-tower/applicationslist the apps available and status

Friday, April 16, 2010

Polityka

• Jeżeli nie mamy wolnych zasobów, uruchom nowy serwer

• Mamy zasoby, sprawdź na który serwer możemy wcisnąć aplikację

• Wykorzystanie instancji jest na poziomie 80%, uruchom nowy serwer

Friday, April 16, 2010

StormFolio

Friday, April 16, 2010

StormFolio

Obrazy projektów JBoss gotowe do użycia

Friday, April 16, 2010

Obecnie mamy

• GateIn

• JBoss Dev

Friday, April 16, 2010

A w przyszłości...

• ESB

• Drools

• Infinispan

• Mobicents

• RHQ

• JBoss Tools

• ...

Friday, April 16, 2010

Dziękuję! Pytania?

Friday, April 16, 2010