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.[1]

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.[2]

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.[3]

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

Teknologi

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

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.[8] Apache Aurora dapat berskala hingga puluhan ribu server, dan memiliki banyak kesamaan dengan Borg [9][10] 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.[11]

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.[12]

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.[13]

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 [14]

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

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

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.[17] Pada bulan September 2015, Microsoft mengumumkan kemitraan komersial dengan Mesosphere untuk membangun penjadwalan container scheduling dan orchestration services untuk Microsoft Azure.[18] Pada Oktober 2015, Oracle mengumumkan dukungan untuk Mesos melalui Layanan Oracle Container yaitu Cloud Container Cloud Service.[19]

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

Referensi

  1. ^ Zaharia, Matei."HUG Meetup August 2010: Mesos: A Flexible Cluster Resource manager - Part 1".  youtube.com. Dipublikasi pada 13 January 2015.
  2. ^ "A Common Substrate for Cluster Computing" (PDF). 
  3. ^ Hindman, Benjamin; Konwinski, Andy; Zaharia, Matei; Ghodsi, Ali; Joseph, Anthony; Katz, Randy; Shenker, Scott; Stoica, Ion (2011)."Mesos: A Platform for Fine-Grained Resource Sharing in the Data Center" (PDF).  NSDI. 11: 22-22. Dipublikasi pada 12 January 2015
  4. ^ "The Apache Software Foundation Announces Apache Mesos v1.0".  Press release. July 27, 2016. Dipublikasi pada February 24, 2017.
  5. ^ http://siliconangle.com/blog/2016/07/27/mesos-1-0-brings-a-new-container-runtime-and-more-third-party-integrations/
  6. ^ Bappalige, Sachin P. (2014-09-15)."Open-Source Datacenter Computing with Apache Mesos". "OpenSource.com". "Red Hat".  Dipublikasi pada 2016-12-10.
  7. ^ Metz, Cade."Return of the Borg: How Twitter Rebuilt Google's Secret Weapon".  wired.com. Wired. Dipublikasi pada 12 January 2015.
  8. ^ "All about Apache Aurora". "Twitter".  Dipublikasi pada 20 May 2015.
  9. ^ "Large-scale cluster management at Google with Borg" (PDF). "Google".  Dipublikasi pada 20 May 2015.
  10. ^ "Twitter's Aurora and How It Relates to Google's Borg".  Dipublikasi pada 20 May 2015.
  11. ^ "Chronos". GitHub.com. "GitHub".  Dipublikasi pada 30 March 2015.
  12. ^ "Marathon".  Mesosphere.GitHub.io. "Mesosphere".  2014. Dipublikasi pada 30 March 2015.
  13. ^ Harris, Derrick."Airbnb is engineering itself into a data-driven company".  gigaom.com. Dipublikasi pada 12 January 2015.
  14. ^ The eBay PAAS Team. "Delivering eBay's CI Solution with Apache Mesos - Part I".  EbayTechBlog.com. eBay. Dipublikasi pada 12 January 2015.
  15. ^ Harris, Derrick (2015-04-23). "Apple Details How It Rebuilt Siri on Mesos". Diarsipkan dari versi asli tanggal 2015-04-29. Diakses tanggal 2019-05-21.  Mesosphere.com. Mesosphere. Dipublikasi pada 2015-04-27.
  16. ^ "Verizon selects Mesosphere DCOS as nationwide platform for data center service orchestration".  Verizon. Dipublikasi pada 21 August 2015.
  17. ^ "The Mesosphere DCOS".  mesosphere.com. Dipublikasi pada 13 January 2015.
  18. ^ "Mary Jo Foley".  (September 29, 2015). "New Azure Container Service to bring together Mesos, Docker and Azure cloud". "ZDNet". 
  19. ^ "Oracle Updates Oracle Cloud Infrastructure Services".  oracle.com. Dipublikasi pada 2018-02-06.

Pranala luar