అవుట్‌సోర్సింగ్ నుండి అభివృద్ధి వరకు (పార్ట్ 1)

అందరికీ హలో, నా పేరు సెర్గీ ఎమెలియాంచిక్. నేను ఆడిట్-టెలికాం కంపెనీకి అధిపతిని, వెలియం సిస్టమ్ యొక్క ప్రధాన డెవలపర్ మరియు రచయిత. నేను మరియు నా స్నేహితుడు ఒక ఔట్‌సోర్సింగ్ కంపెనీని ఎలా సృష్టించాము, మన కోసం సాఫ్ట్‌వేర్‌ను ఎలా వ్రాసుకున్నాము మరియు తరువాత SaaS సిస్టమ్ ద్వారా అందరికీ పంపిణీ చేయడం ప్రారంభించాము అనే దాని గురించి ఒక కథనాన్ని వ్రాయాలని నిర్ణయించుకున్నాను. ఇది సాధ్యమని నేను ఎలా ఖచ్చితంగా నమ్మను. వ్యాసంలో ఒక కథ మాత్రమే కాకుండా, వెలియం ఉత్పత్తి ఎలా సృష్టించబడింది అనే సాంకేతిక వివరాలను కూడా కలిగి ఉంటుంది. సోర్స్ కోడ్ యొక్క కొన్ని ముక్కలతో సహా. మేము ఏ తప్పులు చేసాము మరియు వాటిని ఎలా సరిదిద్దుకున్నామో నేను మీకు చెప్తాను. అలాంటి కథనాన్ని ప్రచురించాలా వద్దా అనే సందేహం వచ్చింది. కానీ కథనాన్ని ప్రచురించకుండా మరియు ఉంటే ఏమి జరుగుతుందో ఆలోచించడం కంటే, దీన్ని చేయడం, అభిప్రాయాన్ని పొందడం మరియు మెరుగుపరచడం మంచిదని నేను అనుకున్నాను.

పూర్వచరిత్ర

నేను ఐటీ ఉద్యోగిగా ఒక కంపెనీలో పనిచేశాను. విస్తృతమైన నెట్‌వర్క్ నిర్మాణంతో కంపెనీ చాలా పెద్దది. నేను నా ఉద్యోగ బాధ్యతలపై నివసించను, వారు ఖచ్చితంగా ఏదైనా అభివృద్ధిని చేర్చలేదని మాత్రమే చెబుతాను.

మాకు మానిటరింగ్ ఉంది, కానీ పూర్తిగా అకడమిక్ ఆసక్తి కారణంగా నేను నా స్వంత సరళమైనదాన్ని వ్రాయడానికి ప్రయత్నించాలనుకుంటున్నాను. ఆలోచన ఇది: ఇది వెబ్‌లో ఉండాలని నేను కోరుకున్నాను, తద్వారా నేను ఏ క్లయింట్‌లను ఇన్‌స్టాల్ చేయకుండా సులభంగా లోపలికి వెళ్లి Wi-Fi ద్వారా మొబైల్ పరికరంతో సహా ఏదైనా పరికరం నుండి నెట్‌వర్క్‌తో ఏమి జరుగుతుందో చూడగలిగాను మరియు నేను కూడా నిజంగా గదిలో "మోపీ"గా మారిన పరికరాలు ఏమిటో త్వరగా అర్థం చేసుకోవాలనుకున్నాను ఎందుకంటే... అటువంటి సమస్యలకు ప్రతిస్పందన సమయం కోసం చాలా కఠినమైన అవసరాలు ఉన్నాయి. తత్ఫలితంగా, నెట్‌వర్క్ రేఖాచిత్రంతో jpeg నేపథ్యం ఉన్న ఒక సాధారణ వెబ్ పేజీని వ్రాయడానికి, ఈ చిత్రంలో వాటి IP చిరునామాలతో పరికరాలను స్వయంగా కత్తిరించి, దాని పైన డైనమిక్ కంటెంట్‌ను చూపించడానికి నా తలలో ఒక ప్రణాళిక పుట్టింది. ఆకుపచ్చ లేదా ఫ్లాషింగ్ ఎరుపు IP చిరునామా రూపంలో అవసరమైన కోఆర్డినేట్‌లలోని చిత్రం. పని సెట్ చేయబడింది, ప్రారంభిద్దాం.

ఇంతకుముందు, నేను డెల్ఫీ, PHP, JS మరియు చాలా ఉపరితలంగా C++లో ప్రోగ్రామింగ్ చేస్తున్నాను. నెట్‌వర్క్‌లు ఎలా పనిచేస్తాయో నాకు బాగా తెలుసు. VLAN, రూటింగ్ (OSPF, EIGRP, BGP), NAT. ఇది నేనే ఒక ఆదిమ పర్యవేక్షణ నమూనాను వ్రాయడానికి సరిపోతుంది.

నేను PHPలో అనుకున్నది రాశాను. అపాచీ మరియు PHP సర్వర్ విండోస్‌లో ఉంది ఎందుకంటే... ఆ సమయంలో నాకు Linux అపారమయినది మరియు చాలా క్లిష్టంగా ఉంది, అది తరువాత తేలింది, నేను చాలా తప్పుగా భావించాను మరియు చాలా చోట్ల Linux Windows కంటే చాలా సరళమైనది, కానీ ఇది ఒక ప్రత్యేక అంశం మరియు ఎన్ని హోలివర్‌లు ఉన్నాయో మనందరికీ తెలుసు. ఈ అంశం. విండోస్ టాస్క్ షెడ్యూలర్ ఒక చిన్న విరామంలో (నాకు సరిగ్గా గుర్తు లేదు, కానీ ప్రతి మూడు సెకన్లకు ఒకసారి లాంటిది) PHP స్క్రిప్ట్‌ని తీసివేసారు, అది అన్ని వస్తువులను సామాన్యమైన పింగ్‌తో పోల్ చేసి, స్టేట్‌ను ఫైల్‌లో సేవ్ చేస్తుంది.

system(“ping -n 3 -w 100 {$ip_address}“); 

అవును, అవును, ఆ సమయంలో డేటాబేస్‌తో పనిచేయడం కూడా నాకు ప్రావీణ్యం కాలేదు. ప్రక్రియలను సమాంతరంగా చేయడం సాధ్యమవుతుందని నాకు తెలియదు మరియు అన్ని నెట్‌వర్క్ నోడ్‌ల ద్వారా వెళ్లడానికి చాలా సమయం పట్టింది, ఎందుకంటే... ఇది ఒక థ్రెడ్‌లో జరిగింది. ముఖ్యంగా అనేక నోడ్‌లు అందుబాటులో లేనప్పుడు సమస్యలు తలెత్తాయి, ఎందుకంటే వాటిలో ప్రతి ఒక్కటి 300 ms వరకు స్క్రిప్ట్‌ను ఆలస్యం చేసింది. క్లయింట్ వైపు ఒక సాధారణ లూపింగ్ ఫంక్షన్ ఉంది, ఇది కొన్ని సెకన్ల వ్యవధిలో, అజాక్స్ అభ్యర్థనతో సర్వర్ నుండి నవీకరించబడిన సమాచారాన్ని డౌన్‌లోడ్ చేసి ఇంటర్‌ఫేస్‌ను నవీకరించింది. సరే, ఆపై, వరుసగా 3 విఫలమైన పింగ్‌ల తర్వాత, కంప్యూటర్‌లో మానిటరింగ్‌తో కూడిన వెబ్‌పేజీని తెరిచి ఉంటే, ఆనందకరమైన కూర్పు ప్లే చేయబడింది.

ప్రతిదీ పనిచేసినప్పుడు, నేను ఫలితం ద్వారా చాలా ప్రేరణ పొందాను మరియు నేను దానికి మరింత జోడించగలనని అనుకున్నాను (నా జ్ఞానం మరియు సామర్థ్యాల కారణంగా). కానీ నేను ఎల్లప్పుడూ మిలియన్ చార్ట్‌లతో కూడిన సిస్టమ్‌లను ఇష్టపడను, నేను అప్పుడు అనుకున్నాను మరియు ఈ రోజు వరకు అనుకుంటున్నాను, చాలా సందర్భాలలో అనవసరం. నా పనిలో నాకు నిజంగా సహాయపడే వాటిని మాత్రమే ఉంచాలనుకున్నాను. ఈ సూత్రం నేటికీ వెలియం అభివృద్ధికి మూలాధారంగా ఉంది. ఇంకా, నేను మానిటరింగ్‌ని తెరిచి ఉంచి సమస్యల గురించి తెలుసుకోవాల్సిన అవసరం లేకుంటే అది చాలా బాగుంది అని నేను గ్రహించాను మరియు అది జరిగినప్పుడు, పేజీని తెరిచి, ఈ సమస్యాత్మక నెట్‌వర్క్ నోడ్ ఎక్కడ ఉంది మరియు దానితో తదుపరి ఏమి చేయాలో చూడండి . ఏదో విధంగా నేను అప్పటికి ఇమెయిల్ చదవలేదు, నేను దానిని ఉపయోగించలేదు. మీరు GET లేదా POST అభ్యర్థనను పంపగల SMS గేట్‌వేలు ఉన్నాయని నేను ఇంటర్నెట్‌లో చూశాను మరియు అవి నేను వ్రాసే టెక్స్ట్‌తో నా మొబైల్ ఫోన్‌కి SMS పంపుతాయి. నేను దీన్ని నిజంగా కోరుకుంటున్నాను అని నేను వెంటనే గ్రహించాను. మరియు నేను డాక్యుమెంటేషన్ అధ్యయనం చేయడం ప్రారంభించాను. కొంత సమయం తరువాత నేను విజయం సాధించాను మరియు ఇప్పుడు నా మొబైల్ ఫోన్‌లోని నెట్‌వర్క్‌లోని సమస్యల గురించి “పడిపోయిన వస్తువు” పేరుతో SMS అందుకున్నాను. సిస్టమ్ ప్రాచీనమైనప్పటికీ, ఇది నేనే వ్రాసినది మరియు దానిని అభివృద్ధి చేయడానికి నన్ను ప్రేరేపించిన అతి ముఖ్యమైన విషయం ఏమిటంటే ఇది నా పనిలో నాకు నిజంగా సహాయపడిన అప్లికేషన్ ప్రోగ్రామ్.

