Halo, Habr! Nama saya Valentine, saya CTO di Lamoda, tempat saya bekerja hampir sejak berdirinya perusahaan. Bertahun-tahun, seluruh tim yang kami berlari sangat cepat sehingga tidak mungkin untuk berhenti sedikit dan berbicara tentang diri kita sendiri Saya pikir waktunya telah tiba.

Tampaknya Lamoda adalah salah satu pelopor Internet Rusia, tetapi kami baru berusia tujuh tahun. Sejak didirikan pada 2011 hingga saat ini, perusahaan kami telah berkembang dari 11 karyawan menjadi lebih dari lima ribu. Setiap bulan,> 10 juta orang mengunjungi situs kami. Faktanya, kami adalah pendatang baru di IT Rusia yang mapan, dan sebagai hasilnya, dalam waktu sesingkat itu kami dapat mengejar ketinggalan dan melampaui banyak orang terhormat.
Saya harap kami akan memberi tahu Anda sedikit tentang pencapaian, kegagalan, pengalaman yang paling berguna dan menarik kami, serta tugas apa yang dihadapi tim kami setiap hari. Kami akan mempertimbangkan posting ini kenalan kami.
Pada 2011, kami hanya mengembangkan persiapan konten dan pembelian stok untuk dijual secara independen, yang lainnya di-outsourcing-kan. Sekarang kami melakukan semuanya sendiri. Kami mengawasi pengoperasian gudang lima tingkat kami sendiri seluas lapangan sepak bola, tiga pusat kontak, dan pengiriman ke pelanggan. Terlepas dari kenyataan bahwa Rusia memiliki budaya IT yang sangat tinggi, perusahaan-perusahaan besar baru saja mulai membenamkan diri dalam cara membangun infrastruktur seperti itu, dan di Lamoda mereka telah berhasil mengikuti jalur ini selama bertahun-tahun.
Jadi apa yang dibuat di belakang panggung teknis Lamoda? Sebenarnya, ini adalah lima unit besar:
- departemen pengembangan (departemen otomatisasi proses bisnis dan departemen pengembangan toko online)
- Departemen dukungan TI (infrastruktur dan keamanan)
- Departemen implementasi dan dukungan sistem ERP
- departemen dukungan layanan
- departemen data dan analisis

