Sunday, 16 February 2020

kubernetes #3 : Upgrade Kubernetes Engine Cluster on GCP

Setiap Software mengalami pengembangan fitur baru. ini juga terjadi pada kubernetes. GCP menyediakan update Kubernetes secara langsung, tidak diperlukan download dan install. hanya diperlukan upgrade sistem saja

Upgrade sistem berfungi supaya mendapatkan support fitur terbaru dan terhindar dari vulnerability atau celah keamanan pada software. Ini sangat penting dan menjadi fokus utama karena data yang dikelola bersifat pribadi dan menyangkut kepercayaan customer. sehingga diperlukan update berkala.

Upgrade Kubernetes di GCP

1. Buka terlebih dahulu portal GCP
2. masuk ke kubernetes engine. apabila belum deploy cluster Kubernetes, dapat melakukan deploy terlebih dahulu. pada saat membuat terdapat version dari GCP yang ingin digunakan pada bagian master version. isi semua kolom sesuai dengan spesifikasi cluster kubernetes yang ingin di deloy
Upgrade kubernetes engine on GCP

3. tunggu sampai cluster selesai dideploy. akan muncul tanda centang hijau jika cluster telah selesai.
Upgrade kubernetes engine on GCP

4. kemudian, masuk ke cluster tersebut dengan klik pada cluster
5. apabila terdapat update version terbaru akan muncul upgrade version.
Upgrade kubernetes engine on GCP

6. akan muncul version. upgrade sistem pada kubernetes maksimal sampai 8 sistem diatasnya. apabila ingin menggunakan versi terbaru, maka diperlukan beberapa kali upgrade sampai versi sistem yang diinginkan tercapai
Upgrade kubernetes engine on GCP

7. tunggu sampai sistem selesai upgrade
8. setelah upgrade sistem kubernetes, node-pool juga harus diupgrade.
Upgrade kubernetes engine on GCP

9. tunggu sampai node-pool selesai upgrade
Upgrade kubernetes engine on GCP


Kesimpulan
Upgrade sistem berfungsi untuk mendapatkan fitur terbaru dan menghindari celah vulnerability pada sistem. Update secara berkala untuk keamanan data pengguna

Wednesday, 12 February 2020

Kubernetes #2 : deploy dengan script on GCP

Kubernetes memberikan kemudahan deployment. deployment pada kubernetes dapat menggunakan script dalam format yaml. pada saat deployment hanya perlu run script yang sudah dibuat sesuai kebutuhan dan kubernetes akan membuat container sesuai script.

container yang di deploy akan jadi dengan cepat dan siap digunakan. ini memberikan efisiensi waktu. yang  dulunya harus melakukan install vm terlebih dahulu, install dependencies, konfigurasi vm, dan deploy vm. sekarang hanya perlu build image, scripting sesuai kebutuhan, dan deploy.

yang diperlukan :

  • image yang sudah jadi dan siap dijalankan ( umumnya menggunakan docker ).
  • script dalam format .yaml
  • kubernetes

bagi yang belum membaca artikel sebelumnya tentang deployment pada kubernetes. artikel ini meneruskan artikel sebelumnya.

Deployment dengan script pada kubernetes

1. masuk akun GCP
2. buka cloud shell
3. dapat mengupload script yang sudah dibuat. script kali ini akan melakukan deployment nginx
deployment kubernetes menggunakan script  on GCP

Berikut isi script nginx nya
deployment kubernetes menggunakan script  on GCP

4. jalankan script yang berformat .yaml
deployment kubernetes menggunakan script  on GCP

5. deployment kali ini akan mengubah tampilan nginx. jadi upload file .html yang sudah dibuat sebelumnya. masuk terlebih dahulu ke imagenya.
deployment kubernetes menggunakan script  on GCP

7. kemudian pindahke direktori /usr/share/nginx/html. letakkan file html tersebut disini dan buka portnya.
deployment kubernetes menggunakan script  on GCP
isi file test.html
deployment kubernetes menggunakan script on GCP

7. ketika diakses dari luar, maka hasilnya akan seperti ini
deployment kubernetes menggunakan script on GCP


Kesimpulan

Kubernetes memberikan efisiensi waktu dalam deployment aplikasi dan memberikan downtime yang sangat cepat apabila overload.

Thursday, 6 February 2020

Kuberntes #1 : deploy and scaling Kubenetes on GCP

Teknologi IT berkembang sangat pesat. itu berpengaruh pada culture perpindahan dari monolith menjadi microservices. Microservices adalah memecah sebuah aplikasi besar atau utuh dalam satu server menjadi beberapa server yang menjalankan 1 service aplikasi.

Kubernetes memberikan kemudahan dalam melakukan deployment dan scaling aplikasi. Kemudahan dan kecepatan dalam deployment menjadi faktor yang membuat kubernetes menjadi pilihan. Aplikasi tersebut terdiri dari service - service kecil yang bekerja sesuai job yang diberikan. Ketika mengalami kegagalan salah satu service, maka service yang lain tidak mengalami gangguan.