ఆపై ఇంటర్నెట్ ఛానెల్‌లలో ఒకటి పనిలో పడిపోయిన రోజు వచ్చింది మరియు నా పర్యవేక్షణ దాని గురించి నాకు తెలియజేయలేదు. Google DNS ఇప్పటికీ ఖచ్చితంగా పింగ్ చేయబడినందున. కమ్యూనికేషన్ ఛానెల్ సజీవంగా ఉందని మీరు ఎలా పర్యవేక్షించగలరో ఆలోచించాల్సిన సమయం ఇది. దీన్ని ఎలా చేయాలో వివిధ ఆలోచనలు ఉన్నాయి. నాకు అన్ని పరికరాలకు ప్రాప్యత లేదు. ఏ ఛానెల్‌లు ప్రత్యక్షంగా ఉన్నాయో అర్థం చేసుకోవడం ఎలాగో మనం గుర్తించాల్సి వచ్చింది, కానీ నెట్‌వర్క్ పరికరాల్లోనే దాన్ని ఎలాగో వీక్షించలేక పోయింది. ఇంటర్నెట్‌ని యాక్సెస్ చేయడానికి ప్రస్తుతం ఏ కమ్యూనికేషన్ ఛానెల్‌ని ఉపయోగిస్తున్నారు అనేదానిపై ఆధారపడి పబ్లిక్ సర్వర్‌లకు రూట్ ట్రేసింగ్ భిన్నంగా ఉండవచ్చు అనే ఆలోచనతో ఒక సహోద్యోగి ముందుకు వచ్చారు. నేను తనిఖీ చేసాను మరియు అది ఆ విధంగా మారింది. ట్రేస్ చేస్తున్నప్పుడు వేర్వేరు మార్గాలు ఉన్నాయి.

system(“tracert -d -w 500 8.8.8.8”);

కాబట్టి మరొక స్క్రిప్ట్ కనిపించింది, లేదా బదులుగా, కొన్ని కారణాల వల్ల అదే స్క్రిప్ట్ చివరలో ట్రేస్ జోడించబడింది, ఇది నెట్‌వర్క్‌లోని అన్ని పరికరాలను పింగ్ చేసింది. అన్నింటికంటే, ఇది మరొక సుదీర్ఘ ప్రక్రియ, ఇది అదే థ్రెడ్‌లో అమలు చేయబడింది మరియు మొత్తం స్క్రిప్ట్ యొక్క పనిని నెమ్మదిస్తుంది. కానీ అప్పుడు అది అంత స్పష్టంగా కనిపించలేదు. కానీ ఒక మార్గం లేదా మరొకటి, అతను తన పనిని చేసాడు, ప్రతి ఛానెల్‌కు ఎలాంటి ట్రేసింగ్ ఉండాలో కోడ్ ఖచ్చితంగా నిర్వచించింది. సిస్టమ్ ఎలా పని చేయడం ప్రారంభించింది, ఇది ఇప్పటికే పర్యవేక్షించబడింది (బిగ్గరగా చెప్పబడింది, ఎందుకంటే ఏ కొలమానాల సేకరణ లేదు, కానీ కేవలం పింగ్) నెట్‌వర్క్ పరికరాలు (రౌటర్లు, స్విచ్‌లు, వై-ఫై మొదలైనవి) మరియు బాహ్య ప్రపంచంతో కమ్యూనికేషన్ ఛానెల్‌లు . SMS సందేశాలు క్రమం తప్పకుండా వస్తాయి మరియు సమస్య ఎక్కడ ఉందో రేఖాచిత్రం ఎల్లప్పుడూ స్పష్టంగా చూపుతుంది.

ఇంకా, రోజువారీ పనిలో నేను క్రాస్ క్రాసింగ్ చేయాల్సి వచ్చింది. మరియు నేను ఏ ఇంటర్‌ఫేస్‌ని ఉపయోగించాలో చూడటానికి ప్రతిసారీ సిస్కో స్విచ్‌లకు వెళ్లడం విసిగిపోయాను. పర్యవేక్షణలో ఉన్న వస్తువుపై క్లిక్ చేసి, వివరణలతో దాని ఇంటర్‌ఫేస్‌ల జాబితాను చూడటం ఎంత బాగుంది. ఇది నాకు సమయం ఆదా చేస్తుంది. అంతేకాకుండా, ఈ పథకంలో ఖాతాలు మరియు ఆదేశాలను నమోదు చేయడానికి పుట్టీ లేదా సెక్యూర్‌సిఆర్‌టిని అమలు చేయవలసిన అవసరం లేదు. నేను మానిటరింగ్‌పై క్లిక్ చేసి, ఏమి అవసరమో చూసాను మరియు నా పని చేయడానికి వెళ్ళాను. నేను స్విచ్‌లతో పరస్పర చర్య చేయడానికి మార్గాలను వెతకడం ప్రారంభించాను. నేను వెంటనే 2 ఎంపికలను చూశాను: SNMP లేదా SSH ద్వారా స్విచ్‌లోకి లాగిన్ చేయడం, నాకు అవసరమైన ఆదేశాలను నమోదు చేయడం మరియు ఫలితాన్ని అన్వయించడం. దాని అమలు సంక్లిష్టత కారణంగా నేను SNMPని తీసివేసాను; ఫలితాన్ని పొందడానికి నేను అసహనానికి గురయ్యాను. SNMPతో, మీరు చాలా కాలం పాటు MIBలోకి ప్రవేశించవలసి ఉంటుంది మరియు ఈ డేటా ఆధారంగా, ఇంటర్‌ఫేస్‌ల గురించి డేటాను రూపొందించండి. CISCOలో అద్భుతమైన బృందం ఉంది

show interface status

క్రాస్-క్రాసింగ్‌ల కోసం నాకు ఏమి అవసరమో అది ఖచ్చితంగా చూపిస్తుంది. నేను ఈ కమాండ్ యొక్క అవుట్‌పుట్‌ను చూడాలనుకున్నప్పుడు SNMPతో ఎందుకు ఇబ్బంది పడతాను, నేను అనుకున్నాను. కొంతకాలం తర్వాత, నేను ఈ అవకాశాన్ని గ్రహించాను. వెబ్ పేజీలోని వస్తువుపై క్లిక్ చేసారు. AJAX క్లయింట్ సర్వర్‌ని సంప్రదించిన ఒక ఈవెంట్ ట్రిగ్గర్ చేయబడింది మరియు అది నాకు అవసరమైన స్విచ్‌కి SSH ద్వారా కనెక్ట్ చేయబడింది (క్రెడెన్షియల్‌లు కోడ్‌లో హార్డ్‌కోడ్ చేయబడ్డాయి, దాన్ని మెరుగుపరచాలనే కోరిక లేదు, కొన్ని ప్రత్యేక మెనులను తయారు చేయడానికి ఇంటర్‌ఫేస్ నుండి ఖాతాలను మార్చడం సాధ్యమవుతుంది , నాకు ఫలితం అవసరం మరియు త్వరగా) నేను పై ఆదేశాన్ని అక్కడ నమోదు చేసి, దానిని బ్రౌజర్‌కు తిరిగి పంపాను. కాబట్టి నేను మౌస్ యొక్క ఒక క్లిక్‌తో ఇంటర్‌ఫేస్‌లపై సమాచారాన్ని చూడటం ప్రారంభించాను. ఇది చాలా సౌకర్యవంతంగా ఉంటుంది, ప్రత్యేకించి మీరు ఈ సమాచారాన్ని ఒకేసారి వేర్వేరు స్విచ్‌లలో చూడవలసి వచ్చినప్పుడు.

ట్రేస్-ఆధారిత ఛానెల్ పర్యవేక్షణ ఉత్తమ ఆలోచన కాదు, ఎందుకంటే... కొన్నిసార్లు నెట్‌వర్క్‌లో పని జరిగింది, మరియు ట్రేసింగ్ మారవచ్చు మరియు ఛానెల్‌లో సమస్యలు ఉన్నాయని పర్యవేక్షణ నన్ను కేకలు వేయడం ప్రారంభించింది. కానీ విశ్లేషణలో చాలా సమయం గడిపిన తర్వాత, అన్ని ఛానెల్‌లు పనిచేస్తున్నాయని మరియు నా పర్యవేక్షణ నన్ను మోసం చేస్తోందని నేను గ్రహించాను. ఫలితంగా, పొరుగువారి విజిబిలిటీ స్థితి మారినప్పుడు నాకు సిస్లాగ్‌ని పంపమని ఛానెల్-ఫార్మింగ్ స్విచ్‌లను నిర్వహించే నా సహోద్యోగులను నేను అడిగాను. దీని ప్రకారం, ఇది ట్రేసింగ్ కంటే చాలా సరళమైనది, వేగంగా మరియు మరింత ఖచ్చితమైనది. పొరుగువారిని కోల్పోయినట్లుగా ఈవెంట్ వచ్చింది మరియు నేను వెంటనే ఛానెల్ డౌన్ గురించి నోటిఫికేషన్ జారీ చేసాను.

ఇంకా, ఆబ్జెక్ట్‌పై క్లిక్ చేసినప్పుడు మరెన్నో కమాండ్‌లు కనిపించాయి మరియు కొన్ని కొలమానాలను సేకరించడానికి SNMP జోడించబడింది మరియు ప్రాథమికంగా అంతే. వ్యవస్థ మరింత అభివృద్ధి చెందలేదు. ఇది నాకు అవసరమైన ప్రతిదాన్ని చేసింది, ఇది మంచి సాధనం. ఈ సమస్యలను పరిష్కరించడానికి ఇంటర్నెట్‌లో ఇప్పటికే చాలా సాఫ్ట్‌వేర్ ఉందని చాలా మంది పాఠకులు నాకు చెబుతారు. కానీ నిజానికి, నేను అప్పటికి అలాంటి ఉచిత ఉత్పత్తులను గూగుల్ చేయలేదు మరియు నేను నిజంగా నా ప్రోగ్రామింగ్ నైపుణ్యాలను పెంపొందించుకోవాలనుకున్నాను మరియు నిజమైన అప్లికేషన్ సమస్య కంటే దీని కోసం మెరుగైన మార్గం ఏమిటి. ఈ సమయంలో, పర్యవేక్షణ యొక్క మొదటి సంస్కరణ పూర్తయింది మరియు ఇకపై సవరించబడలేదు.

సంస్థ ఆడిట్-టెలికాం సృష్టి