Semuanya dalam GO
Kisah ini adalah tentang orang-orang yang sedang mengembangkan platform e-commerce, dan di waktu senggang mereka mengendarai foto dan mengikuti tur bar bir kerajinan.
Adalah di departemen pengembangan e-commerce bahwa platform menciptakan segala sesuatu yang digunakan pelanggan Lamoda setiap hari: versi desktop dan mobile dari situs dan aplikasi untuk iOS dan Android. Kompleksitas pekerjaan tidak dalam implementasi fungsi untuk pengguna, tim perlu meluncurkan fitur-fitur baru secepat mungkin, tetapi tanpa kehilangan kualitas dan stabilitas, dan mendukung proyek di empat negara: Rusia, Kazakhstan, Ukraina dan Belarus. Sampai saat ini, karyawan departemen ini dapat menjalankan layanan setiap minggu, jika perlu, dan bekerja di bawah moto: "Semuanya dalam GO."
Tim terutama dipecah berdasarkan platform (desktop, situs seluler, aplikasi seluler), ada juga empat tim untuk layanan backend. Setiap tim mencakup pengembang depan dan belakang, analis, penguji, dan manajer produk.
Untuk memberikan perubahan sesering mungkin, kami mempraktikkan pendekatan ini untuk iterasi pengembangan: pada awal sprint kami berhipotesis, dan merilis fitur baru dalam produksi, kami mengujinya, sehingga menyadari apakah inovasi itu bermanfaat untuk produk dan apakah kehidupan pengguna Lamoda semakin baik. Sebagai contoh, belum lama ini kami belajar untuk menunjukkan berapa banyak orang yang dilihat oleh seseorang telah dibeli baru-baru ini. Untuk melakukan ini, kami mengambil tugas produk, menemukan MVP di dalamnya, dan menentukan strategi implementasi tercepat. Sebelum meluncurkan segala sesuatu dalam produksi, kami menentukan bahwa peningkatan konversi akan menjadi kriteria keberhasilan. Menurut hasil uji A / B, konversi lebih tinggi pada grup tempat fitur diperkenalkan.
Beberapa waktu yang lalu, Lamoda memulai transisi besar-besaran ke layanan-layanan mikro. Apa yang ini berikan pada kita? Yang pertama adalah ambang masuk rendah untuk pengembang baru atau spesialis dari tim lain. Yang kedua adalah dukungan yang mudah dan perubahan sistem layanan microser sehingga alur kerjanya dipenuhi dengan hal yang menarik, dan bukan hanya rasa sakit. Tetapi sejumlah kecil monolit (misalnya, sistem yang bertanggung jawab atas distribusi pesanan) masih hidup bersama kami, dan saat ini sulit dan tidak nyaman untuk menyingkirkannya.
Kami mengumpulkan Lamoda dari awal tanpa SMS dan pendaftaran
Semua orang tahu bahwa tidak ada pekerjaan tanpa gagal. Setiap kali, menyelesaikan masalah dan meluncurkan kode, kami berharap bahwa ini dia, kebahagiaan, dan kemudian tidak ada lagi pengalaman. Berbicara tentang pengalaman itu, perlu dicatat fakta bahwa karyawan departemen pengembangan platform e-commerce, seperti pejuang sejati, dapat secara harfiah mengumpulkan Lamoda dari awal. Itu terjadi bahwa, karena pengaturan jaringan yang salah, cluster kami memutuskan bahwa itu bukan lagi cluster dan menolak untuk ada. Beruntung itu pada malam hari, dan dalam empat jam kami berhasil menghirup kehidupan ke Lamoda. Kami punya cerita lain.
Timur Nurutdinov, Kepala Pengembangan platform e-commerce:Sebelum mulai bekerja pada fungsionalitas baru, kami, seperti biasa, duduk untuk mengevaluasi sumber daya apa yang kami butuhkan. Empat tim terlibat dalam proyek ini. Kami memperhitungkan prioritas tugas lain, jadwal liburan kolega dan biaya tenaga kerja. Hasilnya, kami mendapat 32 minggu.Delapan bulan untuk mengimplementasikan satu fitur. Itu terdengar liar. Dengan bantuan perubahan sederhana, kami dapat mengurangi waktu pemasaran menjadi 4 minggu, dan inilah yang kami lakukan.Trik tim platform adalah bahwa mereka dapat melakukan bagian depan dan belakang. Beginilah cara mereka bekerja di departemen kami. Namun di bagian belakang, ada kebutuhan untuk membuat perubahan pada banyak sistem terintegrasi, dan kompetensi tim platform tidak memungkinkan hal ini. Kami memulai proyek Sizes yang terkait dengan menyediakan klien dengan grid dimensi paling detail, dan tidak ingin menunggu. Pertama saya harus mencari tahu sistem mana yang perlu diubah, lalu kami membentuk tim kecil dengan kompetensi yang sesuai. Jadi kami menghapus blok untuk menunggu sumber daya dari tim platform lain dan mendapatkan tim produk. Adapun tugas-tugasnya, kami bertindak dengan metode kami sendiri yang telah dicoba dan diuji - kami memecah tugas-tugas besar menjadi yang lebih kecil, membuatnya, memasukkannya ke dalam prod dan menguji hipotesis kami pada pengguna untuk memahami apakah kami bergerak ke arah yang benar. Setelah percobaan yang begitu sukses dengan penciptaan tim produk, kami berencana untuk mengatur tim di area di mana karyawan membentuk satu unit dan mengembangkan arah tertentu, misalnya, pengiriman.Automasi Gudang dan Interval Pengiriman 15 Menit
Orang-orang otomatisasi tidak punya waktu untuk bosan, dan tugas-tugas di sini tidak sepele. Misalnya, cara mengunggah jutaan produk dengan tingkat kualitas konten yang sama (otomatisasi studio foto) ke situs, cara memproses dan memperhitungkan semua pesanan dari situs, memperhitungkan ratusan mitra pasar dan empat negara CIS, cara mengumpulkan pesanan di gudang berlantai lima dalam tiga jam, bagaimana mewujudkan pengiriman ke klien pada hari berikutnya pada interval 15 menit yang dipilihnya di 600 kota hanya di Rusia. Dan untuk hidangan penutup, mereka menjual seluruh pertanian ini ke mitra B2B dan arah Marketplace.
Pekerjaan ini terutama dilakukan dalam PHP, untuk otomatisasi gudang kami menggunakan Java plus Docker / Kubernetes, tumpukan Atlassian, PostgreSQL, RabbitMQ.



