เราประหยัดเวลา ความเครียด และชั่วโมงการทำงาน

โครงการของเรามักจะเป็นระดับภูมิภาค และลูกค้ามักจะเป็นกระทรวง แต่นอกเหนือจากภาครัฐแล้ว องค์กรเอกชนยังใช้ระบบของเราอีกด้วย ในทางปฏิบัติไม่มีปัญหากับพวกเขา

ดังนั้นโครงการหลักจึงเป็นโครงการระดับภูมิภาคและบางครั้งก็มีปัญหาเกิดขึ้น ตัวอย่างเช่น ในด้านประสิทธิภาพ เมื่อในภูมิภาคมีผู้ใช้อันมีค่าของเรามากกว่า 20 รายในช่วงเวลาของการเปิดตัวฟังก์ชันใหม่บนเซิร์ฟเวอร์ผลิตภัณฑ์ มันเป็นความเจ็บปวด…

ฉันชื่อ Ruslan และฉันสนับสนุนระบบข้อมูลของ BARS Group และ การพัฒนาบอทนักฆ่าสำหรับ DBA อนุกรมที่มีความรุนแรง. โพสต์นี้ไม่เหมาะสำหรับคนใจเสาะ - มีตัวอักษรและรูปภาพมากมาย

เราประหยัดเวลา ความเครียด และชั่วโมงการทำงาน

/awr

แอปพลิเคชันบางตัวของเราทำงานบน Oracle DBMS นอกจากนี้ยังมีโครงการบน PostgreSQL DBMS Oracle มีสิ่งที่ยอดเยี่ยม - การรวบรวมสถิติเกี่ยวกับโหลดบน DBMS ซึ่งเน้นปัญหาที่มีอยู่และยังให้คำแนะนำในการกำจัด - Automatic Workload Repository (AWR) จนถึงจุดหนึ่ง (คือในช่วงเวลาแห่งความเจ็บปวด) นักพัฒนาขอให้รวบรวมอย่างต่อเนื่อง รายงาน AWR สำหรับการวิเคราะห์ประสิทธิภาพ. เราไปที่เซิร์ฟเวอร์ DBMS โดยสุจริต รวบรวมรายงาน นำมาให้เรา และส่งไปยังการผลิตเพื่อทำการวิเคราะห์ พอครั้งที่ 5 ก็รำคาญ...หลังวันที่ 10 ก็หงุดหงิด...

เพื่อนร่วมงานคนหนึ่งของฉันเคยแสดงความคิดเห็นว่าทุกสิ่งที่ทำมากกว่าหนึ่งครั้งควรเป็นไปโดยอัตโนมัติ พูดตามตรงจนกระทั่งถึงช่วงเวลาที่เกิดการระคายเคือง ฉันไม่ได้คิดถึงเรื่องนี้เลย และพยายามทำให้ทุกสิ่งที่สามารถทำให้เป็นอัตโนมัติได้โดยอัตโนมัติ แต่บ่อยครั้งที่สิ่งนี้ไม่อยู่ในความต้องการและเป็นการวิจัยมากกว่าลักษณะการใช้งาน

แล้วฉันก็คิดว่า: “ผู้ดูแลระบบไม่จำเป็นต้องสร้างรายงาน...”. ท้ายที่สุดแล้ว การรวบรวมรายงานหมายถึงการเรียกใช้สคริปต์ sql @$ORACLE_HOME/rdbms/admin/awrrpt.sql และนำรายงานจากเซิร์ฟเวอร์ไปยังที่ของคุณ... ใช่แล้ว เราไม่อนุญาตให้มีการพัฒนาเพื่อการใช้งานจริง

จากนั้นฉันก็ค้นหาข้อมูลที่จำเป็นใน Google สร้างฟังก์ชันจากบทความเกี่ยวกับฐานทดสอบ รันสคริปต์และปาฏิหาริย์ - รายงานได้รับการรวบรวมและสามารถบันทึกไว้ในเครื่องได้ สร้างฟังก์ชันที่มักต้องใช้รายงาน AWR และบอกนักพัฒนาถึงวิธีใช้งาน