సమయం గడిచేకొద్దీ, నేను ఇతర కంపెనీలలో పార్ట్‌టైమ్ పని చేయడం ప్రారంభించాను, అదృష్టవశాత్తూ నా పని షెడ్యూల్ నన్ను దీన్ని అనుమతించింది. మీరు వేర్వేరు కంపెనీలలో పని చేస్తున్నప్పుడు, వివిధ రంగాలలో మీ నైపుణ్యాలు చాలా త్వరగా పెరుగుతాయి మరియు మీ క్షితిజాలు బాగా అభివృద్ధి చెందుతాయి. కంపెనీలు ఉన్నాయి, వారు చెప్పినట్లు, మీరు స్వీడన్, రీపర్ మరియు ట్రంపెట్ ప్లేయర్. ఒక వైపు, ఇది కష్టం, మరోవైపు, మీరు సోమరితనం కాకపోతే, మీరు సాధారణవాది అవుతారు మరియు సంబంధిత ఫీల్డ్ ఎలా పనిచేస్తుందో మీకు తెలిసినందున ఇది సమస్యలను వేగంగా మరియు మరింత సమర్థవంతంగా పరిష్కరించడానికి మిమ్మల్ని అనుమతిస్తుంది.

నా స్నేహితుడు పావెల్ (ఐటీ స్పెషలిస్ట్ కూడా) తన స్వంత వ్యాపారాన్ని ప్రారంభించమని నన్ను నిరంతరం ప్రోత్సహించడానికి ప్రయత్నించాడు. వారు ఏమి చేస్తున్నారో వివిధ వైవిధ్యాలతో లెక్కలేనన్ని ఆలోచనలు ఉన్నాయి. దీనిపై ఏళ్ల తరబడి చర్చ జరుగుతోంది. మరియు చివరికి, ఇది దేనికీ రాకూడదు ఎందుకంటే నేను సంశయవాదిని మరియు పావెల్ కలలు కనేవాడు. అతను ఒక ఆలోచనను ప్రతిపాదించిన ప్రతిసారీ, నేను ఎల్లప్పుడూ దానిని విశ్వసించలేదు మరియు పాల్గొనడానికి నిరాకరించాను. కానీ మేము నిజంగా మా స్వంత వ్యాపారాన్ని తెరవాలనుకుంటున్నాము.

చివరగా, మేము మా ఇద్దరికీ సరిపోయే ఎంపికను కనుగొనగలిగాము మరియు ఎలా చేయాలో మాకు తెలుసు. 2016లో, వ్యాపారాలు IT సమస్యలను పరిష్కరించడంలో సహాయపడే IT కంపెనీని సృష్టించాలని మేము నిర్ణయించుకున్నాము. ఇది IT సిస్టమ్‌ల విస్తరణ (1C, టెర్మినల్ సర్వర్, మెయిల్ సర్వర్ మొదలైనవి), వాటి నిర్వహణ, వినియోగదారుల కోసం క్లాసిక్ హెల్ప్‌డెస్క్ మరియు నెట్‌వర్క్ అడ్మినిస్ట్రేషన్.

స్పష్టంగా చెప్పాలంటే, కంపెనీని సృష్టించే సమయంలో, నేను దానిని 99,9% నమ్మలేదు. కానీ ఏదో ఒకవిధంగా పావెల్ నన్ను ప్రయత్నించేలా చేయగలిగాడు, మరియు ముందుకు చూస్తే, అతను సరైనదేనని తేలింది. పావెల్ మరియు నేను ఒక్కొక్కటి 300 రూబిళ్లు ఖర్చు చేసాము, కొత్త LLC "ఆడిట్-టెలికామ్"ని నమోదు చేసాము, ఒక చిన్న కార్యాలయాన్ని అద్దెకు తీసుకున్నాము, కూల్ బిజినెస్ కార్డ్‌లను తయారు చేసాము, సాధారణంగా, బహుశా చాలా అనుభవం లేని, అనుభవం లేని వ్యాపారవేత్తల వలె మరియు ఖాతాదారుల కోసం వెతకడం ప్రారంభించాము. ఖాతాదారులను కనుగొనడం పూర్తిగా భిన్నమైన కథ. బహుశా ఎవరైనా ఆసక్తి కలిగి ఉంటే మేము కార్పొరేట్ బ్లాగ్‌లో భాగంగా ప్రత్యేక కథనాన్ని వ్రాస్తాము. కోల్డ్ కాల్స్, ఫ్లైయర్స్ మొదలైనవి. దీంతో ఎలాంటి ఫలితాలు రాలేదు. నేను వ్యాపారం గురించి చాలా కథల నుండి ఇప్పుడు చదివాను, ఒక మార్గం లేదా మరొకటి, చాలా అదృష్టం మీద ఆధారపడి ఉంటుంది. మేము అదృష్టవంతులం. మరియు అక్షరాలా సంస్థ సృష్టించిన కొన్ని వారాల తర్వాత, నా సోదరుడు వ్లాదిమిర్ మమ్మల్ని సంప్రదించాడు, అతను మాకు మొదటి క్లయింట్‌ను తీసుకువచ్చాడు. క్లయింట్‌లతో కలిసి పని చేసే వివరాలతో నేను మీకు విసుగు తెప్పించను, కథనం దాని గురించి కాదు, మేము ఆడిట్‌కి వెళ్లామని, క్లిష్టమైన ప్రాంతాలను గుర్తించామని మరియు ఈ ప్రాంతాలు విచ్ఛిన్నం కావాలా వద్దా అనే దానిపై నిర్ణయం తీసుకునేటప్పుడు మాత్రమే చెబుతాను. అవుట్‌సోర్సర్‌గా కొనసాగుతున్న ప్రాతిపదికన మాతో సహకరించండి. ఆ తర్వాత వెంటనే సానుకూల నిర్ణయం తీసుకున్నారు.

అప్పుడు, ప్రధానంగా స్నేహితుల ద్వారా నోటి మాట ద్వారా, ఇతర సేవా సంస్థలు కనిపించడం ప్రారంభించాయి. హెల్ప్‌డెస్క్ ఒక సిస్టమ్‌లో ఉంది. నెట్‌వర్క్ పరికరాలు మరియు సర్వర్‌లకు కనెక్షన్‌లు భిన్నంగా ఉంటాయి లేదా భిన్నంగా ఉంటాయి. కొంతమంది సత్వరమార్గాలను సేవ్ చేసారు, మరికొందరు RDP చిరునామా పుస్తకాలను ఉపయోగించారు. పర్యవేక్షణ మరొక ప్రత్యేక వ్యవస్థ. భిన్నమైన వ్యవస్థలలో పని చేయడం జట్టుకు చాలా అసౌకర్యంగా ఉంటుంది. ముఖ్యమైన సమాచారం కనిపించకుండా పోయింది. సరే, ఉదాహరణకు, క్లయింట్ యొక్క టెర్మినల్ సర్వర్ అందుబాటులో లేదు. ఈ క్లయింట్ యొక్క వినియోగదారుల నుండి దరఖాస్తులు వెంటనే స్వీకరించబడతాయి. మద్దతు నిపుణుడు అభ్యర్థనను తెరుస్తాడు (ఇది ఫోన్ ద్వారా స్వీకరించబడింది). ఒక సిస్టమ్‌లో సంఘటనలు మరియు అభ్యర్థనలు నమోదు చేయబడితే, సపోర్ట్ స్పెషలిస్ట్ వెంటనే వినియోగదారు యొక్క సమస్య ఏమిటో చూస్తారు మరియు దాని గురించి అతనికి చెబుతారు, అదే సమయంలో పరిస్థితిని పని చేయడానికి అవసరమైన వస్తువుకు కనెక్ట్ చేస్తారు. ప్రతి ఒక్కరూ వ్యూహాత్మక పరిస్థితిని తెలుసుకొని సామరస్యపూర్వకంగా పని చేస్తారు. ఇవన్నీ కలగలిసిన వ్యవస్థ మనకు కనిపించలేదు. మన స్వంత ఉత్పత్తిని తయారు చేయడానికి ఇది సమయం అని స్పష్టమైంది.

మీ పర్యవేక్షణ సిస్టమ్‌పై పని కొనసాగించబడింది

ఇంతకుముందు రాసుకున్న వ్యవస్థ ప్రస్తుత పనులకు పూర్తిగా పనికిరాదని స్పష్టమైంది. కార్యాచరణ పరంగా లేదా నాణ్యత పరంగా కాదు. మరియు సిస్టమ్‌ను మొదటి నుండి వ్రాయాలని నిర్ణయించారు. గ్రాఫికల్ గా ఇది పూర్తిగా భిన్నంగా కనిపించాలి. ఇది క్రమానుగత వ్యవస్థగా ఉండాలి, తద్వారా సరైన క్లయింట్ కోసం సరైన వస్తువును త్వరగా మరియు సౌకర్యవంతంగా తెరవడం సాధ్యమవుతుంది. మొదటి సంస్కరణలో ఉన్న పథకం ప్రస్తుత సందర్భంలో ఖచ్చితంగా సమర్థించబడలేదు, ఎందుకంటే క్లయింట్లు భిన్నంగా ఉంటారు మరియు పరికరాలు ఏ ప్రాంగణంలో ఉన్నాయో అది పట్టింపు లేదు. ఇది ఇప్పటికే డాక్యుమెంటేషన్‌కు బదిలీ చేయబడింది.

కాబట్టి, పనులు:

  1. క్రమానుగత నిర్మాణం;
  2. మనకు అవసరమైన కొలమానాలను సేకరించి సెంట్రల్ సర్వర్‌కు పంపడానికి వర్చువల్ మెషీన్ రూపంలో క్లయింట్ యొక్క ప్రాంగణంలో ఉంచగలిగే కొన్ని రకాల సర్వర్ భాగం, ఇది అన్నింటినీ సంగ్రహించి మాకు చూపుతుంది;
  3. హెచ్చరికలు. మిస్ చేయలేనివి, ఎందుకంటే... ఆ సమయంలో ఎవరైనా కూర్చుని మానిటర్ వైపు చూడటం సాధ్యం కాదు;
  4. అప్లికేషన్ సిస్టమ్. మేము సర్వర్ మరియు నెట్‌వర్క్ పరికరాలను మాత్రమే కాకుండా, వర్క్‌స్టేషన్‌లకు కూడా సర్వీస్ చేసిన వారి కోసం క్లయింట్లు కనిపించడం ప్రారంభించారు;
  5. సిస్టమ్ నుండి సర్వర్లు మరియు పరికరాలకు త్వరగా కనెక్ట్ చేయగల సామర్థ్యం;