Kami memiliki sistem bucket untuk merencanakan sprint di departemen kami: 60% adalah proyek ember, 20% utang teknis, 10% sprint diberikan kepada bug prioritas, dan 10% adalah sesuatu akan terbang dari luar. Antara lain, perawatan backlog, poker perencanaan online, stand-up, retro, review kode 360, pengumpulan dan analisis metrik dasar, pemantauan (Prometheus, Grafana, Icinga, Kibana), secara umum, semuanya seperti di
rumah terbaik tim pengembangan
Paris .
Berikut adalah beberapa cerita lucu dari Pavel Savelyev, kepala departemen otomatisasi proses bisnis.Tidak mungkin menguji dan memperhitungkan semuanya, karena orang berpartisipasi dengan satu atau lain cara dalam setiap proses bisnis. Dan orang-orang, seperti yang Anda tahu, adalah makhluk rasional dan selalu mencoba untuk datang dengan sentuhan licik yang membuat hidup mereka lebih mudah. Tetapi ketika gagasan yang sama ini bertentangan dengan proses bisnis yang dijelaskan, cerita lucu terjadi.Suatu kali kami memperhatikan bahwa sistem yang bertanggung jawab untuk mendistribusikan barang di gudang menerima pindaian seratus kali lebih banyak dalam satu menit dari biasanya. Ternyata staf gudang menemukan sistem peretasan dan memutuskan untuk memfasilitasi pekerjaan mereka. Meninggalkan untuk makan siang, mereka menjepit tombol pada pemindai sehingga mereka tidak akan dikeluarkan dari sesi pengguna. Dan hack-work ini akan terus bekerja, tetapi di salah satu titik (kotak khusus untuk barang-barang di gudang) ada banyak item kecil. Pemindai, seperti senapan mesin Maxim, mengolah barang-barang dari penembak naas, yang menyebabkan lompatan tajam dalam beban, gangguan sistem dan deteksi bug yang jelas dari para pengembang. Tentu saja, kami memperbaiki bug, tetapi saya pikir staf gudang tidak akan membiarkan kami bosan dan akan menghasilkan sesuatu yang baru.Kasus kedua juga terjadi di gudang. Kisah ini disebut "43 Kaos Menyenangkan." Tidak selalu mungkin untuk segera mengenali kompleksitas algoritma, terutama ketika Anda memecahkan masalah ransel dan Anda perlu menempatkan objek N secara optimal dalam volume tertentu (masalah pengemasan tiga dimensi). Ternyata jika 43 t-shirt identik sampai ke gudang kami, sistem yang bertanggung jawab untuk mengemas barang menghasilkan begitu banyak kombinasi distribusi untuk kasus ini sehingga cukup norak untuk memori. Kami meninjau algoritme dan kami tidak lagi takut dengan kaos yang identik - tetapi apa yang terjadi jika ratusan pasang kaus kaki masuk ke kemasannya, produsen mana yang memutuskan untuk menjual satu per satu? Ini layak dipertimbangkan ...Dalam situasi apa pun yang tidak dapat dipahami, fokuslah pada data
Perubahan mengenai analitik di Lamoda telah lama tertunda, dan tahun ini kami mulai menggabungkan departemen analitik yang berbeda dengan infrastruktur analitik dan kebiasaan kami menjadi satu departemen besar. Mengapa Alasan utama adalah bahwa karyawan yang berada dalam tim analitik yang berbeda sering melakukan pekerjaan yang sama, tetapi dengan cara yang berbeda, dan kemudian tidak jelas data mana yang menjadi fokus. Data berbeda - ini umumnya normal, karena tim berasal dari tugas dan prasyarat yang berbeda, tetapi Anda perlu menghabiskan banyak waktu untuk memahaminya.
Karyawan departemen adalah penginjil sejati bahwa semua keputusan di perusahaan harus dibuat berdasarkan data, oleh karena itu setiap hari mereka dengan antusias mempelajari fenomena bisnis dalam data, menganalisis dan mengekstraksi nilai dari data, mengevaluasi bagaimana mereka dapat diterapkan. Alat utama adalah SQL, serta Spark, Hadoop, Python untuk analisis data, Excel, SAP BusinessObjects untuk pelaporan dan Tableau untuk visualisasi.
Salah satu tugas penting tim adalah personalisasi pengalaman pelanggan: kami menciptakan solusi di mana setiap pengguna akan ditunjukkan daftar produk dan penawaran yang paling relevan, dan semua layanan kami akan disesuaikan secara individual untuk setiap klien individu, dan bukan kepada grup, seperti yang dilakukan sekarang.
Sergey Gilev, Kepala Departemen Data dan Analisis:Departemen analitik saat ini menghadapi dua tugas besar: yang pertama adalah konsolidasi ekonomi yang beragam yang kami miliki sebelum merger. Untuk pekerjaan efektif lebih lanjut, kita perlu metrik umum, infrastruktur analitik, dan proses. Tujuan kedua adalah proyek untuk membuat dashboard analitik yang menggambarkan "kesehatan" dari proses tertentu atau seluruh perusahaan. Dengan demikian, kami berupaya untuk secara signifikan meningkatkan ketersediaan data bagi para pembuat keputusan, dan menanamkan dalam diri setiap orang pendekatan kami untuk bekerja: fokus pada data dalam situasi yang tidak dapat dipahami.Kisah langkah besar: bagaimana kami meluncurkan gudang kami sendiri tanpa disadari oleh pelanggan
Ditinggalkannya outsourcing secara bertahap membawa kami pada fakta bahwa sudah waktunya untuk memesan gudang kami sendiri. Selain semua persiapan untuk otomatisasi proses operasional di gudang baru, kami menetapkan tujuan untuk tidak mengurangi jangkauan dan tidak menghentikan penjualan. Pakar kami telah mengembangkan solusi berdasarkan penciptaan gudang "virtual" tambahan. Dengan demikian, di seluruh relokasi, kami memiliki tiga jenis gudang: lama, baru dan sedang dalam perjalanan. Karena barang-barang diangkut secara bertahap oleh kelompok-kelompok truk, stok yang berakhir di batch berikutnya dipindahkan ke gudang "virtual". Kami memiliki jadwal bongkar muat, jadi kami tahu persis berapa lama stok akan transit dan mengarahkan pelanggan ke tanggal pengiriman yang benar untuk pesanan.
Kami juga membuat dan menerapkan algoritme rumit yang memungkinkan kami untuk menyeimbangkan kecepatan pemindahan dan mengatur penerimaan semua barang pesanan dalam satu pengiriman: ketika seseorang memesan beberapa barang yang secara fisik dapat berada di gudang yang berbeda, kami mencoba mengatur perakitan lengkap pesanan di salah satu gudang, Dan keuntungan diberikan ke gudang mitra, karena proses perakitan di sana sudah didebet di sana.
Pekerjaan meluncurkan gudang kami sendiri berjalan lancar selama tiga bulan, di mana tidak ada klien yang terluka.
Mempersiapkan Black Friday atau bagaimana kita bertahan dalam periode kecanduan belanja
Beberapa tahun yang lalu kami takut Black Friday sebagai monster yang menakutkan. Kami tidak tahu bagaimana sistem kami akan menanggapi aliran pesanan seperti itu. Tetapi pekerjaan terus-menerus pada refactoring dan pengembangan infrastruktur telah menstabilkan sistem kami dan membuat mereka dapat diprediksi. Black Friday terakhir adalah hari paling membosankan di tahun ini. Spesialis sistem kunci dan DevOps hanya duduk di meja, bermain video game atau menonton film dan menonton keadaan infrastruktur kami hanya dengan satu mata. Tetapi persiapan untuk hari ini sedikit berbeda.
Kami menjadwalkan tes stres berdasarkan perkiraan bisnis, kemudian pengembang dan administrator mengkonfigurasi sistem untuk lulus tes. Beberapa bulan pengujian, kerusakan, koreksi, dan hanya setelah itu kami yakin bahwa kami siap untuk gelombang pengguna dan pesanan.

