Examensjobb 2015...eller kom med egna förslag! Kontakta oss på degree@dataductus.se
1) Upgrade of Configuration System Tail-f System AB (http://www.tail-f.com) builds software for network management. The majority of our work centers around IETF RFC 6741 (NETCONF) and IETF RFC 6020 (YANG modeling language). The Tailf product NCS is a Network management system (NMS) framework. See http://www.tailf.com/network-control-system/ The product is used by large data-centers and operators to configure IP devices and activate IP Services like IP VPNs, firewall rules, and BGP Peers. NCS does not only speak NETCONF southbound towards the managed devices, it also speaks Cisco CLI, SNMP etc towards devices that do not speak NETCONF. The NCS provides services like Transaction management where configuration is synced throughout the internet in a controlled manner. It also provides, amongst other things, Alarm handling, where the operators of the system can get a system health status. The Task In this project the NCS is used as an engine to configure and monitor equipment located in hard to get places. The engine is running an old version of the NCS engine and needs an upgrade. Skills needed: Java. This needs to be done: - Upgrade NCS to the latest and the greatest - Split up the single package implementation to multiple package orientation. - Transform the Alarm handling engine to work with the new alarm model. This is a unique opportunity to get to know the NCS from the inside out. Grab it! 2
Examensjobb 2015 2) Federering av intranät (SharePoint 2013 samt TFS 2013) samt VPN hantering Sätta upp och konfigurera federering av identiteter genom ADFS2. Konfiguration av federeringen skall göras genom en SharePoint site. VPN Hanteringen sker på samma site då man skall skriva en pluggbar VPN-hanterare, första pluggen blir mot befintlig CISCO VPN koncentrator. Man skall kunna lägga upp identiteter för evig tid till begränsad fil. Federering/autentisering skall slå på befintlig "Claims Based AA" i SharePoint och TFS samt kunna exponera (via my site) eller maila vpn profilen samt initial credentials. Vid federeringen skall claims sättas upp via en "claims profil" där ett antal claims finns. Möjlighet att välja mellan profiler samt nyskapande av claims profiler skall finnas. Provskott mot befintliga eller andra uppsatta STS token provider skall göras (tex Windows Live). Detta innebär också en lösning för TFS NTLM (icke claims based) skall tas fram så detta integrerar väl. 3
3) App för statusöverblick På Ductus genomför vi ofta datormigreringar, där vi följer status via ett gäng checklistor och dokument på papper. Detta exjobb syftar till att göra en App/Webb-baserad checklista där man snabbt ska kunna få en överblicksbild över den rådande status. Exempel på översikt: * 50% av alla datorer är säkerhetskopierade * 10% av datorerna är ominstallerade och klara * 80% av nätverkutrustningen är omkonfigurerad. * 95% av alla skrivarna är omkonfigurerade. * 60% av användarkontona är klara för inloggning. * osv. Tekniker som används: * SQL(DB) * WEBB * App-utveckling 4
4) Network simulator There are many simulators for computer networks (ns-2, ns-2, NetSim), but at Data Ductus we often work with OSS systems that focus on monitoring and managing networks. Therefore we see a need for a simulator that can simulate the operational status of the network and emit realistic alarm flows and react to simulated "repair actions" in a realistic fashion. Such a simulator would be a scriptable implementation of a discrete event simulator (http://en.wikipedia.org/wiki/ Discrete_event_simulation) with a well-defined, extensible, object model. This would allow us to program it for specific scenarios and use it as a building block for the future. The level of this project can be adapted to one or two thesis students at various levels, but a minimal ambition is to have an extensible kernel that has enough functionality to evaluate the design. Emphasis will be placed on the theoretical foundations and the report. 5
5) Exjobb inom testning av mobiltelefoner Här har vi flera spår när det gäller examensjobb: Beroende på vilken inriktnig exjobbaren har finns: - Ljud över usb från mobiltelefoner (Svår) Handlar om att fixa egen firmware till en mobiltelefon som klarar av att skicka samtalsljud till/från telefonen via usb - Ljudstöd till vår existerande testmiljö via asterisk Möjlighet att koppla upp samtal till en RMS-server som har telefoner anslutna och därigenom kunna skicka ljud till/från telefonen remote. Vi kan nog hitta andra uppgifter också beroende på vem som söker och vad de är intresserade av. 6
6) Apputveckling på android Två förslag som kan köras parallellt eller göras till ett. Fördelar med att ha flera exjobb inom samma teknikområde är förstås att studenterna kan samarbeta. 1. Plocka i/ur diskmaskinen Ja inte fysiskt alltså utan en microkontroller (eller liknande) övervakar status på diskmaskinen och sänder ut den via en BluetoothLE till iphones/androider som är i närheten när maskinen är klar. Plocka ur får den person göra som får meddelandet. Man kan tänka sig att microkontrollern väljer ut den mobil som är närmast, eller nåt sånt. Alternativt skickas meddelande ut på vårt WLAN, som ett multicastmeddelande, vilket för oss in på nästa förslag: 2. Mutlicastmeddelanden Ett system för att skicka multicastmeddelande via vårt WLAN, skulle kunna användas för att "page'a" mobiler vid pålarmning, eventuellt med feedback ("jag är kvar"). 7
7) Höginensivt loggstream & Query systemkoncept (1-2 pers) Skapa ett loggningsramverk av befintliga komponenter. Idag används Elastic Search i kombination med logstash för att samla in loggar från en klustrad högintensiv applikation. Denna lösning innefattar att log4j konfigureras om och skickar logginformation direkt till redis som i sin tur skickar loginfon till logstash som lagrar detta i elastic search. Allt sker redundant så det finns ingen single point of failure. Khibana är webinterfacet på elastic search som möjliggör kpi monitorering, loggsökning, dashboards och grafer på hur lösningen mår till troubleshoota en kunds bekymmer. Denna lösning är specialanpassad för en enda lösning, vi vill i examensarbetet att ett koncept som möjliggör att från vilken service / applikation som helst integrera (enkelt) till "logging" kluster som gör att man kan plocka upp en viss vy i elastic search, koppla dashboards i khibana för just denna lösning. Skapa en "övervy" för övervakning hur mår alla tjänster/applikationer. Det behövs även utvecklas ett litet lager över log4j, log4net för att kunna göra distiktioner på logginformation, sessionshantering, samt viktiga events för att skapa KPI:er. Kompression av loggar när ej real-tid är påslaget så varje nod kan buffra x MB log, komprimera och skicka iväg. Utöka khibana med ett litet web interface för purge av loggar som är äldre än ett visst datum. Men dock behålla viss information, tex alla WARN loggar. Tekonologier: * Khibana * Elastic Search / Logstash Cluster * Redis * log4j, log4net, javascript loggning 8
8) Open Stack för Flexibelt Development Cluster (2+ pers) Sätta upp ett antal noder som skall representera ett open stack system. Detta system skall supporta ett utvecklarsystem som är anarkistisk i grunden. Det vill säga, vem som helst får allokera virtuella maskiner, Docker Images, Bare metal-maskiner. Dock är det på lease basis, en max tid som maskinen får vara uppe är 2 veckor. Efter detta så skall mail skickas om att man kan aktivt förnya maskinen i 1 vecka. Varje natt så stängs maskinen (gracefully) ned om någon inte har skickat ett mail alt. markerat på webbplats att denna maskin skall nyttjas även i morgon. Maskiner som är nedtagna i över en vecka genererar ett "förtida pensionerings -mail där man kan svara: "ta bort" eller "ha kvar". Det kommer innefatta att konfigurera upp ett nät som spänner över två till tre orter (Malmö i söder till Skellefteå i norr). Administration via horizon skall sättas upp samt "hårda" routers skall konfigureras och finnas med som element i horizon. Dessutom sätta upp virtuella switchar, routers för ett förkonfigurerat nät. Image repository, och de andra open stack tjänsterna skall konfigureras upp att supporta ett utvecklarkluster av virtuella maskiner. Tid skall även läggas ned på att integrera docker-hantering (lättviktsvirtualisering). 9
9) Fullt Distribuerad Event System (1-2 pers) Detta system skall baseras på JGroups för MULTICAST kapabilitet. Det skall även vara möjligt att koppla ihop datacenters genom WAN-länkar i detta system (stöds av JGroups). Lösningen skall vara så konstruerad att det inte finns någon "single point of failure". Noder går upp och ned i detta kluster och alla events skall nå rätt destination(er) och ingen skall tappas bort (om det är markerat som persistent). Det skall vara möjligt att adressera ett visst "topic" som en eller flera kan prenumerera på. Det kan finnas x antal topics. Det skall även vara möjligt att publicera direkt till en viss nod både meddelande vis samt strömma data. Om persistent event så skall eventet sparas undan till minst x kopior i klustret och skickas mot topic. Failover skall hanteras. Det skall även gå att backa med ett data lager via en plugin (behöver ej skrivas). Det skall gå att dela in ett stort kluster i partitioner så publicerare och lyssnare på ett visst topic bara får meddelande för t.ex. parittion A men inget från partition B. Optimering av topics som det inte finns lyssnare eller bara en lyssnare skall ske. Lösningen skall deployas till en OSGi container - text köras genom Felix, Karaf etc. 10
10) Automatiskt genererade Yang modeller Att automatiskt generera yang modelltemplates utifrån befintliga cli:n och configfiler. Arbetssättet idag är att utgå ifrån configfiler när man skapar yangmodellen, Man konverterar till yang format och kompletterar med hjälptexter genom att paralellt köra ett cli och tabba på de olika konfigurationsobjekten. Det man skulle vilja ha är ett program som utgår från en configfil och med hjälp av en uppkoppling mot ett CLI, antingen interaktivt med användaren eller helt automatiskt bygger upp en yangmodell. Ett första steg skulle kunna vara att verifiera/komplettera en befintlig yangmodell med tailf:info. 11