పనులు సెట్ చేయబడ్డాయి, మేము వ్రాయడం ప్రారంభిస్తాము. అలాగే, ఖాతాదారుల నుండి అభ్యర్థనలను ప్రాసెస్ చేస్తోంది. ఆ సమయంలో మేము ఇప్పటికే నలుగురు ఉన్నాము. మేము ఒకేసారి రెండు భాగాలను వ్రాయడం ప్రారంభించాము: సెంట్రల్ సర్వర్ మరియు క్లయింట్‌లకు ఇన్‌స్టాలేషన్ కోసం సర్వర్. ఈ సమయానికి, Linux ఇకపై మాకు అపరిచితుడు కాదు మరియు క్లయింట్‌లు కలిగి ఉండే వర్చువల్ మిషన్‌లు డెబియన్‌లో ఉండాలని నిర్ణయించారు. ఇన్‌స్టాలర్‌లు ఉండవు, మేము ఒక నిర్దిష్ట వర్చువల్ మెషీన్‌లో సర్వర్ పార్ట్ ప్రాజెక్ట్‌ను తయారు చేస్తాము, ఆపై మేము దానిని కావలసిన క్లయింట్‌కు క్లోన్ చేస్తాము. ఇది మరొక తప్పు. అటువంటి పథకంలో నవీకరణ యంత్రాంగం పూర్తిగా అభివృద్ధి చెందలేదని తరువాత స్పష్టమైంది. ఆ. మేము కొన్ని కొత్త ఫీచర్‌లను జోడిస్తున్నాము, ఆపై దాన్ని అన్ని క్లయింట్ సర్వర్‌లకు పంపిణీ చేయడంలో మొత్తం సమస్య ఉంది, కానీ మేము దీనికి తిరిగి వస్తాము, ప్రతిదీ క్రమంలో.

మేము మొదటి నమూనాను తయారు చేసాము. అతను మనకు అవసరమైన క్లయింట్ నెట్‌వర్క్ పరికరాలు మరియు సర్వర్‌లను పింగ్ చేయగలడు మరియు ఈ డేటాను మా సెంట్రల్ సర్వర్‌కు పంపగలిగాడు. మరియు అతను, ఈ డేటాను సెంట్రల్ సర్వర్‌లో పెద్దమొత్తంలో నవీకరించాడు. ఇక్కడ నేను ఎలా మరియు ఏది విజయవంతమైంది అనే దాని గురించి కథ మాత్రమే కాకుండా, ఏ ఔత్సాహిక తప్పులు జరిగాయి మరియు సమయంతో నేను దాని కోసం ఎలా చెల్లించాల్సి వచ్చింది అనే దాని గురించి కూడా వ్రాస్తాను. కాబట్టి, వస్తువుల మొత్తం చెట్టు ఒకే ఫైల్‌లో సీరియలైజ్డ్ ఆబ్జెక్ట్ రూపంలో నిల్వ చేయబడుతుంది. మేము సిస్టమ్‌కి అనేక క్లయింట్‌లను కనెక్ట్ చేసినప్పుడు, ప్రతిదీ చాలా ఎక్కువ లేదా తక్కువ సాధారణమైనది, అయితే కొన్నిసార్లు పూర్తిగా అపారమయిన కొన్ని కళాఖండాలు ఉన్నాయి. కానీ మేము ఒక డజను సర్వర్‌లను సిస్టమ్‌కు కనెక్ట్ చేసినప్పుడు, అద్భుతాలు జరగడం ప్రారంభించాయి. కొన్నిసార్లు, కొన్ని తెలియని కారణాల వల్ల, సిస్టమ్‌లోని అన్ని వస్తువులు అదృశ్యమవుతాయి. క్లయింట్లు ప్రతి కొన్ని సెకన్లకు POST అభ్యర్థన ద్వారా సెంట్రల్ సర్వర్‌కు డేటాను పంపిన సర్వర్‌లు ఇక్కడ గమనించడం ముఖ్యం. శ్రద్ధగల రీడర్ మరియు అనుభవజ్ఞుడైన ప్రోగ్రామర్ ఒకే సమయంలో వేర్వేరు థ్రెడ్‌ల నుండి సీరియలైజ్ చేయబడిన ఆబ్జెక్ట్ నిల్వ చేయబడిన చాలా ఫైల్‌కు బహుళ ప్రాప్యత సమస్య ఉందని ఇప్పటికే ఊహించారు. మరియు ఇది జరుగుతున్నప్పుడు, వస్తువుల అదృశ్యంతో అద్భుతాలు జరిగాయి. ఫైల్ కేవలం ఖాళీగా మారింది. కానీ ఇవన్నీ వెంటనే కనుగొనబడలేదు, కానీ అనేక సర్వర్లతో ఆపరేషన్ సమయంలో మాత్రమే. ఈ సమయంలో, పోర్ట్ స్కానింగ్ కార్యాచరణ జోడించబడింది (సర్వర్‌లు పరికరాల లభ్యత గురించి మాత్రమే కాకుండా, వాటిపై తెరిచిన పోర్ట్‌ల గురించి కూడా కేంద్రానికి పంపబడతాయి). ఇది ఆదేశాన్ని కాల్ చేయడం ద్వారా జరిగింది:

$connection = @fsockopen($ip, $port, $errno, $errstr, 0.5);

ఫలితాలు తరచుగా తప్పుగా ఉంటాయి మరియు స్కాన్‌లు పూర్తి చేయడానికి చాలా సమయం పట్టింది. నేను పింగ్ గురించి పూర్తిగా మర్చిపోయాను, ఇది fping ద్వారా జరిగింది:

system("fping -r 3 -t 100 {$this->ip}");

ఇది కూడా సమాంతరంగా లేదు మరియు అందువల్ల ప్రక్రియ చాలా పొడవుగా ఉంది. తరువాత, ధృవీకరణకు అవసరమైన మొత్తం IP చిరునామాల జాబితా ఒకేసారి fpingకి పంపబడింది మరియు మేము ప్రతిస్పందించిన వారి యొక్క రెడీమేడ్ జాబితాను తిరిగి పొందాము. మాకు కాకుండా, fping ప్రక్రియలను సమాంతరంగా చేయగలదు.

WEB ద్వారా కొన్ని సేవలను సెటప్ చేయడం మరొక సాధారణ సాధారణ పని. బాగా, ఉదాహరణకు, MS ఎక్స్ఛేంజ్ నుండి ECP. ప్రాథమికంగా ఇది ఒక లింక్ మాత్రమే. నిర్దిష్ట క్లయింట్ యొక్క ECPని ఎలా యాక్సెస్ చేయాలనే దాని కోసం డాక్యుమెంటేషన్‌లో లేదా బుక్‌మార్క్‌లలో మరెక్కడా చూడనవసరం లేకుండా, మేము నేరుగా సిస్టమ్‌కు అలాంటి లింక్‌లను జోడించగలగాలి అని మేము నిర్ణయించుకున్నాము. సిస్టమ్ కోసం వనరుల లింక్‌ల భావన ఈ విధంగా కనిపించింది, వాటి కార్యాచరణ ఈ రోజు వరకు అందుబాటులో ఉంది మరియు దాదాపుగా మారలేదు.

వెలియంలో వనరుల లింక్‌లు ఎలా పని చేస్తాయి
అవుట్‌సోర్సింగ్ నుండి అభివృద్ధి వరకు (పార్ట్ 1)

రిమోట్ కనెక్షన్లు

వెలియం యొక్క ప్రస్తుత వెర్షన్‌లో ఇది చర్యలో కనిపిస్తుంది
అవుట్‌సోర్సింగ్ నుండి అభివృద్ధి వరకు (పార్ట్ 1)

సర్వర్‌లకు త్వరగా మరియు సౌకర్యవంతంగా కనెక్ట్ చేయడం ఒక పని, వాటిలో ఇప్పటికే చాలా (వంద కంటే ఎక్కువ) ఉన్నాయి మరియు మిలియన్ల కొద్దీ ముందుగా సేవ్ చేసిన RDP సత్వరమార్గాల ద్వారా క్రమబద్ధీకరించడం చాలా అసౌకర్యంగా ఉంది. ఒక సాధనం అవసరమైంది. ఇంటర్నెట్‌లో అటువంటి RDP కనెక్షన్‌ల కోసం చిరునామా పుస్తకం వంటి సాఫ్ట్‌వేర్ ఉంది, కానీ అవి పర్యవేక్షణ వ్యవస్థతో ఏకీకృతం చేయబడవు మరియు ఖాతాలు సేవ్ చేయబడవు. మీరు రోజుకు డజన్ల కొద్దీ వేర్వేరు సర్వర్‌లకు కనెక్ట్ చేసినప్పుడు ప్రతిసారీ వేర్వేరు క్లయింట్‌ల కోసం ఖాతాలను నమోదు చేయడం శుద్ధ నరకం. SSHతో, విషయాలు కొంచెం మెరుగ్గా ఉన్నాయి; అటువంటి కనెక్షన్‌లను ఫోల్డర్‌లుగా నిర్వహించడానికి మరియు వాటి నుండి ఖాతాలను గుర్తుంచుకోవడానికి మిమ్మల్ని అనుమతించే చాలా మంచి సాఫ్ట్‌వేర్ ఉంది. కానీ 2 సమస్యలు ఉన్నాయి. మొదటిది, మేము RDP మరియు SSH కనెక్షన్‌ల కోసం ఒక్క ప్రోగ్రామ్‌ను కనుగొనలేదు. రెండవది, ఏదో ఒక సమయంలో నేను నా కంప్యూటర్‌లో లేనట్లయితే మరియు నేను త్వరగా కనెక్ట్ కావాల్సిన అవసరం ఉంటే లేదా నేను సిస్టమ్‌ను మళ్లీ ఇన్‌స్టాల్ చేసినట్లయితే, ఈ క్లయింట్ నుండి ఖాతాను చూడటానికి నేను డాక్యుమెంటేషన్‌లోకి వెళ్లాలి. ఇది అసౌకర్యంగా మరియు సమయం వృధా.

క్లయింట్ సర్వర్‌ల కోసం మాకు అవసరమైన క్రమానుగత నిర్మాణం మా అంతర్గత ఉత్పత్తిలో ఇప్పటికే అందుబాటులో ఉంది. అక్కడ అవసరమైన పరికరాలకు శీఘ్ర కనెక్షన్‌లను ఎలా అటాచ్ చేయాలో నేను గుర్తించాల్సి వచ్చింది. స్టార్టర్స్ కోసం, కనీసం మీ నెట్‌వర్క్‌లోనైనా.

