SlideShare a Scribd company logo
1 of 20
Node.js dan SaaS: Development dan Deployment
Dipresentasikan di
Universitas Syiah Kuala
Banda Aceh
2 November 2015
Oleh:
Bambang Purnomosidi D. P.
http://bpdp.xyz
Agenda
● Cloud Computing
● Lingkungan Pengembangan JavaScript dan
Node.js
● Deployment
Cloud Computing
Agenda:
● Gambaran Umum Cloud Computing
● Service Models:
– IaaS
– PaaS
– SaaS
– /etc: XaaS
● Deployment Models:
– Public Cloud
– Private Cloud
– Community Cloud
– Private Cloud
Mengenal Cloud Computing
● Cloud Computing adalah konsep yang “obsolete” dengan
implementasi teknologi terkini.
● Cloud Computing menekankan pada XaaS (Everything as
a Service): suatu “server” / “data center” yang lokasinya
“entah berada dimana”, menyediakan sumber daya
komputasi bagi client.
● “Entah berada dimana” => di suatu node yang bisa
dicapai menggunakan protokol TCP/IP.
● Users / Clients “memindahkan” sumber daya komputasi di
perangkatnya ke sumber daya komputasi di “Entah
berada dimana” tersebut.
Cloud Computing: Gambaran Umum
● Service Model => Deployment Model
● Service Model: IaaS, PaaS, SaaS => dideploy
pada skala private, publik, atau hybrid.
● IaaS PaaS SaaS→ →
● Client mengakses SaaS, developers berurusan
dengan PaaS untuk membangun aplikasi SaaS.
Cloud Computing: IaaS
● Infrastructure as a Service: Insfrastruktur dari
Cloud Computing, seperti networking, virtual
machines, servers, storage, load balancers,
security, backup dan berbagai macam low level
services.
Cloud Computing: PaaS
● PaaS: development environment dan container
untuk aplikasi SaaS yang dibangun,
memungkinkan developer untuk membangun,
menjalankan, dan mengelola aplikasi berbasis
web
● Deployment: public, private, hybrid. Developers
harus terbiasa dengan peranti berbasis shell.
Don't think only in GUI.
Cloud Computing: SaaS
● Sering disebut “on-demand” software, artinya
users / clients tidak perlu “mempunyai” software
tersebut di komputer mereka, tetapi jika
sewaktu-waktu ingin menggunakan software
tersebut, mereka bisa menggunakan: Google
Docs.
● Beberapa kategori: (1) Business Process as a
Service (2) Diagramming Software as a Service,
dll.
Cloud Computing: SaaS
● SaaS adalah aplikasi Web
● Bangunan utama aplikasi web adalah: (X)HTML(5),
CSS(3), JavaScript, serta berbagai macam spesifikasi
dan standar dari W3C.
● Ada 2 bagian utama: frontend dan backend. Logic di
frontend harus menggunakan JavaScript sementara
backend bisa bermacam-macam. Node.js adalah salah
satu yang bisa digunakan di backend. Selain itu: Rust,
Go, Java, Python, Ruby, PHP, /etc.
● Backend: business logic dan database
Cloud Computing: SaaS
● Business logic: class, function, implementasi dari
algoritma
● Database: SQL dan NoSQL.
● SQL untuk structured data, NoSQL untuk semi /
unstructured data serta jenis-jenis data lain
(Object Oriented, Graph, XML, /etc).
Node.js: Development
● Mengenal Node.js
● Instalasi
● Package Management
● IDE
● Tools untuk development
● Database
● Node.js dan Client Side JavaScript
Node.js: Pengenalan
● Merupakan runtime dari JavaScript yang dibangun dari
Chrome's V8 JavaScript Engine.
● Node.js => JavaScript untuk server backend.
● Arsitektur Node.js => event driven dan non-blocking IO API.
● Dibuat pertama kali oleh Ryan Dahl, setelah itu dikembangkan
oleh komunitas.
● Pernah “pecah”, muncul fork baru: iojs. Sekarang menyatu
lagi mulai versi 4.x.x.
● Node.js tersedia dalam 2 versi: (1) LTS (Long Term Support)
dan (2) Stable.
Node.js Instalasi
● As easy as double click on Windows dan ekstrak
dan kemudian setting env vars di Linux.
Macintosh installer juga tersedia.
● Merasa kurang kerjaan? Compile from scratch
then! (perlu Python 2.x).
Node.js: Package Management
● Saat membangun aplikasi, developers sering
memerlukan library / pustaka. Selain itu, ada
software siap pakai juga yang bisa langsung
dijalankan. Perlu software untuk mengelola
paket (library maupun executable software).
● Package management: sisi client dan server.
● Client: bower
● Server: npm
Node.js: IDE
● IDE: Integrated Development Environment
● Software yang digunakan untuk menjalankan mengetikkan source code,
memberikan fitur linting, memeriksa ejaan, menampilkan pertolongan
untuk error, menampilkan dokumentasi, mengelola proyek
pengembangan software, dan lain-lain.
● IDE sering juga berasal dari text editor yang ditambahi beberapa plugins
(misalnya Vim, Emacs, /etc) atau memang full blown editor yang
dibangun khusus untuk membangun aplikasi (misalnya NetBeans,
JetBrains WebStorm, dll).
● IDE untuk membangun aplikasi berbasis Node.js bisa dalam bentuk
offline maupun online (Koding, Cloud9, /etc).
Node.js: Tools untuk Development
● Linter: memeriksa syntax: jshint, jslint
● Testing tools: mocha, jasmine
● Source control management (scm): git,
mercurial
● Framework: kebanyakan berbasis MVC
Node.js dan Database
● Database: SQL dan NoSQL
● Node.js mempunyai banyak pustaka untuk berbagai macam
database. Search di http://npmjs.com
● ORM (Object Relational Mapper): sequelize (untuk MySQL,
PostgreSQL, MariaDB, SQLite, MSSQL).
● Bagaimana jika tidak ada driver? RESTful web services.
● Beberapa database sekarang memungkinkan untuk meng-embedd
JavaScript untuk memanipulasi data secara langsung dalam
database: MongoDB, ArangoDB.
● Good news: development untuk client side, server side, dan
database => menggunakan 1 bahasa pemrograman: JavaScript.
Node.js dan Client Side JavaScript
● Templating: Jade, ejs
● Gunakan framework untuk client side:
AngularJS, ReactJS, etc.
● Another good news: no language zoo, semua
JavaScript, mulai dari client – server / backend –
database.
Node.js: Deployment
● Node.js tidak memerlukan web server yang terpisah
karena sudah mempunyai pustaka untuk http server.
Bandingkan dengan PHP => Apache web server.
● Jika tidak ingin kesulitan, bangun aplikasi SaaS
menggunakan penyedia PaaS yang sudah ada. Heroku
menyediakan fasilitas yang terkini. OpenShift juga
menyediakan Node.js tetapi versi yang agak lama.
● Jika ingin “everything under control”, bangun private
PaaS
Private PaaS untuk Node.js Deployment
● OpenShift Origin
● CloudFoundry