ในช่วงเวลานี้ ในเวลาว่าง หลังจากพูดคุยกับ @BotFather ฉันได้สร้าง Telegram bot สำหรับตัวเองเพื่อความสนุกสนาน ฉันใช้ฟังก์ชันง่ายๆ ที่นั่น - แสดงเวลาปัจจุบันอัตราแลกเปลี่ยนสภาพอากาศสอนให้ส่งคำชมเชยภรรยาของฉัน (แฟนสาว) ตามกำหนดเวลา บางที ในเวลานั้น การส่งคำชมอาจเป็นฟังก์ชันยอดนิยมที่สุดของบอทของฉัน และภรรยาของฉันก็ชื่นชมมัน

ดังนั้น. นักพัฒนาเขียนถึงเราใน Telegram เราส่งรายงานให้พวกเขาใน Telegram... จะเกิดอะไรขึ้นถ้าพวกเขาไม่ได้เขียนถึงเรา แต่เขียนถึงบอทล่ะ? ท้ายที่สุดมันจะดีกว่าสำหรับทุกคนรายงานจะได้รับเร็วขึ้นและที่สำคัญที่สุดคือข้ามเราไป นี่คือที่มาของแนวคิดเกี่ยวกับฟังก์ชันยอดนิยมตัวแรกสำหรับบอทของฉัน

ฉันเริ่มนำไปปฏิบัติ ฉันทำมันอย่างดีที่สุดเท่าที่จะทำได้ใน PHP (ตัวแอปพลิเคชันของเราเองอยู่ใน PHP ฉันเชี่ยวชาญเรื่องนี้มากกว่าใน Python) ฉันไม่ใช่ผู้เขียนโค้ดที่ดี ดังนั้นฉันจะไม่แสดงโค้ดของฉันให้คุณดู :)

บอทอาศัยอยู่ในเครือข่ายองค์กรของเราและสามารถเข้าถึงโปรเจ็กต์บางอย่าง รวมถึงฐานข้อมูลเป้าหมาย เพื่อไม่ให้ยุ่งยากกับพารามิเตอร์ในทีมหรือเมนู ฉันจึงเพิ่มฟังก์ชันนี้ในการแชทกลุ่มพร้อมการแจ้งเตือนการติดตาม วิธีนี้ทำให้บอทรู้ได้ทันทีว่าฐานข้อมูลใดที่จะรวบรวมรายงาน

ได้รับคำสั่งเช่น /awr Nโดยที่ N คือจำนวนชั่วโมงเต็มที่ต้องการรายงาน (โดยค่าเริ่มต้น - 1 ชั่วโมง) แม้จะเป็นเวลาหนึ่งสัปดาห์ หากไม่ได้รีสตาร์ทฐานข้อมูล บอทจะเริ่มทำงานทันที รวบรวมรายงาน เผยแพร่เป็น หน้าเว็บและทันที (เกือบตรงนั้น) จะให้ลิงก์ไปยังรายงานที่จำเป็นมาก

ตามลิงก์และนี่คือรายงาน AWR:

เราประหยัดเวลา ความเครียด และชั่วโมงการทำงาน

ตามที่คาดไว้ นักพัฒนาจัดการกับการสร้างรายงานดังกล่าว และบางคนถึงกับขอบคุณเราด้วย

ด้วยความชื่นชมในความสะดวกของทีม ผู้จัดการโครงการจากภูมิภาคอื่นๆ ก็ต้องการสิ่งเดียวกัน เนื่องจากพวกเขาได้รับประโยชน์สูงสุดจากลูกค้า และกังวลเกี่ยวกับประสิทธิภาพและความพร้อมใช้งานของระบบ ฉันเพิ่มบอทในการแชทอื่น ๆ พวกเขายังคงใช้มันอยู่และฉันดีใจกับมัน

ต่อมาเพื่อนร่วมงานจาก CIT พบว่าเรารวบรวมรายงานอย่างไรและต้องการทำเช่นนั้นด้วย ฉันไม่ได้เพิ่มพวกเขาในการแชทของเรา ฉันสร้างแชทแยกต่างหากพร้อมการสร้างรายงานตามกำหนดเวลาและตามคำขอ

/pgBadger