మా సిస్టమ్‌లోని క్లయింట్ కంప్యూటర్ యొక్క స్థానిక వనరులకు ప్రాప్యత లేని బ్రౌజర్ అనే వాస్తవాన్ని పరిగణనలోకి తీసుకుంటే, మనకు అవసరమైన అప్లికేషన్‌ను కొంత ఆదేశంతో ప్రారంభించడం కోసం, “విండోస్” ద్వారా ప్రతిదీ చేయడానికి ఇది కనుగొనబడింది. అనుకూల url పథకం". మా సిస్టమ్ కోసం ఒక నిర్దిష్ట “ప్లగ్ఇన్” ఈ విధంగా కనిపించింది, ఇందులో పుట్టీ మరియు రిమోట్ డెస్క్‌టాప్ ప్లస్ ఉన్నాయి మరియు ఇన్‌స్టాలేషన్ సమయంలో, విండోస్‌లో URI స్కీమ్‌ను నమోదు చేయండి. ఇప్పుడు, మేము RDP లేదా SSH ద్వారా ఒక వస్తువుకు కనెక్ట్ చేయాలనుకున్నప్పుడు, మేము మా సిస్టమ్‌లో ఈ చర్యను క్లిక్ చేసాము మరియు అనుకూల URI పని చేస్తుంది. "ప్లగ్ఇన్"లో భాగమైన Windows లేదా పుట్టీలో నిర్మించిన ప్రామాణిక mstsc.exe ప్రారంభించబడింది. ఇది క్లాసికల్ అర్థంలో బ్రౌజర్ ప్లగ్ఇన్ కానందున నేను ప్లగిన్ అనే పదాన్ని కోట్స్‌లో ఉంచాను.

కనీసం అది ఏదో ఉంది. అనుకూలమైన చిరునామా పుస్తకం. అంతేకాకుండా, పుట్టీ విషయంలో, ప్రతిదీ సాధారణంగా బాగానే ఉంది; దీనికి IP కనెక్షన్లు, లాగిన్ మరియు పాస్‌వర్డ్‌లను ఇన్‌పుట్ పారామీటర్‌లుగా ఇవ్వవచ్చు. ఆ. మేము ఇప్పటికే పాస్‌వర్డ్‌లను నమోదు చేయకుండా ఒక క్లిక్‌తో మా నెట్‌వర్క్‌లోని Linux సర్వర్‌లకు కనెక్ట్ చేసాము. కానీ RDP తో ఇది అంత సులభం కాదు. ప్రామాణిక mstsc ఆధారాలను పారామీటర్‌లుగా అందించలేదు. రిమోట్ డెస్క్‌టాప్ ప్లస్ సహాయానికి వచ్చింది. అతను ఇది జరగడానికి అనుమతించాడు. ఇప్పుడు మనం అది లేకుండా చేయగలము, కానీ చాలా కాలం పాటు ఇది మా సిస్టమ్‌లో నమ్మకమైన సహాయకుడు. HTTP(S) సైట్‌లతో ప్రతిదీ చాలా సులభం, అటువంటి వస్తువులు బ్రౌజర్‌లో తెరవబడతాయి మరియు అంతే. అనుకూలమైన మరియు ఆచరణాత్మకమైనది. కానీ ఇది అంతర్గత నెట్‌వర్క్‌లో మాత్రమే ఆనందంగా ఉంది.

మేము చాలా సమస్యలను కార్యాలయం నుండి రిమోట్‌గా పరిష్కరించాము కాబట్టి, క్లయింట్‌లకు VPNలను అందుబాటులో ఉంచడం సులభమయిన విషయం. ఆపై మా సిస్టమ్ నుండి వాటిని కనెక్ట్ చేయడం సాధ్యమైంది. కానీ అది ఇప్పటికీ కొంత అసౌకర్యంగా ఉంది. ప్రతి క్లయింట్ కోసం, ప్రతి కంప్యూటర్‌లో గుర్తుంచుకోబడిన VPN కనెక్షన్‌ల సమూహాన్ని ఉంచడం అవసరం మరియు దేనికైనా కనెక్ట్ చేయడానికి ముందు, సంబంధిత VPNని ప్రారంభించడం అవసరం. మేము ఈ పరిష్కారాన్ని చాలా కాలం పాటు ఉపయోగించాము. కానీ క్లయింట్ల సంఖ్య పెరుగుతోంది, VPN ల సంఖ్య కూడా పెరుగుతోంది మరియు ఇవన్నీ మనల్ని ఇబ్బంది పెట్టడం ప్రారంభించాయి మరియు దాని గురించి ఏదైనా చేయవలసి వచ్చింది. సిస్టమ్‌ను మళ్లీ ఇన్‌స్టాల్ చేసిన తర్వాత, నేను కొత్త విండోస్ ప్రొఫైల్‌లో డజన్ల కొద్దీ VPN కనెక్షన్‌లను మళ్లీ నమోదు చేయవలసి వచ్చినప్పుడు ప్రత్యేకంగా నా కళ్లలో నీళ్లు వచ్చాయి. ఇంతటితో ఆగడం మానేసి, నేనేం చేయగలను అని ఆలోచించడం మొదలుపెట్టాను.

ఖాతాదారులందరికీ ప్రసిద్ధ కంపెనీ మైక్రోటిక్ నుండి రౌటర్లుగా పరికరాలను కలిగి ఉండటం జరిగింది. అవి చాలా ఫంక్షనల్ మరియు దాదాపు ఏదైనా పనిని నిర్వహించడానికి సౌకర్యవంతంగా ఉంటాయి. ప్రతికూలత ఏమిటంటే వారు "హైజాక్" చేయబడ్డారు. బయటి నుండి అన్ని యాక్సెస్‌లను మూసివేయడం ద్వారా మేము ఈ సమస్యను పరిష్కరించాము. కానీ క్లయింట్ స్థానానికి రాకుండా వాటిని ఎలాగైనా యాక్సెస్ చేయడం అవసరం, ఎందుకంటే... ఇది పొడవుగా ఉంది. మేము అలాంటి ప్రతి మైక్రోటిక్ కోసం సొరంగాలను తయారు చేసాము మరియు వాటిని ప్రత్యేక పూల్‌గా వేరు చేసాము. ఎలాంటి రూటింగ్ లేకుండా, క్లయింట్‌ల నెట్‌వర్క్‌లు మరియు వారి నెట్‌వర్క్‌లతో మీ నెట్‌వర్క్‌కి కనెక్షన్ ఉండదు.

సిస్టమ్‌లో నాకు అవసరమైన వస్తువుపై నేను క్లిక్ చేసినప్పుడు, సెంట్రల్ మానిటరింగ్ సర్వర్, అన్ని క్లయింట్ మైక్రోటిక్ యొక్క SSH ఖాతాలను తెలుసుకుని, కావలసిన దానికి కనెక్ట్ చేసి, కావలసిన హోస్ట్‌కి ఫార్వార్డింగ్ నియమాన్ని సృష్టిస్తుందని నిర్ధారించుకోవడానికి ఆలోచన పుట్టింది. అవసరమైన పోర్ట్. ఇక్కడ అనేక పాయింట్లు ఉన్నాయి. పరిష్కారం సార్వత్రికమైనది కాదు - ఇది Mikrotik కోసం మాత్రమే పని చేస్తుంది, ఎందుకంటే కమాండ్ సింటాక్స్ అన్ని రౌటర్లకు భిన్నంగా ఉంటుంది. అలాగే, అటువంటి ఫార్వార్డింగ్‌లు ఏదో ఒకవిధంగా తొలగించబడాలి మరియు మా సిస్టమ్‌లోని సర్వర్ భాగం తప్పనిసరిగా నేను నా RDP సెషన్‌ను పూర్తి చేశానో లేదో ట్రాక్ చేయలేకపోయింది. బాగా, అటువంటి ఫార్వార్డింగ్ క్లయింట్ కోసం ఒక రంధ్రం. కానీ మేము విశ్వవ్యాప్తతను కొనసాగించలేదు, ఎందుకంటే... ఉత్పత్తి మా కంపెనీలో మాత్రమే ఉపయోగించబడింది మరియు దానిని ప్రజలకు విడుదల చేసే ఆలోచనలు లేవు.

ప్రతి సమస్య దాని స్వంత మార్గంలో పరిష్కరించబడింది. నియమం సృష్టించబడినప్పుడు, ఈ ఫార్వార్డింగ్ ఒక నిర్దిష్ట బాహ్య IP చిరునామాకు మాత్రమే అందుబాటులో ఉంటుంది (దీని నుండి కనెక్షన్ ప్రారంభించబడింది). కాబట్టి భద్రతా రంధ్రం తప్పించబడింది. కానీ అలాంటి ప్రతి కనెక్షన్‌తో, NAT పేజీకి Mikrotik నియమం జోడించబడింది మరియు క్లియర్ చేయబడలేదు. మరియు మరింత నియమాలు ఉన్నాయని అందరికీ తెలుసు, రౌటర్ యొక్క ప్రాసెసర్ మరింత లోడ్ అవుతుంది. మరియు సాధారణంగా, ఒక రోజు నేను కొన్ని మైక్రోటిక్‌కి వెళ్తానని అంగీకరించలేను మరియు వందలాది చనిపోయిన, పనికిరాని నియమాలు ఉంటాయి.

మా సర్వర్ కనెక్షన్ స్థితిని ట్రాక్ చేయలేనందున, Mikrotik వాటిని స్వయంగా ట్రాక్ చేయనివ్వండి. మరియు నేను నిర్దిష్ట వివరణతో అన్ని ఫార్వార్డింగ్ నియమాలను నిరంతరం పర్యవేక్షించే స్క్రిప్ట్‌ను వ్రాసాను మరియు TCP కనెక్షన్‌కు తగిన నియమం ఉందో లేదో తనిఖీ చేసాను. కొంత సమయం వరకు ఒకటి లేకుంటే, కనెక్షన్ ఇప్పటికే పూర్తయి ఉండవచ్చు మరియు ఈ ఫార్వార్డింగ్ తొలగించబడవచ్చు. అంతా వర్క్ అవుట్ అయ్యింది, స్క్రిప్ట్ బాగానే పని చేసింది.

మార్గం ద్వారా, ఇది ఇక్కడ ఉంది:

global atmonrulecounter {"dontDelete"="dontDelete"}
:foreach i in=[/ip firewall nat find comment~"atmon_script_main"] do={ 
	local dstport [/ip firewall nat get value-name="dst-port" $i]
	local dstaddress [/ip firewall nat get value-name="dst-address" $i]
	local dstaddrport "$dstaddress:$dstport"
	#log warning message=$dstaddrport
	local thereIsCon [/ip firewall connection find dst-address~"$dstaddrport"]
	if ($thereIsCon = "") do={
		set ($atmonrulecounter->$dstport) ($atmonrulecounter->$dstport + 1)
		#:log warning message=($atmonrulecounter->$dstport)
		if (($atmonrulecounter->$dstport) > 5) do={
			#log warning message="Removing nat rules added automaticaly by atmon_script"
			/ip firewall nat remove [/ip firewall nat find comment~"atmon_script_main_$dstport"]
			/ip firewall nat remove [/ip firewall nat find comment~"atmon_script_sub_$dstport"]
			set ($atmonrulecounter->$dstport) 0
		}
	} else {
		set ($atmonrulecounter->$dstport) 0
	}
}

ఖచ్చితంగా ఇది మరింత అందంగా, వేగంగా, మొదలైనవి తయారు చేయబడి ఉండవచ్చు, కానీ అది పనిచేసింది, Mikrotik లోడ్ చేయలేదు మరియు అద్భుతమైన పని చేసింది. మేము చివరకు క్లయింట్‌ల సర్వర్‌లు మరియు నెట్‌వర్క్ పరికరాలకు కేవలం ఒక క్లిక్‌తో కనెక్ట్ చేయగలిగాము. VPN తెరవకుండా లేదా పాస్‌వర్డ్‌లను నమోదు చేయకుండా. సిస్టమ్ పని చేయడానికి నిజంగా సౌకర్యవంతంగా మారింది. సేవా సమయం తగ్గించబడింది మరియు అవసరమైన వస్తువులకు కనెక్ట్ కాకుండా పని చేయడానికి మేమంతా గడిపాము.

మైక్రోటిక్ బ్యాకప్

మేము అన్ని Mikrotik యొక్క బ్యాకప్ FTPకి కాన్ఫిగర్ చేసాము. మరియు మొత్తం మీద ప్రతిదీ బాగానే ఉంది. కానీ మీరు బ్యాకప్ పొందవలసి వచ్చినప్పుడు, మీరు ఈ FTPని తెరిచి అక్కడ వెతకాలి. మేము అన్ని రౌటర్లు కనెక్ట్ చేయబడిన వ్యవస్థను కలిగి ఉన్నాము; మేము SSH ద్వారా పరికరాలతో కమ్యూనికేట్ చేయవచ్చు. ప్రతిరోజూ మైక్రోటిక్ నుండి సిస్టమ్ బ్యాకప్‌లను తీసుకునేలా మనం ఎందుకు తయారు చేయకూడదు, నేను అనుకున్నాను. మరియు అతను దానిని అమలు చేయడం ప్రారంభించాడు. మేము కనెక్ట్ అయ్యాము, బ్యాకప్ చేసాము మరియు దానిని నిల్వకు తీసుకువెళ్ళాము.

Mikrotik నుండి బ్యాకప్ తీసుకోవడానికి PHPలో స్క్రిప్ట్ కోడ్:

<?php

	$IP = '0.0.0.0';
	$LOGIN = 'admin';
	$PASSWORD = '';
	$BACKUP_NAME = 'test';

    $connection = ssh2_connect($IP, 22);

    if (!ssh2_auth_password($connection, $LOGIN, $PASSWORD)) exit;

    ssh2_exec($connection, '/system backup save name="atmon" password="atmon"');
    stream_get_contents($connection);
    ssh2_exec($connection, '/export file="atmon.rsc"');
    stream_get_contents($connection);
    sleep(40); // Waiting bakup makes

    $sftp = ssh2_sftp($connection);

    // Download backup file
    $size = filesize("ssh2.sftp://$sftp/atmon.backup");
    $stream = fopen("ssh2.sftp://$sftp/atmon.backup", 'r');
    $contents = '';
    $read = 0;
    $len = $size;
    while ($read < $len && ($buf = fread($stream, $len - $read))) {
        $read += strlen($buf);
        $contents .= $buf;
    }
    file_put_contents ($BACKUP_NAME . ‘.backup’,$contents);
    @fclose($stream);

    sleep(3);
    // Download RSC file
    $size = filesize("ssh2.sftp://$sftp/atmon.rsc");
    $stream = fopen("ssh2.sftp://$sftp/atmon.rsc", 'r');
    $contents = '';
    $read = 0;
    $len = $size;
    while ($read < $len && ($buf = fread($stream, $len - $read))) {
        $read += strlen($buf);
        $contents .= $buf;
    }
    file_put_contents ($BACKUP_NAME . ‘.rsc’,$contents);
    @fclose($stream);

    ssh2_exec($connection, '/file remove atmon.backup');
    ssh2_exec($connection, '/file remove atmon.rsc');

?>

బ్యాకప్ రెండు రూపాల్లో తీసుకోబడింది - బైనరీ మరియు టెక్స్ట్ కాన్ఫిగర్. బైనరీ అవసరమైన కాన్ఫిగరేషన్‌ను త్వరగా పునరుద్ధరించడానికి సహాయపడుతుంది మరియు పరికరాల బలవంతంగా భర్తీ చేయబడితే మరియు బైనరీని అప్‌లోడ్ చేయలేకపోతే ఏమి చేయాలో అర్థం చేసుకోవడానికి టెక్స్ట్ ఒకటి మిమ్మల్ని అనుమతిస్తుంది. ఫలితంగా, మేము సిస్టమ్‌లో మరొక అనుకూలమైన కార్యాచరణను పొందాము. అంతేకాకుండా, కొత్త Mikrotikని జోడించేటప్పుడు, ఏదైనా కాన్ఫిగర్ చేయవలసిన అవసరం లేదు; నేను ఆబ్జెక్ట్‌ను సిస్టమ్‌కు జోడించి, SSH ద్వారా దాని కోసం ఖాతాను సెట్ చేసాను. అప్పుడు సిస్టమ్ బ్యాకప్ తీసుకునేలా చూసుకుంది. SaaS Veliam యొక్క ప్రస్తుత వెర్షన్ ఇంకా ఈ కార్యాచరణను కలిగి లేదు, కానీ మేము దీన్ని త్వరలో పోర్ట్ చేస్తాము.

అంతర్గత సిస్టమ్‌లో ఇది ఎలా కనిపించిందో స్క్రీన్‌షాట్‌లు
అవుట్‌సోర్సింగ్ నుండి అభివృద్ధి వరకు (పార్ట్ 1)

సాధారణ డేటాబేస్ నిల్వకు పరివర్తన

కళాఖండాలు కనిపించాయని నేను ఇప్పటికే పైన వ్రాసాను. కొన్నిసార్లు సిస్టమ్‌లోని మొత్తం వస్తువుల జాబితా అదృశ్యమవుతుంది, కొన్నిసార్లు ఒక వస్తువును సవరించేటప్పుడు, సమాచారం సేవ్ చేయబడదు మరియు వస్తువు మూడుసార్లు పేరు మార్చవలసి ఉంటుంది. ఇది అందరినీ విపరీతంగా చికాకు పెట్టింది. వస్తువుల అదృశ్యం చాలా అరుదుగా సంభవించింది మరియు ఈ ఫైల్‌ను పునరుద్ధరించడం ద్వారా సులభంగా పునరుద్ధరించబడుతుంది, అయితే వస్తువులను సవరించేటప్పుడు వైఫల్యాలు చాలా తరచుగా జరుగుతాయి. బహుశా, నేను మొదట్లో డేటాబేస్ ద్వారా దీన్ని చేయలేదు ఎందుకంటే ఫ్లాట్ టేబుల్‌లో అన్ని కనెక్షన్‌లతో చెట్టును ఎలా ఉంచడం సాధ్యమవుతుందో నా మనస్సులో సరిపోలేదు. ఇది చదునైనది, కానీ చెట్టు క్రమానుగతంగా ఉంటుంది. అయితే బహుళ యాక్సెస్‌కు మంచి పరిష్కారం మరియు తదనంతరం (సిస్టమ్ మరింత క్లిష్టంగా మారినప్పుడు) లావాదేవీలు DBMS. నేను బహుశా ఈ సమస్యను ఎదుర్కొన్న మొదటి వ్యక్తిని కాదు. నేను గూగుల్ చేయడం ప్రారంభించాను. ప్రతిదీ నా ముందు ఇప్పటికే కనుగొనబడిందని మరియు ఫ్లాట్ టేబుల్ నుండి చెట్టును నిర్మించే అనేక అల్గోరిథంలు ఉన్నాయని తేలింది. ఒక్కొక్కటి చూసాక అందులో ఒకదాన్ని అమలు చేసాను. కానీ ఇది ఇప్పటికే సిస్టమ్ యొక్క కొత్త వెర్షన్, ఎందుకంటే... నిజానికి, ఈ కారణంగా, నేను చాలా తిరిగి వ్రాయవలసి వచ్చింది. ఫలితం సహజమైనది, వ్యవస్థ యొక్క యాదృచ్ఛిక ప్రవర్తన యొక్క సమస్యలు దూరంగా పోయాయి. సాఫ్ట్‌వేర్ డెవలప్‌మెంట్ రంగంలో లోపాలు చాలా ఔత్సాహిక (సింగిల్-థ్రెడ్ స్క్రిప్ట్‌లు, ఫైల్‌లోని వివిధ థ్రెడ్‌ల నుండి ఒకేసారి అనేకసార్లు యాక్సెస్ చేయబడిన సమాచారాన్ని నిల్వ చేయడం మొదలైనవి) అని కొందరు అనవచ్చు. బహుశా ఇది నిజమే, కానీ నా ప్రధాన పని పరిపాలన, మరియు ప్రోగ్రామింగ్ నా ఆత్మకు ఒక వైపు హస్టల్, మరియు ప్రోగ్రామర్ల బృందంలో పనిచేసిన అనుభవం నాకు లేదు, అటువంటి ప్రాథమిక విషయాలను నా సీనియర్ నాకు వెంటనే సూచించేవారు. సహచరులు. అందువల్ల, నేను ఈ గడ్డలన్నింటినీ నా స్వంతంగా నింపాను, కాని నేను విషయాన్ని బాగా నేర్చుకున్నాను. అలాగే, నా ఉద్యోగంలో క్లయింట్‌లతో సమావేశాలు, కంపెనీని ప్రమోట్ చేయడానికి ఉద్దేశించిన చర్యలు, కంపెనీలోని అడ్మినిస్ట్రేటివ్ సమస్యల సమూహం మరియు మరెన్నో ఉంటాయి. కానీ ఒక మార్గం లేదా మరొకటి, అప్పటికే అక్కడ డిమాండ్ ఉంది. అబ్బాయిలు మరియు నేను మా రోజువారీ పనిలో ఉత్పత్తిని ఉపయోగించాము. స్పష్టంగా విజయవంతం కాని ఆలోచనలు మరియు పరిష్కారాలు ఉన్నాయి, దానిపై సమయం వృధా చేయబడింది, కానీ చివరికి ఇది పని చేసే సాధనం కాదని మరియు ఎవరూ ఉపయోగించలేదని మరియు అది వెలియంలో ముగియలేదని స్పష్టమైంది.