More Related Content

Viewers also liked

Using ICT to Teach English: Towards Learner-centered Learning
Using ICT to Teach English: Towards Learner-centered LearningUsing ICT to Teach English: Towards Learner-centered Learning
Using ICT to Teach English: Towards Learner-centered Learning
Bambang Purnomosidi D. P.
 
Analisis Keamanan Nodejs sebagai platorm aplikasi web
Analisis Keamanan Nodejs sebagai platorm aplikasi webAnalisis Keamanan Nodejs sebagai platorm aplikasi web
Analisis Keamanan Nodejs sebagai platorm aplikasi web
Irfan Aris Nurhakim
 

Viewers also liked (20)

Using ICT to Teach English: Towards Learner-centered Learning
Using ICT to Teach English: Towards Learner-centered LearningUsing ICT to Teach English: Towards Learner-centered Learning
Using ICT to Teach English: Towards Learner-centered Learning
 
Agent-based System - Introduction
Agent-based System - IntroductionAgent-based System - Introduction
Agent-based System - Introduction
 
Pengembangan Aplikasi Cloud Computing Menggunakan Node.js
Pengembangan Aplikasi Cloud Computing Menggunakan Node.jsPengembangan Aplikasi Cloud Computing Menggunakan Node.js
Pengembangan Aplikasi Cloud Computing Menggunakan Node.js
 
Agent-based System - Introduction
Agent-based System - IntroductionAgent-based System - Introduction
Agent-based System - Introduction
 