Scaling adalah proses menambah resource atau mengurangi resource ketika suatu kondisi tertentu terpenuhi. scaling ada 2 yaitu scaling up - down ( menambahkan sumber daya server dengan meningkatkan spesifikasi server, misalnya RAM, Storage, dan CPU ) dan scaling out - in ( menambahkan sumber daya dengan membuat service baru untuk mengurangi beban service yang sudah di deploy terlebih dahulu ).

Deployment Kubernetes on GCP

1. login terlebih dahulu ke akun GCP
2. buat Environment variabel. Environment variabel ini berfungi untuk memudahkan ketika deployment. tidak perlu mememasukkan kembali nama atau apapun itu, cukup memanggil environment variabel yang sudah dibuat.
deploy and scaling kubernetes GCP

3. kemudian buat cluster untuk deployment. tentukan berapa banyak nodes yang ingin dideploy.
deploy and scaling kubernetes GCP

ketika melakukan deployment cluster ingin melakukan penambahan julah node yang sudah dideploy, dapat memasukkan ulang jumlah nodesnya.
deploy and scaling kubernetes GCP

jumlah nodes dapat di monitor, mengenai load pada setiap nodes
deploy and scaling kubernetes GCP

4. setelah melakukan deployment, minta hak akses untuk meremote cluster tersebut dengan get-credentials.
deploy and scaling kubernetes GCP

dapat melihat config yang cluster yang sudah dideploy dalam format JSON.
deploy and scaling kubernetes GCP

dapat melihat informasi mengenai cluster yang sudah dideploy
deploy and scaling kubernetes GCP

5. setelah itu dapat mengaktifkan fitur auto-complet. ini memudahkan ketika memasukkan command dan meminimalisir kesalahan dalam memasukkan command.
deploy and scaling kubernetes GCP

berikut command yang ada dalam kubernetes
deploy and scaling kubernetes GCP

6. deployment service. contoh kali ini akan melakukan deploy nginx. setelah selesai dapat melihat apakah pod nginx telah running dan terdapat status yang akan memberikan indikasi.
deploy and scaling kubernetes GCP

7. melakukan pengubahan tampilan pada nginx. sebelumnya create file .html. dapat menggunakan nano, vim dll. gunakan yang kalian bisa
deploy and scaling kubernetes GCP

kemudian upload file tersebut ke pod nginx. agar dapat diakses dari luar maka harus diexpose terlebih dahulu portnya, kali ini menggunakan port 80 dan type nya loadbalancer. lakukan akses nginx dengan http://<alamat ip>:80
deploy and scaling kubernetes GCP


Kesimpulan
Kubernetes memberikan kemudahan dalam manage dan maintenance microservices. Kecepatan dalam scaling memberikan service yang ditawarkan tidak mengalami down meskipun banyak yang mengakses.

Thursday, 2 January 2020

Cloud SQL : Deploy Cloud SQl on GCP and connecting with vm instances

Cloud SQL ini berfungi sebagai relational database. seperti halnya mysql, postgresql, mariadb, dan sql server. SQL server masih dalam kondisi BETA. masih proses pengembangan oleh tim GCP

Saat mendeploy aplikasi dalam cloud, memerlukan sistem database yang dapat diandalkan. Dapat menghindari fault toleran dan kemungkinan layanan mengalami down sangat kecil. data client menjadi data yang sangat penting dan usahakan tidak mengalami kehilangan. Kelebihan Cloud SQL sudah dibahas sebelumnya.

Create VM Instances 

1. masuk ke halaman compute engine > vm instances. akan muncul pop up create instance, klik untuk membuat instances baru.
2. kemudian isikan spesifikasi dari instances yang di inginkan. mulai dari zone, region, spesifikasi vm, dll. kali ini menggunakan linux debian

3. setelah sudah sesuai. kemudian klik create dan tunggu proses selesai

Create Cloud SQL

1. masuk ke SQL. nanti akan muncul pop up create SQL, kemudian create.
2. akan muncul 2 pilihan. MySQL, PostgreSQL, dan SQL server. SQL server masih dalam BETA. kali ini menggunakan MySQL

3. isikan nama cloud SQL, zone, region, Password ROOT Cloud SQL, dan versi nya.

4. kemudian klik configuration option.
5. buka new tab GCP. masuk ke compute engine > vm instances. ketika vm tadi sudah berhasil terbuat. akan muncul ip private dan ip public. copy ip publik tersebut

6. kembali lagi ke tab cloud sql. pada bagian ip public, klik add network. masukkan nama network dan pastekan ip publik yang sudah di copy ke kolom network, kemudian klik done.

7. setelah semua sudah sesuai. klik create. tunggu sampai selesai


Connnecting VM instances with GCP

1. masuk ke halaman Compute engine. klik SSH. akan muncul screen dari vm yang berjalan di gcp
2. lakukan update. sudo apt-get update

3. kemudian lakukan instalasi mysql-client. sudo apt-get install mysql-client