เรายังมีแอปพลิเคชันอื่นๆ ใน PHP ร่วมกับ PostgreSQL ฉันปรับใช้การรวบรวมรายงาน pgBadger สำหรับผู้ที่ต้องการโดยใช้หลักการเดียวกัน - ในการแชทเป็นกลุ่ม ตอนแรกพวกเขาใช้มัน แต่แล้วพวกเขาก็หยุด ฟังก์ชั่นถูกตัดออกโดยไม่จำเป็น

/หน้าที่

แผนกของเรามีกะกลางคืนและมีกำหนดการตามไปด้วย มันอยู่ใน Google ชีต การค้นหาลิงก์ เปิดแผนภูมิ ค้นหาตัวเองนั้นไม่สะดวกเสมอไป... อดีตเพื่อนร่วมงานคนหนึ่งของฉันก็เล่นกับบอท Telegram ของเขาและแนะนำมันในการแชทของแผนกของเรา แจ้งการเริ่มกะปฏิบัติหน้าที่ของพนักงานแผนก บอทจะแยกวิเคราะห์กำหนดการ กำหนดบุคคลที่ปฏิบัติหน้าที่ตามวันที่ปัจจุบัน และรายงานผู้ที่ปฏิบัติหน้าที่ในวันนี้ตามกำหนดการหรือตามคำขอ มันยอดเยี่ยมและสะดวกสบาย จริงอยู่ ฉันไม่ชอบรูปแบบของข้อความเลย นอกจากนี้ สำหรับพนักงานของแผนกอื่น (เช่น BC “การแพทย์”) ข้อมูลเกี่ยวกับผู้ที่ปฏิบัติหน้าที่ในทิศทางอื่นนั้นไม่จำเป็นจริงๆ แต่คุณจำเป็นต้องรู้ว่าใครปฏิบัติหน้าที่ใน “การแพทย์” ในกรณีที่เกิดปัญหา ฉันตัดสินใจ "ยืม" ฟังก์ชั่นนี้ แต่เปลี่ยนสิ่งที่ฉันไม่ชอบ ฉันสร้างรูปแบบข้อความที่สะดวกสำหรับตัวเองและผู้อื่น โดยลบข้อมูลที่ไม่จำเป็นออก

/tnls

หลังจากลองใช้ระบบอัตโนมัติโดยใช้บอต Telegram ก็มีแนวคิดต่างๆ มากมายปรากฏขึ้น แต่ฉันต้องการทำสิ่งที่จำเป็นอย่างเคร่งครัด ฉันตัดสินใจที่จะเป็นผู้นำ สถิติการร้องขอ เพื่อเข้าถึงโครงการของลูกค้าของเรา เราได้ใช้สิ่งที่เรียกว่า "เซิร์ฟเวอร์กระโดด" หรือเซิร์ฟเวอร์ส่งต่อ การเชื่อมต่อ VPN จะเพิ่มขึ้น จากนั้นพอร์ตแอปพลิเคชัน ฐานข้อมูล และการส่งต่อเสริมอื่นๆ จะถูกส่งต่อไปยังเครือข่ายท้องถิ่นของเราผ่าน ssh เพื่อให้เข้าถึงโครงการของพนักงานของเราได้อย่างง่ายดาย โดยไม่มีปัญหากับการเชื่อมต่อ VPN สิ่งที่คุณต้องทำคือตั้งค่าการเชื่อมต่อ VPN กับเครือข่ายองค์กรของเรา

สถิติของคำขอแสดงให้เห็นว่า บ่อยครั้งหลังจากที่หนึ่งในทันเนลล้มเหลว (เช่น ในกรณีของปัญหาเครือข่าย เนื่องจากการหมดเวลา เป็นต้น) ผู้คนติดต่อเราเกี่ยวกับการกู้คืนการเข้าถึงโปรเจ็กต์ ในกรณีส่วนใหญ่ แค่รีสตาร์ทการเชื่อมต่อก็เพียงพอแล้ว และทุกอย่างเรียบร้อยดี มาทำกันเอง นี่คือคำสั่ง:
เราประหยัดเวลา ความเครียด และชั่วโมงการทำงาน

คุณ “หลุด” เข้าไปในรายการเมนูที่ต้องการ เลือกโปรเจ็กต์ของคุณ รอสักครู่ แล้วทุกคนก็พอใจและพอใจ...