Selayang Pandang Javascript dan NodeJS
Selayang Pandang Javascript dan NodeJSSelayang Pandang Javascript dan NodeJS
Selayang Pandang Javascript dan NodeJS
 
Analisis Keamanan Nodejs sebagai platorm aplikasi web
Analisis Keamanan Nodejs sebagai platorm aplikasi webAnalisis Keamanan Nodejs sebagai platorm aplikasi web
Analisis Keamanan Nodejs sebagai platorm aplikasi web
 
Membangun Website Lowongan Kerja Sederhana dengan NodeJS
Membangun Website Lowongan Kerja Sederhana dengan NodeJSMembangun Website Lowongan Kerja Sederhana dengan NodeJS
Membangun Website Lowongan Kerja Sederhana dengan NodeJS
 
Jak odzyskać domenę i chronić markę w e-biznesie – Rafał Malujda
Jak odzyskać domenę i chronić markę w e-biznesie – Rafał MalujdaJak odzyskać domenę i chronić markę w e-biznesie – Rafał Malujda
Jak odzyskać domenę i chronić markę w e-biznesie – Rafał Malujda
 
Mobilna inwigilacja – Jak budować lojalność konsumentów
Mobilna inwigilacja – Jak budować lojalność konsumentówMobilna inwigilacja – Jak budować lojalność konsumentów
Mobilna inwigilacja – Jak budować lojalność konsumentów
 
Bitcoin znak nowych czasów czy element starego porządku
Bitcoin  znak nowych czasów czy element starego porządkuBitcoin  znak nowych czasów czy element starego porządku
Bitcoin znak nowych czasów czy element starego porządku
 
2004 0817 Ca
2004 0817 Ca2004 0817 Ca
2004 0817 Ca
 
L’ hort a l’escola bressol municipal secà
L’ hort a l’escola bressol municipal secàL’ hort a l’escola bressol municipal secà
L’ hort a l’escola bressol municipal secà
 
Zmysły rozszerzone - jak wearable computing zmienia świat - Paweł Surgiel
Zmysły rozszerzone - jak wearable computing zmienia świat - Paweł SurgielZmysły rozszerzone - jak wearable computing zmienia świat - Paweł Surgiel
Zmysły rozszerzone - jak wearable computing zmienia świat - Paweł Surgiel
 
Development w ręce ludu - czyli wielki powrót twórców niezależnych w czasach ...
Development w ręce ludu - czyli wielki powrót twórców niezależnych w czasach ...Development w ręce ludu - czyli wielki powrót twórców niezależnych w czasach ...
Development w ręce ludu - czyli wielki powrót twórców niezależnych w czasach ...
 
2004 0804 Tx
2004 0804 Tx2004 0804 Tx
2004 0804 Tx
 
2005 0731 La
2005 0731 La2005 0731 La
2005 0731 La
 
Druk 3D - where is the money? Michał Frączek – Materialination
Druk 3D - where is the money? Michał Frączek – MaterialinationDruk 3D - where is the money? Michał Frączek – Materialination
Druk 3D - where is the money? Michał Frączek – Materialination
 
About Lux IO
About Lux IOAbout Lux IO
About Lux IO
 
Polski Internet na tle Europy
Polski Internet na tle EuropyPolski Internet na tle Europy
Polski Internet na tle Europy
 
Enkele Problemen met DCT gebaseerde Ray Tracer
Enkele Problemen met DCT gebaseerde Ray TracerEnkele Problemen met DCT gebaseerde Ray Tracer
Enkele Problemen met DCT gebaseerde Ray Tracer
 

More from Bambang Purnomosidi D. P.

Web Engineering dalam Konteks Web Science - Keynote Speech SRITI 2010
Web Engineering dalam Konteks Web Science - Keynote Speech SRITI 2010Web Engineering dalam Konteks Web Science - Keynote Speech SRITI 2010
Web Engineering dalam Konteks Web Science - Keynote Speech SRITI 2010
Bambang Purnomosidi D. P.
 

More from Bambang Purnomosidi D. P. (7)

Disciplined Agile Delivery: Agile Framework untuk Membangun Software
Disciplined Agile Delivery: Agile Framework untuk Membangun SoftwareDisciplined Agile Delivery: Agile Framework untuk Membangun Software
Disciplined Agile Delivery: Agile Framework untuk Membangun Software
 
