Pada 4-6 September di St. Petersburg, di dewan persidangan Selectel, tiga hari .

Kami membina program berdasarkan idea bahawa teori berfungsi pada DevOps, seperti manual untuk alatan, boleh dibaca oleh semua orang sendiri. Hanya pengalaman dan amalan yang menarik: penjelasan tentang cara melakukannya dan perkara yang tidak boleh dilakukan, dan cerita tentang cara kami melakukannya.
Setiap syarikat, setiap pentadbir atau pembangun mempunyai tahap DevOps mereka sendiri. Sesetengah orang menggunakan Git secara salah, yang lain melaksanakan SRE. Kursus ini dianjurkan supaya semua orang mencari sesuatu yang relevan yang boleh dilaksanakan di sini dan sekarang.
Kami bermula dengan Git, kemudian melihat pembangunan aplikasi, interaksi antara kod dan infrastruktur, membina CI/CD, menerangkan infrastruktur sebagai kod (IaC), menguji penyelesaian yang terhasil, menyediakan pemantauan, mengumpul dan mengkaji log, dan pada akhirnya kami datang kepada SRE: menukar kebolehpercayaan kepada cerita yang boleh diukur dan boleh diurus.
Git
Pada masa kini, satu-satunya orang yang tidak menggunakan Git ialah mereka yang membeli komputer riba pertama mereka semalam. Ini adalah alat yang remeh dan ada di mana-mana, namun kita sering melihat penyalahgunaannya: daripada memaksa menolak kepada induk, kepada menyalin fail daripada Git ke pelayan melalui Ctrl-C, Ctrl-V.
Kami memberitahu anda perkara yang anda tidak patut lakukan, bagaimana anda harus melakukannya, seperti yang mereka lakukan di Southbridge.
Kami sedang melakukan latihan: asas Gita, kerja berpasukan.
Topik #1: Asas Git
- Perintah asas git init, commit, add, diff, log, status, tarik, tolak
- Aliran Git, cawangan dan tag, menggabungkan strategi
- Bekerja dengan berbilang repo jauh
Topik #2: Kerja berpasukan dengan Git
- Aliran GitHub
- Garpu, jauh, permintaan tarik
- Konflik, keluaran, sekali lagi tentang Gitflow dan aliran lain yang berkaitan dengan pasukan
Bahan tersebut disusun supaya pentadbir dan pembangun dapat melaksanakan semua amalan dalam kerja mereka dengan segera.
Dari sudut pandangan DevOps, kerja yang betul dengan Git memperkemas dan mengautomasikan proses pembangunan dan pentadbiran, menghapuskan beberapa masalah berulang dan meningkatkan produktiviti.
Pembangun DevOps
Kami melihat DevOps melalui mata pembangun: kami melancarkan persekitaran setempat, menulis aplikasi, menyediakan pemantauan dan pengelogannya, mengujinya secara setempat, mengatur penyimpanan pembolehubah/rahsia dan penemuan perkhidmatan, menonton pengesanan terbuka.
Topik #3: Bekerja dengan aplikasi dari sudut pandangan pembangunan
- Menyediakan persekitaran setempat: cadangan praktikal
- Menulis perkhidmatan mikro dalam Python (termasuk ujian)
- Menggunakan docker-compose dalam pembangunan
Topik #4: Interaksi antara kod dan infrastruktur
- Berlatih bekerja dengan konfigurasi
Akibatnya, pembangun akan melihat cara kod itu harus menghantar log, cara mengujinya dan cara ia akan dinyahpepijat pada masa hadapan. Pentadbir akan memahami keperluan pembangun: apakah ralat yang terdapat dalam kod, cara mengatur ujian untuk pembangun, cara menguji projek itu sendiri.
Pada peringkat ini, tugas utama DevOps diselesaikan: persefahaman bersama dan kerja bersama antara Devs dan Ops dibina. Ini adalah langkah penting dalam beralih daripada perkongsian tugas kepada kerjasama yang bertanggungjawab.
Akibatnya, kelajuan dan kualiti kerja meningkat.
CI / CD
Automasi moden melibatkan CI/CD. Kami akan mulakan dengan melihat automasi manual: makefiles, githooks, skrip. Mari kita lihat bila alat ini masih relevan dan bila ia tidak sepatutnya digunakan.
Kemudian mari kita lihat amalan terbaik CI moden menggunakan Gitlab sebagai contoh.
Topik #5: Pengenalan CI/CD kepada automasi
- Pengenalan kepada Automasi
- Alat (bash, buat, gradle)
- Menggunakan git-hooks untuk mengautomasikan proses
- Barisan pemasangan kilang dan aplikasinya dalam IT
- Contoh membina saluran paip "umum".
- Perisian moden untuk CI/CD: Drone CI, BitBucket Pipelines, Travis, dsb.
Topik #6: CI/CD: Bekerja dengan Gitlab
- Gitlab CI - umum
- Gitlab Runner, jenis dan aplikasinya
- Gitlab CI, ciri konfigurasi, amalan terbaik
- Peringkat CI Gitlab
- Pembolehubah Gitlab CI
- Bina, uji, gunakan
- Kawalan dan sekatan pelaksanaan: sahaja, bila
- Bekerja dengan artifak
- Templat di dalam .gitlab-ci.yml, menggunakan semula tindakan di bahagian berlainan saluran paip
- Sertakan - bahagian
- Pengurusan terpusat gitlab-ci.yml (satu fail dan tolak automatik ke repositori lain)
Kerjasama antara pentadbir dan pembangun mencapai tahap baharu: pentadbir menulis templat CI, dan pembangun mengeditnya, membina CI mereka secara bebas daripada pentadbir.
Kebergantungan pembangun pada pentadbir dikurangkan, jumlah kerja manual dikurangkan, dan masalah "satu-satunya orang yang tahu cara bekerja dengan fail make" hilang. Pelancaran berlaku dengan pasti dan cepat.
IaC
Topik Infrastruktur sebagai Kod, menggunakan Terraform sebagai contoh, akan dibincangkan oleh pentadbir awan Selectel Alexey Stepanenko. Dia akan menunjukkan kepada anda cara menggunakan dan menskala pelayan dengan cepat dan automatik, cara membungkus imej secara automatik dan cara menggunakan templat konfigurasi untuk mendapatkan mesin yang dikonfigurasikan dengan segera.
Seseorang yang telah membuat beribu-ribu penyelesaian IaC akan memberitahu anda cara melakukannya dengan betul dan perkara yang tidak boleh dilakukan.
Penyelesaian awan Selectel sesuai untuk awan Google dan Amazon dengan pengubahsuaian yang minimum.
Pekerja Southbridge Nikolai Mesropyan, menggunakan Ansible sebagai contoh, akan menunjukkan cara menggunakan aplikasi yang berfungsi tanpa masa henti dan menyemak prestasinya.
Jika anda mengedit infrastruktur secara manual (sediakan pelayan, pasang perpustakaan dan pakej seperti yang diperlukan), apabila anda cuba meningkatkan salinan persekitaran, anda perlu mengingati dan menghasilkan semula semua tindakan anda. Tugas ini dengan mudah mengambil masa 3-5 hari. Bekerja dengan infrastruktur sebagai kod memastikan anda mempunyai penerangan terkini tentang persekitaran anda yang boleh digunakan dalam beberapa minit.
Nikolay akan memberitahu anda cara menulis buku permainan, kesilapan yang berlaku, dan mengapa kadangkala buku permainan berfungsi dengan perlahan atau tidak seperti yang diharapkan. Ini adalah pengalaman selama bertahun-tahun menggunakan IaC di Southbridge.
Topik #7: Infrastruktur sebagai Kod
- IaC: Mendekati Infrastruktur sebagai Kod
- Pembekal awan sebagai penyedia infrastruktur
- Alat permulaan sistem, pembinaan imej (pembungkus)
- IaC menggunakan Terraform sebagai contoh
- Storan konfigurasi, kerjasama, automasi aplikasi
- Amalan mencipta buku permainan Ansible
- Idepotency, deklaratif
- IaC menggunakan Ansible sebagai contoh
- Pangkalan data sebagai toleransi kesalahan Kod / PostgreSQL
Infrastruktur menjadi deklaratif dan idempoten.
Pentadbir belajar mengurus infrastruktur yang kompleks: mencipta persekitaran baharu dengan cepat, mengekalkan perpaduan semua persekitaran, melihat sejarah perubahan, yang penting apabila beberapa pasukan sedang mengusahakan projek.
Pemaju boleh mengkaji infrastruktur dan membangunkan persekitarannya sendiri secara bebas.
Bonus bahagian: mencipta dan mengkonfigurasi kelompok failover pangkalan data PostgreSQL. Kami akan menyediakan buku main siap sedia yang kami gunakan di Southbridge, anda akan menggunakan kluster pada tempat latihan dan boleh menggunakan penyelesaian ini dalam syarikat anda.
Ujian dan pemantauan infrastruktur
Automasi membolehkan anda melancarkan ralat kepada seribu pelayan sekaligus. Setiap perubahan memerlukan ujian. Sebaliknya, ujian manual mengambil banyak masa sehingga menafikan faedah automasi.
Kami akan menunjukkan kepada anda dalam amalan cara menulis ujian peranan. Hasilnya, anda akan dapat menulis ujian untuk syarikat anda. Anda tidak perlu lagi mengingati tetapan yang telah anda buat; anda menerangkannya dalam ujian dan menyemak secara automatik bahawa semua penyelesaian dan tongkat sebelumnya sudah tersedia.
Kemudian kita akan belajar cara menambah semua pelayan baharu secara automatik pada pemantauan. Mari kita lihat pemantauan infrastruktur dan aplikasi secara berasingan. Kita akan tunjukkan amalan buruk dan baik.
Topik #8: Ujian infrastruktur
- Pengujian dan penyepaduan berterusan dengan Molekul dan Gitlab CI
- Menggunakan Vagrant
Topik #9: Pemantauan infrastruktur dengan Prometheus
- Mengapa pemantauan diperlukan?
- Jenis pemantauan
- Pemberitahuan dalam sistem pemantauan
- Cara Membina Sistem Pemantauan Sihat
- Pemberitahuan yang boleh dibaca manusia, untuk semua orang
- Pemeriksaan Kesihatan: perkara yang perlu anda perhatikan
- Automasi berdasarkan data pemantauan
Pemantauan yang tidak berfungsi dengan betul bukanlah pemantauan. Perniagaan tidak peduli bahawa halaman utama kedai dalam talian boleh diakses jika borang pembayaran memberikan ralat.
Pembangun dan pentadbir mengambil bahagian secara sama rata dalam menyediakan pemantauan dan penyelesaian masalah. Lebih-lebih lagi, secara tradisinya, tugas pemantauan jatuh pada pentadbir. Kursus kami akan menunjukkan kepada pembangun peranan yang mereka mainkan dalam mewujudkan pemantauan yang berkesan. Pentadbir akan menerima amalan terbaik Southbridge. Akibatnya, jumlah kerugian yang disebabkan oleh kegagalan dan kelembapan tapak web atau aplikasi akan menurun dengan cepat.
Bonus bahagian: automasi berdasarkan pemantauan. Sebagai contoh, pemantauan melaporkan bahawa beban telah tiba di tapak dan penskalaan pelayan web bermula secara automatik.
Pembalakan
Kesilapan utama apabila bekerja dengan log ialah pentadbir dan pembangun melihatnya secara langsung pada pelayan. Jika anda mempunyai lebih daripada satu pelayan, ini mengambil masa yang lama. Ini tidak selamat: pembangun log masuk ke pelayan yang tidak sepatutnya.
DevOps memerlukan pengumpulan, pemprosesan dan analisis log terpusat.
Topik #10: Melog aplikasi dengan ELK
- Aplikasi asas dan keupayaan anjal (carian, penyimpanan, ciri penskalaan, fleksibiliti penyesuaian)
- Gambaran keseluruhan kibana (ciri utama, bahasa pertanyaan, pengurusan papan pemuka, penciptaan carta)
- Semakan produk berasaskan elastik dan aplikasinya
- Mengumpul metrik dalam APM (pengesanan aplikasi)
- Selain itu: Kajian Produk Baharu - SIEM
Pengenalan pendekatan ini akan menjadikan log sebagai alat yang mudah dan mudah difahami untuk menganalisis, mengkonfigurasi dan menyahpepijat aplikasi dan infrastruktur.
SRE
Dan kita sampai kepada topik yang sedang diperhatikan oleh Southbridge dan penceramah lain mahu kekal untuk hari terakhir Slurm. Kami gembira kerana Ivan Kruglov dari Booking.com bersetuju untuk membacanya.
Projek ini hidup di dunia nyata, di mana kebolehpercayaan tidak pernah mutlak dan setiap keputusan memerlukan wang.
Apakah SLA berkaitan dengan projek yang kompleks? Katakan cara menilai bahawa tapak itu boleh diakses, tetapi imej dimuatkan dengan kelewatan. Apakah metrik SLA, ke mana untuk membawanya, bagaimana untuk mengambilnya?
Bagaimana untuk menetapkan SLA? Bagaimana untuk menahan mereka?
Topik #11: SRE
Definisi SLA, SLO, Ralat Belanjawan dan istilah menakutkan lain dari dunia SRE
SRE: Amalan Pemantauan SLI dan SLO
SRE: Amalan menggunakan Ralat Belanjawan
SRE: Pengurusan beban gangguan dan operasi (apigateway, mesh servis, pemutus litar)
Perniagaan mahukan SRE. Sekurang-kurangnya pada tahap paling mudah: patutkah saya mengambil pelayan sandaran atau mengangkatnya daripada sandaran? Pangkalan data tunggal atau kluster? Sekiranya anda memasang perlindungan DDoS secara proaktif atau hanya pada masa serangan?
Pengarah tidak akan berpuas hati dengan cerita bahawa "tapak itu berfungsi" apabila pelanggan menghubunginya dan melaporkan bahawa borang pesanan tidak dibuka.
Oleh itu, adalah penting bagi seorang jurutera DevOps untuk sekurang-kurangnya secara cetek memahami SRE untuk bercakap secukupnya dengan perniagaan tentang keperluannya.
Jumlah
semasa pentadbir dan pembangun akan belajar:
— bekerja dengan betul dengan Git;
- mengatur pembangunan tempatan;
— konfigurasikan (pentadbir) dan gunakan (pembangun) CI/CD;
— bekerja dengan infrastruktur seperti dengan kod;
- menguji infrastruktur;
— memantau infrastruktur dan aplikasi;
— konfigurasikan pembalakan;
— faham, dan sebaik-baiknya, gunakan SRE.
Untuk pembaca yang prihatin, gunakan kod promosi habrapost untuk diskaun 15%.
Kami sedang menyediakan latihan dan alatan untuk semua mata. Supaya setiap peserta, apabila pulang dari Slurm, akan dapat membawa syarikat mereka ke peringkat DevOps yang seterusnya.
Untuk perniagaan, ini bermakna pentadbiran dan pembangunan yang lebih murah, masa henti yang dikurangkan, peningkatan kebolehpercayaan, penghantaran ciri yang lebih pantas dan penghapusan pepijat.
Sumber: www.habr.com
