0

Firebird sql studio serial key trend: Serial Key Generator

Some competitor software products to SQL Server Backup include Resilio Connect, Stellar Phoenix SQL Database Repair, and Spinbackup. Advanced SystemCare 8 PRO #Review. IDERA relentlessly delivers the industry's most complete solution for 24x7 SQL server performance monitoring, alerting, and diagnostics and tirelessly supports the SQL community with % free tools and expert advice. NovaStor SQL server backup solution can also be configured to backup databases to popular offsite storage locations like Amazon S3. All database backup solutions and backup options are covered in a single, all-inclusive backup and recovery software solution. The freeware version of Iperius Backup allows you to backup to any mass storage device, such as NAS, external USB hard drives, RDX drives, and networked computers.

FullSoft5: SQLBackup And FTP Professional 9 crack Download

Sql backup and ftp crack software. Thus, most of the operating system support this software and you can use command line backup. Utorrent pro crack kickass torrents. Upon purchase you will be sent another serial number that will upgrade your existing copy of WinSQL Lite to appropriate edition. There will be no physical CD/manual.

1

Activation key sQL Server Backup Software - Handy Backup

Then, in conjunction with valid software maintenance, you can self rebrand the software through the AhsayCBS. Makes full, differential or transaction log backups, runs custom scripts, backs up file folders, allows viewing of the results on the web. It also allows creating bootable USB drives with Disaster Recovery module. QR Code, fast and easily. Absolute LoJack Premium Pro #Registration Code & Licence Key.

SqlBackupandFTP With License Key Full Version

Free version is limited to 2 databases to backup on a schedule.

2

Product Key Generator Software - Free Download Product Key

I have never heard of Syncrify before. 100 ft cat5e patch cord. Log In; SQL Server, MySQL and PostgreSQL Backup Tool. Therefore, you need a solution that can run automatically once or several times a day by itself based on your pre-configured schedule, so that you can restore to the latest version when needed. The resulting backup file contains all SQL queries required to reproduce the original database including all tables, tablespaces, stored procedures, functions, and other data.

  • Downoad SQL Backup And FTP Professional v12.3.11 + Crack
  • Download SQL Backup and FTP 10.0.9 at Free Best Downloads
  • Sql Backup Code - Free Software Downloads and Reviews
  • Create alerts to proactively monitor your data factory
  • SQLBackupAndFTP Free - backup SQL Server databases
  • Free Download SQLBackupAndFTP v12.4.8 + CRACK
  • BTSoftware Software Registration Service, Voice: +31 40
3

Cracked silverSHielD Pro License #Registration License Key

Add key in app config file c https://zlatdetki.ru/forum/?download=4727. SQL Backup and FTP - X 64-bit Download - x64-bit download - freeware, shareware and software downloads. You can use automatic backup tasks with advanced schedules and store them in local or remote folders or cloud storages. XenArmor Windows Product Key Finder is the enterprise software to help you instantly recover your lost or forgotten. At the time of download, you will be sent a serial number for WinSQL Lite.

BackupSF Serial Number For Free - MySql & FTP Website

I am unsure about the SQL Server Agent service account. Absolute LoJack Premium Pro (Free Trial) Absolute LoJack Premium Pro [Download Area] Advanced SystemCare 8 PRO #Registration License Key. It can perform various types of backups – full, differential or transaction log, it can handle both file and folder backup tasks, plus it archives and encrypts the backups to ensure their security. Popular Alternatives to SQLBackupAndFTP for Windows, Software as a Service (SaaS), Mac, Linux, Web and more. Keep an easy, safe and up-to-date backup of all your software product keys.

4

[SQL] Stored Procedure To FTP Files From SQL Server