Decentralized Application: A Software Engineering Perspective
Decentralized Application: A Software Engineering PerspectiveDecentralized Application: A Software Engineering Perspective
Decentralized Application: A Software Engineering Perspective
 
Programming Decentralized Application
Programming Decentralized ApplicationProgramming Decentralized Application
Programming Decentralized Application
 
Programming Languages and Development Tools: State of the Art and (Hopefully)...
Programming Languages and Development Tools: State of the Art and (Hopefully)...Programming Languages and Development Tools: State of the Art and (Hopefully)...
Programming Languages and Development Tools: State of the Art and (Hopefully)...
 
Teknologi Blockchain dan Implikasinya Terhadap Dunia Bisnis
Teknologi Blockchain dan Implikasinya Terhadap Dunia BisnisTeknologi Blockchain dan Implikasinya Terhadap Dunia Bisnis
Teknologi Blockchain dan Implikasinya Terhadap Dunia Bisnis
 
Presentasi malioboro--10-des-2010
Presentasi malioboro--10-des-2010Presentasi malioboro--10-des-2010
Presentasi malioboro--10-des-2010
 
Web Engineering dalam Konteks Web Science - Keynote Speech SRITI 2010
Web Engineering dalam Konteks Web Science - Keynote Speech SRITI 2010Web Engineering dalam Konteks Web Science - Keynote Speech SRITI 2010
Web Engineering dalam Konteks Web Science - Keynote Speech SRITI 2010
 

