Apache Mesos

Apache Mesos adalah proyek sumber terbuka untuk mengelola kluster komputer yang dikembangkan di University of California, Berkeley.

Sejarah 
Apache Mesos dimulai sebagai proyek penelitian di Lab RAD UC Berkeley oleh mahasiswa PhD: Benjamin Hindman, Andy Konwinski, dan Matei Zaharia, serta profesor Ion Stoica. Mereka memulai mengerjakan proyek sebagai bagian dari kursus yang diajarkan oleh David Culler. Awalnya bernama Nexus tetapi karena konflik dengan proyek universitas lain, diganti namanya menjadi Mesos.

Mesos pertama kali dikenalkan pada tahun 2009 (saat masih bernama Nexus) oleh Andy Konwinski di HotCloud '09 dalam sebuah seminar yang menyertai makalah pertama yang dipublikasikan tentang proyek tersebut.

Kemudian pada tahun 2011, proyek ini dikenalkan dalam keadaan yang lebih matang dalam seminar oleh Zaharia di simposium Usenix tentang Desain Sistem Jaringan dan Implementasi konferensi tentang makalah "Mesos: A Platform for Fine-Grained Resource Sharing in the Data Center" oleh Benjamin Hindman, Andy Konwinski, Zaharia Ali Ghodsi, Anthony D. Joseph, Randy Katz, Scott Shenker, Ion Stoica.

Pada 27 Juli 2016, the Apache Software Foundation mengumumkan versi 1. dengan menambahkan kemampuan untuk mendukung instansi Docker, rkt dan appc secara terpusat.

Teknologi 
Mesos menggunakan cgroups Linux untuk menyediakan isolasi untuk CPU, memori virtual, I/O dan sistem berkas. Mesos sebanding dengan penjadwalan Google Borg, platform yang sangat tertutup yang digunakan secara internal untuk mengelola dan mendistribusikan layanan Google.

Apache Aurora 
Apache Aurora adalah framework Mesos untuk layanan jangka panjang dan cron jobs, awalnya dikembangkan oleh Twitter mulai tahun 2010 dan di publikasikan pada akhir 2013. Apache Aurora dapat berskala hingga puluhan ribu server, dan memiliki banyak kesamaan dengan Borg  termasuk Domain-Specific Language (DSL) yang sangat memungkinkan untuk mengonfigurasi layanan.

Chronos 
Chronos adalah sistem seperti cron terdistribusi yang elastis dan mampu mengekspresikan ketergantungan antar pekerjaan.

Marathon 
Marathon dipromosikan untuk platform as a service atau ke ribuan server fisik dan sepenuhnya berbasis REST dan memungkinkan untuk penyebaran topologi dan ditulis dalam bahasa pemrograman.

Pengguna 
Situs jejaring sosial Twitter mulai menggunakan Mesos dan Apache Aurora pada 2010, setelah Hindman memberikan presentasi kepada sekelompok insinyur Twitter.

Airbnb mengatakan pada Juli 2013 bahwa ia menggunakan Mesos untuk menjalankan sistem pemrosesan data seperti Apache Hadoop dan Apache Spark.

Situs Website eBay menyatakan pada bulan April 2014 bahwa ia menggunakan Mesos untuk menjalankan integrasi berkelanjutan berdasarkan basis per pengembang. Mereka melakukannya dengan menggunakan plugin Mesos khusus yang memungkinkan pengembang
untuk meluncurkan contoh Jenkins pribadi mereka sendiri 

Pada bulan April 2015, diumumkan bahwa layanan Apple Siri menggunakan framework Mesos sendiri yang disebut Jarvis.

Pada Agustus 2015, diumumkan bahwa Verizon memilih DC / OS Mesosphere, yang didasarkan pada open source Apache Mesos, untuk orkestrasi layanan data center.

Pada November 2015, Yelp mengumumkan bahwa mereka telah menggunakan Mesos dan Marathon selama satu setengah tahun untuk produksi layanan.

Dukungan komersial 
Startup perangkat lunak Mesosphere Inc menjual sistem operasi data center,
sistem operasi terdistribusi, berdasarkan Apache Mesos. Pada bulan September 2015, Microsoft mengumumkan kemitraan komersial dengan Mesosphere untuk membangun penjadwalan container scheduling dan orchestration services untuk Microsoft Azure. Pada Oktober 2015, Oracle mengumumkan dukungan untuk Mesos melalui
Layanan Oracle Container yaitu Cloud Container Cloud Service.

Apache Mesos dibangun menggunakan prinsip yang sama dengan kernel Linux, hanya pada tingkat abstraksi yang berbeda. Mesos kernel berjalan di setiap mesin dan menyediakan aplikasi (mis., Hadoop, Spark, Kafka, Elasticsearch) dengan API untuk manajemen sumber daya dan penjadwalan di seluruh data center dan cloud environments.

Dokumentasi

Fundamental 
 Mesos Architecture: Memberikan gambaran umum tentang konsep Mesos
 Video and Slides of Mesos Presentations
 Academic Papers and Project History
 Mesos Release and Support Policy

Build / Instalasi 
 Building: Instruksi dasar tentang kompilasi dan pemasangan Mesos.
 Configuration: Opsi membangun konfigurasi
 CMake: Perincian tentang penggunaan untuk membangun sistem CMake baru
 Windows Support: Keadaan dukungan Windows di Mesos