హెల్ప్‌డెస్క్ - హెల్ప్‌డెస్క్

హెల్ప్‌డెస్క్ ఎలా ఏర్పడిందో పేర్కొనడం తప్పు కాదు. ఇది పూర్తిగా భిన్నమైన కథ, ఎందుకంటే... Veliamలో ఇది ఇప్పటికే 3వ పూర్తిగా కొత్త వెర్షన్, ఇది మునుపటి వాటి కంటే భిన్నంగా ఉంది. ఇప్పుడు ఇది ఒక సాధారణ వ్యవస్థ, అనవసరమైన గంటలు మరియు ఈలలు లేకుండా స్పష్టమైనది, డొమైన్‌తో ఏకీకృతం చేయగల సామర్థ్యం, ​​అలాగే ఇమెయిల్ నుండి లింక్‌ను ఉపయోగించి ఎక్కడి నుండైనా ఒకే వినియోగదారు ప్రొఫైల్‌ను యాక్సెస్ చేయగల సామర్థ్యం. మరియు ముఖ్యంగా, VPN లేదా పోర్ట్ ఫార్వార్డింగ్ లేకుండా అప్లికేషన్ నుండి నేరుగా ఎక్కడి నుండైనా (ఇంట్లో లేదా కార్యాలయంలో) VNC ద్వారా దరఖాస్తుదారుని కనెక్ట్ చేయడం సాధ్యపడుతుంది. మేము దీనికి ఎలా వచ్చామో, ఇంతకు ముందు ఏమి జరిగింది మరియు ఏ భయంకరమైన నిర్ణయాలు తీసుకున్నామో నేను మీకు చెప్తాను.

మేము బాగా తెలిసిన TeamViewer ద్వారా వినియోగదారులకు కనెక్ట్ అయ్యాము. మేము సేవలందించే అన్ని కంప్యూటర్‌లు టీవీ ఇన్‌స్టాల్ చేయబడ్డాయి. మేము మొదటి తప్పు చేసాము మరియు తరువాత దానిని తీసివేసాము, ప్రతి HD క్లయింట్‌ను హార్డ్‌వేర్‌కు లింక్ చేయడం. అభ్యర్థనను వదిలివేయడానికి వినియోగదారు HD సిస్టమ్‌కి ఎలా లాగిన్ చేసారు? టీవీతో పాటు, ప్రతి ఒక్కరూ తమ కంప్యూటర్‌లలో లాజరస్‌లో వ్రాసిన ప్రత్యేక యుటిలిటీని ఇన్‌స్టాల్ చేసారు (ఇక్కడ చాలా మంది కళ్ళు తిప్పుతారు, మరియు బహుశా గూగుల్‌కి కూడా వెళ్తారు, కానీ నాకు తెలిసిన ఉత్తమ భాష డెల్ఫీ, మరియు లాజరస్ దాదాపుగా అదే విషయం, ఉచితం మాత్రమే). సాధారణంగా, వినియోగదారు ఈ యుటిలిటీని ప్రారంభించిన ప్రత్యేక బ్యాచ్ ఫైల్‌ను ప్రారంభించాడు, ఇది సిస్టమ్ యొక్క HWIDని చదివింది మరియు ఆ తర్వాత బ్రౌజర్ ప్రారంభించబడింది మరియు అధికారం ఏర్పడింది. ఇది ఎందుకు జరిగింది? కొన్ని కంపెనీలలో, సర్వీస్ చేసిన వినియోగదారుల సంఖ్య వ్యక్తిగతంగా లెక్కించబడుతుంది మరియు ప్రతి నెల సేవ ధర వ్యక్తుల సంఖ్యపై ఆధారపడి ఉంటుంది. ఇది అర్థమయ్యేలా ఉంది, మీరు అంటున్నారు, అయితే ఇది హార్డ్‌వేర్‌తో ఎందుకు ముడిపడి ఉంది? ఇది చాలా సులభం, కొంతమంది వ్యక్తులు ఇంటికి వచ్చి "ఇక్కడ నాకు ప్రతిదీ అందంగా చేయండి" అనే శైలిలో వారి ఇంటి ల్యాప్‌టాప్ నుండి అభ్యర్థన చేశారు. సిస్టమ్ HWIDని చదవడంతో పాటు, యుటిలిటీ రిజిస్ట్రీ నుండి ప్రస్తుత టీమ్‌వ్యూయర్ IDని తీసివేసి, దానిని మాకు ప్రసారం చేసింది. టీమ్‌వ్యూయర్ ఇంటిగ్రేషన్ కోసం APIని కలిగి ఉంది. మరియు మేము ఈ ఇంటిగ్రేషన్ చేసాము. కానీ ఒక క్యాచ్ ఉంది. ఈ APIల ద్వారా, వినియోగదారు ఈ సెషన్‌ను స్పష్టంగా ప్రారంభించనప్పుడు అతని కంప్యూటర్‌కు కనెక్ట్ చేయడం అసాధ్యం మరియు దానికి కనెక్ట్ చేయడానికి ప్రయత్నించిన తర్వాత, అతను తప్పనిసరిగా “నిర్ధారించు” క్లిక్ చేయండి. ఆ సమయంలో, వినియోగదారు అభ్యర్థన లేకుండా ఎవరూ కనెక్ట్ చేయకూడదని మాకు తార్కికంగా అనిపించింది మరియు వ్యక్తి కంప్యూటర్ వద్ద ఉన్నందున, అతను సెషన్‌ను ప్రారంభిస్తాడు మరియు రిమోట్ కనెక్షన్ అభ్యర్థనకు నిశ్చయంగా ప్రతిస్పందిస్తాడు. అంతా తప్పుగా మారింది. దరఖాస్తుదారులు సెషన్‌ను ప్రారంభించడాన్ని నొక్కడం మర్చిపోయారు మరియు ఈ విషయాన్ని వారికి టెలిఫోన్ సంభాషణలో చెప్పవలసి వచ్చింది. ఇది సమయం వృధా మరియు ప్రక్రియ యొక్క రెండు వైపులా నిరాశపరిచింది. అంతేకాకుండా, ఒక వ్యక్తి అభ్యర్థనను వదిలివేసినప్పుడు అటువంటి క్షణాలు అసాధారణం కాదు, కానీ అతను భోజనానికి బయలుదేరినప్పుడు మాత్రమే కనెక్ట్ చేయడానికి అనుమతించబడుతుంది. ఎందుకంటే సమస్య క్లిష్టమైనది కాదు మరియు తన పని ప్రక్రియకు అంతరాయం కలిగించకూడదని అతను కోరుకోడు. దీని ప్రకారం, అతను కనెక్షన్‌ని అనుమతించడానికి ఎటువంటి బటన్‌లను నొక్కడు. హెల్ప్‌డెస్క్‌కి లాగిన్ అయినప్పుడు అదనపు ఫంక్షనాలిటీ ఈ విధంగా కనిపించింది - Teamviwer IDని చదవడం. Teamviwerని ఇన్‌స్టాల్ చేసేటప్పుడు ఉపయోగించే శాశ్వత పాస్‌వర్డ్ మాకు తెలుసు. మరింత ఖచ్చితంగా, ఇది ఇన్‌స్టాలర్‌లో మరియు మా సిస్టమ్‌లోకి నిర్మించబడినందున, సిస్టమ్‌కు మాత్రమే ఇది తెలుసు. దీని ప్రకారం, ఏదైనా కోసం వేచి ఉండాల్సిన అవసరం లేదు, దానిపై క్లిక్ చేయడం ద్వారా అప్లికేషన్ నుండి కనెక్షన్ బటన్ ఉంది, కానీ టీమ్‌వ్యూయర్ వెంటనే తెరవబడింది మరియు కనెక్షన్ ఏర్పడింది. ఫలితంగా, రెండు రకాల కనెక్షన్లు సాధ్యమయ్యాయి. అధికారిక టీమ్‌వ్యూయర్ API మరియు మా స్వీయ నిర్మిత ద్వారా. నా ఆశ్చర్యానికి, వారు మొదటిదాన్ని ఉపయోగించడం మానేశారు, అయినప్పటికీ ప్రత్యేక సందర్భాలలో మరియు వినియోగదారు స్వయంగా ముందుకు వెళ్లినప్పుడు మాత్రమే ఉపయోగించమని సూచన ఉంది. అయినా ఇప్పుడు నాకు భద్రత ఇవ్వండి. కానీ దరఖాస్తుదారులకు ఇది అవసరం లేదని తేలింది. ధృవీకరణ బటన్ లేకుండా వాటికి కనెక్ట్ చేయడంతో అవన్నీ పూర్తిగా బాగానే ఉన్నాయి.

Linuxలో మల్టీథ్రెడింగ్‌కి మారుతోంది

ముందుగా నిర్ణయించిన పోర్ట్‌ల జాబితా యొక్క బహిరంగత మరియు నెట్‌వర్క్ వస్తువుల యొక్క సాధారణ పింగ్ కోసం నెట్‌వర్క్ స్కానర్ యొక్క మార్గాన్ని వేగవంతం చేయడం అనే ప్రశ్న చాలా కాలంగా తలెత్తడం ప్రారంభించింది. ఇక్కడ, వాస్తవానికి, గుర్తుకు వచ్చే మొదటి పరిష్కారం మల్టీథ్రెడింగ్. పింగ్‌పై గడిపిన ప్రధాన సమయం ప్యాకెట్ తిరిగి వచ్చే వరకు వేచి ఉంది మరియు మునుపటి ప్యాకెట్ తిరిగి వచ్చే వరకు తదుపరి పింగ్ ప్రారంభించబడదు, 20+ సర్వర్‌లు మరియు నెట్‌వర్క్ పరికరాలను కలిగి ఉన్న కంపెనీలలో, ఇది ఇప్పటికే చాలా నెమ్మదిగా పని చేస్తుంది. విషయం ఏమిటంటే, ఒక ప్యాకేజీ అదృశ్యం కావచ్చు, కానీ వెంటనే దాని గురించి సిస్టమ్ అడ్మినిస్ట్రేటర్‌కు తెలియజేయవద్దు. అతను అలాంటి స్పామ్‌ను చాలా త్వరగా అంగీకరించడం మానేస్తాడు. దీనర్థం మీరు యాక్సెస్ చేయలేని విషయం గురించి తీర్మానం చేయడానికి ముందు ప్రతి వస్తువును ఒకటి కంటే ఎక్కువసార్లు పింగ్ చేయాలి. చాలా వివరంగా వెళ్లకుండా, దానిని సమాంతరంగా ఉంచడం అవసరం ఎందుకంటే ఇది చేయకపోతే, సిస్టమ్ అడ్మినిస్ట్రేటర్ క్లయింట్ నుండి సమస్య గురించి నేర్చుకుంటారు మరియు పర్యవేక్షణ వ్యవస్థ నుండి కాదు.