Node.js dan SaaS: Development dan Deployment

  • 1. Node.js dan SaaS: Development dan Deployment Dipresentasikan di Universitas Syiah Kuala Banda Aceh 2 November 2015 Oleh: Bambang Purnomosidi D. P. http://bpdp.xyz
  • 2. Agenda ● Cloud Computing ● Lingkungan Pengembangan JavaScript dan Node.js ● Deployment
  • 3. Cloud Computing Agenda: ● Gambaran Umum Cloud Computing ● Service Models: – IaaS – PaaS – SaaS – /etc: XaaS ● Deployment Models: – Public Cloud – Private Cloud – Community Cloud – Private Cloud
  • 4. Mengenal Cloud Computing ● Cloud Computing adalah konsep yang “obsolete” dengan implementasi teknologi terkini. ● Cloud Computing menekankan pada XaaS (Everything as a Service): suatu “server” / “data center” yang lokasinya “entah berada dimana”, menyediakan sumber daya komputasi bagi client. ● “Entah berada dimana” => di suatu node yang bisa dicapai menggunakan protokol TCP/IP. ● Users / Clients “memindahkan” sumber daya komputasi di perangkatnya ke sumber daya komputasi di “Entah berada dimana” tersebut.
  • 5. Cloud Computing: Gambaran Umum ● Service Model => Deployment Model ● Service Model: IaaS, PaaS, SaaS => dideploy pada skala private, publik, atau hybrid. ● IaaS PaaS SaaS→ → ● Client mengakses SaaS, developers berurusan dengan PaaS untuk membangun aplikasi SaaS.
  • 6. Cloud Computing: IaaS ● Infrastructure as a Service: Insfrastruktur dari Cloud Computing, seperti networking, virtual machines, servers, storage, load balancers, security, backup dan berbagai macam low level services.
  • 7. Cloud Computing: PaaS ● PaaS: development environment dan container untuk aplikasi SaaS yang dibangun, memungkinkan developer untuk membangun, menjalankan, dan mengelola aplikasi berbasis web ● Deployment: public, private, hybrid. Developers harus terbiasa dengan peranti berbasis shell. Don't think only in GUI.
  • 8. Cloud Computing: SaaS ● Sering disebut “on-demand” software, artinya users / clients tidak perlu “mempunyai” software tersebut di komputer mereka, tetapi jika sewaktu-waktu ingin menggunakan software tersebut, mereka bisa menggunakan: Google Docs. ● Beberapa kategori: (1) Business Process as a Service (2) Diagramming Software as a Service, dll.
  • 9. Cloud Computing: SaaS ● SaaS adalah aplikasi Web ● Bangunan utama aplikasi web adalah: (X)HTML(5), CSS(3), JavaScript, serta berbagai macam spesifikasi dan standar dari W3C. ● Ada 2 bagian utama: frontend dan backend. Logic di frontend harus menggunakan JavaScript sementara backend bisa bermacam-macam. Node.js adalah salah satu yang bisa digunakan di backend. Selain itu: Rust, Go, Java, Python, Ruby, PHP, /etc. ● Backend: business logic dan database
  • 10. Cloud Computing: SaaS ● Business logic: class, function, implementasi dari algoritma ● Database: SQL dan NoSQL. ● SQL untuk structured data, NoSQL untuk semi / unstructured data serta jenis-jenis data lain (Object Oriented, Graph, XML, /etc).
  • 11. Node.js: Development ● Mengenal Node.js ● Instalasi ● Package Management ● IDE ● Tools untuk development ● Database ● Node.js dan Client Side JavaScript
  • 12. Node.js: Pengenalan ● Merupakan runtime dari JavaScript yang dibangun dari Chrome's V8 JavaScript Engine. ● Node.js => JavaScript untuk server backend. ● Arsitektur Node.js => event driven dan non-blocking IO API. ● Dibuat pertama kali oleh Ryan Dahl, setelah itu dikembangkan oleh komunitas. ● Pernah “pecah”, muncul fork baru: iojs. Sekarang menyatu lagi mulai versi 4.x.x. ● Node.js tersedia dalam 2 versi: (1) LTS (Long Term Support) dan (2) Stable.
  • 13. Node.js Instalasi ● As easy as double click on Windows dan ekstrak dan kemudian setting env vars di Linux. Macintosh installer juga tersedia. ● Merasa kurang kerjaan? Compile from scratch then! (perlu Python 2.x).
  • 14. Node.js: Package Management ● Saat membangun aplikasi, developers sering memerlukan library / pustaka. Selain itu, ada software siap pakai juga yang bisa langsung dijalankan. Perlu software untuk mengelola paket (library maupun executable software). ● Package management: sisi client dan server. ● Client: bower ● Server: npm
  • 15. Node.js: IDE ● IDE: Integrated Development Environment ● Software yang digunakan untuk menjalankan mengetikkan source code, memberikan fitur linting, memeriksa ejaan, menampilkan pertolongan untuk error, menampilkan dokumentasi, mengelola proyek pengembangan software, dan lain-lain. ● IDE sering juga berasal dari text editor yang ditambahi beberapa plugins (misalnya Vim, Emacs, /etc) atau memang full blown editor yang dibangun khusus untuk membangun aplikasi (misalnya NetBeans, JetBrains WebStorm, dll). ● IDE untuk membangun aplikasi berbasis Node.js bisa dalam bentuk offline maupun online (Koding, Cloud9, /etc).
  • 16. Node.js: Tools untuk Development ● Linter: memeriksa syntax: jshint, jslint ● Testing tools: mocha, jasmine ● Source control management (scm): git, mercurial ● Framework: kebanyakan berbasis MVC
  • 17. Node.js dan Database ● Database: SQL dan NoSQL ● Node.js mempunyai banyak pustaka untuk berbagai macam database. Search di http://npmjs.com ● ORM (Object Relational Mapper): sequelize (untuk MySQL, PostgreSQL, MariaDB, SQLite, MSSQL). ● Bagaimana jika tidak ada driver? RESTful web services. ● Beberapa database sekarang memungkinkan untuk meng-embedd JavaScript untuk memanipulasi data secara langsung dalam database: MongoDB, ArangoDB. ● Good news: development untuk client side, server side, dan database => menggunakan 1 bahasa pemrograman: JavaScript.
  • 18. Node.js dan Client Side JavaScript ● Templating: Jade, ejs ● Gunakan framework untuk client side: AngularJS, ReactJS, etc. ● Another good news: no language zoo, semua JavaScript, mulai dari client – server / backend – database.
  • 19. Node.js: Deployment ● Node.js tidak memerlukan web server yang terpisah karena sudah mempunyai pustaka untuk http server. Bandingkan dengan PHP => Apache web server. ● Jika tidak ingin kesulitan, bangun aplikasi SaaS menggunakan penyedia PaaS yang sudah ada. Heroku menyediakan fasilitas yang terkini. OpenShift juga menyediakan Node.js tetapi versi yang agak lama. ● Jika ingin “everything under control”, bangun private PaaS
  • 20. Private PaaS untuk Node.js Deployment ● OpenShift Origin ● CloudFoundry