เมื่อได้รับคำสั่ง โดยมีการเคลื่อนไบต์และบิตเล็กน้อย บอทจะเชื่อมต่อกับเซิร์ฟเวอร์การส่งต่อ โดยรู้ล่วงหน้าว่าการส่งต่อใดจำเป็นต้องรีสตาร์ท และทำงานได้ - คืนการเชื่อมต่อกับโปรเจ็กต์ ฉันเขียนคำแนะนำเพื่อให้คุณสามารถแก้ไขปัญหาดังกล่าวได้ด้วยตัวเอง และผู้คนติดต่อเราเฉพาะในกรณีที่เครื่องมือที่ให้มาใช้งานไม่ได้...

/ecp_to_pem

สถิติเพิ่มเติมแสดงให้เห็นว่ามักจำเป็นต้องแปลง EDS Crypto Pro ในรูปแบบ pem(Base64) สำหรับการบูรณาการต่างๆ และเรามีการบูรณาการอยู่ค่อนข้างมาก ภารกิจ: นำคอนเทนเนอร์คัดลอกไปยังคอมพิวเตอร์ Windows ที่ติดตั้งยูทิลิตี้ P12FromGostCSP (ชำระเงินแล้ว) แปลงเป็น pfx จากนั้นแปลง pfx โดยใช้ OpenSSL (พร้อมรองรับการเข้ารหัส GOST) เป็น pem ไม่สะดวกนัก แต่คุณต้องการเพียงปลายนิ้วสัมผัส

Google ได้กลับมาช่วยเหลืออีกครั้ง พบ ประโยชน์ของคนใจดีบางคน. ฉันประกอบมันตามที่เขียนไว้ใน README - มันใช้งานได้ ฉันสอนบอทให้ทำงานกับยูทิลิตี้นี้และได้รับการแปลงแทบจะในทันที
เราประหยัดเวลา ความเครียด และชั่วโมงการทำงาน

เมื่อถึงเวลาของการดำเนินการขั้นสุดท้าย มีการออกคำสั่งให้เปลี่ยนเป็นรูปแบบการเข้ารหัสใหม่ - gost-2012 เท่าที่ฉันจำได้ยูทิลิตี้ในขณะนั้นใช้งานได้กับ GOST แบบเก่าเท่านั้น (2001) บางทีอาจเป็นยูทิลิตี้ที่คล้ายกันจากบุคคลใจดีอีกคนฉันจำไม่ได้แน่ชัด
หลังจากเปลี่ยนไปใช้ GOST ใหม่ ฟังก์ชันการทำงานของบอทจะถูกลบออกด้วยเหตุผลด้านความปลอดภัย นำไปใช้ในคอนเทนเนอร์นักเทียบท่า

Dockerfile ในกรณีที่ใครต้องการมัน:

FROM ubuntu:16.04                                                                                                                                                                        
RUN apt update && apt -y install git sudo wget unzip gcc g++ make &&                        
   cd /srv/ && git clone https://github.com/kov-serg/get-cpcert.git &&                     
   cd get-cpcert && chmod +x *.sh && ./prepare.sh && ./build.sh &&                         
   mkdir -p /srv/{in,out} &&                                                               
   echo '#!/bin/bash' > /srv/getpem.sh &&                                                  
   echo 'cd /srv/get-cpcert' >> /srv/getpem.sh &&                                          
   echo './get-cpcert /srv/in/$CONT.000 $PASS > /srv/out/$CONT.pem' >> /srv/getpem.sh &&   
   chmod +x /srv/getpem.sh                                                                  ENTRYPOINT /srv/getpem.sh

ในการแปลง คุณต้องวางคอนเทนเนอร์ดั้งเดิม (ไดเร็กทอรีเช่น xxx.000) ลงในไดเร็กทอรี /srv/in และนำ pem ที่เสร็จแล้วไปที่ /srv/out

ในการแปลง:

 docker run -t -i -e CONT='<имя директории с контейнером(без ".000")>' -e PASS='<пароль для контейнера>' -v /srv/in:/srv/in -v /srv/out:/srv/out --name ecptopem <адрес нашего репозитория>/med/ecptopem:latest 

/emstop และ /emstart

