Startup CTO, Software Architect, Rubyist

Total Page:16

File Type:pdf, Size:1020Kb

Startup CTO, Software Architect, Rubyist Konstantin Gredeskoul Startup CTO, Software Architect, Rubyist RUBY • RAILS • RSpec • GO • TypeScript • BASH • JAVA • C/C++ • SQL • Pairing • TDD Cloud • DevOps • Distributed Systems • Security • PostgreSQL • Scaling • SRE • Architecture CONTACT SUMMARY 1113 Carolina St Konstantin is a passionate, creative, and intuitive engineering leader, a full- San Francisco, CA 94107 stack developer, and a ruby expert, with an excellent eye for efficient, modular, and loosely coupled software architecture, clean, organized, and well-tested (415) 265 1054 code. He often infects those around him with enthusiasm and inspires his team to pursue software craft to its mastery. In his career, Konstantin led over a [email protected] dozen software teams up to 25, interviewed, hired, trained, and mentored hundreds of engineers. kig.re Konstantin served as a CTO at four separate startups spanning about a decade. During reinvent.one that time, he built four large e-commerce sites, two of which are also socially connected e- commerce marketplaces (Wanelo and Blurb), with sellers and buyers. github.com/kigster He loves the challenge of scaling distributed systems to meet the demands of the growing user base: during his tenure at Wanelo, the Ruby-powered app reached peak traffic of linkedin.com/in/kigster 200,000 RPMs, serving requests with an average latency of 80 ms or less. He authored over forty open-source libraries in Ruby, C/C++, CMake, Arduino, Bazel, and PROFICIENCY BASH. His Ruby gems have been downloaded over 20 million times, while his online presentations have been viewed by over 250K people worldwide. Konstantin often speaks at conferences, including RubyConf Australia, in 2015. Ruby (& Rails) Besides his love for coding, Konstantin has a passion for building hyper-productive and ● ● ● ● ● ● ● ● ● ● deeply collaborative engineering teams from diverse backgrounds, and harnessing the incredible power of pair-programming, TDD, group brainstorming, infrastructure C/C++ automation, and CI/CD. He writes a technical blog at https://kig.re. ● ● ● ● ● ● ● ○ ○ ○ PROFESSIONAL EXPERIENCE OO DESIGN ● ● ● ● ● ● ● ● ● ● FLARE.BUILD, Bazel Course Content Author [Contract] • 07/2020 — 08/2020 DATABASES & SQL Part of a small team tasked with creating a two-day training course on the Bazel Build system with eight hours of lectures and eight lab hours with less than one week's ● ● ● ● ● ● ● ● ● ● advance notice. I contributed several lectures, concept diagrams, Github actions CI integration, setup scripts, and proof-read/edited the entire set of 260+ slides. BASH ● ● ● ● ● ● ● ● ○ MEDCREDS, Consulting CTO [Contract] • 04/2020 — 07/2020 Helping the pre-funding startup with architecture, VC pitch, and product positioning DEVOPS using the latest W3C standards in the areas of Verifiable Credentials, Digital Wallets, ● ● ● ● ● ● ● ● ● ○ Self-Sovereign Identity and distributed public key infrastructure built atop of a Sovrin Blockchain. BAZEL / GOLANG ● ● ● ● ○ ○ ○ ○ ○ ○ Page 1 of 3 EDUCATION COINBASE, Senior Software Engineer • 06/2019 — 01/2020 I worked on extending the Bazel Build System using Starlark programming language (a subset of Python) to support Ruby language, as a part of the Developer Productivity 1993 — 1995 Team’s initiative. The outcome was an open-source project rules_ruby which allows Monash University, any ruby project to be built, run, and tested (eg, on CI) using standard Bazel commands. Melbourne, Australia Bachelor of Science (Honors) FLOWINC.APP, DevOps Automation [Contract] • 12/2018 — 05/2019 Mathematics & Statistics Six-months contract with a fin-tech startup in VC fund management space. Built a complete cloud automation from scratch using Chef Enterprise on AWS, and following all AWS security guidelines. Provisioned multiple environments (dev, staging, 1992 — 1993 production) in EC2. Kharkov State University, ➔ Installed Ruby linked with jemalloc, and deployed Rails/AngularJS application using Capistrano. Ukraine ➔ Registered all server processes such as Puma and Sidekiq as SystemD services, with Mathematics constrained resources using cgroups. and Advanced Calculus ➔ Configured self-hosted HAproxy, Redis, Memcached, Nginx, with only PostgreSQL being hosted on RDS, resulting in significant savings. ➔ Setup a secure, resilient and fault-tolerant infrastructure that was able to handle a multitude of systems failures and server crashes with no detectable impact to users. ➔ In addition to working on the infrastructure, I introduced the engineering team to the Pivotal INTERESTS Process, points estimation, retrospectives, and led the first several sprint planners. The process was later adopted and resulted in an increased team productivity, better awareness and morale. Open Source Software HOMEBASE, Infrastructure Architect • 08/2017 — 12/2018 Electronics / PCB Conceived and lead a massive revamp of Homebase's systems architecture and deployment for the next generation of growth. Initially, I was brought in as a contractor Laser Cutting to help address scaling pains. After a couple of months I was offered to switch to full- time employment (which I did, as I really liked the team) to continue my work on Arduino / ESP8266 addressing the performance issues and infrastructure automation. During that time: Drumming ➔ Introduced a number of significant resilience improvements, achieving 99.99% uptime in only a couple of months. Utilized multiple PostgreSQL read replicas to improve performance and stability, using Makara gem. Guitar ➔ Built out infrastructure automation using Chef Enterprise and Docker on Ubuntu, integrating with AWS services such as RDS, S3, SNS and EC2. Reduced AWS costs by 2X by switching to Piano self-managed Redis & Memcached, consolidating app servers onto reserved instances. ➔ Tuned Ruby garbage collection parameters and built Ruby interpreter with jemalloc, thus Electronic Music reducing memory footprint by 3X. ➔ Tuned concurrency settings of Puma and Sidekiq for maximum throughput while minimizing DJ (House / Tech-House) the number of involuntary context switches. as “LeftCtrl” ➔ Rebuilt deploy process using Capistrano, managing a non-downtime deploy in just under 60 seconds. Produced two albums as ➔ After rebuilding the Production, Staging and multiple Dev environments, focused on “PolyGroovers” reducing CI build times by 2-3X using aggressive caching and smart retries. ➔ Finally, rebuilt the developer tooling (initial setup, secrets encryption, deployment) in BASH Whitewater Kayaking v4. Bicycling Page 2 of 3 SELECT OPEN SOURCE PROJECTS WANELO, Chief Technical Officer / VPE • 12/2011 — 01/2016 I joined the company as an employee #3, after the Founder, and her sister. Working at two jobs for a couple of weeks, I threw myself into fixing site’s chronic outages caused All projects listed below are open by its own popularity, and lack of performance-oriented design of Wanelo’s first source and distributed under the codebase. After applying some amount of ingenious CDN caching with Fastly gave us a MIT license. few months of breathing room, I focused on establishing high-performance engineering practices with the newly formed engineering team. Simple Feed (Ruby Gem) (278 ★) Redis-backed activity feed ➔ Closely following the Pivotal Process, my team agreed (reluctantly, at first) to try implementation that scales to full-time pair-programming, in addition to more familiar practices of continuous millions of users, optimized for integration, daily deployments, and TDD. In just under two months that followed, constant rendering-time of the feed with the team of six (myself included), we replaced the old Java app – 90K lines of code and no tests – with a compact Rails app – only 10K LOC, half of which were tests. We then brought the new app live, migrated the data from MySQL to Sym (Ruby Gem, CLI) (131 ★) PostgreSQL, and swapped Cloud vendors all at the same time… with just one hour of planned downtime for maintenance. Full story here. Symmetric encryption library based on OpenSSL, supports password- ➔ Automated cloud deployment with Chef, strategically providing automated tests protected symmetric keys with all Chef recipes. Used HAProxy as a routing layer as well as the resilience mechanism for fail-over. This architecture was the subject of my RubyConf OZ talk “DevOps without the Ops”. MakeABox.io (79 ★) Rails-based one-page site for ➔ Stack: Ruby, jRuby, Rails, PostgreSQL, Redis, the proxy, Nginx, haproxy, generating PDF templates aimed at ElasticSearch, Solr, Memcached, Chef, Capistrano, Joyent Cloud, SmartOS, dTrace, a laser-cutter, that generate Objective-C, iOS. enclosure boxes with sides that snap onto one another Professional experience between 1995 and 2011 is available upon request or my LinkedIn Profile. Ventable (Ruby, Gem) (58 ★) REFERENCES Ruby-based CLI tool for “I have worked with Konstantin and can say he is bar-none the most technically minded automatically downloading and CTO and leader I have ever worked with. He has an amazing depth in system turning, installing Arduino Libraries into an scaling distributed architectures, ruby programming, and database tuning. Arduino project, that works somewhat similar to Bundler His biggest contribution, though, was building a super well-oiled engineering team that is the dictionary definition of efficient, lean and driving a fully automated deployment infrastructure, and enforcing best practices such as TDD in a pairing environment. CMake Project Template (318 ★) A popular template for C/C++ Overall Konstantin is a super passionate and creative projects that comes
Recommended publications
  • Alexander, Kleymenov
    Alexander, Kleymenov Key Skills ▪ Ruby ▪ JavaScript ▪ C/C++ ▪ SQL ▪ PL/SQL ▪ XML ▪ UML ▪ Ruby on Rails ▪ EventMachine ▪ Sinatra ▪ JQuery ▪ ExtJS ▪ Databases: Oracle (9i,10g), MySQL, PostgreSQL, MS SQL ▪ noSQL: CouchDB, MongoDB ▪ Messaging: RabbitMQ ▪ Platforms: Linux, Solaris, MacOS X, Windows ▪ Testing: RSpec ▪ TDD, BDD ▪ SOA, OLAP, Data Mining ▪ Agile, Scrum Experience May 2017 – June 2018 Digitalkasten Internet GmbH (Germany, Berlin) Lead Developer B2B & B2C SaaS: Development from the scratch. Ruby, Ruby on Rails, Golang, Elasticsearch, Ruby, Ruby on Rails, Golang, Elasticsearch, Postgresql, Javascript, AngularJS 2 / Angular 5, Ionic 2 & 3, Apache Cordova, RabbitMQ, OpenStack January 2017 – April 2017 (project work) Stellenticket Gmbh (Germany, Berlin) Lead developer Application prototype development with Ruby, Ruby on Rails, Javascript, Backbone.js, Postgresql. September 2016 – December 2016 Part-time work & studying German in Goethe-Institut e.V. (Germany, Berlin) Freelancer & Student Full-stack developer and German A1. May 2016 – September 2016 Tridion Assets Management Gmbh (Germany, Berlin) Team Lead Development team managing. Develop and implement architecture of application HRLab (application for HRs). Software development trainings for team. Planning of software development and life cycle. Ruby, Ruby on Rails, Javascript, Backbone.js, Postgresql, PL/pgSQL, Golang, Redis, Salesforce API November 2015 – May 2016 (Germany, Berlin) Ecratum Gmbh Ruby, Ruby on Rails developer ERP/CRM - Application development with: Ruby 2, RoR4, PostgreSQL, Redis/Elastic, EventMachine, MessageBus, Puma, AWS/EC2, etc. April 2014 — November 2015 (Russia, Moscow - Australia, Melbourne - Munich, Germany - Berlin, Germany) Freelance/DHARMA Dev. Ruby, Ruby on Rails developer notarikon.net Application development with: Ruby 2, RoR 4, PostgreSQL, MongoDB, Javascript (CoffeeScript), AJAX, jQuery, Websockets, Redis + own project: http://featmeat.com – complex service for health control: trainings tracking and data providing to medical adviser.
    [Show full text]
  • Contributed to Open Source in Ruby Community by Building Lazyload-Image-Rails Gem and Contribution to Rails
    Name: Sunkuru Abhishek Mobile: +91-9840515108 Email: [email protected] Git: https://github.com/abhisheksunkuru Skype: abhisheksunkuru Professional Summary Having Around 6 years of experience in building Web Applications Using RubyonRails. Experienced in technologies like Facebook Open graph. Good at relational databases MySql, PostgreSQL. Active team player, mentor and a self-starter, capable of working independently. Exposure to Software Development Life Cycle. Experienced in javascript libraries like Jquery,React Js. Experienced in Amazon services like Aws-s3,Cloudfront. Experienced in building REST API Experienced in Heroku and Capistrano deployment process. Knowledge in programming languages like Ruby,java. Contributed to open source in ruby community by building lazyload-image-rails gem and contribution to Rails. Utilized the Git and Svn Repository for our project to maintain the code versioning. Professional Experience Working as Senior Software Engineer in Tranway technologies from may 2018 to till date. Working as Senior Software Engineer in Nuware Systems LLP from Oct 2016 to Dec 2017. Working as Senior Software Engineer in Sedin Technologies Pvt Ltd from Dec 2013 to Oct 2016. Working as Software Engineer in Maisa Solutions Pvt Ltd,Hyderabad from June 2013 to November 2013. Worked as Software Engineer in Rising Sun Technologies Pvt Ltd., Jaipur from May 2012 to May 2013. Educational Qualifications B.Tech (IT) from Jawaharlal Nehru Technological University with 63.7%. Intermediate (M.P.C) from Sri Chaitanya Junior college with 90.1 %. S.S.C from Zilla Parishad High School with 85.3 %. Technical Skills Languages : Ruby. Web Technologies : HTML, XML, CSS , JAVASCRIPT, Jquery, Haml, ReactJs. Application Server : Thin, Webrick,puma.
    [Show full text]
  • Questions for Mongrel
    www.YoYoBrain.com - Accelerators for Memory and Learning Questions for Mongrel Category: Introduction - (16 questions) Mongrel is described in what way in the "A web application container for Ruby on Mongrel pdf available from O Reilly Rails" Mongrel is compared with what web servers production performance: Fast CGI or SCGI in the Rails world in terms of production performance and development Development: WEBrick simplicity/speed Creator of Mongrel Zed A Shawwww.zedshaw.com Mongrel is developed on what mixture of Ruby and C programming/scripting languages Documentation for Mongrel mongrel.rubyforge.org/docs/index.html The creators of Mongrel describe it how? a fast HTTP library and server for Ruby that is intended for hosting Ruby web applications of any kind using plain HTTP rather than FastCGI or SCGI. It is framework agnostic Three key technologies that are used for A custom HTTP 1.1 parser (based on RFC Mongrel's internals standard, written using Ragel in C and Java as a Rby extension) Simple server that uses the parser and URIClassifier to process requests, find the right handlers, then pass the results to the handler for processing Handlers are responsible for using HttpRequet and HttpResponse objects to "do their thing and then return results" Component of Mongrel responsible for Handlers dealing with HttpRequest and HttpResponse How does Mongrel support threading one thread per request, but it will start closing connections when it gets "overloaded"while Mongrel is processing HTTP requests and sending responses it uses Ruby's threading system What platforms that already work with Camping and Og+Nitro Mongrel are throught to be "thread-safe" Have not been heavily tested Is Ruby on Rails thread safe? no How does Mongrel handle Rails" " Ruby on Rails is not thread safe so there is a synchronized block around the calls to Dispatcher.dispatch.
    [Show full text]
  • Test Kitchen, Inspec Docker - Fastest Way to Run Stuff (Virtual Virtual Machines) DOCKER
    TEST DRIVEN INFRASTRUCTURE COMPLIANCE AS CODE by Joaquín Menchaca À PROPOS DE MOI ABOUT ME ROCKET LAWYER SENIOR DEVOPS BUILD/RELEASE ENGINEER aka Linux Ninja Pants Automation Engineering Mutant actual photo https://slides.com/devopsstu dio/lisa18_tdi AGENDA 1. Setup 2. Context 3. Chef + InSpec 4. Ansible + InSpec 5. Bonus SETUP THE CODE https://github.com/darkn3rd/lisa18_t est_driven_infra CODE git clone \ https://github.com/darkn3rd/lisa18_test_driven_infra cd lisa18_test_driven_infra # Using Virtual Workstation vagrant up vagrant ssh cd lisa18_test_driven_infra # Using Host (MacOS X or Linux) #### Install Requirements # Using Host (Windows) #### Install Rrequiremnts #### Warning: Might not work, had success w/ Chef THE HOST SETUP must be able to run Docker or Vagrant MINIMUM REQUIRED ChefDK - bundles ruby, test kitchen, inspec Docker - fastest way to run stuff (virtual virtual machines) DOCKER Easiest Path is Docker Desktop DOCKER PACKAGE MANAGERS choco install docker-for-windows https://chocolatey.org/ brew cask install docker https://brew.sh/ DIRECT DOWNLOAD https://www.docker.com/products/docker-desktop DOCKER Debian Package on Ubuntu sudo apt-get update -qq sudo apt-get install -y apt-transport-https \ curl ca-certificates software-properties-common DOCKER_REPO="https://download.docker.com/linux/ubuntu" curl -fsSL ${DOCKER_REPO}/gpg | \ sudo apt-key add - sudo add-apt-repository \ "deb [arch=amd64] ${DOCKER_REPO} \ $(lsb_release -cs) \ stable" sudo apt-get update -qq sudo apt-get install -y docker-ce sudo usermod -aG docker $USER
    [Show full text]
  • Summer Camps
    SUMMER | 2014 RECREATION CAMPS ADULT CLASSES SENIOR SERVICES CITY RECREATION PROGRAMS & SERVICES Special Events Table of Contents Featured Events 2 Lafayette’s Annual Restaurant Walk Summer Camp Calendar 3 Tour Lafayette’s finest dining establishments and sample the Summer Camps 4-19 signature cuisine of each restaurant Preschool/Youth Classes 20-23 Tuesday, May 20, 2014 • 5:30–9:00pm Adult Classes 24-29 Wine Reception • Restaurant Tastings • Coffee and Dessert Musical entertainment at selected locations Adults 55+ Classes 30-33 Raffle Prizes • Auctions General Information 34 $45 per person Registration Form 35 www.lafayettechamber.org Summer Shows Back Cover Benefits Lafayette Community Foundation and the programs and services of the Lafayette Chamber of Commerce Lafayette Fall Ball 2014 Big League Fundamentals for Little League Players—All the Training, without the Travel! June 6, 13, 20 & 27 5/6 Yrs 7/8 Yrs 9/10 Yrs 3:30 to 4:30 4:30 to 5:30 5:30 to 6:30 Music Begins at 6:30pm Rock SESSION/DAYS DATES I: Mon/Wed 9/8 to 10/1 Visit www.LafayetteChamber.org II: Mon/Wed 10/6 to 10/29 The Plaza for full details 11/12 Yrs 3:30 to 5:30 SESSION/DAYS DATES Fridays in the Lafayette Plaza I: Thurs 9/11 to 10/2 II: Thurs 10/9 to 10/30 FEE MIN/MAX LOCATION $203 15/25 Buckeye Fields Lafayette Boys Basketball or Girls Volleyball Boy’s Basketball for Boys entering Grades 1–8 this fall & Girl’s Volleyball for Girls entering Grades 4–8 this fall New This Year: 1.
    [Show full text]
  • UNIVERSITY of CALIFORNIA, SAN DIEGO Toward Understanding And
    UNIVERSITY OF CALIFORNIA, SAN DIEGO Toward Understanding and Dealing with Failures in Cloud-Scale Systems A dissertation submitted in partial satisfaction of the requirements for the degree of Doctor of Philosophy in Computer Science by Peng Huang Committee in charge: Professor Yuanyuan Zhou, Chair Professor Tara Javidi Professor Ranjit Jhala Professor George Porter Professor Stefan Savage 2016 Copyright Peng Huang, 2016 All rights reserved. The Dissertation of Peng Huang is approved and is acceptable in quality and form for publication on microfilm and electronically: Chair University of California, San Diego 2016 iii DEDICATION To my parents, brother and fiancée for their unconditional love and support. iv EPIGRAPH Quis custodiet ipsos custodes? (But who can watch the watchmen?) Juvenal Anything that can go wrong, will go wrong. Murphy’s law Those who fail to learn from the mistakes are doomed to repeat them. George Santayana In the middle of the night, [...] He would awaken and find himeself wondering if one of the machines had stopped working for some new, unknown reason. Or he would wake up thinking about the latest failure, the one whose cause they’d been looking for a whole week and sitll hadn’t found. The bogeyman—la machine—was there in his bedroom. Tracy Kidder, The Soul of a New Machine v TABLE OF CONTENTS SignaturePage...................................... .................. iii Dedication ......................................... .................. iv Epigraph........................................... .................. v TableofContents
    [Show full text]
  • The Apple Ecosystem
    APPENDIX A The Apple Ecosystem There are a lot of applications used to manage Apple devices in one way or another. Additionally, here’s a list of tools, sorted alphabetically per category in order to remain vendor agnostic. Antivirus Solutions for scanning Macs for viruses and other malware. • AVG: Basic antivirus and spyware detection and remediation. • Avast: Centralized antivirus with a cloud console for tracking incidents and device status. • Avira: Antivirus and a browser extension. Avira Connect allows you to view device status online. • BitDefender: Antivirus and malware managed from a central console. • CarbonBlack: Antivirus and Application Control. • Cylance: Ransomware, advanced threats, fileless malware, and malicious documents in addition to standard antivirus. • Kaspersky: Antivirus with a centralized cloud dashboard to track device status. © Charles Edge and Rich Trouton 2020 707 C. Edge and R. Trouton, Apple Device Management, https://doi.org/10.1007/978-1-4842-5388-5 APPENDIX A THe AppLe ECOSYSteM • Malware Bytes: Antivirus and malware managed from a central console. • McAfee Endpoint Security: Antivirus and advanced threat management with a centralized server to track devices. • Sophos: Antivirus and malware managed from a central console. • Symantec Mobile Device Management: Antivirus and malware managed from a central console. • Trend Micro Endpoint Security: Application whitelisting, antivirus, and ransomware protection in a centralized console. • Wandera: Malicious hot-spot monitoring, jailbreak detection, web gateway for mobile threat detection that integrates with common MDM solutions. Automation Tools Scripty tools used to automate management on the Mac • AutoCasperNBI: Automates the creation of NetBoot Images (read: NBI’s) for use with Casper Imaging. • AutoDMG: Takes a macOS installer (10.10 or newer) and builds a system image suitable for deployment with Imagr, DeployStudio, LANrev, Jamf Pro, and other asr or Apple Systems Restore-based imaging tools.
    [Show full text]
  • Why Devops Stops
    1 What is Krista? Intelligent Automation Deployment is Simple Krista is a modern conversational Intelligent Krista's Natural Language Processing supports Automation platform designed to easily leverage voice, text, and *bots to deliver automation anyone existing IT assets. Krista's unique informal understands. By utilizing existing communication approach enables business process owners to methods in conversations, you take advantage of quickly build new lookup or data entry workflows how your employees already communicate. Krista without waiting in line for expensive IT or quickly deploys to existing desktops, mobile development resources. Krista uses a unique phones, Slack, and web browsers that your programming method similar to a text conversation employees are already using. You won't need to between one or more people. By following the way train employees or maintain brittle documentation humans already communicate, Krista enables since the automation follows existing voice and anyone to build and create workflows around texting conversations similar to WhatsApp or business process constraints. The conversational Facebook Messenger. If your employees can text, workflows eliminate maintenance and upkeep they can interact with numerous systems to required from traditional record and playback support customers, consume enterprise services, automation tools. Krista's conversations are deploy IT changes, or update important KPIs. beautifully simple, with enough power, scale, and security to find any answer inside the largest enterprises. DevOps – It’s improving. DevOps Evolution Model Stage 1 Stage 2 Stage 3 Stage 4 Stage 5 Automated infrastructure Normalization Standardization Expansion Self-service delivery Many DevOps initiatives and cultures slow or stop at Stage 3 and fail to scale since organizational structures (aka people) become constraints in the Neutral Zone.
    [Show full text]
  • Idiomatic and Reproducible Software Builds Using Containers for Reliable Computing
    Master’s Thesis Idiomatic and Reproducible Software Builds using Containers for Reliable Computing Jonas Weber April 18, 2016 arXiv:1702.02999v1 [cs.SE] 9 Feb 2017 Albert-Ludwigs-Universität Freiburg Faculty of Engineering Department of Computer Science Bioinformatics Eingereichte Masterarbeit gemäß den Bestimmungen der Prüfungsordnung der Albert-Ludwidgs-Universität Freiburg für den Studiengang Master of Science (M.Sc.) Informatik vom 19. August 2005. Bearbeitungszeitraum 12. Januar 2016 - 12. Juli 2016 Gutachter Prof. Dr. Rolf Backofen Head of the Group Chair for Bioinformatics Zweitgutachter Prof. Dr. Christoph Scholl Director Chair of Operating Systems Betreuer Dr. Björn Grüning Abstract Containers as the unit of application delivery are the ‘next big thing’ in the software development world. They enable developers to create an executable image containing an application bundled with all its dependencies which a user can run inside a controlled environment with virtualized resources. Complex workflows for business-critical applications and research environments require a high degree of reproducibility which can be accomplished using uniquely identified images as units of computation. It will be shown in this thesis that the most widely used approaches to create an image from pre-existing software or from source code lack the ability to provide idiomaticity in their use of the technology as well as proper reproducibility safe-guards. In the first part, existing approaches are formalized and discussed and a new approach is introduced. The approaches are then evaluated using a suite of three different examples. This thesis provides a framework for formalizing operations involving a layered file system, containers and images, and a novel approach to the creation of images using utility containers and layer donning fulfilling the idiomaticity and reproducibility criteria.
    [Show full text]
  • Perfect Programmers
    TYTUŁHOW DOKUMENTU WE WORK AsdasdaAsdasda asdasdad asdasdasd TABLE OF CONTENTS Collaboration in a nutshell................................................................................................................................. 3 First contact.......................................................................................................................................................... 3 Prepare for development.................................................................................................................................... 4 Development......................................................................................................................................................... 5 Development teams............................................................................................................................................. 5 Agreements........................................................................................................................................................... 6 Estimates............................................................................................................................................................... 6 FA ......................................................................................................................................................................... 6 Do I have to pa" for bugs?.................................................................................................................................
    [Show full text]
  • VPS Vs Heroku for Small Team
    VPS vs Heroku for small team Piotr Macuk <[email protected]> Deployment history ● csv / subversion ● tgz files with timestamp ● zip / scp / unzip ● diff / scp / patch Technology history ● 2005 Git + Rails 1.0 ● 2007 Rails 2.0 / Ruby 1.9 / Capistrano / Heroku ● 2008 GitHub / Bitbucket ● 2010 Rails 3.0 ● 2013 Rails 4.0 / Ruby 2.0 / Slack ● 2016 Rails 5.0 My perception ● 1997-2013 Linux on my desktop computer ● 2000-∞ Linux on servers at work ● 2000 First apps deployment (zip / diff) ● 2005 First Rails app deployment (zip / diff) ● 2007 First Capistrano deployment (real production apps) ● 2012 Konfeo is live on VPS server ● 2012 First Heroku deployment (pet projects) ● 2015 Heroku deployment (real production apps) ● 2019 Wetea is live on Heroku VPS deployment ● Create server ● Setup and secure Nginx ● Update & upgrade packages ● Setup and secure Passenger ● Set locales, timezone, other env settings ● Install packages required by Ruby ● Install additional tools ● Setup and secure SMTP ● Create and setup deployment account ● Create database and database user ● Setup and secure SSH ● Install Ruby in selected version ● Setup firewall ● Setup Capistrano ● Setup logrotate ● Setup SSL in Nginx ● Setup and secure PostgreSQL server ● Setup server backup and monitoring VPS tech concerns ● Regular packages and kernel updates ● Regular logs and database analysis ● Regular Ruby, RVM and GEM updates ● Regular SSL health monitoring ● Regular monitoring (live / security / restarts) VPS business concerns ● Site reliability engineering (SRE) (procedures) ● Business
    [Show full text]
  • Sometimes Tools Matter
    Sometimes Tools Matter John E. Vincent DevOpsDays Goteborg 2011 We all know about DevOps We all know about DevOps I R DEV! I R OPS! So what's the big deal? “With XXXXX you are be able to do easily common task on your local or remote machine. The aim of XXXXX is to become the unique and universal tool language that permit you to make your own brew, apt-get or yum package, same syntax for all your machine.” Not Puppet Not Chef Not Capistrano “With XXXXX you are be able to do easily common task on your local or remote machine. The aim of XXXXX is to become the unique and universal tool language that permit you to make your own brew, apt-get or yum package, same syntax for all your machine.” Not Fabric Not DeployML Not CFengine YANFT (yet another f*ing tool) We're doing something wrong. Something is missing. I'll be over here with Capistrano, kthx You just need to write a Chef recipe and …. You can't solve cultural issues with tools You can't solve cultural issues with tools or can you? Some Issues ● Repository mismatch ● Different languages ● Volatile configuration ● Visibility ● Sensitive information ● Testability ● Packaging Caveats and Comments ● No single tool is going to solve all your problems – sorry. ● You may have already heard of some of these tools. ● You will likely have to “mold” some of these tools to fit your environment ● The tool itself is not the point, it is the end result ● I don't have all the answers..
    [Show full text]