Continuous Delivery

Total Page:16

File Type:pdf, Size:1020Kb

Continuous Delivery Continuous Delivery By Uchit Vyas [email protected] www.attuneuniversity.com Table of Content I. Getting started II. Version Controlling with Git III. Git with Eclipse (EGit) IV. Eclipse SSH Configuration V. Installing Jenkins VI. Installing Ruby with RVM VII. Creating a job in Jenkins VIII. Configuring the Tools Continuous Delivery 1 About Author Uchit Vyas a B.Tech. Graduate in Computer Science with a research interest in ESB & Cloud and is a certified by Cisco (CCNA), VMware (VSP) and Red Hat Linux (RHCE) professional. He has an energetic strength to work on multiple platforms at a time and ability to integrate open source technologies. He works as a Sr. Consultant and looking afterAWS – Cloud, Mule ESB, Alfresco, Liferay and deploying Portal, ECM system. He was previously working with TCS as Assistant System Engineer. Over 3+ years of hands on experience on Open Source technologies, he manages to guide the team and deliver the projects and trainings. He has provided 13+ trainings on Cloud Computing, Continuous Delivery, Alfresco and Liferay in couple of months. During past years he moved over 80% of Attune Infocom business processes to the Cloud with implementing agile SDLC methodology on Amazon, Rackspace and private clouds like Eucalyptus, Openstack. His skills are not limited as his designing and managing Cloud environment/infrastructure, server architecture. He is also active in shell scripting, auto deployment, supporting hundreds of Linux and Windows physical & virtual servers hosting databases, and applications with Continuous delivery using Jenkins / Cruise Control with Puppet / Chef scripting. 2 Continuous Delivery Getting started Continuous Delivery (CD) is a pattern language used in software development to automate and improve the process of software delivery. Techniques such as automated testing, continuous integration and continuous deployment allow software to be developed to a high standard and easily packaged and deployed to test environments, resulting in the ability to rapidly, reliably and repeatedly push out enhancements and bug fixes to customers at low risk and with minimal manual overhead. The technique was one of the assumptions of extreme programming but at an enterprise level has developed into a discipline of its own, with job descriptions for roles such as "buildmaster" calling for CD skills as mandatory. Figure 1 : Continuous Delivery Pattern Continuous delivery treats the commonplace notion of a deployment pipeline as a set of validations through which a piece of software must pass Continuous Delivery 3 on its way to release. Code is compiled if necessary and then packaged by a build server every time a change is committed to a source control repository, then tested by a number of different techniques (possibly including manual testing) before it can be marked as releasable. Figure 2 : Architecture for Continuous Delivery Developers use to a long cycle time may need to change their mindset when working in a CD environment. It is important to understand that any code commit may be released to customers at any point. Patterns such as feature toggles can be very useful for committing code early which is not yet ready for use by end users. Other useful techniques for developing code in isolation such as code branching are not obsolete in a CD world, but must be adapted to fit the principles of CD - for example, running multiple long-lived code branches can prove impractical, as a releasable artifact must be built early in the CD process from a single code branch if it is to pass through all phases of the pipeline. 4 Continuous Delivery Continuous Delivery Tools List I usually shy away from giving a list of tools that we use because people have their particular tool preferences and are sometimes indignant in considering others. However, I realize it's helpful for people to understand the tool landscape when it comes to Continuous Delivery in the Cloud just so they know where to start looking. After reading my Continuous Integration book, this is often the most common question I get from readers. I want to say up front that I'm not advocating the use of any of these tools, just that we've used some of the tools or investigated when creating Continuous Delivery systems. I'm sure some of the tools that we use on a daily basis won't make it to this list. The precise toolset a team may choose to use depends upon numerous factors including project, cost and customer constraints – to name a few. Therefore, I suggest that you focus more on the type of tool and determine which one meets their particular needs for their Continuous Delivery ecosystem. Just because I'm not mentioning a particular tool doesn't mean I'm not using it or that I don't think it's a good tool; these are meant to be illustrative. We tend to focus more on freely-available tools because people can download and use them quickly. There are good reasons to choose commercial tools. As implied before, you don't need to be using all of these tools to get significant benefit from Continuous Delivery. Start small and build it up. I've listed some of the tools in each category for the Java, .NET and Ruby platforms. Since, we lean heavily toward Cloud tools; you'll see that we opt for the SaaS-based tools, when applicable. Let me know if your Continuous Delivery 5 preferred tool didn't make the list. Ok, there's my disclaimer. On with the list: Application Containers – JBoss, Tomcat, IIS, Mongrel. NOTE: there are so many app containers; I'm not going to try to list all of them. Build Tools – Ant, AntContrib, NAnt, MSBuild, Buildr, Gant, Gradle, make, Maven, Rak e Code Review - Crucible Code Insight – Fisheye Continuous Integration – Bamboo, Jenkins, AntHill Pro, Go, TeamCity, TFS 2010 Cloud IaaS - AWS EC2, AWS S3 , Windows Azure Cloud PaaS – Google App Engine, AWS Elastic Beanstalk, Heroku Database – Hibernate, MySQL, Liquibase, Oracle, PostgreSQL, SQL Server, SimpleDB, SQL Azure, Ant, MongoDB Database Change Management – dbdeploy, Liquibase Data Center Configuration Automation – Capistrano, Cobbler, BMC Bladelogic, CFEngine, IBM Tivoli Provisioning Manager, Puppet, Chef, Bcfg2, AWS Cloud Formation, Windows Azure AppFabric NOTE: There are many names and overlap for this tool "category". Dependency Management – Ivy, Archiva, Nexus, Artifactory, Bundler Deployment Automation – Java Secure Channel, ControlTier, Altiris, Capistrano, Fabric, Func Information Sharing – Confluence, Google Apps Installer – InstallShield, IzPack Integrated Development Environment (IDE) – Eclipse, IDEA, Visual Studio 6 Continuous Delivery Issue Tracking - Greenhopper, JIRA Multi-Type – rPath Passwords – PassPack, PasswordSafe Protected Configuration – ESCAPE, ConfigGen Project Management – JIRA, Pivotal Tracker, SmartSheet Provisioning - JEOS, BoxGrinder, CLIP, Eucalyptus, AppLogic Reporting/Documentation – Doxygen, Grand, GraphViz, JavaDoc, NDoc, SchemaSpy, UmlGraph Static Analysis - CheckStyle, Clover, Cobertura, FindBugs, FxCop, JavaNCSS, JDepend, P MD, Sonar, Simian Systems Monitoring – CloudKick, Nagios, Zabbix, Zenoss Testing – AntUnit, Cucumber, DbUnit, webrat, easyb, Fitnesse, JMeter, JUnit, NBeh ave, SoapUI, Selenium, RSpec,SauceLabs Version-Control System – SVN/Subversion, git, Perforce Continuous Delivery 7 Version Controlling with Git There are many options for version control, but the Rails community has largely standardized on Git, a distributed version control system originally developed by Linus Torvalds to host the Linux kernel. Git is a large subject, and we‘ll only be scratching the surface in this book, but there are many good free resources online; I especially recommend Pro Git by Scott Chacon (Apress, 2009). Putting your source code under version control with Git is strongly recommended, not only because it‘s nearly a universal practice in the Rails world, but also because it will allow you to share your code more easily and deploy your application right here in the first chapter. Installing Git Let‘s get into using some Git. First things first—you have to install it. You can get it a number of ways; the two major ones are to install it from source or to install an existing package for your platform. Installing from Source If you can, it‘s generally useful to install Git from source, because you‘ll get the most recent version. Each version of Git tends to include useful UI enhancements, so getting the latest version is often the best route if you feel comfortable compiling software from source. It is also the case that many Linux distributions contain very old packages; so unless you‘re on a very up-to-date distro or are using backports, installing from source may be the best bet. To install Git, you need to have the following libraries that Git depends on: curl, zlib, openssl, expat, and libiconv. For example, if you‘re on a system 8 Continuous Delivery that has yum (such as Fedora) or apt-get (such as a Debian based system), you can use one of these commands to install all of the dependencies: $ yum install curl-devel expat-devel gettext-devel \ openssl-devel zlib-devel $ apt-get install libcurl4-gnutls-dev libexpat1-dev gettext \ libz-dev libssl-dev When you have all the necessary dependencies, you can go ahead and grab the latest snapshot from the Git web site: http://git-scm.com/download Then, compile and install: $ tar -zxf git-1.7.2.2.tar.gz $ cd git-1.7.2.2 $ make prefix=/usr/local all $ sudo make prefix=/usr/local install After this is done, you can also get Git via Git itself for updates: $ git clone git://git.kernel.org/pub/scm/git/git.git First-time system setup After installing Git, you should perform a set of one-time setup steps. These are system setups, meaning you only have to do them once per computer: $ git config --global user.name "Your Name" $ git config --global user.email [email protected] Continuous Delivery 9 I also like to use co in place of the more verbose checkout command, which we can arrange as follows: $ git config --global alias.co checkout This tutorial will usually use the full checkout command, which works for systems that don‘t haveco configured, but in real life I nearly always use git co.
Recommended publications
  • Creating Rpms Guide
    CREATING RPMS (Student version) v1.0 Featuring 36 pages of lecture and a 48 page lab exercise This docu m e n t serves two purpose s: 1. Representative sample to allow evaluation of our courseware manuals 2. Make available high quality RPM documentation to Linux administrators A bout this m aterial : The blue background you see simulates the custom paper that all Guru Labs course w are is printed on. This student version does not contain the instructor notes and teaching tips present in the instructor version. For more information on all the features of our unique layout, see: http://ww w . g urulabs.co m /courseware/course w are_layout.php For more freely available Guru Labs content (and the latest version of this file), see: http://www.gurulabs.co m/goodies/ This sample validated on: Red Hat Enterprise Linux 4 & Fedora Core v3 SUSE Linux Enterprise Server 9 & SUSE Linux Professional 9.2 About Guru Labs: Guru Labs is a Linux training company started in 199 9 by Linux experts to produce the best Linux training and course w are available. For a complete list, visit our website at: http://www.gurulabs.co m/ This work is copyrighted Guru Labs, L.C. 2005 and is licensed under the Creative Common s Attribution- NonCom mer cial- NoDerivs License. To view a copy of this license, visit http://creativecom m o n s.org/licenses/by- nc- nd/2.0/ or send a letter to Creative Commons, 559 Nathan Abbott Way, Stanford, California 943 0 5, USA. Guru Labs 801 N 500 W Ste 202 Bountiful, UT 84010 Ph: 801-298-5227 WWW.GURULABS.COM Objectives: • Understand
    [Show full text]
  • CERN R&D on Spack and the Turnkey Stack
    CERN R&D on Spack and the Turnkey Stack HSF Software Workshop - 2020/11/19 Valentin Volkl (CERN), Key4hep Software Group Thanks to Andre Sailer, Pere Mato, Ben Morgan for use of Slides Valentin Volkl: Key4HEP & Spack Table of Contents ● Key4HEP - Introduction and motivation ● The Spack package manager ● Technical considerations ● Deployment to CVMFS ● Workflow -Spack for Development Valentin Volkl: Key4HEP & Spack 2 Dependency Graph of Key4HEP Stack Experiment-specific Packages Valentin Volkl: Key4HEP & Spack 3 Dependency Graph of Key4HEP stack Experiment-specific Packages + HEP-specific packages Valentin Volkl: Key4HEP & Spack 4 Dependency Graph of Key4HEP stack Experiment-specific Packages + HEP-specific Packages + General Purpose Libraries Valentin Volkl: Key4HEP & Spack 5 Requirements for a Build System [ ] Need to be able to scale to a typical experiment software stack [ ] Combinatorics of multiple platforms, versions, Release/Debug ... [ ] Easy deployment to CVMFS [ ] Allow local builds independent of central CVMFS installations [ ] Support software development usecases The KEY4HEP stack contains some 300 packages ● 60 Experiment-specific ● 50 HEP-specific ● 200 System/General Purpose 14 GB install size, some 6h to build on single 4-core machine Valentin Volkl: Key4HEP & Spack 6 Key4HEP ● Future detector studies critically rely on well-maintained software stacks to model detector concepts and to understand a detector’s limitations and physics reach ● We have a scattered landscape of specific software tools on the one hand and integrated
    [Show full text]
  • Magic Quadrant for Application Release Automation
    Magic Quadrant for Application Release Automation Published: 27 September 2017 ID: G00315074 Analyst(s): Colin Fletcher, Laurie F. Wurster The ARA market is rapidly evolving in response to growing enterprise requirements to both scale DevOps initiatives and improve release management agility across multiple cultures, processes and generations of technology. This research helps I&O leaders make better-informed decisions. Strategic Planning Assumption By 2020, 50% of global enterprises will have implemented at least one application release automation solution, up from less than 15% today. Market Definition/Description Application release automation (ARA) tools provide a combination of automation, environment modeling and release coordination capabilities to simultaneously improve the quality and the velocity of application releases. ARA tools enable best practices in moving application-related artifacts, applications, configurations and even data together across the application life cycle process. These tools are a key part of enabling the DevOps goal of achieving continuous delivery with large numbers of rapid, small releases. Approximately seven years old, the ARA solution market reached an estimated $228.2 million in 2016, up 31.4% from $173.6 million in 2015. The market is continues to be expected to grow at an estimated 20% compound annual growth rate (CAGR) through 2020. Magic Quadrant Figure 1. Magic Quadrant for Application Release Automation Source: Gartner (September 2017) Vendor Strengths and Cautions Arcad Software Founded in 1992, Arcad Software is a privately held company headquartered in Chavanod, France. The company was started by its founder to deliver automation-oriented solutions supporting the Page 2 of 28 Gartner, Inc. | G00315074 IBM i (introduced as AS/400, then later renamed eServer iSeries) platform.
    [Show full text]
  • CI-CD-For-Infrastructure-Configuration
    Abstract & Overview Organizations of all sizes, from the leanest startup to the stodgiest enterprise, use CI/CD practices to greatly improve production and delivery of software. This yields higher- quality software at a lower cost and allows businesses to deliver ideas to market faster. As development teams adopt CI/CD practices, they start delivering new applications and releases faster and faster. This constantly changing software inevitably requires changes to infrastructure and configuration, but many operations teams aren’t accustomed to the pace—nor do they have the proper tools required. Trying to directly apply successful CI/CD practices for applications is highly unlikely to yield success for infrastructure and configuration changes. In this guide, we explore: • How and why CI/CD has been so successful for application changes • Infrastructure and configuration changes as a new bottleneck • Challenges with CI/CD for infrastructure and configuration changes • How to overcome challenges and implement CI/CD for infrastructure We include a hands-on guide for how to implement this with BuildMaster and Otter. You can do everything in this guide with BuildMaster Free and Otter Free editions! About Inedo, Otter, and BuildMaster We help organizations make the most of their Windows technology and infrastructure through our Windows-native and cross-platform DevOps tools. • BuildMaster, a tool designed to implement CI/CD, automates application releases. • Otter manages infrastructure. Harnessing the power of both tools allows users to manage infrastructure while enjoying all the benefits of CI/CD. Page 1 of 31 Page 2 of 31 Contents CI/CD for Applications: A Quick Refresher ................................................................................................................................................. 4 Pipelines: The Heart of CI/CD ....................................................................................................................................................................
    [Show full text]
  • Building Embedded Linux Systems ,Roadmap.18084 Page Ii Wednesday, August 6, 2008 9:05 AM
    Building Embedded Linux Systems ,roadmap.18084 Page ii Wednesday, August 6, 2008 9:05 AM Other Linux resources from O’Reilly Related titles Designing Embedded Programming Embedded Hardware Systems Linux Device Drivers Running Linux Linux in a Nutshell Understanding the Linux Linux Network Adminis- Kernel trator’s Guide Linux Books linux.oreilly.com is a complete catalog of O’Reilly’s books on Resource Center Linux and Unix and related technologies, including sample chapters and code examples. ONLamp.com is the premier site for the open source web plat- form: Linux, Apache, MySQL, and either Perl, Python, or PHP. Conferences O’Reilly brings diverse innovators together to nurture the ideas that spark revolutionary industries. We specialize in document- ing the latest tools and systems, translating the innovator’s knowledge into useful skills for those in the trenches. Visit con- ferences.oreilly.com for our upcoming events. Safari Bookshelf (safari.oreilly.com) is the premier online refer- ence library for programmers and IT professionals. Conduct searches across more than 1,000 books. Subscribers can zero in on answers to time-critical questions in a matter of seconds. Read the books on your Bookshelf from cover to cover or sim- ply flip to the page you need. Try it today for free. main.title Page iii Monday, May 19, 2008 11:21 AM SECOND EDITION Building Embedded Linux SystemsTomcat ™ The Definitive Guide Karim Yaghmour, JonJason Masters, Brittain Gilad and Ben-Yossef, Ian F. Darwin and Philippe Gerum Beijing • Cambridge • Farnham • Köln • Sebastopol • Taipei • Tokyo Building Embedded Linux Systems, Second Edition by Karim Yaghmour, Jon Masters, Gilad Ben-Yossef, and Philippe Gerum Copyright © 2008 Karim Yaghmour and Jon Masters.
    [Show full text]
  • Robust Linux Binaries.Pdf
    Robust Linux Binaries How to use Portage to provide a solid base stack for HEP G. Amadio https://xkcd.com/1987 Why do we fall into this kind of situation? ● We want software that’s not part of the system ● Use pip, conda, homebrew, etc to get it somewhere ● Not compiled with same compiler → incompatible ABI ● Often requires setting LD_LIBRARY_PATH and/or PYTHONPATH ● Problems if a package is both in the system and in add-ons ● Updates to the system do not take add-ons into account 3 Classic example: ROOT, Python, and Anaconda ● User has Anaconda installation with Python, wants ROOT ● User then tries to build ROOT with system compiler and link with Python from Anaconda installation ● libPyROOT.so has to link against system’s libstdc++.so and anaconda’s libpython2.7.so ● Problem: libpython2.7.so from Anaconda is not guaranteed to be ABI-compatible with system libraries ● Solution: install GCC from anaconda that was used to build Python and build ROOT with that compiler instead 4 Why LD_LIBRARY_PATH should be avoided ● LD_LIBRARY_PATH is commonly used to add directories to the linker’s search path ● Problem: LD_LIBRARY_PATH takes precedence, overrides important system libraries ○ See e.g. https://sft.its.cern.ch/jira/browse/SPI-1083 ● Solution: use a wrapper script or even better, don’t use LD_LIBRARY_PATH $ ssh lxplus7 $ lsb_release -d Description: CentOS Linux release 7.5.1804 (Core) $ source /cvmfs/sft.cern.ch/lcg/views/LCG_latest/x86_64-centos7-gcc7-opt/setup.sh $ ldd /usr/bin/git linux-vdso.so.1 => (0x00007ffdb55b3000) libpcre.so.1
    [Show full text]
  • NVIDIA CUDA Installation Guide for Linux
    NVIDIA CUDA Installation Guide for Linux Installation and Verification on Linux Systems DU-05347-001_v11.4 | September 2021 Table of Contents Chapter 1. Introduction........................................................................................................ 1 1.1. System Requirements...............................................................................................................1 1.2. About This Document............................................................................................................... 3 Chapter 2. Pre-installation Actions..................................................................................... 4 2.1. Verify You Have a CUDA-Capable GPU....................................................................................4 2.2. Verify You Have a Supported Version of Linux........................................................................ 5 2.3. Verify the System Has gcc Installed........................................................................................5 2.4. Verify the System has the Correct Kernel Headers and Development Packages Installed........................................................................................................................................5 2.5. Install MLNX_OFED.................................................................................................................. 7 2.6. Choose an Installation Method................................................................................................ 7 2.7. Download
    [Show full text]
  • Synechron Technology
    Technology Practice overview www.synechron.com Unlike other firms, Synechron’s excellence - to drive transformative Our Value “Power of 3” approach and solutions. We have the unique ability proposition financial services expertise gives to provide an end-to-end approach, About Synechron us a competitive edge to tackle our from business consulting through clients’ problems from any vantage technical development to digital A unique approach to market point with great depth. Synechron enhancement. This empowers us combines the “Power of 3” - business to deliver solutions to some of the differentiation in the financial Accelerating Digital for process knowledge, digital design toughest business challenges. services domain and core technology delivery Banks, Asset Managers, and Insurance companies. Synechron is a leading Digital Consulting firm and is working to Accelerate Digital initiatives for banks, asset managers, and insurance Technology Digital companies around the world. • Technology Consulting • Experience Design We achieve this by providing our clients with innovative solutions • Application Development • Deployment and DevOps that solve their most complex business challenges and combining • Automation • Emerging Technology Synechron’s unique, end-to-end Digital, Business Consulting, and • Enterprise Architecture & Cloud Frameworks Technology services. Based in New York, the company has 18 offices • Quality Assurance • Blockchain COE around the globe, with over 8,000 employees producing over $500M+ • Systems Integration • AI Automation
    [Show full text]
  • Continuous Delivery
    DZONE RESEARCH PRESENTS 2014 GUIDE TO CONTINUOUS DELIVERY BROUGHT TO YOU IN PARTNERSHIP WITH dzone.com/research/continuousdelivery © DZONE, INC. 2014 WELCOME TABLE OF CONTENTS Dear Reader, SUMMARY & HIGHLIGHTS 3 In recent years, we have grown accustomed to a KEY RESEARCH FINDINGS 4 constant stream of information that has fueled our news feeds, flooded our inboxes, and triggered INTRODUCING: CONTINUOUS DELIVERY constant notifications... and in all of the noise, BY STEVE SMITH 6 something has been lost. Clarity, concision, and relevance have become innocent bystanders in an CONTINUOUS DELIVERY PITFALLS age of information overload. While it is true the BY J. PauL REED 10 task of gathering information has become easier, finding the right information, when and where you THE CONTINUOUS DELIVERY need it, has become increasingly complex and, at TOOLCHAIN times, overwhelming. BY MattHEW SKELtoN 14 The guide you hold in your hands (or on your CONTINUOUS DELIVERY VISUALIZED 16 device) is a vital part of DZone’s fight against this growing trend. We recognize that as a technology INFRASTRUCTURE AS CODE: WHEN professional, having actionable knowledge at AUTOMATION ISN’t ENOUGH 22 your fingertips is a necessity. Your business BY MitcH PRONSCHINSKE challenges will not be put on hold while you try to identify the right questions to ask and sort CONTINUOUS DELIVERY MATURITY CHECKLIST 24 through endless information. In publishing our 2014 Guide to Continuous Delivery, we have worked SOLUTION DIRECTORY 25 hard to curate and aggregate a wealth of useful topic knowledge and insight into a concise and informative publication. While this is only our second publication of this CREDITS nature, we have come a long way so far and we have big plans for the future.
    [Show full text]
  • The Spack Package Manager: Bringing Order to HPC Software Chaos
    The Spack Package Manager: Bringing Order to HPC Software Chaos Todd Gamblin Matthew LeGendre Michael R. Collette Gregory L. Lee [email protected] [email protected] [email protected] [email protected] Adam Moody Bronis R. de Supinski Scott Futral [email protected] [email protected] [email protected] Lawrence Livermore National Laboratory ABSTRACT Worse, the space of required builds grows combinatorially with Large HPC centers spend considerable time supporting software for each new configuration parameter. As a result, LLNL staff spend thousands of users, but the complexity of HPC software is quickly countless hours dealing with build and deployment issues. outpacing the capabilities of existing software management tools. Existing package management tools automate parts of the build Scientific applications require specific versions of compilers, MPI, process [2, 10, 11, 12, 23, 24, 38, 39, 41]. For the most part, they and other dependency libraries, so using a single, standard software focus on keeping a single, stable set of packages up to date, and stack is infeasible. However, managing many configurations is they do not handle installation of multiple versions or configurations. difficult because the configuration space is combinatorial in size. Those that do handle multiple configurations typically require that We introduce Spack, a tool used at Lawrence Livermore National package files be created for each combination of options [10, 11, Laboratory to manage this complexity. Spack provides a novel, re- 12, 23], leading to a profusion of files and maintenance issues. cursive specification syntax to invoke parametric builds of packages Some allow limited forms of composition [11, 12, 23], but their and dependencies.
    [Show full text]
  • Cernvm – a Virtual Software Appliance for LHC Applications
    17th International Conference on Computing in High Energy and Nuclear Physics (CHEP09) IOP Publishing Journal of Physics: Conference Series 219 (2010) 042003 doi:10.1088/1742-6596/219/4/042003 CernVM – a virtual software appliance for LHC applications P Buncic1, C Aguado Sanchez1, J Blomer1, L Franco1, A Harutyunian2,3, P Mato1, Y Yao3 1 CERN, 1211 Geneve 23, Geneva, Switzerland 2Armenian e-Science Foundation, Yerevan, Armenia 3Yerevan Physics Institute after A.I. Alikhanyan, Yerevan, Armenia 4 Lawrence Berkeley National Laboratory, 1 Cyclotron Road, CA 94720 Abstract. CernVM is a Virtual Software Appliance capable of running physics applications from the LHC experiments at CERN. It aims to provide a complete and portable environment for developing and running LHC data analysis on any end-user computer (laptop, desktop) as well as on the Grid, independently of Operating System platforms (Linux, Windows, MacOS). The experiment application software and its specific dependencies are built independently from CernVM and delivered to the appliance just in time by means of a CernVM File System (CVMFS) specifically designed for efficient software distribution. The procedures for building, installing and validating software releases remains under the control and responsibility of each user community. We provide a mechanism to publish pre-built and configured experiment software releases to a central distribution point from where it finds its way to the running CernVM instances via the hierarchy of proxy servers or content delivery networks. In this paper, we present current state of CernVM project and compare performance of CVMFS to performance of traditional network file system like AFS and discuss possible scenarios that could further improve its performance and scalability.
    [Show full text]
  • Aliakber Saifee
    MMXXI Ali­Akber Saifee [email protected] “Turn up the signal. Wipe out the noise. Send out the signals, deep and loud.” ­ Peter Gabriel Nutshell 15 years • Developing and designing Python applications & libraries • Developing test automation solutions. • Working in culturally & geographically diverse environments and teams. 10 years • Designing and maintaining software configuration management systems. • Leading development and quality assurance teams to build, deploy and release backend, web & mobile applica­ tions. 4 years • Developing C++ applications & libraries. 3 years • Developing and maintaining Java server applications. • Building Ruby/Ruby on Rails applications. Professional Experience • Reddit, Burnaby, Canada Senior Software Engineer November 2020 ­ Current Backend application development for the Trust & Safety – Performance optimization of comments API – Extraction of reporting functionality into an isolated service exposed to the clients through GraphQL – Built i18n support for the reporting sub­system – Worked on automated classification of spam content – Worked on solutions for detection & filtering of harassment and toxic messaging • Toptal, Remote Team Lead / Backend Software Engineer September 2017 ­ May 2019 Participated and led the development of internal tools and APIs for community & talent acquisition features. – Implemented GraphQL API for mobile & web clients – Implemented bot functionality to interact with customers over Slack. – Optimized unit & integration tests to reduce time spent in continuous integration.
    [Show full text]