วันหนึ่ง Oracle DBA ที่เจ๋งมากซึ่งมีประสบการณ์มากมายในด้านการบริหารและพัฒนา DBMS ได้งานในบริษัทของเรา และเขามีปัญหาทันทีในการเชื่อมต่อกับเซิร์ฟเวอร์ DBMS ด้วย ssh: เขาไม่รู้ว่าจะเชื่อมต่อที่ไหนหรืออย่างไร อธิบายการเข้าถึงไม่ชัดเจน หรือเขาไม่สามารถส่งต่อสิ่งที่เขาต้องการให้กับตัวเองได้ เรายินดีให้ความช่วยเหลือ เราบอกวิธีเชื่อมต่อให้เขาทราบ และส่งต่อผู้จัดการองค์กรให้เขา แต่สิ่งต่าง ๆ ยังไม่ได้ผลกับ ssh เพื่อนร่วมงานคนหนึ่งของฉันอธิบายง่ายๆ ว่า: DBA พันธุ์แท้ :) เราตัดสินใจว่าหากเราต้องปรับแต่งบางอย่างบนเซิร์ฟเวอร์ เราก็จะปรับแต่งเอง

บางครั้ง EM ขัดข้องภายใต้ภาระงานหนัก และหากต้องการรีสตาร์ท... คุณต้องเชื่อมต่อผ่าน ssh และรีสตาร์ทผ่านเทอร์มินัล “ผู้ดูแลระบบเก่งเรื่องนี้” เพื่อนร่วมงานคนใหม่ของเราตัดสินใจ การโหลดจำนวนมากบน DBMS ไม่ใช่เรื่องแปลกสำหรับเรา และการร้องขอให้รีสตาร์ท EM ก็เป็นเรื่องปกติเช่นกัน จากนั้นสถานการณ์เดียวกัน: ความตึงเครียด การระคายเคือง และการค้นหาวิธีแก้ไขปัญหา ดังนั้นในการแชทกลุ่มเดียวกันจึงมีคำสั่งต่อไปนี้ปรากฏขึ้น: /emstop และ /emstart

เราประหยัดเวลา ความเครียด และชั่วโมงการทำงาน

/ฆ่า

หากมีการแข่งขันที่รุนแรงในฐานข้อมูล และบางครั้งสิ่งนี้เกิดขึ้น จำเป็นต้องยกเลิกการโหลดฐานข้อมูลอย่างรวดเร็ว วิธีที่เร็วที่สุดคือการฆ่ากระบวนการที่มีปัญหา... โดยเชื่อมต่อผ่าน ssh ฆ่า -9... บอทจะช่วย!

เราประหยัดเวลา ความเครียด และชั่วโมงการทำงาน

Alexey ชื่นชมทีมและตั้งชื่อทีมด้วยความรัก - "กิลยาลก้า" หรือปืน
วันหนึ่ง หลังจากที่ได้เห็น Alexey พยายามและทนทุกข์ทรมานอย่างไร โดยเข้าสู่ /kill xxx ทุกครั้งสำหรับแต่ละกระบวนการ ฉันตัดสินใจเพิ่ม "หลายลำกล้อง" ให้กับปืนของเรา:

เราประหยัดเวลา ความเครียด และชั่วโมงการทำงาน

นั่นดีกว่า! ทุกอย่างมีไว้สำหรับคุณ Alexey แค่ทำงานที่รัก!

แน่นอนว่าทีมสำคัญดังกล่าวมีจำกัด เข้าถึงโดย user_id - "เข้าใจผิดได้" เมื่อเห็นว่า Lesha ฆ่ากระบวนการบนเซิร์ฟเวอร์ฐานข้อมูลอย่างช่ำชอง หลายคนพยายามป้อนคำสั่งด้วยหมายเลขกระบวนการสุ่ม แต่คุณไม่สามารถหลอกบอทอัจฉริยะของฉันได้ เขาก็ปฏิเสธทันที

/alertlog

ในกรณีที่ฉันทำคำสั่ง:
/alertlog <จำนวนบรรทัด> — รับจำนวนบรรทัด alertlog ที่ระบุ
บอทจะดึงบันทึกการแจ้งเตือนและส่งไปยังบริการของเรา เช่น pastebin ที่เรียกว่า pyste และส่งลิงก์ไปยังไฟล์ Paste ไปยังคำขอแชท

/ตรวจสอบ