4. buka tab baru GCP. masuk ke sql. klik sql yang tadi sudah dibuat. pada halaman dashboard akan muncul ip publik dari CLoud SQL. copy ip publik tersebut
5. kembali ke ssh. buat environment variabel untuk ip publik cloud sql. kemudian coba lakukan akses ke cloud sql



KESIMPULAN
aplikasi yang kita deploy memerlukan database yang handal untuk menghindari kehilangan data atau transaksi. Cloud SQL telah menyediakan sumber daya database yang handal dalam menangani data client

Tuesday, 17 December 2019

CloudSQL : introduction of CloudSQL

Cloud SQL adalah fitur di dalam Google Cloud Platform yang menyediakan sumber daya handal untuk menangani database aplikasi yang siap dideploy. fitur unggulan ini dapat menangani database perusahaan dengan handal. database ini sama dengan teknologi yang digunakan google dalam mengelola data

Cloud SQL ini merupakan Relational Database Management System ( RDBMS ) milik Google Cloud Platform. Terdapat 3 database yang disupport, antara lain Mysql database, PostgreSQL databse, dan SQL Server. Database ini digunakan untuk relational data. artinya data yang dimasukkan jumlah kolom dan barisnya sama.


Keunggulan Cloud Strorage Google Platform

1. Database Fully Managed

database ini fully managed service sehingga mudah untuk instalasi, maintenance, manage, dan administrasi.

2. High Performance

Cloud SQL didesain memiliki performa yang baik. kemungkinan database mati/down sangat kecil karena telah dilakukan pengujian

3. High Availibility

Cloud SQL di desain untuk memiliki ketersediaan database yang baik. Switch DB utama ke secondary tidak memerlukan waktu yang lama. kemungkinan data hilang sangat kecil. Ini juga mendukung replication data antara DB utama dan DB backup. Sehingga data client terdapat di 2 DB ( DB utama dan Backup ) yang keduanya memiliki isi yang sama.

4. Scalability

Cloud SQL memudahkan dalam penambahan/pengurangan DB yang ingin digunakan oleh client. memberikan kebebasan penuh kepada client dalam mendesain arsitektur perusahaan.

5. Security

Cloud SQL ini memiliki security yang handal. Secara default, Google telah melakukan enkripsi pada setiap disk yang mereka gunakan. Jika dirasa kurang aman, Client bisa mengatur IAM dan firewall dalam keamanan data.

KESIMPULAN
Cloud SQL merupakan RDBMS yang disediakan Google untuk mengatur Database client. Google juga memberikan banyak keunggulan dalam Cloud SQL. Install DB dan connecting VM dengan Cloud SQL

Sunday, 1 December 2019

GCP : Bastion Host

Bastion Host adalah arsitektur security yang hanya memperbolehkan vm yang berada dalam jaringan untuk melakukan perubahan konfigurasi dan memblokir akses dari luar. Dalam topologi ini, ada sebuah aplikasi yang web, DB, dll yang berjalan. Firewall melakukan blokir koneksi dari luar sebagai keamanan data. Karena dilakukan pemblokiran oleh firewall, maka dibuatlah satu vm yang diizinkan untuk diakses dari luar dan vm tersebut sebagai portal dalam melakukan maintenance. VM yang diberikan izin itu disebut Bastion Host

Pada topologi diatas, ada 1 vm yang diizinkan untuk diremote menggunakan SSH. Akses SSH/RDP yang lain ditutup sebagai upaya keamanan oleh Adminitrator. Ini juga untuk memudahkan administrator melakukan pengecekan user siapa yang sedang melakukan perubahan dan tercentral. Sehingga apabila ada perubahan yang mengakibatkan error aplikasi, administrator dapat mencari pelaku dengan mudah.

Install Web Server  GCP

pertama, buka Cloud Console dan login. Apabila belum membuat project, dapat membuat terlebih dahulu.

kemudian pilih compute engine - create instances baru. service yang berjalan pada vm ini nantinya web server. jadi jangan lupa untuk allow http untuk dapat diakses



tunggu sebentar sampai instances siap digunakan. kemudian remote vm tersebut. install service web servernya. yang diperlukan install apache2.

Tampilan Web Server

Secure Web Server with Bastion Host

Setelah melakukan instalasi web server, yang harus dilakukan mengamankan web/apps tersebut. Keamanan sebuah data menjadi faktor yang sangat critical. Ini berpengearuh kepercayaan orang yang meminjam jasa dalam dunia digital.

kemudian setting firewall yang hanya memperbolehkan remote



kemudian matikan IP publik dari instances yang menjalankan web server. klik pada vm nya, kemudian pada network interfaces pilih none. kemudian done.


kemudian kembali. pastikan bahwa external ip sudah none

setelah itu, create instances baru.

tunggu vm start. klik tulisan ssh pada bagian kanan. kemudian test untuk mengakses web server dan coba lakukan remote melalui ssh ke webserver. pastikan dapat mengakses

KESIMPULAN

Data dalam dunia digital menjadi faktor yang critical dan celah keamanan data harus seminimal mungkin dicegah.  Sehingga harus dilakukan pencegahan sebelum kehilangan data.

Referensi :
Coursera - GCP