All the products are digital in nature and are downloaded/shipped online. Drive Image, Database SQL, VMware ESXi, Hyper-V, Exchange. Sql Backup Free creates full MS SQL Server database backups on schedule, compresses backup files, sends them to a local, network folder, HDD drive or an FTP server and sends email confirmations on job success or failure. SQL Backup And FTP creates MS SQL Server & Azure database backups, Zips, Encrypts and sends backups to a folder, FTP, Dropbox, Box, Google Drive, MS SkyDrive or Amazon S3. Runs on a flexible Schedule, sends e-mail confirmations on job success or failure. But, It is the software that is award-winning with the range for the feature that supports for any recovery and the backup associated with the hard disks, SSD card, optical discs, FTP sites as well as from the Google Drive.

EaseUS Todo Backup 13.0.0 Crack & License Code

Foreign key sqlite administrator https://zlatdetki.ru/forum/?download=4749. Also, SQL Server 2020 will allow to backup directly to Windows Azure without a separate tool. Iperius Backup is one of the most flexible and complete software to backup and protect your files and your reserved data. Please see our different licensing options for more information. You cannot set backup options such as compression, checksum, block size, and buffer count.

5

SQLBackupAndFTP Professional v8.2.23 Full Patch, Serial

Office 97 key viewer https://zlatdetki.ru/forum/?download=4466. All that is needed is to specify the database server address and login data, then select the database to be backed up and a destination folder where to. Backup4all is an award-winning data backup software for Windows. SQL Backup and FTP Malaysia Reseller, SQL Backup and FTP Professional, Perpetual, SQL Backup and FTP Standard, SQL Backup and FTP Lite. With regards to system requirements, Stellar Phoenix SQL Database Repair is available as Windows software.

Registration key sQL Backup and FTP Serial [Download Now] - video dailymotion

Backup files, folders, and all file types. SQL BackupAndFTP Software is the best programming for MS SQL Server reinforcements. If the users buy membership, they will get a bigger range of data backup as well. Introduction to SQL Backup Pro 6 ways SQL Backup Pro simplifies backups. Cs 1.6 opengl hack these details.

6

WinSQL Registration - Synametrics Technologies