ต่อไปก็มาขอ. ติดตามประสิทธิภาพที่แท้จริงของแอปพลิเคชันของเรา จนถึงขณะนี้ ฝ่ายสนับสนุนด้านเทคนิคของโครงการรวบรวมข้อมูลนี้ด้วยตนเอง ไม่เป็นไร! ผู้ทดสอบที่กล้าหาญของเราได้พัฒนากรณีทดสอบสำหรับสิ่งนี้ บันทึกการทดสอบผลลัพธ์ไม่สะดวกในการอ่านผู้ใช้ที่ไม่มีประสบการณ์จะใช้เวลานานในการทำความเข้าใจและไม่แน่ใจว่าจะเน้นข้อมูลที่จำเป็นหรือไม่ และเราไม่ชอบทำอะไรด้วยมือของเราในสิ่งที่เราทำไม่ได้ด้วยมือ... งานใหม่สำหรับบอท!

เราประหยัดเวลา ความเครียด และชั่วโมงการทำงาน

คำสั่ง /checks แสดงเมนูที่เรียบง่ายและไม่คลุมเครือ คราวนี้พวกเราได้เรียนรู้วิธีใช้คำสั่งนี้โดยไม่มีคำแนะนำ!

เมื่อคุณเลือกรายการที่ต้องการ การแจ้งเตือนเกี่ยวกับการเริ่มการทดสอบจะปรากฏขึ้นแทนเมนู เพื่อให้ผู้ใช้ที่ใจร้อนไม่ต้องทำการทดสอบของเรา 100500 ครั้ง:

เราประหยัดเวลา ความเครียด และชั่วโมงการทำงาน

ขึ้นอยู่กับรายการเมนูที่เลือก การทดสอบเฉพาะจะเปิดตัวจากเครือข่ายของเรา กล่าวคือ จากเครื่องที่มีบอทอาศัยอยู่ (มีการกำหนดค่า jmeter ไว้ล่วงหน้า การทดสอบที่จำเป็นตั้งอยู่...) หรือจากศูนย์ข้อมูลโดยตรง (จาก เครื่องจักรที่เตรียมไว้ถัดจากแอปพลิเคชัน) เพื่อยกเว้นการเชื่อมต่อเครือข่ายเมื่อทดสอบความล่าช้า หรือลดการเชื่อมต่อให้เหลือน้อยที่สุด

หลังจากเสร็จสิ้นการทดสอบและรับบันทึก บอทจะแยกวิเคราะห์และสร้างผลลัพธ์ในรูปแบบ “ที่มนุษย์สามารถอ่านได้”:

เราประหยัดเวลา ความเครียด และชั่วโมงการทำงาน

การรวบรวมเมตริก

ฟังก์ชันการทำงานมาถึงแล้วและผู้จัดการโครงการที่สนใจได้รับฟังก์ชันดังกล่าวสำหรับภูมิภาคของตน และผู้จัดการโครงการที่มีความเห็นอกเห็นใจคนหนึ่งกล่าวว่า “ฉันอยากได้สถิติเวลา!” มีคนจาก CIT บอกเธอว่าจะสะดวกที่จะติดตามทั้งหมดนี้ใน Zabbix แซบบิกซ์ แล้ว แซบบิกซ์...

ฉันคิดว่าฉันต้องเตรียมพร้อมสำหรับความจำเป็นในการจำลองโซลูชัน... ฉันใส่แนวคิดนั้นลงในคอนเทนเนอร์นักเทียบท่า ในคอนเทนเนอร์ jmeter จะเปิดตัวตามกำหนดเวลา (ทุกๆ 10 นาที) วางบันทึกในตำแหน่งที่แน่นอน php แยกวิเคราะห์และแสดงข้อมูลที่จำเป็นในรูปแบบของหน้าเว็บ Zabbix ใช้คีย์ web.page.get ได้รับหน้านี้ เลือกข้อมูลที่จำเป็นสำหรับองค์ประกอบที่ขึ้นต่อกันเป็นประจำและสร้างกราฟ

เราประหยัดเวลา ความเครียด และชั่วโมงการทำงาน

