Moving Media Elasticsearch
Stack Overflow: L'Architettura - 2016 Edition Per avere un'idea di quello che tutta questa roba fa, mi permetta di iniziare con un aggiornamento nel giorno medio a overflow dello stack. Quindi è possibile confrontare i numeri precedenti a partire da novembre 2013. heres una giornata di statistiche dal 9 Febbraio 2016 con le differenze dal 12 novembre 2013: 209.420.973 (61.336.090) le richieste HTTP al nostro bilanciamento del carico 66.294.789 (30.199.477) di coloro che sono stati pagina viene caricata 1,240,266,346,053 (406.273.363.426) byte (1,24 TB) del traffico HTTP inviata 569.449.470.023 (282.874.825.991) byte (569 GB) totale ricevuto 3,084,303,599,266 (1,958,311,041,954) byte (3,08 TB) totale inviato 504.816.843 (170.244.740) di query SQL (da solo le richieste HTTP) 5.831.683,114 mila (5.418.818,063 mila) Redis colpisce 17.158.874 (non monitorati nel 2013) elastico cerca 3,661,134 (57.716) Tag motore richiede 607,073,066 (48,848,481) ms (168 ore) spesi in esecuzione query SQL 10,396,073 (-88,950,843) ms (2,8 ore) spesi per Redis hits 147,018,571 (14,634,512) ms (40.8 ore) spesi per Tag Engine chiede 1,609,944,301 (-1,118,232,744) ms (447 ore) spesi trasformazione in ASP 22,71 (-5,29) media ms (19.12 ms in ASP) per 49.180.275 pagina questione rende 11.80 (-53,2) media ms (8.81 ms in ASP) per 6.370.076 home page rende Ci si potrebbe chiedere circa la drastica riduzione dei tempi di elaborazione ASP rispetto al 2013 (che era 757 ore), nonostante 61 milioni di richieste al giorno. Questo è dovuto sia ad un aggiornamento hardware nei primi mesi del 2015, così come un sacco di ottimizzazione delle prestazioni all'interno delle applicazioni stesse. Si prega di non dimenticate: la prestazione è ancora una caratteristica. Se siete curiosi di sapere più specifiche hardware che sto per providefear no. Il prossimo post sarà un'appendice con specifiche hardware dettagliate per tutti i server che eseguono i siti (Ill aggiornare questo con un collegamento quando il suo vivo). Così che cosa è cambiato negli ultimi 2 anni oltre la sostituzione di alcuni server e apparecchiature di rete, non molto. Ecco un elenco di alto livello di hardware che gestisce i siti oggi (notare che cosa è diverso dal 2013): 4 SQL Server di Microsoft (il nuovo hardware per 2 di loro) 11 IIS Web Server (nuovo hardware) 2 Redis Server (nuovo hardware) 3 Tag i server del motore (nuovo hardware per 2 dei 3) 3 server elasticsearch (stessi) 4 HAProxy di bilanciamento del carico (aggiunti 2 per supportare CloudFlare) 2 reti (ciascuno un Nexus 5596 core 2232TM Fabric Extender. aggiornato a 10 Gbps in tutto il mondo) 2 Fortinet 800C firewall ( sostituito Cisco 5525-X ASA) Router 2 Cisco ASR-1001 (sostituito Cisco 3945 Router) 2 Cisco ASR-1001-x Router (nuovo) cosa abbiamo bisogno per eseguire Stack Overflow che hasnt cambiato molto dal 2013. ma a causa delle ottimizzazioni e il nuovo hardware di cui sopra, sono stati fino a che necessitano solo 1 server web. Abbiamo testato questo involontariamente, con successo, un paio di volte. Per essere chiari: Im dicendo funziona. Im non dicendo che è una buona idea. Il suo divertimento, però, ogni volta. Ora che abbiamo alcuni numeri di base per un'idea di scala, consente di vedere come facciamo quelle pagine web di fantasia. Dal momento che alcuni sistemi esistono in completo isolamento (e la nostra non fa eccezione), le decisioni di architettura spesso fanno molto meno senso senza un quadro più ampio di come quei pezzi si inseriscono nel suo complesso. Quello è l'obiettivo qui, per coprire il quadro generale. Molti i messaggi successivi faranno immersioni profonde in aree specifiche. Questa sarà una panoramica logistico con riflessi hardware solo il prossimo post avrà i dettagli hardware. Per quelli di voi qui per vedere cosa l'hardware sembra in questi giorni, qui ci sono alcune foto che ho scattato di cremagliera A (che ha una sorella cremagliera corrispondenza B) durante la nostra febbraio 2015 aggiornamento: e se siete in questo genere di cose, ecco l'intero album di immagini a 256 da quella settimana (sei dannatamente ragione che i numeri intenzionale). Ora, consente di scavare nel layout. Ecco una panoramica logica dei principali sistemi in gioco: Regole di base Ecco alcune regole che si applicano a livello globale in modo da non devo ripeterli con ogni configurazione: Tutto è ridondante. Tutti i server e le apparecchiature di rete dispone di connettività di almeno 2x 10 Gbps. Tutti i server sono 2 alimentazioni con 2 alimentatori da 2 unità UPS supportate da 2 generatori e 2 utility alimenta. Tutti i server hanno un partner ridondante tra cremagliera A e B. Tutti i server ei servizi sono doppiamente ridondante tramite un altro data center (Colorado), anche se la maggior parte Im parlando di New York qui. Tutto è ridondante. I Internets prima devi trovare usthats DNS. Trovare ci deve essere veloce, così abbiamo coltivare questo fuori a CloudFlare (al momento) perché non hanno i server DNS più vicino a quasi tutti in tutto il mondo. Aggiorniamo i nostri record DNS tramite un API e fanno l'hosting di DNS. Ma dal momento che erano cretini con problemi di fiducia radicate, abbiamo ancora i nostri server DNS pure. Se l'apocalisse accadere (probabilmente causato dalla GPL, Punyon. O caching) e la gente ancora voglia di programmare a prendere la loro mente fuori di esso, ben li capovolgere. Dopo aver trovato il nostro rifugio segreto, il traffico HTTP proviene da uno dei nostri quattro fornitori di servizi Internet (Livello 3, Zayo, Cogent, e Lightower a New York) e scorre attraverso uno dei nostri quattro edge router. Noi scrutiamo con i nostri fornitori di servizi Internet utilizzando BGP (abbastanza standard) al fine di controllare il flusso di traffico e di fornire diverse strade per il traffico per raggiungerci nel modo più efficiente. Questi ASR-1001 e ASR-1001-X router sono in 2 coppie, ciascuna a servizio 2 ISP in fashionso activeactive erano ridondanti qui. Anche se theyre tutto sulla stessa rete 10 Gbps fisici, il traffico esterno è in VLAN esterno isolato separati che i bilanciatori di carico sono collegati a pure. Dopo che scorre attraverso i router, siate diretti per un bilanciamento del carico. Suppongo che questo potrebbe essere un buon momento per parlare di noi abbiamo un 10 Gbps MPLS tra i nostri 2 centri dati, ma non è direttamente coinvolta nel servire i siti. Usiamo questo per la replica dei dati e il recupero rapido nei casi in cui abbiamo bisogno di una raffica. Ma Nick, quello non è ridondante Beh, sei tecnicamente corretta (il miglior tipo di corretta), thats un singolo punto di errore sulla sua faccia. Ma aspettiamo Manteniamo altre 2 percorsi di failover OSPF (MPLS è 1, questi sono 2 e 3 dal costo) attraverso i nostri fornitori di servizi Internet. Ognuno dei gruppi menzionati in precedenza si collega al corrispondente set in Colorado, e bilanciare il traffico tra la situazione di failover. Potremmo fare entrambe le serie si collegano a entrambi i gruppi e hanno 4 percorsi ma, beh, qualsiasi cosa. Andare avanti. Load Balancer (HAProxy) Il bilanciamento del carico sono in esecuzione HAProxy 1.5.15 su CentOS 7. nostro sapore preferito di Linux. TLS (SSL) il traffico è anche terminata in HAProxy. Ebbene essere alla ricerca duramente HAProxy 1,7 presto per HTTP2 supporto. A differenza di tutti gli altri server con un doppio collegamento di rete 10 Gbps LACP, ciascuna di bilanciamento del carico ha 2 paia di 10 Gbps: una per la rete esterna e una per la DMZ. Queste scatole corrono 64GB o più di memoria per gestire in modo più efficiente la negoziazione SSL. Quando possiamo memorizzare nella cache più sessioni TLS in memoria per il riutilizzo, ce n'è di meno per ricalcolare nelle successive connessioni allo stesso cliente. Questo significa che siamo in grado di riprendere le sessioni sia più rapido ed economico. Dato che la RAM è piuttosto a buon mercato dollaro-saggio, la sua una scelta facile. Il carico bilanciatori stessi sono una piuttosto semplice configurazione. Ascoltiamo a diversi siti su diversi indirizzi IP (per lo più per le preoccupazioni dei certificati e la gestione del DNS) e percorso a vari backend basate principalmente sulla intestazione host. Le uniche cose degne di nota che facciamo qui è rate limiting e alcune catture di intestazione (inviati dal nostro livello Web) nel messaggio di syslog HAProxy modo da poter registrare i parametri di rendimento per ogni singola richiesta. Bene coprire che più tardi anche. Livello Web (IIS 8.5, ASP MVC 5.2.3 e 4.6.1) Il carico di bilanciatori alimentano il traffico verso i server 9 ci riferiamo come primaria (01-09) e 2 devmeta (10-11, il nostro ambiente di staging) server web. I server primari funzionano le cose come Stack Overflow, Carriere, e tutti i siti di Exchange Stack tranne meta. stackoverflow e meta. stackexchange. che corrono sulla ultimi 2 server. Il QampA applicazione principale è di per sé multi-tenant. Ciò significa che una singola applicazione serve le richieste di tutti i siti QampA. Detto in altro modo: siamo in grado di eseguire l'intera rete QampA fuori di un singolo pool di applicazioni su un singolo server. Altre applicazioni come Carriera, API v2, API mobile, ecc sono separati. Ecco quali sono i livelli primario e dev assomigliano in IIS: Heres che cosa distribuzione Stack Overflow in tutto il livello Web assomiglia a Opserver (nostro monitoraggio cruscotto interno): Ed ecco ciò che quelle server web assomigliano dal punto di vista di utilizzo: Ill andare in perché erano così overprovisioned nei prossimi post, ma gli elementi di evidenziazione sono: rotolamento costruisce, l'altezza libera, e la ridondanza. Servizio Tier (IIS, ASP MVC 5.2.3. Net 4.6.1, e HTTP. SYS) Dietro i server web è molto simile livello di servizio. E 'anche in esecuzione IIS 8.5 su Windows 2012R2. Questo livello gestisce i servizi interni per sostenere il livello di produzione web e altri sistemi interni. I due grandi giocatori qui sono Pila Server che gestisce il motore di tag e si basa su http. sys (non dietro IIS) e l'API Providence (basato su IIS). Una curiosità: devo impostare l'affinità su ciascuno di questi 2 processi di atterrare su prese separati perché Pila Server solo brusio della L2 e L3 cache durante l'aggiornamento liste di domande su un intervallo di 2 minuti. Queste scatole di servizio fanno sollevamento di carichi pesanti con le API del motore di tag e di back-end in cui abbiamo bisogno di ridondanza, ma non ad un licenziamento 9x. Ad esempio, il caricamento di tutti i messaggi e le loro etichette che cambiano ogni n minuti dal database (attualmente 2) isnt che a buon mercato. Noi non vogliamo farlo carico 9 volte sul livello Web 3 volte è sufficiente e ci dà abbastanza sicurezza. Abbiamo inoltre configurare queste scatole in modo diverso sul lato hardware per essere meglio ottimizzato per le diverse caratteristiche di carico computazionale del motore tag e posti di lavoro di indicizzazione elastici (che corrono anche qui). Il motore tag è un argomento relativamente complicato in sé e sarà un post dedicato. Le basi sono: quando si visita questionstaggedjava. sei colpendo il motore tag per vedere quale interroga partita. Fa tutta la nostra corrispondenza tag al di fuori della ricerca. in modo che la nuova navigazione. ecc sono tutti utilizzano questo servizio per i dati. Cache amp PubSub (Redis) Usiamo Redis per un paio di cose qui e la sua solida roccia. Nonostante facendo circa 160 miliardi ops un mese, ogni istanza è inferiore al 2 CPU. Di solito molto più bassa: Abbiamo un sistema di cache L1L2 con Redis. L1 è HTTP cache sui server web o qualsiasi applicazione è in gioco. L2 sta cadendo di nuovo a Redis e andare a prendere il valore fuori. I nostri valori sono memorizzati nel formato Protobuf. via protobuf-dot-net da Marc Gravell. Per un cliente, stavano usando StackExchange. Redis scritte in-house e open source. Quando un server web ottiene una cache miss sia in L1 e L2, si recupera il valore da fonte (una query di database, chiamata API, ecc) e mette il risultato in entrambe le cache locale e Redis. Il server successivo volere il valore può perdere L1, ma sarebbe trovare il valore in L2Redis, il salvataggio di una query di database o chiamata API. Abbiamo anche eseguire molti siti QampA, in modo che ogni sito ha il suo caching L1L2: dal prefisso chiave in L1 e per ID database in L2Redis. Bene andare più a fondo su questo in un post futuro. Accanto ai 2 principali server Redis (MasterSlave) che corrono tutte le istanze del sito, abbiamo anche un esempio di apprendimento macchina asservita attraverso 2 server dedicati di più (a causa di memoria). Questo è usato per raccomandare domande sulla home page, una migliore corrispondenza ai posti di lavoro, ecc La sua una piattaforma chiamata Providence, coperto da Kevin Montrose qui. I principali server Redis avere 256 GB di RAM (circa 90 GB in uso) ei server Providence avere 384 GB di RAM (circa 125GB in uso). Redis isnt solo per la cache, però, ha anche un meccanismo di pubblicare abbonato amp in cui un server può pubblicare un messaggio e tutti gli altri abbonati ricevono itincluding clienti a valle su Redis schiavi. Usiamo questo meccanismo per cancellare le cache L1 su altri server quando un server web fa una rimozione di coerenza, ma c'è un altro grande uso: WebSockets. WebSockets (NetGain) Usiamo WebSockets per spingere gli aggiornamenti in tempo reale per gli utenti, come le notifiche nella barra in alto, voto conta, nuovi conteggi nav, nuove risposte e commenti, e alcuni altri pezzi. I server socket si utilizzano socket raw in esecuzione sul livello Web. Il suo un sottilissimo applicazione sulla parte superiore della nostra libreria open source: StackExchangeGain. Durante l'alta, abbiamo circa 500.000 connessioni simultanee websocket aperte. Quello è un sacco di browser. Una curiosità: alcuni di questi browser sono stati aperti per oltre 18 mesi. non erano sicuri perché. Qualcuno dovrebbe andare a controllare se gli sviluppatori sono ancora vivi. Ecco ciò che questo modello settimane concomitante websocket assomiglia: perché WebSockets Theyre enormemente più efficiente di polling presso la nostra scala. Possiamo semplicemente spingere più dati con meno risorse questo modo, pur essendo più immediata per l'utente. Non Theyre senza problemi thoughephemeral porto e file di maniglia esaurimento sul bilanciamento del carico sono problemi di divertimento e coprire più tardi. Search (elasticsearch) Spoiler: theres non un sacco di entusiasmante qui. Il livello Web sta facendo ricerche piuttosto vaniglia contro elasticsearch 1.4, utilizzando il client molto sottile ad alte prestazioni StackExchange. Elastic. A differenza di molte altre cose, non abbiamo intenzione di aprire fonte questo semplicemente perché espone solo un sottoinsieme molto sottile delle API che usiamo. Credo fermamente rilasciando che avrebbe fatto più male che bene con la confusione sviluppatore. Stavano usando elastico per la ricerca. calcolo questioni connesse, e suggerimenti quando si chiede una domanda. Ogni cluster elastico (theres uno in ogni centro dati) ha 3 nodi, e ogni sito ha il suo indice. Opportunità di lavoro ha un ulteriore paio di indici. Ciò che rende la nostra messa a punto un po 'non standard nel mondo elastico: i nostri cluster di server 3 sono un po' beefier rispetto alla media, con tutto lo storage SSD, 192 GB di RAM, e doppia rete 10 Gbps ciascuno. Gli stessi domini applicativi (sì, sono stati avvitati con processori Core qui) a Pila server che ospitano il motore tag anche continuamente voci di indice in elasticsearch. Facciamo alcuni trucchi semplici, come per esempio rowversion in SQL Server (la fonte dei dati) rispetto nei confronti di un ultimo documento di posizione in elastico. Dal momento che si comporta come una sequenza, possiamo semplicemente afferrare e indice di tutti gli elementi che sono stati modificati dopo l'ultimo passaggio. Il motivo principale erano in elasticsearch invece di qualcosa di simile a SQL di ricerca full-text è la scalabilità e una migliore allocazione del denaro. CPU SQL sono relativamente molto costosi, elastico è a buon mercato e ha molte più caratteristiche in questi giorni. Perché non Solr. Vogliamo cercare tutta la rete (molti indici in una sola volta), e questo non era sostenuto al momento della decisione. La ragione per cui non erano in 2.x ancora è un cambiamento importante per i tipi significa che dobbiamo reindicizzare tutto per l'aggiornamento. Ho appena non hanno abbastanza tempo per fare ancora i cambiamenti necessari e piano di migrazione. Basi di dati (SQL Server) stavano usando SQL Server come la nostra unica fonte di verità. Tutti i dati in elastico e Redis proviene da SQL Server. Corriamo 2 cluster SQL Server con gruppi di disponibilità AlwaysOn. Ognuno di questi gruppi ha 1 master (prendendo quasi tutto il carico) e 1 replica a New York. Inoltre, hanno 1 replica in Colorado (nostro data DR al centro). Tutte le repliche sono asincrone. Il primo gruppo è un insieme di server Dell R720xd, ciascuno con 384 GB di RAM, 4 TB di spazio PCIe SSD, e 2x 12 core. Ospita il Stack Overflow, Siti (brutto nome, Ill spiegare più avanti), PRIZM, e le banche dati mobili. Il secondo gruppo è un insieme di server Dell R730xd, ciascuno con 768 GB di RAM, 6 TB di spazio PCIe SSD, e 2x 8 core. Questo cluster gestisce tutto il resto. Tale elenco comprende Carriere. Open ID. Chiacchierare. il nostro registro delle eccezioni. ed ogni altro sito QampA (ad esempio Super User. Fault Server ecc.). l'utilizzo della CPU al livello database è qualcosa che ci piace tenere molto basso, ma la sua realtà è un po 'alto in questo momento a causa di alcuni problemi di cache dei piani sono state affrontando. A partire da ora, NY-SQL02 e 04 sono maestri, 01 e 03 sono repliche che abbiamo appena riavviato oggi durante alcuni aggiornamenti SSD. Ecco quali sono le ultime 24 ore si presenta come: Il nostro utilizzo di SQL è piuttosto semplice. Semplice è veloce. Anche se alcune query possono essere pazzo, la nostra interazione con SQL per sé è abbastanza vaniglia. Abbiamo alcuni eredità Linq2Sql. ma tutto il nuovo sviluppo sta usando Dapper. il nostro open source Micro-ORM con pocos. Mettiamola in un altro modo: overflow dello stack ha solo 1 stored procedure nel database e ho intenzione di passare l'ultima traccia in codice. D'accordo lascia cambiare marcia a qualcosa che può più direttamente aiutare. Ive ha citato alcuni di questi in alto, ma Ill fornire un elenco qui di molte librerie open-source manteniamo per il mondo per l'uso. Apriamo loro provenienza, perché non hanno alcun valore di core business, ma può aiutare il mondo degli sviluppatori. Spero che si trovano questi utile oggi: Dapper (Core) - ad alte prestazioni micro-ORM per ADO StackExchange. Redis - ad alte prestazioni Redis cliente MiniProfiler - profiler leggero si corre su ogni pagina (supporta anche Ruby, Go, e Node) Eccezionale - logger errore per SQL, JSON, MySQL, ecc Jil - ad alte prestazioni JSON (de) serializzatore Sigil - Un aiuto generazione CIL (per quando C non è abbastanza veloce) NetGain - ad alte prestazioni del server websocket Opserver - Monitoraggio cruscotto elettorali maggior parte dei sistemi direttamente e alimentazione da Orion, nostromo, o WMI pure. Nostromo - sistema di monitoraggio back-end, scritto in Go Il prossimo è un elenco dettagliato hardware corrente di quello che corre il nostro codice. Dopo di che, si va giù la lista. Rimanete sintonizzati. per visualizzare i commenti alimentati da Disqus. The profilo successivo nella nostra serie Come Lavoro prega di abilitare JavaScript è Colton Fischer. Colton è una delle colture di nuovi blogger PeopleSoft che scoppiano sulla scena durante il 2016. Il suo blog PeopleSoft Mods è un tesoro di grande contenuto e se you8217ve non stato prima it8217s valore di scorrimento indietro attraverso Colton8217s messaggi storici 8211 mentre doesn8217t basta guardare esistente funzionalità consegnato, ma si estende PeopleSoft in modi che it8217s chiaro a vedere i benefici di business, spesso spiegando come è possibile ottenere gli stessi risultati. Nome: Colton Fischer Professione: Application Developer presso l'Università di Houston Località: Houston, Texas, Stati Uniti d'America del computer attuale: Il mio desktop è un Dell Optiplex 9020 e il mio computer portatile è un Dell Precision 3510 dispositivi mobili attuali: Samsung Galaxy S5 Lavoro: Ardentemente Cosa appssoftwaretools can8217t si vive senza strumento di cattura attrezzo utile per quando ho bisogno di un rapido screenshot per documentare o dimostrare qualcosa client VPN e desktop remoto io non lavoro da casa troppo, ma questo è un salvagente quando mi dimentico alcuni file sul mio computer in ufficio YouTube mobile App io sono più di uno studente visivo, così mi piace guardare i video didattici di YouTube sul mio telefono quando ho un po 'di tempo giù ESPN mobile App mi permette tenere il passo con collegiale e sport professionistico Oltre il telefono e il computer, cosa can8217t gadget si vive senza Id devo dire la mia macchina per il caffè. Quella cosa mi passa attraverso ogni mattina, perché io non so cosa avrei fatto se ho avuto il mio caffè. What8217s l'area di lavoro come vorrei dire che il mio lavoro è molto semplice. Devo ammettere che non è normalmente pulita come è in questo quadro. La maggior parte del lavoro che faccio accade sul mio computer desktop. Io uso il mio computer portatile per l'esecuzione di sistemi demo personali di fare sviluppo sperimentale nel campo. Io uso anche i sistemi sul mio portatile quando faccio uno sviluppo che richiede una costante app e web server rimbalza in modo che io non disturbare nessuno. Cosa si ascolta mentre si lavora mi piace di più tutti i generi musicali, ma quello che ascolto mentre lavoro si basa molto sul tipo di lavoro che sto facendo. Se sto facendo qualcosa che mi obbliga a riflettere, ascolto morbide canzoni chitarra acustica. Se ho bisogno di pensare troppo, quindi ho la maggior parte trovo ad ascoltare rock metal, punk rock, e di tanto in tanto dubstep. Quali applicazioni di produttività PeopleSoft relativi usi ho App Designer, SQL Developer, e le finestre di Chrome aperte a tutti i tempi. Mi piace usare Chrome add-on o altre applicazioni di produttività web-based. Io uso client avanzato riposo per Chrome quando ho bisogno di lavorare con i servizi web. Quando ho bisogno di visualizzare rapidamente un po 'di XML non formattato, io uso un visualizzatore XML online per formattarlo per me. Lavoro spesso con Base64 valori codificati, per cui uso un decoder Base64 on-line per ottenere i valori decodificati. Io uso anche i DevTools Chrome per visualizzare la fonte dietro i campi nelle pagine PeopleSoft. Avete una punta 2-line che alcuni altri potrebbero non sanno io non sono sicuro di come noto si tratta, ma di recente ho scoperto che meta-HTML può essere utilizzato nel catalogo dei messaggi. Utilizzando meta-HTML (o anche regolare HTML) nei messaggi può consentire per alcune funzionalità di configurazione basata su fresco. Cosa SQLCODE di scoprirvi a scrivere il più delle volte io di solito scrivere query sulle tabelle di sicurezza che si occupano di ruoli e gli elenchi delle autorizzazioni. Tuttavia, qui ultimamente ho scritto alcune domande sui tavoli PSACCESSLOG e PSPTLOGINAUDIT. Ci sono alcune informazioni davvero interessante in queste tabelle dal punto di vista della sicurezza. Quale sarebbe l'unico elemento you8217d aggiungi a PeopleSoft se potesse mi piacerebbe vedere un po 'di funzionalità incorporate per rendere più facile identificare i dati sensibili (numeri di conti bancari, SSN, ecc) campi in PeopleSoft. Sarebbe bello se le definizioni dei campi che vengono utilizzati per storedisplay dati sensibili avrebbero una impostazione per distinguere il livello di sensibilità. Avere queste informazioni memorizzate nelle tabelle di meta-dati permetterebbe la possibilità di scrivere con facilità le query per determinare dove l'applicazione viene esposta dati sensibili. Ciò, in - girare a consentire agli amministratori di sicurezza PeopleSoft per garantire in modo più efficace le loro applicazioni PeopleSoft. Che cosa di tutti i giorni sono meglio di chiunque altro a non sono sicuro se io sono meglio di chiunque altro a questo, ma io sono bravo a gestione del tempo e non procrastinare. Come si fa a mantenere in buona salute e felice mi piace giocare a golf e tennis quando ho qualcuno a disposizione per giocare con. Quando sono solo e voglio fare qualcosa di fisico, di solito vado skateboard. Un'altra cosa che mi tiene felice (ma non in modo sano) sta giocando Xbox. What8217s il miglior consiglio che abbia mai ricevuto you8217ve Il miglior consiglio Ive ha ricevuto è quello di iniziare ogni giorno fresco e con un colpo di spugna a prescindere da come il giorno precedente è andato. La sua facile da trasportare lotte e le frustrazioni con noi da un giorno all'altro, ma ostacola solo la produttività e le prospettive. There8217s un grande episodio della serie di interviste Marc Weintraub8217s PeopleSoft Talk, con una discussione 30 minuti con Paco Aubrejuan. There8217ll essere alcuni grandi punti per tutti di portare via da esso, ma qui sono i miei punti salienti: Sulla data corrente Supporto di fine dicembre 2027: There8217s nessun piano per porre fine supporto per PeopleSoft poi, it8217s realtà non è così importante una data. Capita di essere data in questo momento che il nostro supporto a vita va a 8230 che, probabilmente, won8217t essere il caso e come ci avviciniamo a tale data il piano è quello di spostare quelle date fuori. Su continui investimenti: Per me gli investimenti e il sostegno sono la stessa cosa. It8217s difficile per supportare applicazioni senza continuare a migliorare la loro. We8217re pianificazione per sostenere e migliorare attraverso tale data. In sede di fluido: Abbiamo 2-300 clienti che sono in diretta su di esso, e molti dei quali aren8217t dal vivo con solo poche applicazioni, ma con fluido su tutta la linea. We8217ve avuto modo di quel periodo bastone da hockey in termini di adozione dove la maggior parte dei nostri clienti che stanno facendo progetti o gli aggiornamenti si distribuisce Fluid. Sulla sostituzione di SES con elasticsearch: 8220it8217s più facile, più economico, più veloce, migliore per i clienti di eseguire elasticsearch contro SES8221 più i lotti più su Cloud, Approvazioni fluidi e adozione selettiva. It8217s merita un orologio: In un precedente post dal titolo che caccia PeopleSoft Miti ho condiviso la mia prospettiva dello stato attuale del prodotto PeopleSoft e mercato. Ho pensato it8217d essere un esercizio interessante per cercare di guardare avanti e di definire ciò che penso che il futuro potrebbe riservare per la linea di prodotti. Alcune di queste potrebbe essere un po 'fuori bersaglio, alcuni potrebbero essere un obiettivo miglio al largo e un po' mi potrebbe avere cambiato idea su se mi chiedete la prossima settimana, ma si spera che inizia alcune discussioni. PeopleSoft si muove verso il cloud Un facile una prima. There8217s una forte spinta per passare al cloud e che dovrebbe essere evidente a tutti più o meno. Ci sono alcune storie di successo convincenti per PeopleSoft nel Cloud, i clienti hanno ottenuto enormi aumenta le prestazioni e la flessibilità nelle infrastrutture, così come il risparmio di denaro. Finora queste storie di successo sono stati in AWS, e 8211 in misura minore 8211 su Azure, ma Oracle vuole un pezzo di quella torta ora. La Oracle Compute Cloud dovrebbe essere un'opzione quando there8217s una discussione su Cloud di hosting (e questo la discussione deve essere tenuto prima di ogni aggiornamento hardware o principale corrente upgradeget). Oracle sta anche rendendo più facile per i clienti di passare al cloud. Il PeopleSoft Nube Architecture è un insieme di funzionalità e strumenti che facilita la transizione, e sarà rafforzata nelle future versioni PeopleTools. Il PeopleSoft mercato rimane capace di galleggiare attuale esperienza Cedar8217s è che c'è un sacco di attività nel mercato. Nel corso degli anni a venire ci shouldn8217t aspettiamo un gran numero di clienti netti-nuovo acquisto PeopleSoft, tuttavia i clienti esistenti sono molto fedeli al prodotto e continueranno a sfruttare le nuove funzionalità che vengono aggiunti al prodotto. It8217s facile immaginare che nei prossimi anni ci sarà l'adozione su larga scala di liquido e Cloud Architettura. Più PeopleSoft Hosting It8217s diventando più facile per i clienti di esternalizzare la cura dei loro sistemi PeopleSoft ai partner 8211 o, in futuro, forse anche Oracle stessi. Il Cloud rende l'infrastruttura significativamente più economico, e PeopleSoft Nube Architettura renderà l'amministrazione più semplice troppo. L'applicazione PeopleSoft sarà semplicemente fornito al cliente come servizio, con tutto l'hardware, servizi di DBA e PATC hing eseguita dal partner per una tariffa flat mensile. aggiornamenti PeopleSoft potrebbe anche essere rotolato in questa adozione come selettiva costituisce un elemento chiave del modello di manutenzione delle applicazioni e si presta molto bene al modello di hosting Cloud. Ci sono stati altri progressi nella PeopleTools anche che rendono più facile per ridurre le personalizzazioni 8211 così da rendere più facile per le organizzazioni di ospitare più ambienti dei clienti. La nuova funzionalità di mappatura evento contenuti correlati consente di sostituire (un po ') il codice personalizzato, e I8217m che i ragazzi PSAdmin. io parlato di una tecnica per l'aggiunta di campi a una pagina tramite config invece di personalizzazione (ma io can8217t trovare un link per esso). Più si è vicini alla vaniglia più facile è mantenere l'applicazione aggiornata con l'ultima di sicurezza, le correzioni di prodotto e nuove funzionalità. Sarà Oracle fornire 8220PeopleSoft come Service8221 Attualmente la risposta 8211 almeno pubblicamente 8211 è 8216No8217 tuttavia che potrebbe cambiare nel tempo. Oracle si stanno muovendo la loro offerta OnDemand su dall'hardware fisico infrastruttura Cloud in modo che ospiteranno i server e fornire risorse di manutenzione per i clienti. PeopleSoft e contenitori La prossima evoluzione sul da macchine virtuali è l'uso di 8216container8217 tecnologia. Il problema di avere un server che contiene più VM è che ogni macchina virtuale ha bisogno di avere installato il proprio sistema operativo, tenuto rattoppato e mantenuto in sincronia. Questo e gli altri software 8211 che potrebbero essere condivise 8211 introduce un sacco di duplicazione. I contenitori sono come cut-down VM, non c'è OS entro il contenitore, solo l'applicazione stessa. Ciascuno dei contenitori condivide le that8217s sistema operativo installato sul computer host. There8217s una buona introduzione ai contenitori qui. I fornitori hanno iniziato ad adottare questa tecnologia contenitore 8211 Docker è di gran lunga il più conosciuto e 8211 it8217d essere una sorpresa se PeopleSoft inizia a fare lo stesso. It8217d essere grande per essere in grado di cadere in un altro contenitore App Server senza dover pasticciare con la costruzione di uno. I DPKs noi ottengono parzialmente lì, ma questo potrebbe essere la progressione successiva. Prima we8217ll bisogno di aspettare per il supporto Oracle Compute Cloud per Docker primo (o qualsiasi altro nome scattante Oracle dà alla loro Docker equivalente 8230 forse il 8216Oracle Enterprise Container Gestione Service8217) maggiore adozione del fluido Da qualche parte tra 50-60 dei clienti sono in v9.2, che significa they8217re sia utilizzando o si prepara a usare l'adozione selettiva. Una volta che un cliente inizia il percorso di adozione selettiva, they8217ll scoprire che il Fluid UI è l'interfaccia che gli aggiornamenti e correzioni saranno consegnati su. Questo guiderà l'adozione del fluido. Questo è un bene per gli utenti Self Service come they8217d tipicamente trarre i maggiori benefici da un fluido roll-out. Anche se c'è qualche dolore necessari per avere Fluid installato e funzionante tutto il feedback che we8217ve sentito fino ad oggi è che coloro who8217ve ha fatto il salto sono molto soddisfatti dei risultati. gli utenti self-service da guadagnare il massimo come fluido fa davvero PeopleSoft molto più accessibile agli utenti occasionali. Il ruolo del SysAdmin sta cambiando il ruolo del SysAdmin PeopleSoft è drammaticamente diverso da quello che era di 5 anni fa. L'avvento della PUM, Adozione selettivo, DPKs, marionette e SES, e l'imminente adozione del Cloud consegna Architettura e elasticsearch hanno tutto spostato in modo significativo il paesaggio. Molto di questo è una buona notizia. Per esempio, l'adozione selettivo e DPKs hanno entrambi reso la vita più facile SysAdmin8217s (una volta che il set di strumenti è stato appreso). Il futuro sembra che questa tendenza continuerà come Cloud Manager permetterà one-click provisioning e aggiornamenti di ambienti, e elasticsearch promette di alleviare alcuni dei mal di testa SES. Questa maggiore funzionalità non hanno un costo per il sistema, ed è che c'è una larghezza più ampia per l'insieme di strumenti che essi sono tenuti a master. I giorni in cui il SysAdmin solo bisogno di fare installazioni e messa a punto sono passati. Questa maggiore automazione porta l'obbligo per gli amministratori di sistema DevOps 8211 vale a dire gli amministratori di sistema che sono in grado di tagliare un po 'di codice. Il ruolo di sviluppatore sta cambiando sviluppatori troppo stanno scoprendo che i pali della porta sono in movimento. Gli sviluppatori who8217ve appena recuperati da scambiare le loro FuncLibs per pacchetti App sono ora scossa dalla notizia che vi è ancora di più per imparare. Fluid porta l'obbligo di sapere molto di più HTML, CSS e JavaScript po '. Dopo aver visto una demo recente in cui Jim Marion completamente ri-disposto una pagina del fluido utilizzando la console sviluppatore Chrome piuttosto che PeopleCode veramente portato questa casa. Il tecnico prossimo a venire sopra la collina a Lopers DEVE è Oracle JET 8211 una collezione di quadri JavaScript più utili. LogStash per PeopleSoft ho sentito che dovrei terminare con una vera e propria 8216out there8217 previsione. Con elasticsearch possiamo vedere che Oracle sono aperti ad includere un nuovo prodotto 3rd party come parte dello stack (in precedenza sembrava strumenti 3rd party sono stati lentamente in fase di esaurimento) così che cosa gli altri nuovi prodotti o strumenti potrebbero essere inclusi elasticsearch è fatta da un società denominata elastico, ma hanno altre offerte in aggiunta al loro cuore del prodotto di ricerca. Quella che sembra la più attraente da un PeopleSoft punto di vista è LogStash. I8217ve guardò un certo numero di volte nel corso degli anni, ma la sua mancanza di supporto di Windows è sempre stato un ostacolo per me, ma ora it8217s disponibile su Windows. LogStash is a log file aggregation tool, it takes all of the entries in all of your log files spread across all of your servers and makes them available for searching in one central repository. It8217s easy to see how that might be incredibly useful in a PeopleSoft context. There are alternative tools that perform a similar role 8211 Splunk for example 8211 however I think LogStash is the most obvious selection. UPDATE: The PSAdmin. io guys discussed Splunk and LogStash in their latest Podcast . So, there are 8 predictions for the coming years. Have I missed anything glaring Have I got one of them wrong I would like to borrow a few minutes of your time to ask a quick favour. If you haven8217t already, could you please vote 8216Gold8217 for Cedar in the UK PeopleSoft Partner of the Year competition. Here8217s why I believe we8217re worth your vote: We8217ve been serving PeopleSoft customers for 20 years, and in each of the last few years we8217ve worked with more than 40 clients We8217re active members of UKOUG, with multiple employees dedicating time to its committees 8211 quite an investment for a company our size We8217re active in the PeopleSoft community, with multiple blogs and free newsletters We share knowledge freely, with multiple speakers at UKOUG8217s Apps15 and Oracle OpenWorld last year We host our own knowledge sharing events, enabling the PeopleSoft community to network and exchange ideas, whilst Cedar experts and customers share success stories We8217re on the cutting edge, if you want to know about Oracle Public Cloud, Fluid UI or Selective Adoption, we8217re the people to speak to I hope that8217s enough to convince you. If you8217ve voted for us please let me know. If you need more persuasion, please do get in touch. The next profile in our How I Work series is Logesh Balasubramaniam. Logesh is one of the newer bloggers 8211 posting on his LeanIT Designs site 8211 however he provides great content and is usually one of the first to tackle new functionality. He has sometimes even managed to blog about new features before Oracle8217s official post. If you8217re a fan of Logesh8217s work it looks like he8217s been selected to present at OOW this year, alongside his colleague Chamanthi Weerasinghe, on 8220 Bang for Your Buck: A Practical Approach to Optimize Your Selective Adoption8221. Name: Logesh Balasubramaniam Occupation: PeopleSoft Consultant at Presence Of IT, Australia. Location: Auckland, New Zealand. Current computer: Lenovo Thinkpad T440s Current mobile devices: Samsung Galaxy S3 amp iPad Mini 2 I work: To achieve best possible outcome in the realms of Scope, Time amp Cost What appssoftwaretools can8217t you live without Apps 8211 Kindle, linkedin, Keeper(Passwords), doubleTwist Desktop essentials: MS office, Outlook, Notepad, Snipping Tool What8217s your workspace like I am minimalist by nature and my workplace will reflect it. I don8217t tend to carry any baggage(both hard amp soft) and have a compulsion to get rid of anything after its purpose. What do you listen to while you work Silence, help me to focus. Leave my windows open and let in everything that my surroundings offer. What PeopleSoft-related productivity apps do you use Browsers: Chrome amp Firefox, Developer tools in both browsers, Extensions 8211 Wizdler for chrome, HTTPFox for Firefox PeopleTools 8211 Whole suite of development tools and occasionally administration utilities SOAPUI 8211 Everything integration related SQL Developer and SQL Server management studio Do you have a 2-line tip that some others might not know I find 8216My Oracle Support Community (MOSC)8217 to be very active and useful in PeopleSoft application space. Especially for those working on new features in recent product versions, post your queries and you will get immediate help with Oracle specialists. I also find Red Papers released on various topics by Oracle to be a very valuable resource to design solutions especially in integration, security and performance areas. What SQLCode do you find yourself writing most often Having spent most of my time in HCM application, subquery to get MAX(EFFDT), tops my list. What would be the one item you8217d add to PeopleSoft if you could Supportimplement SAML based identity federation. What everyday thing are you better at than anyone else Starting every day with the same eagerness, desire and will I had on my first day at work. What8217s the best advice you8217ve ever received Nothing specific from a person, but an elementary quote that I find most relevant in our profession is 8220A stitch in time save nine8221. As remote work culture and diverse work teams become ubiquitous, proactive communication is key to successful collaboration. Post navigationThis article is from an interview with Zuhaib Siddique. a production engineer at HipChat. makers of group chat and IM for teams. HipChat started in an unusual space, one you might not think would have much promise, enterprise group messaging, but as we are learning there is gold in them there enterprise hills. Which is why Atlassian, makers of well thought of tools like JIRA and Confluence, acquired HipChat in 2012. And in a tale not often heard, the resources and connections of a larger parent have actually helped HipChat enter an exponential growth cycle. Having reached the 1.2 billion message storage mark they are now doubling the number of messages sent, stored, and indexed every few months. That kind of growth puts a lot of pressure on a once adequate infrastructure. HipChat exhibited a common scaling pattern. Start simple, experience traffic spikes, and then think what do we do now Using bigger computers is usually the first and best answer. And they did that. That gave them some breathing room to figure out what to do next. On AWS, after a certain inflection point, you start going Cloud Native, that is, scaling horizontally. And thatrsquos what they did. But theres a twist to the story. Security concerns have driven the development of an on-premises version of HipChat in addition to its cloudSaaS version. Well talk more about this interesting development in a post later this week . While HipChat isnrsquot Google scale, there is good stuff to learn from HipChat about how they index and search billions of messages in a timely manner, which is the key difference between something like IRC and HipChat. Indexing and storing messages under load while not losing messages is the challenge. This is the road that HipChat took, what can you learn Letrsquos seehellip 60 messages per second. 1.2 Billion documents stored 4TB of EBS Raid 8 ElasticSearch servers on AWS 26 front end proxy serves. Double that in backend app servers. 5 terabytes of search data. Hosting . AWS EC2 East with 75 Instance currently all Ubuntu 12.04 LTS Database . CouchDB currently for Chat History, transitioning to ElasticSearch. MySQL-RDS for everything else QueueWorkers server . Gearman (queue) and Curler. (worker) Language . Twisted Python (XMPP Server) and PHP (Web front end) System Configure . Open Source Chef Fabric Code Deployment . Capistrano Monitoring . Sensu and monit pumping alerts to Pagerduty Graphing . statsd Graphite Traffic is very bursty. On weekends and holidays it will be quiet. During peak load is hundreds of requests per second. Chat messages dont actually make up the majority of traffic its presence information (away, idle, available), people connectingdisconnecting, etc. So 60 messages per second may seem low, but it is just an average. HipChat wants to be your notification center, where you go to collaborate with your team and get all the information coming from your tools and other systems. Helps keeps everyone in the loop. Especially with remote offices. The big reason to use HipChat over say IRC, is that HipChat stores and indexes every conversation so you can search for them later. Search is emphasized so you can stay inside HipChat. The win for teams of this feature is that you can go back at any time and remember what happened and what you agreed to do. It will also route messages to multiple devices owned by the same user, as well as temporary message cachingretry if your device is unreachable when a message is sent. Growth is from more customers, but also greater engagement as more customers use the product at each site. Also seeing growth from their API integration. Storage and searching of messages is the major scalability bottleneck in their system. HipChat uses XMPP so any XMPP client can connect into the system, which is a huge win for adoption. And theyrsquove built their own native clients (Windows, Linux, Mac, iOS, Android) with extensions like PDF viewing, custom emoticons, automatic user registration, etc. Not long ago bringing tools like Wikis into a corporate culture was almost impossible. Now enterprise level tools seem to accepted. Why now Text based communication is now common and accepted. We have texting, IM, and Skype, so using chatting tools is now natural. Rise of distributed work teams. Teams are more and more distributed. We canrsquot just sit down together and get a lecture. Therersquos a need to document everything which means organizing communication is perceived as a great asset. Enhanced features. Features like inline images, animated gifs, etc make it fun, which appeals to wider groups of people. HipChat has an API which makes it possible to write tools analogous to IRC bots. Example use is for Bitbucket commits. At 10:08 developer X commits some code to fix a bug. It is sent out via HipChat with links directly to the code commit and the commit log. All automated. Bitbucket commit hits a web hook and uses one of the addons to post the information. Addons help with writing your own bots. Go to your Bitbucket account. Say I have my API token and I want to post to this API whenever a commit happens. Works similarly for GitHub. Started with Adobe Air on the client side, it leaked memory and would take down machines. So moved to native apps. A pain, but a good pain. They have users across all platforms in all parts of a company. You need to be where users are at. Want users to have a great experience on all OSs. Users are everyone, not just techies. XMPP Server Architecture HipChat is based on XMPP, a message is anything inside an XMPP stanza. which could be anything from a line of text or long section of log output. They didnrsquot want to talk about their XMPP architecture, so there arenrsquot a lot of details. Instead of using a 3rd party XMPP server, theyrsquove built their own using using Twisted Python and XMPP libraries. This allows allows the creation of a scalable backend, user management, and easy addition of features without fighting someone elses code base. RDS on AWS is used for user authentication and other areas where transactions and SQL would be useful. Itrsquos a stable, proven technology. For the on-premises product they use MariaDB. Redis for caching. Information like which users are in which rooms, presence information, who is online, etc, so it doesnrsquot matter which XMPP server you connect to, the XMPP server itself is not a limit. Pain point is Redis doesnrsquot have clustering (yet). For high availability a hotcold model is used so a slave is ready to go. Failover takes about 7 minutes from a master to a slave. Slave promotion is by hand, itrsquos not automated. Increased loads exposed a weakness in the proxy server and how many clients they could handle. This is a real problem as not losing messages is a high priority. Customers indicate that not dropping messages is more important than low latency. Users would rather get messages late than not at all. With 6 XMPP servers the system worked well. As the connection counts increased they started seeing unacceptable latency. Connections donrsquot just come from clients, but also bots supporting their programmatic interfaces. As a first pass they split out front-end servers and app servers. Proxies handle connections and the backend apps processes stanzas. The number of frontend servers is driven by the number of active listening clients and not the number of messages sent. Its a challenge to keep so many connections open while providing timely service. After fixing the datastore issues the plan is to look into how to optimize the connection management. Twisted works well, but they have a lot of connections, so have to figure out how to handle that better. Storage Architecture At 1 billion messages sent on HipChat while experiencing growth, they pushed the limits of their CouchDB and Lucene solution for storing and searching messages. Thought Redis would be the failure point. Thought CouchLucene would be good enough. Didnrsquot do proper capacity planning and looking at message growth rate. Growing faster than they thought and shouldnrsquot have focussed so much on Redis and focused on data storage instead. At that time they believed in scaling by adding more horsepower, moving up to larger and larger Amazon instances. They got to the point where with their growth this approach would only work for another 2 months. So they had to do something different. CouchLucene was not updated in over year and it couldnrsquot do faceting. Another reason for something different. At about half a billion messages on Amazon was a tipping point. With a dedicated server and 200 Gig of RAM their previous architecture might have still worked, but not in a cloud with limited resources. They wanted to stay on Amazon. Like its flexibility. Just spin up a new instance and chug along. Amazonrsquos flakiness makes you develop better. Donrsquot put all your eggs in one basket, if a node goes down you have deal with it or traffic will be lost for some users. Uses a dynamic model. Can lose an instance quickly and bring up new instances. Cloud native type stuff. Kill a node at any time. Kill a Redis master. Recover in 5 minutes. Split across all 4 US-East availability zones currently, but not yet multi-region. EBS only letrsquos you have 1TB of data. Didnrsquot know about this limit when they ran into it. With Couch they ran into problems with EBS disk size limitations. HipChatrsquos data was .5 terabytes. To do compaction Couch had to copy data into a compaction file which doubles the space. On a 2 TB RAID hitting limits during compaction on the weekends. Didnrsquot want a RAID solution. Amazon DynamoDB wasnrsquot an option because they are launching a HipChat Server, a hosted service behind the firewall. HipChat Server drives decisions on the tech stack. Private versions are a host your own solution. Certain customers canrsquot use the cloudSaaS solution, like banks and financial institutions. NSA has spooked international customers. Hired two engineers to create an installable version of the product. Redis Cluster can be self-hosted and it works on AWS as can ElasticSearch. Instead of RDS they use MariaDB in the on-premises version. Canrsquot consider a full SaaS solution as that would be a lockin. Now transitioning to ElasticSearch. Moved to ElasticSearch as their storage and search backend because it can eat all the data they can feed it, it is highly available, it scales transparently by simply adding more nodes, it is multi-tenant, it can transparently with sharding and replication handle a node loss, and itrsquos built on top of Lucene. Didnrsquot really need a MapReduce functionality. Looked into BigCouch and Riak Search (didnrsquot look well baked). But ES performance on a GET was pretty good. Liked the idea of removing a component, one less thing to troubleshoot. ES HA has made them feel really confident in the solidity of their system. Lucene compatible is a big win as all their queries are already Lucene compatible, so it was a natural migration path. Customer data is quite varied, ranging from chat logs to images, so response type are all over the place. They need to be able to quickly direct query data from over 1.2 Billion docs. In a move that is becoming more and more common, HipChat is using ElasticSearch as their key-value store too, reducing the number of database systems they need and thus reducing overall complexity. Performance and response times were so good they thought why not use it Between 10ms and 100ms response times. It was beating Couch in certain areas without any caching in front of it. Why have multiple tools With ES a node can go down and nobody notices, you will get an alert about high CPU usage while it is rebalancing, but it keeps chugging along. Have 8 ES nodes to handle growth in traffic. As with all Java based products JVM tuning can be tricky. To use ES must capacity plan for how much heap space yoursquoll be using Test out caching. ES can cache filter results, it is very fast, but you need a lot of heap space. With 22 gigs of heap on 8 boxes, memory was exhausted with caching turned on. So turn off cache unless planned for. Had problems with caching because it would hit an out of memory error and then fail. The cluster self healed in minutes. Only a handful of users noticed a problem. Automated failover on Amazon is problematic because of the network unreliability issues. In a cluster it can cause an election to occur errantly. Ran into this problem with ElasticSearch. Originally had 6 ES node running as master electable. A node would run out of memory or hit a GC pause and on top of that a network loss. Then others could no longer see the master, hold an election, and declare itself a master. Flaw in their election architecture that they donrsquot need a quorum. So therersquos a brain split. Two masters. Caused a lot of problems. Solution is to run ElasticSearch masters on dedicated nodes. Thatrsquos all they do is be the master. Since then there have been no problems. Masters handle how shard allocation is done, who is primary, and maps where replica shards are located. Makes rebalancing much easier because the masters can handle all the rebalancing with excellent performance. Can query from any node and will do the internal routing itself. Uses a month index. Every month is a separate index. Each primary index has 8 shards then two replicas on that. If one node is lost the system still functions. Not moving RDS into ES. Stuff they need SQL for is staying in RDSMariaDB, typicall User management data. A lot of cache in Redis in a masterslave setup until Redis Cluster is released. Therersquos a Redis stat server, who is in a room, who is offline. Redis history caches the last 75 messages to prevent constantly hitting the database when loading conversation for the first time. Also status for internal status or quick data, like the number of people logged in. Gearman used for async jobs like iOS push and delivering email. AWS West is used for disaster recovery. Everything is replicated to AWS West. Chef is used for all configuration. ElasticSearch has a nice cookbook for Chef. Easy to get started. Like Chef because you can start writing Ruby code instead of using a Puppet style DSL. It also has a nice active community. Acquisition experience. They now have access to core company assets and talent, but Atlassian doesnrsquot mess with what works, we bought you for a reason. Can ask internally, for example, how to scale ElasticSearch and when others in Atlassian need help they can pitch in. Good experience overall. Team structure is flat. Still a small team. Currently have about 18 people. Two people in devops. Developers for platforms, iOS, Android, a few on the server side, and a web development engineer (in France). Capistrano is used to deploy to all boxes. Sensu for monitoring apps. Forgot to monitor a ElasticSearch node for heap space and then hit OOM problems without any notifications. Currently at 75 of heap which is the sweet spot they want. Bamboo is used for continuous integration. Client releases not formal yet, developer driven. Have a staging area for testing. Group flags. Can control which groups get a feature to test features to slowly release features and control load on boxes. Feature flag. Great for protection during the ElasticSearch rollout, for example. If they notice a bug they can turn off a feature and roll back to Couch. Users donrsquot notice a difference. During the transition phase between Couch and ElasticSearch they have applications replicate to both stores. New API version will use Oauth so developers can deploy on their own servers using the HipChat API. Having customers use their own servers is a more scalable model. The Future Will hit two billion messages in a few months and itrsquos estimated ElasticSearch can handle about two billion messages. Not sure how to handle the expected increases in load. Expect to go to Amazon West to get more datacenter availability and possibly put more users in different datacenters. Looking to use AWSrsquos auto scale capabilities. Moving into voice, private 1-1 video, audio chat, basic conferencing. Might use RabbitMQ for messaging in the future. Greater integration with Confluence (a wiki). Use HipChat to talk then use Confluence page to capture details. Therersquos money in them there Enterprise apps . Selling into an Enterprise can be torture. Long sales cycles means it can be hit or miss. But if you hit itrsquos a lucrative relationship. So you may want to consider the Enterprise market. Times are changing. Enterprisersquos may still be stodgy and slow, but they are also adopting new tools and ways of doing things, and therersquos an opportunity there. Privacy is becoming more important and it impacts your stack choices when selling into the Enterprise . HipChat is making an on premise version of their product to satisfy customers who donrsquot trust the public networks or clouds with their data. To a programmer the cloud makes perfect sense as a platform. To an Enterprise the cloud can be evil. What this means is you must make flexible tech stack choices. If you rely 100 on AWS on services it will make it nearly impossible to move your system to another data center. This may not matter for Netflix, but it matters if you want to sell into the Enterprise market. Scale up to get some breathing space . While you are waiting to figure out what you are going to next in your architecture, for very little money you can scale-up and give yourselves a few more months of breathing space. Pick what canrsquot fail . HipChat made never losing user chat history a priority, so their architecture reflects this priority to the point of saving chat to disk and then later reloading when the downed systems recover. Go native . Your customers are on lots of different platforms and a native app would give the best experience. For a startup thatrsquos a lot of resources, too many. So at some point it makes sense to sell to a company with more resources so you can build a better product. Feature and group flags make a better release practice . If you can select which groups see a feature and if you can turn off features in production and test, then you donrsquot have to be so afraid of releasing new builds. Select technologies you feel really confident with . ElasticSearchrsquos ability to expand horizontally to deal with growth helped HipChat feel very confident in their solution. That users would be happy. And thatrsquos a good feeling. Become part of the process flow and you become more valuable and hard to remove . HipChat as a natural meeting point between people and tools is also a natural point to write bots that implement all sorts of useful work flow hacks. This makes HipChat a platform play in the enterprise. It enables features that wouldnrsquot otherwise be buildable. And if you can do that you are hard to get rid of. AWS needs a separate node presence bus . Itrsquos ridiculous that in a cloud, which is a thing in itself, that machine presence information isnrsquot available from an objective third party source. If you look at rack it will have often have a separate presence bus so slots can know if other slots are available. This way you donrsquot have to guess. In the cloud software is using primitive TCP based connection techniques and heartbeats to guess when another node is down, which can lead to split brain problems and data loss on failovers. Itrsquos time to evolve and take huge step towards reliability. Product decision drive stack decisions . HipChat server drives decisions on the tech stack. Redis Cluster can be self-hosted. Amazon DynamoDB wasnrsquot an option because they are launching a hosted service behind the firewall. Throwing horsepower at a problem will only get you so far . You need to capacity plan, even in the cloud. Unless your architecture is completely Cloud Native from the start, any architecture will have load inflection points at which their architecture will no longer be able to handle the load. Look at growth rate. Project out. What will break What will you do about it And donrsquot make the same mistake again. How will HipChat deal with 4 billion messages Thatrsquos not clear. Know the limits of your system . EBS has a 1 TB storage limit, which is a lot, but if your storage is approaching that limit there needs to be a plan. Similarly, if your database, like Couch, uses double the disk space during a compaction phase that will impact your limits. The world will surprise you . Six months ago HipChat thought Redis was going to be the weakest link, but itrsquos still be going strong and it was Couch and EBS that were the weakest link. Related Articles I wonder how they handle the 50 failure rate inherent within redis from a durability perspective. Or perhaps comment on if they saw similar performance. Out of 2000 writes, Redis claimed that 1998 of them completed successfully. However, only 872 of those integers were present in the final set. Redis threw away 56 of the writes it claimed were successful. Alex, there is absolutely not a quot50 failure rate inherent within Redisquot. I39m not sure that you39re grokking that properly. That is specifically in the (hopefully) quite rare quotsplit brainquot problem, and a completely acceptable issue for what they39re using it for (and hopefully for what everyone39s using it for, lightweight job queuing). I happily use Redis for job queuing on API servers and for pickup from Logstash and its failure rate is 0. Further the article specifically mentions that elevation is manual and this situation won39t happen. Even further still, it doesn39t matter a bit, save for load on the backend. Those are caching servers, not mission critical data. This is exactly the scenario where you don39t bother with ACID compliance or phantom writes. Grande articolo. Helpful for sure. I do want to point out though that the last paragraph has some spelling and grammar issues: The world will surprise you. Six months ago HipChat though Redis was going to be the weakest linked, but its still be doing strong and it was Couch and EBS that were the weakest link. very good article but the number 60 is small in comparation with so many servers. May in quotrush hourquot they deliver 600 or 6000
Comments
Post a Comment