SQLBackupAndFTP is a feature-rich piece of software that lets you easily schedule backup jobs of SQL Server or SQL Server Express databases. SQLBackupAndFTP is SQL Server, MySQL, and PostgreSQL backup applications that run scheduled backups (full, differential or trade log) of either SQL Server or SQL Server Express databases (any variant ), conducts file/folder backup, zips and encrypts the copies, stores them onto a network or in an FTP server or even at the cloud (Amazon S3 as. EaseUS Todo Backup Crack is really the among the software that is better that meets the wide variety of backup and the information recovery goal. So, you can use complete backup mode and it support schedule time backup that can help you when you left your PC. hence, this tool also support cloud backup that can secure your everything. Then, configure the alert logic.

  • Sql delta 5.1 serial key trend: SQL Delta for SQL Server
  • Best SQL Database Backup Software
  • Sql Backup 64 bit download - X 64-bit Download
  • 10 Software to Recover Product Key Licenses from Computer
  • Pranas SQLBackupAndFTP Professional 9.1.2 serial key Crack
  • SQLBackupAndFTP Free - AfterDawn - Software downloads
  • Registration Code Generator Software - Free Download
  • How to backup SQL databases to an FTP server using the
  • Cloud data integration, backup, access & management
  • KLS Backup Pro 10.0.2.7 Registration Key ... - Daily Software
7

Managing websites from zero-to-online. I want to update myself, looking for suggestions for a better workflow.

43 years old goat here, working on websites since 1998 (those were the times...!). I'm one of those "one-man-fo-everything" guys, meaning I am in charge of almost everything from coding to hosting management, SEO, advertising, socials and... you name it.
I want to give you a brief idea of my working environment to get some advices to improve it. Or even drastically change it, as I am always seeking for new opportunities (I love this job). I'm still living the "stone age" in some way, meaning that I used Notepad until 2017 (I now moved to SublimeText), PaintShopPro 7.04 (dated 2001) and other "old but gold" software which although archaic... it's blazing fast.
I do everything on my coding desktop with a LAMP solution (I use XAMPP on Windows 10). I often work from home too, managing my office PC via TeamViewer when I need so (having a fiber connection makes it a dream).
My projects are always coded, debugged and finalized on my localhost. When I am ready I upload everything on the server (I own 4 VPS machines with 10+ domains each) via FTP, using FileZilla. Yes, I am not a GitHub man, not yet at least.
Version control: none, never used any kind of branch/control stuff. My "stone age" way consists in a very simple "copy/paste" of anything I need to edit, in case shit happens. That may be a single "css.css" file, a "footer.php" file or the entire "/websitename" folder inside localhost.
Backups: I manage them via PHP. I've written a script that auto-runs every xx hours and zips the entire website + MySQL database dump and uploads it to 2 different machines. That script runs on critical and/or often-updated websites (ecommerces, mostly). I also have weekly VPS backups but the "zip on the fly" method always gave me better results.
Upload management: as said above, when I have to change something (example: a client asks to update the phone number on the website's footer) I simply open the localhost folder, edit the file, save and upload via Filezilla. That's it.
Are you still here? Are you horrified by this old fossil who's still working with older-than-a-decade software? Well, I'm here to do better, enlighten me!
Please keep in mind a couple of things:
  1. I don't work in a team, I am alone with my business partner since 1999 and we're like a single-minded entity. We know each other so well that we often don't even need to speak. He's in charge of design/layouts, I am the coding geek. So I don't really need "team-focused" software, tools or methods.
  2. I work 40% from home, 60% in my office. Both desktops have the same setup/software and working with TeamViewer on a 100mbit line is a joy.
  3. Clients let me manage 99% of their websites: initial project, layout, hosting, social, SEO, payments, images processing, video processing, ad campaigns, whatever. They don't ask anything: they trust me and let me do my job, expecting (almost) perfect results and (almost) instant intervention when shit happens.
With that said... Feel free to suggest me anything you want :-)
submitted by Toucanic to web_design

Pojok sharing IT: Virtualization/Containerization

Goal saya sebenarnya cuma mau buat test keyboard baru dengan cara buat artikel Ah, ini buat sharing saja, target yang ngebaca ini utamanya fresh graduate yang backgroundnya IT dan lagi ngga ngapa-ngapain, bisa dicoba saja praktekkan apa yang ada di thread ini di laptop masing-masing. Ngga menjamin tulisan ini bakalan fun dan ngga bisa janji saya bantu kalau ada kendala, tapi bebas silakan ditanyakan kalau ada minat ke topik ini.
Apa yang ditulis di sini cocoknya lebih ke manajemen infra suatu perusahaan (bukan bagian pasang2 kabel), tapi bagus untuk diketahui karena ada kemungkinan besar konsep ini bakalan nempel ke kerjaan software engineer lain terutama yang menyentuh backend. Kalau di data engineering perusahaan saya, mengetahui konsep yang ditulis di ini itu juga salah satu yang di-list di onboarding (semacam guideline pengenalan) karyawan baru. Saya perhatikan juga sepertinya banyak fresh graduate nongkrong di /indonesia dengan segala anxietynya. Asumsi saya, at least kalau udah di sini artinya udah punya pengetahuan cara make DoH atau VPN, punya kemampuan komprehensif untuk membaca guideline teknikal dan mengikutinya.
Isi artikel ini akan ditulis dalam Bahasa Indonesia, because creating English guideline about general thing in /indonesia doesn't sound right for me. Dan karena saya sempat lama bekerja di perusahaan logat Jaksel, mohon maaf kalau logat saya campur2 aneh.
Guide ini saat ditulis maunya beginner friendly jadi mungkin pemakaian katanya kurang akurat. Mostly serious, a bit joking here and there. Mohon maaf kalau tidak berkenan.
Di bagian paling bawah post ini saya taruh notes. Kalau ketemu {noteX} scroll ke paling bawah saja.

VM / virtualization, sama contoh kasus

Yang baru kenal biasanya menghubung2kan VM dengan dual-boot. Tapi hal ini cuma relevan kalau kita bicara bagaimana menjalankan dua OS berbeda dalam satu komputer yang sama. Dua konsep tsb benar2 beda btw. Yang sama cuma perasaan gengsi bisa jalanin dua OS berbeda di laptop yang sama + kalau VM, rasa "aduh imut" yang dirasakan ketika melihat OS lain berjalan di dalam satu window kecil non-fullscreen. Ngga salah. Gengsi melakukan ini itu oke dan harus buat pemula.
Definisi formal VM/virtualization udah banyak kalau dicari di Google. Semua definisi kurang lebih sama: ini adalah satu cara untuk pengisolasian aplikasi ("running in a dedicated machine"), cara untuk menjalankan aplikasi yang hanya bisa berjalan mulus di lingkungan tertentu, atau cara membagi pemakaian satu mesin yang mempunyai resource (CPU/mem/disk) yang besar. Virtualization nyentuhnya sampai level hardware, yaitu OS yang ada di VMnya dikecoh bahwa memang ada hardware beneran di VM tsb padahal cuma virtual hardware.
Mainan VM ini dulu saya pake buat jalanin file exe yang saya download dari internet untuk cek itu file iseng apa bukan. Sekarang, VM-VMan ini saya pakai untuk kerjaan, utamanya untuk testing kodingan di platform (OS) berbeda. Selama ini kasusnya cuma Linux vs Windows, belum ketemu Linux vs Linux.
Contoh satu kasus, saya punya library Python yang saya develop untuk dijalankan di Debian-based OS (Debian atau Ubuntu). Kodingannya ngga gitu wah banget, bayangin cuma untuk menyederhanakan pengerjaan data analysis mengambil data database production{note1} baik yang tipenya MySQL, PostgreSQL, MongoDB, kemudian diolah (filter, agregat, dsb) dan disimpan ke Google Sheet. Pengen saya share tentang ini, projectnya lumayan fun jika bicara secara personal.
Install library ini cukup sederhana kalau di Debian/Ubuntu, tinggal "git clone" (ngga dimasukin ke PyPI lah, internal), terus jalanin "pip install -e reposaya" dijamin udah langsung bisa dipake (S&K berlaku: installnya di Python 3.7). Gampang kan? Nah... suatu hari datanglah 3rd party vendor yang mau memakai Python library ini supaya bisa satu tools dengan tim perusahaan kita. Kendalanya, mereka ini pakai Windows. Tim perusahaan kita mau ada guideline install Python library ini di laptop vendor.
Mintalah tim tsb ke saya. Sambil saya mengeluh dalam hati "Alamak, Windows?"... requirement dari tim perusahaan, guideline ini harus ilustratif install apa aja dan menjalankan command apa aja sampe librarynya bisa dipakai.
Saya follow guideline hasil Google search dan saya pakai VirtualBox + Windows 10 ISO di Ubuntu 20. Karena Windows 10 bisa jalan tanpa masukin activation key, ya udah ngga pake activation. Sudah selesai setup OS, install Miniconda (basically Anaconda, tapi lightweight) di dalam VMnya dan wah, library Python internal ini bisa bekerja. Intinya udah jadi guidenya setelah eksplorasi 2 hari penuh.
Untuk pembaca thread ini yang berminat, kalau mau mulai belajar, ambil installer ISO file yang official untuk OS pilihannya. Anda bisa coba Windows atau Ubuntu.
Terus coba install VMWare/VirtualBox. Saya pertama kali mengenal VM-VMan ini pakai VMWare di Windows, tapi sekarang lebih prefer pakai VirtualBox.
Setelah semuanya ready, coba buat VM di VMWare/VirtualBox menggunakan ISO file yang tadi didownload. Kalau di VirtualBox, pengalaman hanya tinggal New, ketik nama VM + set tipenya Windows 10 64-bit, kemudian sisanya default settings saja, terus saat VMnya dinyalakan dia akan keluar prompt minta ISO file. Nah kalau sudah sampai installation, input saja informasi yang diperlukan sama installernya termasuk pembuatan akun. Semua proses ini (untuk install Windows 10 di VM) memerlukan kira-kira 30 menit sampai 1 jam.
Test tadi pakai VirtualBox, tapi bisa juga pakai VMWare Workstation Player yang sama2 gratis.

Hypervisors

Software VMWare, VirtualBox yang dibahas sebelumnya tergolong satu keluarga software yang dinamakan "hypervisor".
Di level enterprise, hypervisor ini lebih luas pemakaiannya dari yang tadi digunakan dari laptop Anda di contoh sebelumnya.
Bayangkan perusahaan punya satu server fisik{note2} yang kekuatannya 8x laptop yang Anda pakai sekarang -- 32 CPU cores, 256 GB RAM {note3}{note4}.
Satu mesin ini umumnya dipakai sharing antar tim satu perusahaan, nah terlalu banyak service di satu node akan repot. Saat situasi heavy load, misal perusahaan ada kegiatan bagi-bagi voucher di aplikasi + buka event gacha karakter populer ke user-usernya (istilahnya "userbase"), dan service-service{note5} di node itu diperkirakan akan kerja keras.
Kalau dari sisi resources, jadinya nanti semua service di satu node itu akan berlomba-lomba siapa yang bisa mengambil 100% resource CPU/memory node tsb lebih dulu.
Kalau dari sisi networking, IP address cuma satu, terpaksa kalau service baru buatan tim lain harus bagi-bagi TCP port yang belum dipakai di node tsb. Berhubung TCP ports ngga punya banyak nomor cantik (1024-65536), bakalan ada beban ingatan buat developer untuk mengingat port mana digunakan service apa.
Banyak Linux distro juga punya keterbatasan yang namanya maximum open file, di mana satu OS harus bisa keep track file-file mana saja yang digunakan process yang sedang berjalan + network socket yang sedang dibuka https://unix.stackexchange.com/questions/36841/why-is-number-of-open-files-limited-in-linux. Menurut pengalaman sering kejadian di satu node seperti ini yang dishare banyak tim, beberapa aplikasi crash karena open file limit contohnya di sini (catatan lagi: di Linux, network socket yang dipakai suatu process untuk komunikasi ke luar nodenya juga akan "open" satu atau lebih "file")
Seandainya satu node tsb dibagi-bagi ke beberapa VM, setiap tim diberikan (di-"assign") VM masing-masing dan service mereka berjalan on top of VM, nah meskipun satu node tsb shared dengan banyak tim tapi service-service yang jalan ngga akan bisa makan lebih banyak dari yang sudah dialokasikan -- karena OS dan aplikasinya dikecoh bahwa "kamu hanya punya resource CPU x cores dan y memory".
Selain VirtualBox (sepertinya cuma dipakai level testing lokal cmiiw), VMWware, ada lagi contoh hypervisor yaitu Proxmox. Proxmox ini, kita install sebagai OSnya di bare metal yang kita tuju -- bisa diinstall on top of existing Debian installation tapi kelihatannya advanced banget dan ribet. Kemudian setelah selesai akan ada UI nya di mana kita bisa membuat VM (kegiatan ini biasa disebut "provision") dengan mengalokasikan resource yang sudah ada (jumlah CPU, memory, dan disk space yang mau dipakai).
Proxmox bisa menggabungkan banyak node baremetal jadi satu cluster, dan jadi lebih terorganisir supaya manajemen VM tinggal dari satu node saja instead of harus login ke node-node yang diinstall Proxmox dan manage VM nya dari sana. Cluster ini juga bisa spawn VM lebih berimbang -- misal VM berikutnya akan dispawn di node yang resourcenya lebih lowong. VM di satu node juga bisa dipindah ke node yang lain dalam satu cluster, dalam situasi di mana node tsb harus dimaintenance (contoh, ditambahkan memory). CMIIW kalau ada yang pakai Proxmox di /indonesia.
Btw, OS tempat hypervisor diinstall biasa disebut "Host OS", sedangkan OS di dalam VM-VM yang dispawn oleh hypervisor dinamakan "Guest OS"

VM snapshots

Satu fitur yang umum dipunyai hypervisor itu adalah snapshot. Biasanya yang di-snapshot ini kondisi disknya pada suatu waktu, namun ada hypervisor yang snapshot state VMnya secara keseluruhan (semua data di disk + data di memory + settingan VM). Snapshot ini bisa dianggap suatu bentuk backup tapi perasaan saya snapshot itu lebih dari cuma backup. Kegunaan snapshot ini kalau saya tidak salah itu saat situasi "eh waduh salah/kedelete/ngga bisa uninstall sesuatu" bisa coba restore kondisi disk VM nya ke situasi sebelumnya menggunakan snapshot, jadi ngga perlu reset dan install OSnya dari awal. Membuat snapshot ini biasanya manual, harus usernya sendiri yang pilih.
Seingat saya beberapa hypervisor kalau melakukan snapshot punya syarat, yaitu disk yang disnapshot harus dalam keadaan ngga dipakai (idle).

Shared directories

Fitur lain yang umum di hypervisor itu untuk men-link direktori di Host OS dengan direktori di Guest OS supaya bisa tukar-tukaran file. Tujuannya fitur ini supaya mempersimpel kerjaan dibandingkan kita harus setup network directory manual di kedua OS atau setup FTP server supaya bisa bertukar file via network.
Kalau di VirtualBox, udah ada menunya Devices > Shared Folders di window yang muncul saat VM dinyalakan.

Containers / containerization

Virtualization dirasa ribet karena pemakaian resource untuk hypervisor ngga sedikit, jadinya jatah resource untuk VM-VM yang menjalankan guest OS berkurang diambil hypervisor supaya dia bisa jalan. Ngga bisa dihindari memang. Untuk boot up VM juga kelamaan sampai bisa dipakai.
Maka berikutnya dikembangkanlah konsep containerization.
Anggapan kasar, "container" ini sama tujuannya dengan VM yaitu untuk membuat environment yang terisolasi untuk aplikasi user yang berjalan di dalamnya supaya aplikasi lain yang berjalan di node yang sama ngga kena impact, dan untuk manage resources yang gede dipecah ke yang kecil-kecil. Tapi dibandingkan dengan VM yang membuat guest OSnya hampir dari nol, containerization ini lebih banyak memakai apa yang sudah ada di Host OS yang sedang berjalan. Kalau pembuatan VM itu anggapannya kerja keras mulai dari initialize hardware (dibikin virtual hardware), initialize kernel di dalam VMnya supaya bisa digunakan. Sedangkan kalau containerization itu ngga mau repot, udah ada hardware interface segala macam di Host OSnya dia main pakai saja instead of buat virtual hardware, udah ada kernel di OSnya ya udah dipakai lagi saja sama dia.
Saya ketemu grafik di sini yang menurut saya membandingkan container vs VM lebih mendetail dibandingkan resource lain di internet.
Nah tapi berhubung container itu beda dengan VM di mana ngga ada yang namanya install2an OS dst, ada keterbatasannya. Oleh karena container bergantung pada kernel, system library, dan lain-lain di hostnya (saya juga belum 100% paham), kalau ada perbedaan hal2 ini di platform lain, maka container ngga bisa jalan di platform lain tsb. Pernyataan ini lebih untuk menjawab pertanyaan: Bisa ngga di Ubuntu jalanin Windows container (bukan Windows VM)? Ngga bisa :( untuk kenapanya, bisa baca secara mendetail di sini: https://stackoverflow.com/questions/42158596/can-windows-containers-be-hosted-on-linux

Membuat container

Platform containerization yang populer pada saat tulisan ini dibuat itu Docker. Ada platform lain, tapi personally saya belum pernah pengalaman pakai selain Docker.
Dalam topik containerization, kita mengenal istilah "image". Secara personal saya lihat ini mirip konsep snapshot di VM (tapi ada perbedaan signifikan, dijelaskan di bagian berikutnya). Salah satu perbedaannya, image ini dapat dibuat dari set instruksi yang didefine pembuat imagenya. Bandingkan dengan snapshot VM yang harus ada guest OS yang jalan dulu baru bisa dibuat.
Container sebenarnya adalah image yang di-run. Kalau image saja, itu yang orang sebut sesuatu yang "abstrak". Belum bisa dipakai langsung.
Untuk Docker, kita punya Docker container dan Docker image. Singkatnya, Docker image itu "snapshot" yang dapat dipakai untuk membuat Docker container, dan Docker image ini juga dapat di-import untuk membuat Docker image yang lain. Ini cara yang paling umum dilakukan oleh pengguna Docker, saya yakin 99.99% orang ya kerjaannya import image yang uda jadi terus buat image baru dari situ.
Umumnya, Docker image didownload dari Docker Hub https://hub.docker.com/
Di sana banyak yang official (dibuat perusahaan besar atau komunitas yang well-known) dan banyak juga yang community. Saya pribadi cuma pakai yang official/well-known. Contohnya image yang udah ada Google Cloud SDK di dalamnya jadi ngga perlu install lagi, tinggal authorize. Contoh lain, Docker image dengan Python yang lightweight dan bisa langsung kita install pip package macam2 di dalamnya, tinggal masukin script Python kita dan jalan.
Docker container itu manifestasi nyata dari Docker image, yang bisa mulai dipakai. Di dalam Docker container bisa kita install atau masukin apa2, dan bisa pakai selayaknya itu VM biasa. Btw untuk pemula, selama bertahun-tahun memakai Docker saya ngga pernah ketemu/jalanin Docker container yang punya desktop yang bisa diklik2. Semua container diakses melalui terminal dan mau ngapa2in ya make terminal.

Membuat image

Docker image dibuat dari set instruksi yang disebut "Dockerfile". Dockerfile itu cuma file teks biasa yang umumnya punya nama literally "Dockerfile", dengan contoh isinya seperti ini...
``` FROM ubuntu:18.04
COPY . /app
RUN make /app
CMD python /app/app.py ```
Contoh Dockerfile yang lain bisa dilihat di official docs sini: https://docs.docker.com/get-started/part2/#sample-dockerfile, di sana dijabarkan setiap steps ngapain.
Di Docker image, setiap step di Dockerfile (kalau di contoh singkat di atas itu ada 4 step) akan membuat "layer" baru di image tsb. Setiap layer di satu image bergantung pada layer sebelumnya yang telah dibuat.
Contoh, di bawah ini adalah isi Dockerfile yang saya buat di mana saya mengcopy file app.csv dari host saya yang besarnya 1 GB, ke dalam image ubuntu:18.04. Kemudian di step berikutnya saya ZIP file tersebut. Ukuran zip filenya menjadi 500 MB. Kemudian file asli di imagenya saya delete.
``` FROM ubuntu:18.04
COPY app.csv /app/app.csv # besarnya 1 GB
RUN zip /app/app.zip /app/app.csv # besar ZIP filenya 500 MB
RUN rm /app/app.csv ```
Image ubuntu:18.04 yang saya pakai besarnya 99 MB. Setelah step keempat, besar image hasil step 4 dibandingkan dengan image awal (ubuntu:18.04) bertambah 1.5 GB menjadi 1.6 GB.
Kalau mengikuti step-step di atas, berlogika harusnya besar image hanya bertambah 500 MB dan bukan 1.5 GB. Penambahan 1.5 GB ini karena konsep layer di Docker. State pada setiap step akan disimpan. State pada step berikutnya hanya akan menyimpan perubahan yang terjadi (di-append, tidak bisa remove) pada state sebelumnya.
Untuk lebih jelasnya seperti ini, pada akhir step paling awal contoh di atas state imagenya berukuran 99 MB.
akhir step 2 (COPY), imagenya berukuran 1.099 GB. Jadi layer step 2 ukurannya 1 GB.
akhir step 3 (RUN zip), imagenya berukuran 1.599 GB. Jadi layer step 3 ukurannya 500 MB.
Nah pada akhir step 4 (RUN rm), imagenya tetap berukuran 1.599 GB. Command "rm" ini meskipun menghapus file, tapi ngga punya efek apa2 ke image size. Layer yang pada step 4 sedang dibuat (yang menjalankan "RUN rm" ini) tidak bisa mempengaruhi layer sebelumnya (hasil step 3) -- karena layer step 4 bergantung pada state layer sebelumnya (step 3).
Kalau image ini dibuat containernya, file yang dihapus oleh command "rm" ini tidak akan ketemu. Itu saja efek step 4 tadi.
Detail alasannya bisa dibaca lebih lanjut di sini: https://stackoverflow.com/questions/29380738/why-the-virtual-size-still-the-same-after-delete-a-file-from-container-with-rm
Resource di internet kalau kita baca2 pasti mention kalau container itu lebih lightweight, lebih kecil ukurannya dibandingkan VM. Tapi menurut pengalaman, kalau Anda belum mahir membuat image container maka ukurannya bisa meledak sampai hitungan GB. Contohnya di atas, kita remove /app/app.csv tapi dalam satu step terpisah. Hasilnya tidak berpengaruh ke ukuran image dan ukurannya tetap besar.
Untuk kasus di atas ada workaroundnya supaya ukuran image besar bisa dihindari, yaitu memakai multi-stage builds:
https://docs.docker.com/develop/develop-images/dockerfile_best-practices/#use-multi-stage-builds https://docs.docker.com/develop/develop-images/multistage-build/#use-multi-stage-builds
Nah, itulah pembahasan konsep "layer" di Docker. Cukup menarik pada saat saya pertama kali mempelajarinya, dan kadang termasuk interview question juga.
  • {note1} Yang belum tau istilah seperti "staging" "preproduction" "production" bisa lihat https://en.wikipedia.org/wiki/Deployment_environment
  • {note2} Sebutannya "bare metal", karena kita benar punya fisik servernya instead of nyewa mesinnya seperti semua Cloud providers - GCP, AWS, dsb. Kalau nyewa cloud provider, kita kan ngga tau kalau munculin VM, mesin fisiknya yang jalanin VM tsb ada di lokasi mana.
  • {note3} Kadang server dipasangin GPU buat keperluan machine learning (ML).
  • {note4} Satu server seperti ini dengar2 berkisar belasan sampai puluhan juta, dan umurnya akan lebih pendek kalau sengaja dibanting atau disiram air kelistrikannya ngga dihandle dengan benar. Btw, menyewa data center di Indo itu salah satu biaya utamanya dihitung dari pemakaian listrik kalau saya tidak salah. Bisa tolong dikoreksi kalau saya salah.
  • {note5} Yang disebut "service" di sini contohnya aplikasi yang didevelop suatu tim di perusahaan tersebut dan sudah dijalankan di node tsb, atau aplikasi open source yang diinstall misalnya Gitlab, Grafana, dsb
submitted by __Blackrobe__ to indonesia