ฉันคิดว่ามันเปิดออกไม่เลว ด้วยการสังเกตกราฟ อันดับแรกเราจะเห็นความเร็วโดยประมาณของแอปพลิเคชัน และหากตรวจพบจุดสูงสุดบนกราฟ เราจะรู้โดยประมาณว่า "ปลั๊ก" อยู่ที่ไหน มันง่ายมาก จนถึงตอนนี้กลายเป็นที่ต้องการเพียงภูมิภาคเดียวเท่านั้น แต่ฉันพร้อมที่จะทำซ้ำสำหรับผู้ที่สนใจ

การพัฒนาโปรแกรมประยุกต์

สถิติเกี่ยวกับงานที่คล้ายกันได้ก่อให้เกิดแนวคิดเพิ่มเติมในการทำให้งานง่ายขึ้นและอำนวยความสะดวกมากขึ้น ในบางโปรเจ็กต์ บนแอปพลิเคชันเซิร์ฟเวอร์ จำเป็นต้องติดตั้งคอนเทนเนอร์ Crypto Pro ที่สำคัญ ซึ่งมีหลายคอนเทนเนอร์ และลายเซ็นดิจิทัลจะหมดอายุเมื่อเวลาผ่านไป บางครั้ง 2 งานมาถึงต่อวัน แต่ฉันคิดว่ามันไม่ปลอดภัยที่จะใช้บอทเพื่อจุดประสงค์เหล่านี้ และตัดสินใจว่าจะสร้างฟังก์ชันการทำงานในแอปพลิเคชันโดยตรง โดยธรรมชาติด้วยการอนุญาตและตรวจสอบสิทธิ์การเข้าถึง หากคุณมีสิทธิ์ที่จำเป็น รายการเมนูเพิ่มเติมจะพร้อมใช้งานสำหรับการทำงานกับลายเซ็นดิจิทัล การติดตั้ง การลบ การดูข้อมูล ฯลฯ ฟังก์ชั่นนี้อยู่ระหว่างการพัฒนา ปรากฎว่าไม่ใช่เรื่องยาก คุณเพียงแค่ต้องอ่านคำแนะนำที่มีอยู่เล็กน้อย ดูตัวอย่างโค้ด ถามเพื่อนร่วมงานที่มีประสบการณ์ในการพัฒนามากกว่า แล้วจึงลงมือทำ ในระหว่างกระบวนการวิจัย มีแนวคิดที่จะเพิ่มลงในแอปพลิเคชัน ฉันจะไม่จัดทำแผนนโปเลียน - มีการพัฒนา ให้ทุกคนสนใจเรื่องของตัวเอง แต่ถึงแม้จะน่าสนใจ แต่ฉันก็ทำเอง

แผน

ดังที่ฉันได้กล่าวไปแล้ว แนวคิดที่แตกต่างกันมากมายเกิดขึ้นเพื่อใช้บอทของเรา และไม่เพียงแต่ - โดยทั่วไปแล้ว สมมติว่าแนวคิดสำหรับ "จุดอัตโนมัติ" ซึ่งหลายแนวคิดถูกลืมไป เนื่องจากฉันไม่มีเวลาเขียนมันลงไป ตอนนี้ฉันพยายามเขียนทุกสิ่งที่อยู่ในใจและฉันแนะนำให้คนอื่นทำเช่นเดียวกัน

แต่อเล็กซี่ก็ไม่ลืมที่จะอธิษฐาน จากล่าสุด:
/kill_sqlSQL_ID — ฆ่าเซสชันทั้งหมดด้วยคำขอ SQL_ID นี้
/kill_block - ฆ่าเซสชันการบล็อกรูท
/show_em – แสดงภาพประสิทธิภาพของ EM
เขาเป็นคนเจ้าเล่ห์ เขาอยากเย็บ DBA จากโทรศัพท์ของเขา =)

นี่คือวิธีที่เราทำงานเพื่อประโยชน์ของมาตุภูมิ!

คุณจะกำจัดงานประจำและไม่น่าสนใจออกไปได้อย่างไร?

ฉันหวังว่าการอ่านจะน่าสนใจ และอาจเป็นประโยชน์กับใครบางคนด้วยซ้ำ และฉันไม่มีเวลาทำให้ผู้อ่านเบื่อ... ขอให้โชคดีสำหรับพวกเราทุกคน

ที่มา: will.com

เพิ่มความคิดเห็น