PHP కూడా బాక్స్ వెలుపల మల్టీథ్రెడింగ్‌కు మద్దతు ఇవ్వదు. మల్టీప్రాసెసింగ్ సామర్థ్యం, ​​మీరు ఫోర్క్ చేయవచ్చు. కానీ, వాస్తవానికి, నేను ఇప్పటికే పోలింగ్ మెకానిజంను వ్రాసి ఉంచాను మరియు నేను డేటాబేస్ నుండి నాకు అవసరమైన అన్ని నోడ్‌లను ఒకసారి లెక్కించేలా చేయాలనుకుంటున్నాను, ప్రతిదీ ఒకేసారి పింగ్ చేస్తాను, ప్రతిదాని నుండి ప్రతిస్పందన కోసం వేచి ఉండండి మరియు ఆ తర్వాత మాత్రమే వెంటనే వ్రాయండి సమాచారం. ఇది రీడ్ రిక్వెస్ట్‌ల సంఖ్యను ఆదా చేస్తుంది. మల్టీథ్రెడింగ్ ఈ ఆలోచనకు సరిగ్గా సరిపోతుంది. PHP కోసం PThreads మాడ్యూల్ ఉంది, అది మిమ్మల్ని నిజమైన మల్టీథ్రెడింగ్ చేయడానికి అనుమతిస్తుంది, అయినప్పటికీ PHP 7.2లో దీన్ని సెటప్ చేయడానికి తగిన మొత్తంలో టింకరింగ్ పట్టింది, కానీ అది పూర్తయింది. పోర్ట్ స్కానింగ్ మరియు పింగ్ ఇప్పుడు వేగంగా ఉన్నాయి. మరియు బదులుగా, ఉదాహరణకు, ల్యాప్‌కు 15 సెకన్ల ముందు, ఈ ప్రక్రియ 2 సెకన్లు తీసుకోవడం ప్రారంభించింది. ఇది మంచి ఫలితాన్నిచ్చింది.

కొత్త కంపెనీల త్వరిత ఆడిట్

వివిధ కొలమానాలు మరియు హార్డ్‌వేర్ లక్షణాలను సేకరించే కార్యాచరణ ఎలా వచ్చింది? ఇది సులభం. కొన్నిసార్లు మేము ప్రస్తుత IT మౌలిక సదుపాయాలను ఆడిట్ చేయమని ఆదేశించబడతాము. సరే, కొత్త క్లయింట్ యొక్క ఆడిట్‌ను వేగవంతం చేయడానికి అదే విషయం అవసరం. మాకు మధ్యస్థ లేదా పెద్ద కంపెనీకి రావడానికి మరియు వారి వద్ద ఉన్న వాటిని త్వరగా గుర్తించడానికి అనుమతించే ఏదైనా మాకు అవసరం. నా అభిప్రాయం ప్రకారం, అంతర్గత నెట్‌వర్క్‌లోని పింగ్ వారి స్వంత జీవితాలను క్లిష్టతరం చేయాలనుకునే వారిచే మాత్రమే నిరోధించబడుతుంది మరియు మా అనుభవంలో వాటిలో కొన్ని ఉన్నాయి. కానీ అలాంటి వ్యక్తులు కూడా ఉన్నారు. దీని ప్రకారం, మీరు సరళమైన పింగ్‌తో పరికరాల ఉనికి కోసం నెట్‌వర్క్‌లను త్వరగా స్కాన్ చేయవచ్చు. అప్పుడు మనం వాటిని జోడించవచ్చు మరియు మనకు ఆసక్తి ఉన్న ఓపెన్ పోర్ట్‌ల కోసం స్కాన్ చేయవచ్చు. వాస్తవానికి, ఈ కార్యాచరణ ఇప్పటికే ఉంది; సెంట్రల్ సర్వర్ నుండి స్లేవ్‌కి ఆదేశాన్ని జోడించడం మాత్రమే అవసరం, తద్వారా ఇది పేర్కొన్న నెట్‌వర్క్‌లను స్కాన్ చేస్తుంది మరియు అది కనుగొన్న ప్రతిదాన్ని జాబితాకు జోడిస్తుంది. నేను పేర్కొనడం మర్చిపోయాను, మేము ఇప్పటికే కాన్ఫిగర్ చేయబడిన సిస్టమ్ (స్లేవ్ మానిటరింగ్ సర్వర్)తో రెడీమేడ్ ఇమేజ్‌ని కలిగి ఉన్నామని భావించబడింది, ఆడిట్ సమయంలో క్లయింట్ నుండి బయటకు వెళ్లి దానిని మా క్లౌడ్‌కు కనెక్ట్ చేయవచ్చు.

కానీ ఆడిట్ ఫలితంగా సాధారణంగా విభిన్న సమాచారం యొక్క సమూహాన్ని కలిగి ఉంటుంది మరియు వాటిలో ఒకటి నెట్‌వర్క్‌లో ఏ రకమైన పరికరాలు ఉన్నాయి. అన్నింటిలో మొదటిది, డొమైన్‌లో భాగంగా Windows సర్వర్‌లు మరియు Windows వర్క్‌స్టేషన్‌లపై మాకు ఆసక్తి ఉంది. మధ్యస్థ మరియు పెద్ద కంపెనీలలో డొమైన్ లేకపోవడం బహుశా నియమానికి మినహాయింపు కావచ్చు. ఒక భాష మాట్లాడటానికి, సగటు, నా అభిప్రాయం ప్రకారం, 100+ మంది. అన్ని Windows మెషీన్‌లు మరియు సర్వర్‌ల నుండి వారి IP మరియు డొమైన్ అడ్మినిస్ట్రేటర్ ఖాతాను తెలుసుకోవడం ద్వారా డేటాను సేకరించే మార్గాన్ని రూపొందించడం అవసరం, కానీ వాటిలో ప్రతి ఒక్కటి ఏ సాఫ్ట్‌వేర్‌ను ఇన్‌స్టాల్ చేయకుండా. WMI ఇంటర్ఫేస్ రక్షించటానికి వస్తుంది. విండోస్ మేనేజ్‌మెంట్ ఇన్‌స్ట్రుమెంటేషన్ (WMI) అంటే విండోస్ మేనేజ్‌మెంట్ సాధనాలు. విండోస్ ప్లాట్‌ఫారమ్‌లో నడుస్తున్న కంప్యూటర్ ఇన్‌ఫ్రాస్ట్రక్చర్‌లోని వివిధ భాగాల ఆపరేషన్ యొక్క కేంద్రీకృత నిర్వహణ మరియు పర్యవేక్షణ కోసం ప్రాథమిక సాంకేతికతలలో WMI ఒకటి. వికీ నుండి తీసుకోబడింది. తర్వాత, డెబియన్ కోసం wmic (ఇది WMI క్లయింట్) కంపైల్ చేయడానికి నేను మళ్లీ టింకర్ చేయాల్సి వచ్చింది. అంతా సిద్ధమైన తర్వాత, అవసరమైన సమాచారం కోసం wmic ద్వారా అవసరమైన నోడ్‌లను పోల్ చేయడమే మిగిలి ఉంది. WMI ద్వారా మీరు Windows కంప్యూటర్ నుండి దాదాపు ఏదైనా సమాచారాన్ని పొందవచ్చు మరియు అంతేకాకుండా, మీరు దాని ద్వారా కంప్యూటర్‌ను కూడా నియంత్రించవచ్చు, ఉదాహరణకు, రీబూట్ చేయడానికి పంపండి. మా సిస్టమ్‌లోని విండోస్ స్టేషన్లు మరియు సర్వర్‌ల గురించిన సమాచార సేకరణ ఈ విధంగా కనిపించింది. దీనికి అదనంగా, ప్రస్తుత సిస్టమ్ లోడ్ సూచికల గురించి ప్రస్తుత సమాచారం ఉంది. మేము వాటిని తరచుగా అభ్యర్థిస్తాము మరియు హార్డ్‌వేర్‌పై సమాచారాన్ని తక్కువ తరచుగా అభ్యర్థిస్తాము. దీని తరువాత, ఆడిటింగ్ కొంచెం ఆనందదాయకంగా మారింది.

సాఫ్ట్‌వేర్ పంపిణీ నిర్ణయం

మేము ప్రతిరోజూ సిస్టమ్‌ను ఉపయోగిస్తాము మరియు ప్రతి సాంకేతిక ఉద్యోగికి ఇది ఎల్లప్పుడూ తెరిచి ఉంటుంది. మరియు మేము ఇప్పటికే కలిగి ఉన్న వాటిని ఇతరులతో పంచుకోవచ్చని మేము అనుకున్నాము. పంపిణీకి వ్యవస్థ ఇంకా సిద్ధంగా లేదు. స్థానిక వెర్షన్ SaaSగా మారడానికి చాలా తిరిగి పని చేయాల్సి వచ్చింది. వీటిలో సిస్టమ్‌లోని వివిధ సాంకేతిక అంశాలలో మార్పులు (రిమోట్ కనెక్షన్‌లు, సపోర్ట్ సర్వీస్), లైసెన్సింగ్ కోసం మాడ్యూల్స్ విశ్లేషణ, కస్టమర్ డేటాబేస్‌ల షేడింగ్, ప్రతి సేవ యొక్క స్కేలింగ్ మరియు అన్ని భాగాల కోసం ఆటో-అప్‌డేట్ సిస్టమ్‌ల అభివృద్ధి వంటివి ఉన్నాయి. కానీ ఇది వ్యాసం యొక్క రెండవ భాగం అవుతుంది.

నవీకరణ

రెండవ భాగం

మూలం: www.habr.com

ఒక వ్యాఖ్యను జోడించండి