Pastikan anda sudah memahami apa itu serverless, dan kenapa harus beralih.
Startup yang mengejar MVP
Startup secara mudah bisa Kita artikan perusahaan yang sedang merintis, dengan jumlah pegawai yang masih sedikit. Sedikit ini relatif, ada yang bilang satu orang bisa membangun startup seperti Apex Ping (FYI, TJ Holowaychuk juga membuat salah satu framework serverless yaitu Apex), atau dua orang seperti Indie Hackers, atau yang cukup banyak dengan 15 orang seperti Less anoyying CRM.
MVP yang dimaksud adalah Minimun Viable Product, bukan MVP dalam Ragnarok Online, bukan juga MVP seekor monyet dalam film Most Valuable Primate. Produk yang akan dibuat, sudah bisa memuaskan pengguna, memudahkan hidup pengguna dan bisa menyelesaikan masalah dengan adanya produk ini.
Arsitektur serverless akan sangat memangkas waktu yang dibutuhkan untuk membuat sebuah produk, jika produk yang ditawarkan adalah sebuah aplikasi berbasis web, dengan kombinasi :
- S3 untuk hosting
- AWS Api gateway sebagai REST API
- AWS Lambda sebagai handler Api Gateway
- AWS DynamoDB sebagai data layer
- AWS Route 53 untuk manajemen DNS
Bisnis Anda sudah bisa dimulai, Anda bisa fokus pada produk dan pengguna, bukan infrastruktur.
Mahmoud Matouk memberikan tutorial gratis di Udemy dengan judul “Serverless Architecture on AWS” yang membahas 4 stack tersebut.
Startup yang kekurangan / tidak ada tim Devops
Devops secara mudah bisa Kita artikan seseorang yang bertanggung jawab atas berjalannya sebuah produk digital. Jika produk yang ditawarkan adalah aplikasi berbasis web, minimal akan berurusan dengan :
- Web Server seperti Nginx, Apache Web Server, Lighttpd
- Web Framework seperti Laravel, Django, Ruby on Rails, Sails / Meteor
- Platform Application seperti PHP-FPM, gunicorn, PM2
- RDBMS seperti MySQL, PostgreSQL
- NoSQL seperti Redis, MongoDB, Elasticsearch, Cassandra
- Permintaan server atau instance seperti pada provider AWS, GCP, Azure
Lebih dalam pada peran pentingnya tim Devops adalah mereka harus memastikan produk yang dikembangkan tidak ada masalah, khususnya saat terjadi traffic yang tinggi, jika terjadi service down seperti “I/O server aplikasi tinggi” sehingga tidak bisa diakses, sudah pasti tim Devops yang akan berada di garis depan. Lalu ketika weekend, dan terjadi “Server Database Down”, sudah pasti tim Devops yang menangani.
Arsitektur serverless akan memudahkan tim Devops. Dengan tidak perlunya memikirkan Web Server yang tidak pernah down (AWS Api Gateway + AWS Lambda sebagai layer Web Server), tim Devops bisa fokus pada pekerjaan lain.
Kita ambil contoh produk NoSQL Aerospike. Produk ini tidak tersedia sebagai layanan “Managed” di AWS, dan kita sendiri yang harus melakukan manajemen. Tim Devops bisa fokus pada proses Scaling Up & Scaling Horizontal dengan menambahkan node yang akan membuat aerospike melakukan “Automatic Rebalance”.
Kita ambil contoh lain, yaitu Duolingo menggunakan DynamoDB dan menyimpan 31 Miliar item, Duolingo hanya membutuhkan 2 orang tim Devops untuk menghandle 110 Juta Pengguna (2 orang Devops disebutkan dalam video).
Perusahaan yang memiliki server fisik
Banyak perusahaan IT yang memulai bisnis dengan memiliki server, baik itu di data center maupun membuat ruang server khusus di perusahaan mereka. Ada beberapa hal yang perlu diperhatikan jika memiliki server fisik, diantaranya :
- Ketersediaan Part seperti HDD, Processor, Ram, dan Power Supply
- Akses Internet inbound / outbound
- Suhu Ruangan
- Kestabilan Listrik
- Tim Server yang selalu standby di data center
- Biaya yang tidak murah
Perusahaan banyak beranggapan dengan memiliki / mengelola server sendiri, bisnis akan tetap berjalan. Betul, cara ini dilakukan oleh Stackoverflow, Arsitektur dan Hardware.
Anda bisa mengikuti langkah yang diambil stackoverflow jika :
- Memiliki Tim Devops yang sangat berpengalaman
- Sudah menguasai 100% produk yang sedang dibuat
- Sudah mengerti ketika harus melakukan scaling
- Sudah mengerti ketika terjadi masalah pada server
- Sudah melakukan tuning server sampai maksimal
Lalu, mengapa masih menawarkan arsitektur serverless?
Processor dari tahun ke tahun semakin baik dan semakin murah
Dengan melihat tabel diatas yang bersumber dari techspot, processor dari tahun ke tahun itu semakin baik dan semakin murah. Dengan memiliki $316 pada tahun 2006 kita bisa memiliki high end processor. Namun dengan harga yang tidak berbeda jauh, dengan memiliki $339 pada tahun 2013 kita bisa memiliki high end processor terbaik di tahun tersebut.
Kita bandingkan dengan processor Server, antara Intel Xeon E5-2690 Generasi Pertama dengan Generasi Keempat. Hasil benchmark menunjukkan, generasi pertama mendapatkan score 503|681, dan generasi keempat mendapatkan score 943|1300.
Effort yang tidak sedikit jika ingin melakukan upgrade server
Merujuk pada point nomor 1, dengan melihat processor yang semakin murah tiap tahun, pastinya perusahaan juga ingin melakukan upgrade pada server yang mereka miliki. Dengan biaya yang semakin murah, akan didapatkan “compute power” yang lebih baik. Namun proses upgrade server itu tidak mudah, ada beberapa hal yang harus anda pertimbangkan, diantaranya :
- Anda harus memikirkan tentang socket processor, beruntung jika socket masih sama, jika socketnya berbeda?
- Processor lama yang Anda miliki, mau dipakai untuk apa?
- Jika Processor lama yang Anda miliki ingin dijual saja, berapa banyak jatuhnya?
- Jika Socket processor cocok, apakah dengan motherboard yang lama, sistem bisa berjalan dengan maksimal?
- Jika Socket processor tidak cocok, berikut juga komponen lainnya tidak cocok, Anda lebih baik membeli Server baru
- Server lama yang Anda miliki, mau dipakai untuk apa?
- Jika Server lama yang Anda miliki ingin dijual saja, berapa banyak jatuhnya?
- Jika server lama yang Anda miliki tetap ingin digunakan, Anda harus membayar biaya maintenance ke Data Center
Tidak bisa melakukan proses Autoscaling
Saya rasa point ini cukup jelas. Kalaupun ada sebuah kasus, ambil contoh ecommerce yang melakukan flash sale, effort untuk melewati event ini sangat besar sekali. Sudah adakah provider di Indonesia yang menyediakan sewa server fisik per jam?
Anda tidak perlu memikirkan hal-hal diatas dengan arsitektur serverless.
Kesimpulan
Arsitektur Serverless akan mempermudah hidup Kita dan membuat Kita lebih efisien terhadap waktu dengan tidak perlu memikirkan tentang infrastruktur atau server.