Administrasi 
 Configuration: Argumen baris perintah.
 High Availability Master Setup
 Replicated Log: Informasi tentang log replikasi Mesos.
 Fault Tolerant Agent Setup
 Framework Rate Limiting
 Maintenance: Melakukan pemeliharaan pada kluster Mesos.
 Upgrades: Pembaruan kluster Mesos .
 Downgrades: Menurunkan versi kluster Mesos.
 Logging
 Monitoring / Metrics
 Debugging using the new CLI
 Operational Guide
 Fetcher Cache Configuration
 Fault Domains
 Performance Profiling: Debugging masalah kinerja di Mesos.
 Memory Profiling: Debugging kebocoran memori potensial di Mesos.

Pengelolaan Sumber Daya 
 Attributes and Resources: Cara mendeskripsikan agen yang terdiri dari kluster.
 Using Resource Roles
 Resource Role Weights: Berbagi secara adil
 Resource Role Quota: Cara mengkonfigurasi Mesos untuk menyediakan alokasi sumber daya yang dijamin untuk digunakan pengelola
 Reservations: Bagaimana operator dan framework dapat memesan sumber daya pada masing-masing agen untuk digunakan setiap pengelola
 Shared Resources: Cara berbagi volume terus-menerus antara tugas yang dikelola oleh pelaksana berbeda pada pengelola yang sama.
 Oversubscription: Cara mengkonfigurasi Mesos untuk mengambil keuntungan dari sumber daya yang tidak digunakan untuk meluncurkan tugas "upaya terbaik".

Security 
 Authentication
 Authorization
 SSL
 Secrets: Mengelola keamanan di dalam Mesos.

Containerization 
 Containerizer Overview
 Containerizer Internals: Detail implementasi dari kontainer-kontainer.
 Docker Containerizer: Meluncurkan gambar Docker sebagai Tugas, atau sebagai Pelaksana.
 Mesos Containerizer Containerizer default: mendukung sistem Linux dan POSIX
 Container Images: Mendukung gambar di containerizer Mesos
 Docker Volume Support
 Nvidia GPU Support: Cara menjalankan Mesos dengan dukungan Nvidia GPU.
 Container Sandboxes
 Container Volumes
 Nested Container and Task Group (Pod)

Networking 
 Networking Overview
 Networking in Detail
 Container Network Interface (CNI)
 Port Mapping Isolator

Storage 
 Multiple Disks: Cara mengizinkan tugas menggunakan beberapa sumber daya disk yang terisolasi
 Persistent Volume: Cara mengizinkan tugas mengakses sumber daya penyimpanan yang persisten
 Container Storage: Interface (CSI) Support

APIs 
 HTTP Endpoints: Titik akhir HTTP yang tersedia
 API Client Libraries: Daftar pustaka klien untuk API HTTP.
 API Versioning: Menjelaskan API HTTP dan merilis versi.
 RecordIO: Menjelaskan format RecordIO yang digunakan oleh titik akhir streaming API HTTP.

Membuat Frameworks
 Framework Development Guide: Menjelaskan cara membuat aplikasi di atas Mesos
 Guide for Designing Highly Available Mesos Frameworks
 Reconciliation: Untuk memastikan keadaan framework pada akhirnya tetap konsisten dalam menghadapi kegagalan
 Task State Reasons: Menjelaskan bagaimana alasan status tugas digunakan di Mesos.
 Task Health Checking

API References:
 v0 Java API
 v0 C++ API
 v1 Operator HTTP API: Komunikasi antara operator dan master / agen Mesos
 v1 Scheduler HTTP API ; Komunikasi antara penjadwal dan master Mesos.
 v1 Executor HTTP API: Menjelaskan API HTTP baru untuk komunikasi antara pelaksana dan agen Mesos.
 Mesos Modules: Menentukan modul Mesos untuk master, pengelola
 Allocation Module: Cara menulis alokasi sumber daya khusus

Community 
 Getting Involved
 List of Mesos Users
 3rd Party Frameworks
 3rd Party Tools: Pengembang dan operator.
 Development Roadmap
 Design Docs: Daftar dokumen desain untuk berbagai fitur Mesos
 Working groups: Daftar grup yang mengerjakan komponen yang berbeda.
 Reporting an Issue, Improvement, or Feature: Memulai dengan JIRA.
 Beginner Guide for Contributors: Mulai berkontribusi ke Mesos untuk pertama kalinya.
 Advanced Contribution Guide: Mempelajari alur kerja yang digunakan saat berkontribusi ke Mesos.
 Engineering Principles and Practices: Berfungsi sebagai seperangkat nilai tingkat proyek yang dibagikan untuk masyarakat

Style Guides:
 Documentation Style Guide
 Developer Guide: Praktik dan pola terbaik yang digunakan di Mesos
 C++ Style Guide
 Clang-Format: Pemformatan otomatis
 Doxygen Style Guide
 Markdown Style Guide
 Testing Patterns: Tips dan trik yang digunakan dalam tes Mesos.
 C++ Doxygen Reference API internal
 Committers and Maintainers: Daftar komuter proyek dan pemelihara komponen; berguna saat mencari umpan balik.
 Committing: Pedoman untuk melakukan perubahan
 Release Guide
 Committer Candidate Guidelines: Menjadi penglaju
 Effective Code Reviewing: Pedoman, tips, dan pembelajaran untuk bagaimana melakukan tinjauan kode yang efektif.
 Reopening a Review: Kebijakan seputar menghidupkan kembali ulasan di ReviewBoard.

Lihat pula 
 Borg (manajer kluster)

Referensi

Pranala luar 
 

Layanan Cloud Sistem Operasi