Our proServer ❤ continuous integration
Sebastian Helzle
T3CON16 Munich, October 26th 2016
What you will hear about
• Short introduction into continuous
integration/delivery & why you want that
• A lean stack for easy CI/CD (Gitlab, Surf,
Ansible)
• How the proServer can help you
• How we @punkt.de can help you do all this
Short introduction into CI/CD & why you want that
–Wikipedia
Continuous Integration
In software engineering, continuous
integration (CI) is the practice of
merging all developer working
copies to a shared mainline several
times a day.
–Wikipedia
Continuous Delivery
It aims at building, testing,
and releasing software
faster and more frequently.
It all starts with change
• A developer fixes a bug
• They commit the change to GIT
• They push to a repository
• And now what?
Old way
• Team decides to make a release after a few weeks
• Projects latest version (maybe tested) is
transferred manually in some way to production
• Meanwhile website shows errors
• Caches for TYPO3, Redis, PHP, XYZ are flushed,
apache restarted, solr connections reset, temp
folder deleted, database migrations executed,
etc…
• Something is fixed manually because of a
configuration problem
• An hour later the team hopes the website is now
working correctly
–A concerned product owner
So what did we actually
release?
We want to understand what’s going on
We want to automate and minimize human error
• Put our manual checks into code
• Put our manual tasks into code
• Make everything reproducible
• Make sure the intern can do releases
• Have documented releases
New way
• Developer commits
• CI Server does it’s checks
• Verified commits are reviewed and
merged or auto merged
• Auto-Deployment to staging
• Developer tags verified commit
• Auto-Deployment to production
A simple CI/CD stack
• Gitlab
• TYPO3 Surf
• Ansible
Gitlab
• CI Server
• Git Server
• Free or Self-Hosted
• Optional:
• Ticketsystem
• Wiki
• Static site hosting
• Projektmanagement
TYPO3 Surf
• Verified deployments
• Smoke tests
• Automated tasks
• Cache clearing etc…
• Allows rollbacks
• Keeps old releases
Ansible
• Infrastructure as code
• Easy to learn
• Almost no requirements on servers
• Minimizes manual work on servers
Our proServer is a great base for CI/CD
• Works nicely with Ansible
• You can use it like a root server
• We manage security relevant stuff
• We optimized it for TYPO3 and
Neos projects
• Cost effective!
How we @punkt.de can help you
• We offer workshops to help you
setup or plan your CI/CD
• We make the proServer better with
your feedback
• We will provide working setup
scripts for the proposed easy
stack on Github
Questions?


Contact Sebastian Helzle
@sebobo
helzle@punkt.de
Sources
• Gitlab - https://about.gitlab.com
• Ansible - https://www.ansible.com
• TYPO3 Surf - https://github.com/TYPO3/Surf
• proServer - https://proserver.punkt.de

Ci & proServer

  • 1.
    Our proServer ❤continuous integration Sebastian Helzle T3CON16 Munich, October 26th 2016
  • 2.
    What you willhear about • Short introduction into continuous integration/delivery & why you want that • A lean stack for easy CI/CD (Gitlab, Surf, Ansible) • How the proServer can help you • How we @punkt.de can help you do all this
  • 3.
    Short introduction intoCI/CD & why you want that
  • 4.
    –Wikipedia Continuous Integration In softwareengineering, continuous integration (CI) is the practice of merging all developer working copies to a shared mainline several times a day.
  • 5.
    –Wikipedia Continuous Delivery It aimsat building, testing, and releasing software faster and more frequently.
  • 6.
    It all startswith change • A developer fixes a bug • They commit the change to GIT • They push to a repository • And now what?
  • 7.
    Old way • Teamdecides to make a release after a few weeks • Projects latest version (maybe tested) is transferred manually in some way to production • Meanwhile website shows errors • Caches for TYPO3, Redis, PHP, XYZ are flushed, apache restarted, solr connections reset, temp folder deleted, database migrations executed, etc… • Something is fixed manually because of a configuration problem • An hour later the team hopes the website is now working correctly
  • 8.
    –A concerned productowner So what did we actually release?
  • 9.
    We want tounderstand what’s going on
  • 10.
    We want toautomate and minimize human error • Put our manual checks into code • Put our manual tasks into code • Make everything reproducible • Make sure the intern can do releases • Have documented releases
  • 11.
    New way • Developercommits • CI Server does it’s checks • Verified commits are reviewed and merged or auto merged • Auto-Deployment to staging • Developer tags verified commit • Auto-Deployment to production
  • 12.
    A simple CI/CDstack • Gitlab • TYPO3 Surf • Ansible
  • 13.
    Gitlab • CI Server •Git Server • Free or Self-Hosted • Optional: • Ticketsystem • Wiki • Static site hosting • Projektmanagement
  • 14.
    TYPO3 Surf • Verifieddeployments • Smoke tests • Automated tasks • Cache clearing etc… • Allows rollbacks • Keeps old releases
  • 15.
    Ansible • Infrastructure ascode • Easy to learn • Almost no requirements on servers • Minimizes manual work on servers
  • 16.
    Our proServer isa great base for CI/CD • Works nicely with Ansible • You can use it like a root server • We manage security relevant stuff • We optimized it for TYPO3 and Neos projects • Cost effective!
  • 17.
    How we @punkt.decan help you • We offer workshops to help you setup or plan your CI/CD • We make the proServer better with your feedback • We will provide working setup scripts for the proposed easy stack on Github
  • 18.
  • 19.
    Sources • Gitlab -https://about.gitlab.com • Ansible - https://www.ansible.com • TYPO3 Surf - https://github.com/TYPO3/Surf • proServer - https://proserver.punkt.de