1 |
Deployment aplikací v PHP / Deployment of applications in PHPZikmund, Štěpán January 2010 (has links)
This work deals with automated deployment of web appliactions in PHP. There is not any wide used standard tool for deploying of web application wrote in PHP. That is way the main objective of work is to create automated and universal solution which can be used for application with various database systems or frameworks. For purpose of design this tool I describe at the beginning of this work individual components of web application. It is source code of application, HTML templates and CSS, grafic files, data and database schema. Next I write about posibilities of uploading application to server. This chapter is based on Sharar Evron's talk at conference ZendCon 2010 named Best Practices in PHP deployment. For individual components of application I try to find specific steps which are necessary or usefull to do during application deployment. It is e.g. JavaScript and CSS files minification, database schema modification or secure data injecting in application's configuration files. In fourth and fifth chapter I write about implementation of these steps and connection them in process of application deployment and rollback. For this implementation I use tool Phing.
|
2 |
Řadič postupného nasazení software nad platformou Kubernetes / Kubernetes Canary Deployment ControllerMalina, Peter January 2019 (has links)
Potreba dodania hodnoty uživatelom každodočne rastie na kompetitívnom trhu IT. Agilita a DevOps sa stávajú kritickými aspektami pre vývoj software, vyhľadávajúci nástroje ktoré podporujú agilnú kultúru. Softwarové projekty v agilnej kultúre majú častú tendenciu zaoberať sa stratégiami nasadenia ktoré redukujú risk nasadenia nových zmien do existujúceho systému. A však, prostredia určené pre vývoj a testovanie sa takmer vždy odlišujú od produkčných. Využitie primeranej stratégie nasadenie ako canary zlepšuje celkovú stabilitu systému testovaním nových zmien na malej vzorke produkčnej prevádzky. Bolo vykonaných niekoľko experimentov pre dôkaz, že stratégia canary môže pozitívne ovplyvniť stabilitu nasadení a redukovať risk ktorý prinášajú nové zmeny.
|
3 |
The Challenges of adopting DevOps / Utmaningar när man tar sig an DevOpsLindström, Gustav January 2019 (has links)
In traditional Software Development Life Cycle, medium and large organizations tend to divide the activities of Operations and Development into separate departments. These groups often have a troublesome relationship because of different incentives during the software delivery process. As a result, conflicts occur between development and operations personnel as they blame each other to be the cause of long lead times and inefficient software delivery processes. The concept of DevOps emerged trying to resolve the problem that arises when separating the work of Development and Operations into organizational silos. The term DevOps is a combination of the abbreviations of Development (Dev) and Operations (Ops). DevOps aim to create a coalition that spans between Development (software developers and quality assurance) and Operation (experts responsible to roll out software to production and managing the infrastructure, e.g. system, network and database administrators and technicians). The idea is to increase the speed of the software delivery process and to quickly solve critical issues, enable organizations to better serve their customers. DevOps means that development teams who previously were solely responsible for the development of their applications now have to manage and govern both development and operational responsibilities. Thus, the adoption of DevOps might introduce new type of challenges and implications for the traditional development teams. Current literature and research about DevOps focus mainly on the challenges that DevOps attempts to overcome. There is a lack of literature on the challenges that practitioners encounter during the adoption of DevOps. As more organizations and companies tend to adopt the concept of DevOps, it increases the need to understand potential challenges and effects of adopting DevOps. Therefore, the aim of this study is to investigate the challenges that development teams encounter during the adoption of DevOps. This research was conducted by an inductive research approach through a single qualitative case study, with the use of semi-structured interviews. In total, four main challenges and fourteen sub-challenges were identified in this study. The four main challenges identified was, lack of awareness, lack of support for DevOps, implementing DevOps technology and adapting organizational processes to DevOps. This study concludes that the adoption of DevOps has a profound impact on the role of a software developer, and that the traditional role of a software developer needs to be evolved. The research provides four recommendations and means to overcome the challenges identified in this research, establishing common ways of working and spreading the knowledge, building commitment and trust by smarter seating, allocate time and resources to transition and trying out with one team and one application. / I traditionell livscykel för mjukvaruutveckling tenderar medelstora och stora organisationer att dela upp verksamheten i drift och utveckling i separata avdelningar. Dessa grupper har ofta en besvärlig relation på grund av olika incitament under mjukvaruleveransprocessen. Som ett resultat uppstår konflikter mellan utvecklings- och driftpersonal eftersom de beskyller varandra för att vara orsaken till långa ledtider och ineffektiva mjukvaruleveransprocesser. Konceptet DevOps uppstod för att försöka lösa det problem som uppstår när man separerar utveckling och drift i organisationella silosar. Termen DevOps är en kombination av förkortningarna för utveckling (Dev) och drift (Ops). DevOps syftar till att skapa en koalition som sträcker sig mellan utveckling (mjukvaruutvecklare och kvalitetssäkring) och drift (system-, nätverks- och databasadministratörer och tekniker). Idén är att öka hastigheten av mjukvaruleveranser och att snabbt lösa kritiska problem för att förbättra organisationens förmåga att betjäna sina kunder. DevOps innebär att utvecklingsgrupper som tidigare enbart ansvarade för utvecklingen av sina applikationer nu även har driftansvar. Således kan antagandet av DevOps introducera nya typer av utmaningar och konsekvenser för de traditionella utvecklingsgrupperna. Aktuell litteratur och forskning kring DevOps fokuserar främst på de utmaningar som DevOps försöker övervinna. Därav finns det brist på litteratur kring de utmaningar som utövare stöter på under antagandet av DevOps. Eftersom fler organisationer och företag tenderar att adoptera begreppet DevOps ökar behovet av att förstå potentiella utmaningar och effekter av att anta DevOps. Därav är syftet med denna studie att undersöka de utmaningar som utvecklingsgrupper bemöter under antagandet av DevOps. Denna forskning utfördes genom en induktiv forskningsinriktning, en kvalitativ fallstudie och datainsamling genom halvstrukturerade intervjuer. Totalt identifierades fyra huvudutmaningar och fjorton sub utmaningar i denna studie. De fyra huvudsakliga utmaningar som identifierades var, brist på medvetenhet, brist på stöd för DevOps, implementering av DevOps-teknik och anpassning av organisationsprocesser till DevOps. Den här studien drar slutsatsen att antagandet av DevOps har en djupgående inverkan på rollen som en mjukvaruutvecklare och att den traditionella rollen som en mjukvaruutvecklare behöver utvecklas. Studien ger fyra rekommendationer och medel för att övervinna de utmaningar som identifierats, etablering av gemensamma sätt att arbeta och sprida kunskapen, bygga upp engagemang och förtroende genom smartare sittplatser, fördela tid och resurser till övergången samt prova med ett lag och en applikation.
|
4 |
List of Security Concerns within Continuous Software EvolutionPersson, Simone January 2018 (has links)
The amount of data being collected is increasing astronomically. Hence questions about privacy and data security are becoming more important than ever. A fast-changing culture is also reflected in the demands and requirements placed on software systems. Products and services need to evolve with the demands and feedback from customers to stay relevant on the market. Working methods and technologies have been refined to afford updating software continuously. However, rapidly changing software cause concern for the quality and level of security in the release. This thesis is a comprehensive literature study, reviewing the challenges of ensuring secure practises for continuously evolving software. The problem solved by the thesis is lack of an overall picture of the security concerns during continuous evolution. The findings are summarised in a checklist of areas of concern for security when maintaining and updating systems with continuous practises in cloud environments. This study shows that ensuring security, while delivering continuous releases, is a daunting task. It requires close collaboration between teams handling different aspects of software. This, in turn, entails a widening of competences to include knowledge about the work of other departments. It is concluded that personnel with this wide range of skill will be hard to acquire. / I en tid då mängden data som samlas in om individer ökar i ohindrad takt, blir frågor om integritet och informationssäkerhet viktigare än någonsin. Kraven på snabb utveckling och förändring präglar även metoderna för mjukvaruutveckling. Produkter och tjänster måste konstant anpassas efter kundernas önskemål för att förbli relevant på marknaden. Arbetssätt och teknologier har utvecklats över tid för att möjliggöra mjukvara som uppdateras kontinuerligt. Konstant föränderlig mjukvara leder dock till oro för kvalitén och säkerheten av uppdateringarna. Den här uppsatsen är en litteraturstudie som undersöker utmaningarna att säkerställa säkerhet för mjukvara som uppdateras kontinuerligt. Problemet som löses genom studien är den saknade helhetsbilden av säkerhetsproblem vid kontinuerligt föränderlig mjukvara. Resultatet sammanfattas i en checklista för områden som väcker oro för säkerheten vid arbetssätt som tillåter kontinuerliga uppdateringar i moln-miljöer. Studien visar att leverera säkra lösningar kontinuerligt är en svår uppgift. Det kräver nära samarbete mellan team som sköter olika delar av mjukvaruutveckling. Detta fordrar vida kompetenser som inkluderar förståelse av varandras arbete. Att finna personal med tillräckligt vida kompetenser uppskattas vara problematiskt.
|
5 |
Implementation of a Continuous Integration and Continuous Delivery System for Cross-Platform Mobile Application DevelopmentNilsson, Samuel January 2016 (has links)
When working in software development teams, there are challenges when it comes to always keeping the software stable and reliable. Continuous integration are frequently used to increase the stability and reliability. Extensive research has been performed on the matter of development processes of continuous integration, but there are no consensus on how systems to support continuous integration should be implemented for best results. In this report a continuous integration system is implemented based on best practices and to support the general continuous integration development process, by using Jenkins and other open source tools. The system is adapted to work well with the cross-platform mobile development framework CoffeeMaker developed by VISIARC AB and the general needs of the company. In order to roughly estimate the increased developer productivity and product quality when introducing the system, a questionnaire that discusses the system and working habits was sent out to the developers. The evaluation lead to the conclusion that the productivity would improve by approximately 30-60 minutes per week and developer. It also lead to the conclusion that the quality of their developed applications would most probably increase by introducing such a system.
|
6 |
Zero-Downtime Deployment in a High Availability Architecture : Controlled experiment of deployment automation in a high availability architectureNilsson, Axel January 2018 (has links)
Computer applications are no longer local installations on our computers. Many modern web applications and services rely on an internet connection to a centralized server to access the full functionality of the application. High availability architectures can be used to provide redundancy in case of failure to ensure customers always have access to the server. Due to the complexity of such systems and the need for stability, deployments are often avoided and new features and bug fixes cannot be delivered to the end user quickly. In this project, an automation system is proposed to allow for deployments to a high availability architecture while ensuring high availability. The purposed automation system is then tested in a controlled experiment to see if it can deliver what it promises. During low amounts of traffic, the deployment system showed it could make a deployment with a statistically insignificant change in error rate when compared to normal operations. Similar results were found during medium to high levels of traffic for successful deployments, but if the system had to recover from a failed deployment there was an increase in errors. However, the response time during the experiment showed that the system had a significant effect on the response time of the web application resulting in the availability being compromised in certain situations.
|
7 |
Automated Key Rotations In a Continuous Deployment PipelineRylander, Jim, Moberg, Jacob January 2018 (has links)
Background. To the best of our knowledge, there is no related work that brings up key management in Continuous Deployment. Most of the previous research within the area handles challenges and how to apply to continuous methods. Objectives. By performing this research our goal was to determine how to apply automated key rotation as a way of improving the security in a Continuous Deployment pipeline. We also wanted to compare a manual way of rotating the keys compared to an automated way. When comparing these different scenarios to a scenario where no key rotation was active we hoped to reach a conclusion of whether it is worth implementing automated key rotations in a CDE pipeline or not. Methods. By configuring different tools like GitLab, GitLab-Runner and Vagrant we created a working test pipeline. Since manual key rotation can be implemented in the CDE pipeline, the goal was to create a script that could automate the same process. In our tests we focused on the keys between GitLab and GitLab-Runner. Our tests consisted of comparing three different scenarios, a pipeline with: no, manual and automated key rotations. The three different scenarios where compared on 7 factors to help us reach a conclusion of whether automated key rotations was worth applying as a way to improve the security in a CDE pipeline. Results. With the help of tools like cURL and sshpass we managed to automate the key rotation. When we measured the different processes between no, manual and automated key rotations, the result showed us that the automated process has an average time of 1.6 seconds run time and 1.14 seconds average of server downtime. The run time is 70 times faster than the manual key rotation and has 5 times less average server downtime. Conclusions. We came to the conclusion that it is possible to use key rotation and keep the CDE process fully automated. It makes the process safer but also have the side effect of server downtime.
|
8 |
Continuous deployment of pervasive applications in dynamic environments / Déploiement continue des applications pervasives en milieux dynamiquesGünalp, Ozan Necati 13 November 2014 (has links)
L'émergence des nouveaux types d'environnements informatiques amplifie le besoin pour des systèmes logiciels d'être capables d'évoluer dynamiquement. Cependant, ces systèmes rendent très difficile le déploiement de logiciels en utilisant des processus humains. Il y a donc un besoin croissant d'outils d'automatisation qui permettent de déployer et reconfigurer des systèmes logiciels sans en interrompre l'exécution. Le processus de déploiement continu et automatisé permet de mettre à jour ou d'adapter un logiciel en exécution en fonction des changements contextuels et des exigences opérationnelles. Les solutions existantes ne permettent pas des déploiements reproductibles et tolérant aux pannes dans des environnements fluctuants, et donc requérant une adaptation continue. Cette thèse se concentre en particulier sur des solutions de déploiement continu pour les plates-formes d'exécution dynamiques, tels que celle utilisé dans les environnements ubiquitaires. Elle adopte une approche basée sur un processus transactionnel et idempotent pour coordonner les actions de déploiement. La thèse propose, également, un ensemble d'outils, y compris un gestionnaire de déploiement capable de mener des déploiements discret, mais également d'adapter les applications continuellement en fonction des changements contextuels. La mise en œuvre de ces outils, permet notamment aux développeurs et aux administrateurs de développer des déploiements d'applications grâce à un langage spécifique suivant les principes de l‘infrastructure-as-code. En utilisant l'implantation de Rondo, les propositions de cette thèse sont validées dans plusieurs projets industriels et académiques à la fois pour l'administration de plates-formes ubiquitaires ainsi que pour l'installation d'applications et leurs reconfigurations continues. / Driven by the emergence of new computing environments, dynamically evolving software systems makes it impossible for developers to deploy software with human-centric processes. Instead, there is an increasing need for automation tools that continuously deploy software into execution, in order to push updates or adapt existing software regarding contextual and business changes. Existing solutions fall short on providing fault-tolerant, reproducible deployments that would scale on heterogeneous environments. This thesis focuses especially on enabling continuous deployment solutions for dynamic execution platforms, such as would be found in Pervasive Computing environments. It adopts an approach based on a transactional, idempotent process for coordinating deployment actions. The thesis proposes a set of deployment tools, including a deployment manager capable of conducting deployments and continuously adapting applications according to the changes in the current state of the target platform. The implementation of these tools, Rondo, also allows developers and administrators to code application deployments thanks to a deployment descriptor DSL. Using the implementation of Rondo, the propositions of this thesis are validated in several industrial and academic projects by provisioning frameworks as well as on installing application and continuous reconfigurations.
|
9 |
Continuous Deployment for Complex Software Intensive Industrial SystemsHaider, Zulqarnain January 2017 (has links)
Processes to develop and deliver software have been evolved over the years. One of the primary motivations of this evolution, is gaining the benefits of shorter time-to-market. Continuous deployment is a recent trend to deploy software to the customers automatically and in continuous fashion. Organizations adopting this trend could reach the customers faster through quick deliveries and improve the quality and productivity of the delivered product by an early feedback, and hence achieve increased customer satisfaction. Complex software intensive industrial systems are large-scale, distributed over heterogeneous platforms and interact with several sensors and actuators. Enabling continuous deployment for these industrial systems needs a stable deployment process able to cope with domain specific requirements and challenges. Notably, the required quality attributes of the deployed software product as well as the challenges introduced by the customer-specific nature of the domain. In this thesis, we formalize continuous deployment for industrial systems by identifying the main factors of an appropriate deployment process. In particular, we investigate high-level requirements, required quality attributes of the software product, and challenges in the deployment. Based on this, we propose a continuous deployment pipeline and a set of activities incorporated in the stages of the pipeline, in particular deployment and post-deployment stages. Moreover, we suggest automation support for the activities to both shorten the delivery time and to preserve repeatability and reliability of the deployment process. The aim of such a process is to maintain the quality attributes of the deployed software. We perform a case study to validate the proposed model by implementing a prototype in an industrial system
|
10 |
DevOps adoption and implementation in software development practice:concept, practices, benefits and challengesLwakatare, L. E. (Lucy Ellen) 17 November 2017 (has links)
Abstract
In the last decade, the software industry has been marked by a growing trend of software companies’ ability to deploy new software features fast and frequently in short release cycle times. The companies’ software release cycles have been shortened to hours and minutes rather than months. To enable the transformation towards short release cycle times, companies have adopted several different strategies, including the DevOps approach. DevOps in the software industry emerged to represent a professional movement emphasising the collaboration between software development and operations. In practice, DevOps affects the company culture, processes, products, associated technologies and organisational structures used in software development and operations processes. The multifaceted nature of DevOps makes the concept ambiguous and difficult for software companies to adopt as there are many different paths to its adoption.
The purpose of the thesis is to provide detailed description of the adoption and implementation of DevOps in software development comprehending the DevOps concept definition, and its practices, benefits and challenges. The research was performed by systematically reviewing the literature, multi-vocal documents and making qualitative inquiries among software practitioners; and based on that the consolidated body of knowledge of DevOps was constructed.
The key finding of the research is that the DevOps approach includes an automated software deployment mechanism focusing on the rapid and repeatable release of software changes and automated management of operational infrastructure. The adoption and implementation of DevOps practices are prominent in software companies that use cloud computing technology, while its adoption is challenging in the embedded system domain. DevOps is not a silver bullet; challenges pertaining to the management of infrastructures due to legacy technologies still persist. The key lesson learned in the adoption and implementation of DevOps is that the software operational infrastructure is no longer considered separate from the development of software features; and this is achieved by having software development and operations teams jointly working together. / Tiivistelmä
Viimeisen vuosikymmenen aikana ohjelmistoteollisuudessa on ollut kasvavana trendinä ohjelmistotalojen lisääntyvä kyky toimittaa ohjelmistomuutoksia nopeasti ja usein toistuvina päivityksinä. Yritysten ohjelmistotoimitus- ja päivitysjaksot ovat lyhentyneet kuukausista tunneiksi ja jopa minuuteiksi. Yritykset ovat ottaneet käyttöön useita erilaisia toimintatapoja kyetäkseen muuttamaan toimintaansa lyhyen aikavälin ohjelmistopäivityksiin kykeneväksi, joista yksi viimeisimmistä on DevOps (saumaton ohjelmiston kehittäminen ja käyttö). Ohjelmistotuotannossa DevOps syntyi ohjelmistoteollisuudessa ammattilaisten alkaessa painottaa ohjelmistojen kehittämisen ja käytön yhteistyön tärkeyttä. Käytännössä DevOpsilla on vaikutusta ohjelmisto-organisaation toimintakulttuuriin, prosesseihin, tuotteisiin, sekä teknologioihin ja organisaatiorakenteisiin, joita käytetään ohjelmistokehityksessä ja käyttöönottoprosessissa. DevOpsin käsitteen moniulotteisuudesta johtuen käsitteen sisältö jää usein epäselväksi ja samalla sen mukainen toiminta vaikeasti käyttöön otettavaksi ohjelmistoyrityksissä, koska toteutus on mahdollista tehdä monella eri tavalla.
Tämän väitöksen tarkoituksena on antaa selkeä kuvaus DevOpsista ja sen toteutuksesta ohjelmistokehityksessä niin, että sen käsite, ja käytännöt, sekä sen tarjoamat edut ja haasteet tulevat ymmärretyiksi. Tutkimuksessa suoritettiin systemaattinen kirjallisuuskatsaus tieteellisiin julkaisuihin ja muihin lähinnä käytännön kokemuksiin pohjautuviin lähteisiin, suoritettiin kvalitatiiviset kyselytutkimukset, joiden kohteena olivat ohjelmistoammattilaiset, sekä muodostettiin näiden pohjalta saumattoman ohjelmistokehityksen ja käytön yhtenäinen tietämyskanta.
Tutkimuksen keskeinen tulos on, että DevOps-lähestymistapa sisältää automaattisen ohjelmiston käyttöönottomekanismin, joka keskittyy nopeiden ja toistettavien ohjelmistomuutosten käyttöönottoon ja sitä tukevan operatiivisen infrastruktuurin hallintaan. DevOpsin omaksuminen ja käyttöönotto ovat näkyvästi esillä pilvipalvelinteknologiaa käyttävissä ohjelmistoyrityksissä, kun taas sen käyttöönotto on haastavaa sulautettujen järjestelmien alueella. DevOps ei ole mikään ’hopealuoti’, vaan sisältää erityisesti infrastruktuurien hallintaan liittyviä haasteita, jotka johtuvat edelleen käytössä olevista vanhoista tekniikoista. Keskeisin oppima DevOpsin omaksumisesta ja soveltamisesta käytäntöön on, että ohjelmistojen käyttöinfrastruktuuria ei enää tarkastella erillään ohjelmistojen kehittämisestä, vaan ne toimivat saumattomassa yhteistyössä keskenään.
|
Page generated in 0.1151 seconds