Continuous Delivery med Tutum och Docker i molnet.
Code Night #4 - 2016-02-11
Om man vill ställa om en befintlig utvecklingsverksamhet till Continuous Delivery gör man klokt i att införa förändringen stegvis, i en kontinuerlig förbättringsprocess. Det ger de bästa chanserna att lyckas. Men det är normalt en lång process eftersom många människor är inblandade och att vi under tiden måste upprätthålla leveranser till produktion.
Men, om vi för ett ögonblick drömmer oss bort och tänker bort ärvda system, stela driftsmiljöer och obsoleta rutiner och istället bara gör som man verkligen skulle vilja göra, från scratch, nu 2016, hur skulle man göra då?
Vi har gjort precis det!
Denna kväll tar vi med oss er på en resa hur man idag kan bygga en systemproduktionslina baserad på Docker, Tutum, GoCD och Amazon EC2, från källkodsrepo till produktionsmiljö. Vi går igenom hur det är uppbyggt och fungerar och hur man arbetar med det. Vi kommer att arbeta med pipelinen och ett enkelt målsystem.
Vår story baseras på utvecklingsresan med http://www.welcomeapp.se hösten 2015 där vi på kort tid tog vi fram frontendsystem, backendsystem med klustring, lastbalansering, backup, MQ och webbsajt samt flera pipelines.
Föreläsare:
Daniel Marell och Kristoffer Vidmo - Continuous Delivery evangelister på C.A.G.
Både Daniel och Kristoffer har gedigna bakgrunder som arkitekter och utvecklare och fokuserar idag på metoder och verktyg för att hjälpa kunder att implementera Continuous Delivery.
EPiServer, Drupal, Django, Wordpress, Sharepoint, Sitecore, Umbraco... När det gäller CMS och webbramverk är verktygslådan stor! Hur vet man vad man ska välja? Står valet mellan open-source-produkter eller kommersiella produkter eller finns det fler parametrar som spelar in?
I denna första genomgång av den tekniska verktygslådan guidar Pär Fröberg och Mattias Uhlegård dig genom CMS- och webbramverksdjungeln. Vi kommer att berätta om för- och nackdelar med de plattformar som vi på Creuna arbetar mest med och vilka trender vi ser framöver.
Pär Fröberg CTO Creuna
Mattias Uhlegård System Architect Creuna
Välj rätt i teknikdjungeln - Del 1: CMS och webbramverkCreuna Sverige
EPiServer, Drupal, Django, Wordpress, Sharepoint, Sitecore, Umbraco... När det gäller CMS och webbramverk är verktygslådan stor! Hur vet man vad man ska välja? Står valet mellan open-source-produkter eller kommersiella produkter eller finns det fler parametrar som spelar in?
[23video id="8971811"]
I denna första genomgång av den tekniska verktygslådan guidar Pär Fröberg och Daniel Wroblewski dig genom CMS- och webbramverksdjungeln. Vi kommer att berätta om för- och nackdelar med de plattformar som vi på Creuna arbetar mest med och vilka trender vi ser framöver.
Pär Fröberg, CTO Creuna
Daniel Wroblewski, Technology Manager Creuna
What comes after world domination with Daniel Stenberg, April 2025Daniel Stenberg
Open Source has in many ways already won. It is used in every product by every company, to a very a large degree. But we are not done. We can improve: we can take this further, we can make our projects better, we can enhance our communities and make sure it is done sustainably. The future is ours.
EPiServer, Drupal, Django, Wordpress, Sharepoint, Sitecore, Umbraco... När det gäller CMS och webbramverk är verktygslådan stor! Hur vet man vad man ska välja? Står valet mellan open-source-produkter eller kommersiella produkter eller finns det fler parametrar som spelar in?
I denna första genomgång av den tekniska verktygslådan guidar Pär Fröberg och Mattias Uhlegård dig genom CMS- och webbramverksdjungeln. Vi kommer att berätta om för- och nackdelar med de plattformar som vi på Creuna arbetar mest med och vilka trender vi ser framöver.
Pär Fröberg CTO Creuna
Mattias Uhlegård System Architect Creuna
Välj rätt i teknikdjungeln - Del 1: CMS och webbramverkCreuna Sverige
EPiServer, Drupal, Django, Wordpress, Sharepoint, Sitecore, Umbraco... När det gäller CMS och webbramverk är verktygslådan stor! Hur vet man vad man ska välja? Står valet mellan open-source-produkter eller kommersiella produkter eller finns det fler parametrar som spelar in?
[23video id="8971811"]
I denna första genomgång av den tekniska verktygslådan guidar Pär Fröberg och Daniel Wroblewski dig genom CMS- och webbramverksdjungeln. Vi kommer att berätta om för- och nackdelar med de plattformar som vi på Creuna arbetar mest med och vilka trender vi ser framöver.
Pär Fröberg, CTO Creuna
Daniel Wroblewski, Technology Manager Creuna
What comes after world domination with Daniel Stenberg, April 2025Daniel Stenberg
Open Source has in many ways already won. It is used in every product by every company, to a very a large degree. But we are not done. We can improve: we can take this further, we can make our projects better, we can enhance our communities and make sure it is done sustainably. The future is ours.
Tightening every bolt at FOSDEM 2025 by Daniel StenbergDaniel Stenberg
Things to do in order to sleep well while having your C code in twenty billion installations. A talk about what the curl project does to minimize security risks: Security, Safety, Reproducibility, Vulnerability handling and the processes and tooling around it.
As BDFL of the curl project, Daniel talks about what this project does to avoid it causing the world to burn. From code style, reviews and tests to signings, reproducibility, running a bug-bounty and becoming a CNA to filter bogus CVEs. curl aims to be top of the class in (Open Source) software security. Here's your chance to point finger and tell us what we should do better.
This document discusses using libcurl's share API to share data like cookies and DNS caches between multiple easy handles. It explains that some curl state is kept in the easy handle, so transfers using different handles may not be fully independent. The share API allows creating share objects that specify what data to share, such as cookies and DNS caches. Easy handles can then specify which share objects to use to share data between transfers and achieve better performance than using separate handles independently.
This document discusses curl security practices such as continuous integration testing on many platforms, custom test servers, tools used for analysis like Valgrind and Clang sanitizers, and "torture tests" that inject errors. It notes that while testing all combinations is impossible, common setups and architectures are tested. The curl bug bounty program is mentioned as paying $40,900 so far. An upcoming code audit and ensuring decreasing CVEs and fuzzing reports over time are discussed as signs the efforts are working. Recent CVE trends and introductions like "dynbuf" are also summarized.
This document provides an overview of curl, an open source command line tool and library for transferring data with Internet protocols. It discusses curl's history starting in 1998, its widespread usage across operating systems, CPU architectures, and planets. It also outlines curl's many supported features and protocols, large number of contributors and commits, extensive testing, and commitment to security and open development. The future of curl is discussed in the context of the growing Internet of Things and connectivity of everyday devices and appliances.
Daniel Stenberg gave a presentation on using Rust with curl. He discussed how curl has traditionally used C but now supports alternative backends implemented in other languages like Rust. He described challenges in integrating the Hyper, rustls, and quiche Rust crates but curl now supports HTTP/1-2 with Hyper and TLS with rustls in an experimental way. Future work includes improving test coverage when using Rust backends and potentially enabling them by default.
Daniel Stenberg goes through some basic libcurl fundamentals and API design and explain how easily you can get your first transfers going in your own application. libcurl is the defacto standard library for Internet transfers and runs on virtually all platforms. The language focus will be on C/C++ but the concepts are generally applicable even if you use libcurl bindings for other languages.
5. nät och protokoll
●
skapade curl och är maintainer
●
leder projekten cares och libssh2
●
deltar inom IETFs arbetsgrupper
bland annat HTTPbis, ftpext2,
httpstate och hybi
6. IETF
● “löst sammansatt organisation som
arrangerar diskussioner och
överenskommelser om den teknik som skall
användas på Internet” (Wikipedia)
● “rough consensus and running code”
● grundades 1986
● RFCer
8. HTTPbis
● startade 2007
● uppdaterar RFC2616, tar in errata, tar
bort saker saker som inte funkar eller
aldrig använts
●
hitta inte på något nytt! det är
fortfarande HTTP 1.1
● klargör svåra avsnitt
● 2010 lades HTTP authentication till
10. httpstate
●
inspirerat av HTTPbisgruppens
jobb
●
dokumentera hur cookies
används
●
Existerande specar obsoletas
●
överväg nyheter som kommit
utanför specar
11. historia
●
Uppfanns av Lou Montulli (Lynx
och sedan Netscape) i början av
90talet
●
(även blinktaggen!)
12. Netscape”specen”
●
1994
●
stora luckor
●
inte HTTPmässigt
●
problem med charset
●
klantig datum/expirehantering
●
domainattribut med problem
18. Nu det tredje försöket
● Baserat på Netscapespecen
● Lägg till MaxAge och HTTPonly
● Browservendors ombord
● Inkluderar saker som ordningssortering, hur man
parsar datum och hur långa cookies får vara.
● Har inte löst TLDdomainproblemet
● Hur gör de flesta?
● Testa
● Dokumentera
20. Cookie RFC på riktigt
●
Därför att det inte är något nytt
●
Därför att alla redan nästan gör
såhär
●
Därför att form+cookie auth är
en dominerande loginteknik på
webben
22. Bidirektionell eller server
initierad HTTP
●
Traditionellt löst med longpolling
eller AJAX
●
WHATWGs arbete med HTML5
introducerade konceptet
●
WHATWG lämnade över
protokolldelen till IETF i mars 2009
●
Det där med serverinitierad...
24. Politiken kunde börja
●
WHATWG är inte en standard
organisation
●
IETF är väldigt annorlunda än
WHATWG
●
En bestämmer vs konsensus
●
Browservendorsklubb vs alla
som vill vara med
25. Requirement document
●
Vad ska Hybi / WebSockets
egentligen klara av?
●
Dokumentet har aldrig blivit till
något som används
●
WebSockets är ett meddelande
baserat protokoll för bidirektionell
trafik över TCP
26. API + protokoll
●
WebSockets är att javascriptAPI
enligt HTML5
●
WebSockets är ett TCPbaserat
protokoll
27. Diskussionspunkter
● text och/eller binärt
● HTTP compliance
● längdfält eller startstop
● fixedlength längdfält eller variabelt
● storlek på fixedlength fält
● hur hantera extensions
● hur undvika crossprotocol attacker
● HTTP upgrade, CONNECT eller annat
● egen port eller port 80 / 443
● Masking eller inte
● Vilken sorts masking: XOR, HMAC eller AES
28. Webbläsare
●
Chrome och Safari skeppar 00
●
Firefox och Opera disablade pga
säkerhet
●
IE är inte med på tåget
●
Alla vill se WebSockets skeppat
35. Client masking
●
The client MUST mask all frames
sent to the server.
●
Omaskerat från servern
●
Syftet är att undvika cross
protocol attacker och cache
poisoning