Ruang perang - pusat operasi kami di Black FridayKeputusan yang kami buat untuk bertahan di Black Friday tergantung pada hambatan yang kami temui selama pengujian. Beberapa tahun yang lalu, kami secara fisik mengganti switch jaringan untuk menghilangkan masalah bandwidth. Tindakan lain yang biasanya kami lakukan untuk mengurangi beban adalah dengan menonaktifkan subsistem yang tidak kritis.
Ringkasan
Selama bertahun-tahun, kami telah berusaha untuk terus meningkatkan dan menyederhanakan alur kerja kami, mengumpulkan umpan balik dari karyawan perusahaan, membangun saluran bottom-up dan sepenuhnya mendukung ide dan konsep baru.
Seseorang akan mengatakan bahwa Lamoda adalah kebun binatang mutlak teknologi dan sistem. Kami sering bercanda tentang topik ini sendiri dan berkata: "Lebih baik tanyakan apa yang tidak kita gunakan." Namun dalam hal ini, fakta penting adalah bahwa kami terus mengembangkan tumpukan dan teknologi, dan pada saat yang sama tidak ada pilihan yang tidak dipikirkan. Ini membantu kami dengan tinjauan Arsitektur dari setiap layanan dan proyek baru, panduan untuk keahlian karyawan yang ada, serta pemeliharaan
Radar Teknologi , perincian dan argumen yang akan kami sampaikan dengan senang hati di pos berikutnya. Dan kami juga senang merayakan hal ini.