From 5bace29545690e364f9748b8232b93f7933abb88 Mon Sep 17 00:00:00 2001 From: Phil Burton Date: Fri, 22 Feb 2019 11:12:28 +0000 Subject: Refactor talks, add day2 --- day1/first-talk.txt | 12 ++++++ day1/no-sql.txt | 5 +++ day1/second-talk.txt | 97 +++++++++++++++++++++++++++++++++++++++++++ day2/first-talk.txt | 42 +++++++++++++++++++ first-talk.txt | 12 ------ second-talk-microservices.txt | 97 ------------------------------------------- 6 files changed, 156 insertions(+), 109 deletions(-) create mode 100644 day1/first-talk.txt create mode 100644 day1/no-sql.txt create mode 100644 day1/second-talk.txt create mode 100644 day2/first-talk.txt delete mode 100644 first-talk.txt delete mode 100644 second-talk-microservices.txt diff --git a/day1/first-talk.txt b/day1/first-talk.txt new file mode 100644 index 0000000..ffd2f65 --- /dev/null +++ b/day1/first-talk.txt @@ -0,0 +1,12 @@ +micro services - perf + +glu mobile - 1st speakers company (microservices) +couch base +php_swoole +new relic +bugsnag +amazon cloud watch +sonarqube +sensolabs security checker +fastcgi_finish_request +crowdstar https://github.com/Crowdstar/background-processing diff --git a/day1/no-sql.txt b/day1/no-sql.txt new file mode 100644 index 0000000..5ce9723 --- /dev/null +++ b/day1/no-sql.txt @@ -0,0 +1,5 @@ +https://redis.io/commands/sadd +https://www.postgresql.org/docs/9.1/hstore.html +https://wiki.openstreetmap.org/wiki/PostgreSQL +https://en.m.wikipedia.org/wiki/Benford%27s_law +https://php-ml.readthedocs.io/en/latest/machine-learning/workflow/pipeline/ diff --git a/day1/second-talk.txt b/day1/second-talk.txt new file mode 100644 index 0000000..46df43f --- /dev/null +++ b/day1/second-talk.txt @@ -0,0 +1,97 @@ +Block chain + +- Block chain is a database +- Bespoke data structure + +"Not crpyto" + +General Purpose block chain: + +Why? +- Data in block is immutable +- Don't edit or remove, you append +- traceability (Auditing / logging) +- Verifiability (Data must be fully valid) +- reproducibility +- decentralisation +- Trust-less (Removes need for trust) +- transparency + +How? +- What type? + - public - will be hacked + - shared - shared ledger + - private +- Cryptography + - pub/rivate keys + - sign information + - verifablity + - Elliptic Curves + - openssl ecparam -list_curves + - Addressing + - can shorten public keys massively + - Hash algorithm + - Integrity + - 2x sha256 (sha256(sha256($data))) + - 4B version, 32B hash of last Block, 32B hash of data block, 4B timestamp, 4B difficulty, 4B nonce + - Merkle tree - binary hash tree + - Merkle path - list of hashes through the tree + - Genesis block - First block in the chain + - Special as it's first + - Prevents exploitation by being hardcoded + +- consensus + - Confidence + - chain forking needs resolution + - bitcoin users longest chain wins + - proof of work / proof of stake + - difficulty is no of zeros that need to be at the start of the hash + - others (proof of burn, proof of time, proof of ....) + + +- Smart contracts + - Programs that are included in the chain + - e.g. A loan paid by the chain + +- Lighting network (drawback off blockhain is it focuses on integrity not perf) + - Off chain transactions with on-chain settlement + +- Not all blockchains are chains + - IOTA Tangle + +- Challenges + - Fault tolerance + - You lose control of public/shared blockchains + - Now way to enforce software updates + - Conflict resolution + - Integration with current systems + - Security + - Cryptography is first and last line of defence + +- Not perfect for: + - scalability + - performance + - throughput + +- Incentives + - Mining in currencies + - Power for money +- Privacy + - Protect data + +- Hard forks +- 51% attacks + +- Right solution for the right kind of problem + +- Event sourcing on steroids + +QUESTIONS +- Any php recommendations? + - No. +- security? + - Store data not values somewhere else + - Encrypt +- Why private blocks? + - Can give public list of hashes for verification + - keep data private diff --git a/day2/first-talk.txt b/day2/first-talk.txt new file mode 100644 index 0000000..1cb53b3 --- /dev/null +++ b/day2/first-talk.txt @@ -0,0 +1,42 @@ +Microservices gone wrong + +- starting from scratch + +api gateway +middleware for extrenal requests +message-bus rabbitMQ + +Service oer domain entity + +Meta service using ES +Kurbenetes + +Why local dev failed? +Slow. +Incosistent +Would break + +mainly: "Someone elses problem" - all devs + + +Production release took 1 week +Cost of context switching + +Smoke Test + +- Lessons Learned + + - service call's are unreliable + - "microlyth" + +1. DOnt do micorservices + a. unless you have a dedicated tooling and automation team +2. Start with big services + a/ Split if you require +3. Auomate everything + a spin up, deployment migration, backup state resortation Elliptic +4. Dont plan for failure, live it + a. failure modes should bebuilt first, tested first, and relied upon +5. Define SLO early + a. Define business objectives for each service and system before building + diff --git a/first-talk.txt b/first-talk.txt deleted file mode 100644 index ffd2f65..0000000 --- a/first-talk.txt +++ /dev/null @@ -1,12 +0,0 @@ -micro services - perf - -glu mobile - 1st speakers company (microservices) -couch base -php_swoole -new relic -bugsnag -amazon cloud watch -sonarqube -sensolabs security checker -fastcgi_finish_request -crowdstar https://github.com/Crowdstar/background-processing diff --git a/second-talk-microservices.txt b/second-talk-microservices.txt deleted file mode 100644 index 46df43f..0000000 --- a/second-talk-microservices.txt +++ /dev/null @@ -1,97 +0,0 @@ -Block chain - -- Block chain is a database -- Bespoke data structure - -"Not crpyto" - -General Purpose block chain: - -Why? -- Data in block is immutable -- Don't edit or remove, you append -- traceability (Auditing / logging) -- Verifiability (Data must be fully valid) -- reproducibility -- decentralisation -- Trust-less (Removes need for trust) -- transparency - -How? -- What type? - - public - will be hacked - - shared - shared ledger - - private -- Cryptography - - pub/rivate keys - - sign information - - verifablity - - Elliptic Curves - - openssl ecparam -list_curves - - Addressing - - can shorten public keys massively - - Hash algorithm - - Integrity - - 2x sha256 (sha256(sha256($data))) - - 4B version, 32B hash of last Block, 32B hash of data block, 4B timestamp, 4B difficulty, 4B nonce - - Merkle tree - binary hash tree - - Merkle path - list of hashes through the tree - - Genesis block - First block in the chain - - Special as it's first - - Prevents exploitation by being hardcoded - -- consensus - - Confidence - - chain forking needs resolution - - bitcoin users longest chain wins - - proof of work / proof of stake - - difficulty is no of zeros that need to be at the start of the hash - - others (proof of burn, proof of time, proof of ....) - - -- Smart contracts - - Programs that are included in the chain - - e.g. A loan paid by the chain - -- Lighting network (drawback off blockhain is it focuses on integrity not perf) - - Off chain transactions with on-chain settlement - -- Not all blockchains are chains - - IOTA Tangle - -- Challenges - - Fault tolerance - - You lose control of public/shared blockchains - - Now way to enforce software updates - - Conflict resolution - - Integration with current systems - - Security - - Cryptography is first and last line of defence - -- Not perfect for: - - scalability - - performance - - throughput - -- Incentives - - Mining in currencies - - Power for money -- Privacy - - Protect data - -- Hard forks -- 51% attacks - -- Right solution for the right kind of problem - -- Event sourcing on steroids - -QUESTIONS -- Any php recommendations? - - No. -- security? - - Store data not values somewhere else - - Encrypt -- Why private blocks? - - Can give public list of hashes for verification - - keep data private -- cgit v1.2.3