The document provides an overview of the modern architecture pattern known as the worker pattern. It discusses risks and uncertainties involved in developing and delivering new functionality for services. It emphasizes designing applications as small, independent services that rely on well-defined dependencies, environment variables, and shared services. The goals are to make creating new applications trivial, provide consistency across production environments, and focus on the application rather than the platform.
The Return of JavaScript: 3 Open-Source Projects that are driving JavaScript'...Ben Teese
Web development is experiencing a major change at the moment. Users are demanding increasingly responsive and interactive web applications. The mobile web has taken off. And closed platforms like Flash are yielding to open standards like HTML 5.
In this presentation I’ll argue that the language that will underpin this revolution is JavaScript – despite it’s poor reputation. Furthermore, I’ll explain how JavaScript’s resurrection is being driven by a slew of new open-source technologies.
For video of this presentation, see http://www.youtube.com/watch?v=SiCD3Nbf810
PowerShell with SharePoint 2013 and Office 365 - EPC GroupEPC Group
PowerShell with SharePoint 2013 and Office 365
Web: www.epcgroup.net | E-mail: contact@epcgroup.net | Phone: (888) 381-9725 | Twitter: @epcgroup
* SharePoint Server 2013, Office 365, Windows Azure, Amazon Web Services (AWS), SharePoint Server 2010 & SharePoint 2007: Review, Architecture Development, Planning, Configuration & Implementations, Upgrades, Global Initiatives, Training, and Post Go-live Support with Extensive Knowledge Transfer | Custom Branding and Responsive Web Design (RWD)
* Health Check & Assessments (Roadmap Preparation to Upgrade to 2013 or 2010) - Including Custom Code & Solution Review
* Enterprise Content Management Systems based on Microsoft SharePoint 2013, Office 365 Hybrid Cloud (Both On-premises and cloud)
* Enterprise Metadata Design, Taxonomy | Retention Schedule Dev | Disposition Workflow, and Records Management | eDiscovery | Microsoft Exchange 2013 Migration \ Integration | Roadmap, Requirements Gathering, Planning, Designing & Performing the Actual Implementation
* Best Practices Consulting on SharePoint 2013, Office 365, SharePoint 2010, 2007 | EPC Group has completed over 900+ initiatives
* Intranet, Knowledge Management, Internet & Extranet-Facing as Well as Mobility (BYOD Roadmap), Cloud, Hybrid, and Cross-Browser | Cross-Platform Solutions for SharePoint 2013 with Proven Past-performance
*Upgrades or Migrations of Existing Deployments or Other LOB Systems (Documentum, LiveLink, FileNet, SAP, etc.)
* Custom Apps, Custom Application Development, Custom Feature, Master Pages, Web Parts, Security Model, Usability (UI) & Workflow Development (Visual Studio 2012, Visual Studio 2013)
* Migration Initiatives to SharePoint 2013 \ Office 365 and those organizations with both on-premises and cloud assets for a SharePoint Hybrid Architecture and Deployment
* Key Performance Indicators, Dashboard & Business Intelligence Reporting Solutions (PerformancePoint 2013, SQL Server 2012 R2, SQL Server 2014, BI, KPIs, PowerPivot, Scorecards, Big Data) and Power BI
* Experts in Global \ Enterprise Infrastructure, Security, Hardware Configuration & Disaster Recovery (Global performance considerations)
* Tailored SharePoint "in the trenches" Training on SharePoint 2013, 2010, 2007 + Office 365
* Support Contracts (Ongoing Support your Organization's 2013, 2010, or 2007 Implementations)
* .NET Development, Custom applications, BizTalk Server experts
* Project Server 2013, 2010, and 2007 Implementations
* SharePoint Roadmap & Governance Development: 6, 12, 18, 24 and 36 months (Steering Committee & Code Review Board Development)
Rails Antipatterns | Open Session with Chad Pytel Engine Yard
As developers worldwide have adopted the Ruby on Rails web framework, many have fallen victim to common mistakes that reduce code quality, performance, reliability, stability, scalability, and maintainability. Even experienced developers will find that they can reevaluate the work they've done and make it better.
In this session, Chad Pytel will provide an overview of some of these common mistakes as well as take questions from the audience and provide real-world advice. Bring your issues and get expert advice on how to bring your code in line with today's best practices.
The Return of JavaScript: 3 Open-Source Projects that are driving JavaScript'...Ben Teese
Web development is experiencing a major change at the moment. Users are demanding increasingly responsive and interactive web applications. The mobile web has taken off. And closed platforms like Flash are yielding to open standards like HTML 5.
In this presentation I’ll argue that the language that will underpin this revolution is JavaScript – despite it’s poor reputation. Furthermore, I’ll explain how JavaScript’s resurrection is being driven by a slew of new open-source technologies.
For video of this presentation, see http://www.youtube.com/watch?v=SiCD3Nbf810
PowerShell with SharePoint 2013 and Office 365 - EPC GroupEPC Group
PowerShell with SharePoint 2013 and Office 365
Web: www.epcgroup.net | E-mail: contact@epcgroup.net | Phone: (888) 381-9725 | Twitter: @epcgroup
* SharePoint Server 2013, Office 365, Windows Azure, Amazon Web Services (AWS), SharePoint Server 2010 & SharePoint 2007: Review, Architecture Development, Planning, Configuration & Implementations, Upgrades, Global Initiatives, Training, and Post Go-live Support with Extensive Knowledge Transfer | Custom Branding and Responsive Web Design (RWD)
* Health Check & Assessments (Roadmap Preparation to Upgrade to 2013 or 2010) - Including Custom Code & Solution Review
* Enterprise Content Management Systems based on Microsoft SharePoint 2013, Office 365 Hybrid Cloud (Both On-premises and cloud)
* Enterprise Metadata Design, Taxonomy | Retention Schedule Dev | Disposition Workflow, and Records Management | eDiscovery | Microsoft Exchange 2013 Migration \ Integration | Roadmap, Requirements Gathering, Planning, Designing & Performing the Actual Implementation
* Best Practices Consulting on SharePoint 2013, Office 365, SharePoint 2010, 2007 | EPC Group has completed over 900+ initiatives
* Intranet, Knowledge Management, Internet & Extranet-Facing as Well as Mobility (BYOD Roadmap), Cloud, Hybrid, and Cross-Browser | Cross-Platform Solutions for SharePoint 2013 with Proven Past-performance
*Upgrades or Migrations of Existing Deployments or Other LOB Systems (Documentum, LiveLink, FileNet, SAP, etc.)
* Custom Apps, Custom Application Development, Custom Feature, Master Pages, Web Parts, Security Model, Usability (UI) & Workflow Development (Visual Studio 2012, Visual Studio 2013)
* Migration Initiatives to SharePoint 2013 \ Office 365 and those organizations with both on-premises and cloud assets for a SharePoint Hybrid Architecture and Deployment
* Key Performance Indicators, Dashboard & Business Intelligence Reporting Solutions (PerformancePoint 2013, SQL Server 2012 R2, SQL Server 2014, BI, KPIs, PowerPivot, Scorecards, Big Data) and Power BI
* Experts in Global \ Enterprise Infrastructure, Security, Hardware Configuration & Disaster Recovery (Global performance considerations)
* Tailored SharePoint "in the trenches" Training on SharePoint 2013, 2010, 2007 + Office 365
* Support Contracts (Ongoing Support your Organization's 2013, 2010, or 2007 Implementations)
* .NET Development, Custom applications, BizTalk Server experts
* Project Server 2013, 2010, and 2007 Implementations
* SharePoint Roadmap & Governance Development: 6, 12, 18, 24 and 36 months (Steering Committee & Code Review Board Development)
Rails Antipatterns | Open Session with Chad Pytel Engine Yard
As developers worldwide have adopted the Ruby on Rails web framework, many have fallen victim to common mistakes that reduce code quality, performance, reliability, stability, scalability, and maintainability. Even experienced developers will find that they can reevaluate the work they've done and make it better.
In this session, Chad Pytel will provide an overview of some of these common mistakes as well as take questions from the audience and provide real-world advice. Bring your issues and get expert advice on how to bring your code in line with today's best practices.
Using Actions and Filters in WordPress to Make a Plugin Your OwnBrian Hogg
Good plugins provide actions and filters to allow others (like you!) to modify some of their functionality without having to either create a whole new plugin from scratch or hack away at the original plugin, losing your changes when that plugin gets updated down the road. Learn how to find these actions and filters in other plugins, and use them to bend the plugin to your will.
Rails Workshop at Gigigo Mobile Services.
See also:
https://github.com/gigigoapps/Ruby-Rails-Workshop
https://github.com/plataformatec/devise
https://github.com/seyhunak/twitter-bootstrap-rails
From Big to Massive – Scalability in AngularJS ApplicationsSebastian Fröstl
Scalability and maintainability are the key points when writing huge software applications.
We have the power of great frameworks, such as AngularJS, which enable us to develop applications really fast. But very often good software concepts and paradigms are thrown out of the window. These paradigms can give the answers to questions like:
How to separate responsibilities?
How to manage state?
How to achieve component communication?
Within this talk we will speak about how these questions can be answered within AngularJS applications.
Pilot Tech Talk #9 — Ember.js: Productivity without the fatigue by Jacek Gala...Pilot
See how Jacek Galanciak talks about Ember.js: Productivity without the fatigue in Tech Talk episode 9
Visit pilot.co — World’s best engineering and design talent on demand.
These slides contain a basic introduction to WordPress, and how to get up and running with WordPress.
You will get to know that what development options do you have as a non-programmer or as a programmer.
And then you will learn how the plugins work and how you can get your very basic plugin working.
History of Architecture 2
Report by: Group 1 (Leader: Camille Tecson)
DLS-College of St. Benilde
School of Architecture
2nd Term S.Y. 2015-16
January 2016
History of Architecture 2 class
Report by: Group 1 (Leader: Quinto)
Central Colleges of the Philippines
College of Architecture
2nd Semester S.Y. 2015-16
December 2015
Using Actions and Filters in WordPress to Make a Plugin Your OwnBrian Hogg
Good plugins provide actions and filters to allow others (like you!) to modify some of their functionality without having to either create a whole new plugin from scratch or hack away at the original plugin, losing your changes when that plugin gets updated down the road. Learn how to find these actions and filters in other plugins, and use them to bend the plugin to your will.
Rails Workshop at Gigigo Mobile Services.
See also:
https://github.com/gigigoapps/Ruby-Rails-Workshop
https://github.com/plataformatec/devise
https://github.com/seyhunak/twitter-bootstrap-rails
From Big to Massive – Scalability in AngularJS ApplicationsSebastian Fröstl
Scalability and maintainability are the key points when writing huge software applications.
We have the power of great frameworks, such as AngularJS, which enable us to develop applications really fast. But very often good software concepts and paradigms are thrown out of the window. These paradigms can give the answers to questions like:
How to separate responsibilities?
How to manage state?
How to achieve component communication?
Within this talk we will speak about how these questions can be answered within AngularJS applications.
Pilot Tech Talk #9 — Ember.js: Productivity without the fatigue by Jacek Gala...Pilot
See how Jacek Galanciak talks about Ember.js: Productivity without the fatigue in Tech Talk episode 9
Visit pilot.co — World’s best engineering and design talent on demand.
These slides contain a basic introduction to WordPress, and how to get up and running with WordPress.
You will get to know that what development options do you have as a non-programmer or as a programmer.
And then you will learn how the plugins work and how you can get your very basic plugin working.
History of Architecture 2
Report by: Group 1 (Leader: Camille Tecson)
DLS-College of St. Benilde
School of Architecture
2nd Term S.Y. 2015-16
January 2016
History of Architecture 2 class
Report by: Group 1 (Leader: Quinto)
Central Colleges of the Philippines
College of Architecture
2nd Semester S.Y. 2015-16
December 2015
Redux - негласный победитель Flux соревнований, одна из трендовых библиотек 2015 года. Слишком "сырой" для продакшена? Нет, мы так не думаем! Используя силу функционального подхода и модель Event Sourcing'a, Redux позволяет гибко управлять состоянием вашего приложения. В докладе мы расскажем про то, как мы, используя связку Redux+React, переписали с нуля front-end одного из наших продуктов (Лидсканер | leadscanner.ru). Рассмотрим реальные плюсы и минусы данного стека, в частности: работу с side-effects, повторное использование компонентов, тестируемость.
Структура:
Про нас.
Какие перед нами стояли вызовы.
Многоуровневая архитектура.
Обзор Flux архитектуры.
Redux - Predictable state container for JavaScript apps.
React как view layer.
Повторное использование компонентов.
Dumb and Smart components.
Feature Folders.
Работа с side effects.
Обзор подходов организации actionCreators.
Middlewares.
Redux-saga.
Минусы данного стека.
Zero to Sixty: AWS Elastic Beanstalk (DMG204) | AWS re:Invent 2013Amazon Web Services
AWS Elastic Beanstalk provides an easy way for you to quickly deploy and manage applications in the AWS cloud. In this Zero to Sixty session, accelerate your use of Elastic Beanstalk by learning how Nike and VTEX use several of its most powerful features. Through interactive demos and code samples for both Windows and Linux, this session teaches you how to achieve deployments with zero downtime, how to easily enable or disable application functionality via feature flags, and how to customize your Elastic Beanstalk environments with extensions. Demos and code samples are available to all session attendees.
Are you new to Elastic Beanstalk? Get up to speed for this session by first completing the 60-minute Fundamentals of Elastic Beanstalk lab in the Self Paced Lab Lounge.
Burn down the silos! Helping dev and ops gel on high availability websitesLindsay Holmwood
HA websites are where the rubber meets the road - at 200km/h. Traditional separation of dev and ops just doesn't cut it.
Everything is related to everything. Code relies on performant and resilient infrastructure, but highly performant infrastructure will only get a poorly written application so far. Worse still, root cause analysis in HA sites will more often than not identify problems that don't clearly belong to either devs or ops.
The two options are collaborate or die.
This talk will introduce 3 core principles for improving collaboration between operations and development teams: consistency, repeatability, and visibility. These principles will be investigated with real world case studies and associated technologies audience members can start using now. In particular, there will be a focus on:
- fast provisioning of test environments with configuration management
- reliable and repeatable automated deployments
- application and infrastructure visibility with statistics collection, logging, and visualisation
C++ is a middle-level programming language developed by Bjarne Stroustrup starting in 1979 at Bell Labs. C++ runs on a variety of platforms, such as Windows, Mac OS, and the various versions of UNIX.
This reference will take you through simple and practical approach while learning C++ Programming language.
How to process data using events on top of PHP and MongoDB. Introducing Eventsourcing and CQRS, how to handle events and how to generate Read Models and Aggregates leveraging the MongoDB Aggregation Framework.
Serverless in production, an experience report (London DevOps)Yan Cui
AWS Lambda has changed the way we deploy and run software, but this new serverless paradigm has created new challenges to old problems - how do you test a cloud-hosted function locally? How do you monitor them? What about logging and config management? And how do we start migrating from existing architectures? In this talk Yan and Domas will discuss solutions to these challenges by drawing from real-world experience running Lambda in production and migrating from an existing monolithic architecture.
QConSP 2015 - Dicas de Performance para Aplicações WebFabio Akita
Antes de pensar em "vamos reescrever tudo na linguagem mais rápida da moda que tudo vai dar certo". Na verdade pra quase todas as aplicações Web, antes veja se você segue este checklist mínimo de 9 dicas. Você vai ver que a maioria não segue esse mínimo antes, e deveria.
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf91mobiles
91mobiles recently conducted a Smart TV Buyer Insights Survey in which we asked over 3,000 respondents about the TV they own, aspects they look at on a new TV, and their TV buying preferences.
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdfPeter Spielvogel
Building better applications for business users with SAP Fiori.
• What is SAP Fiori and why it matters to you
• How a better user experience drives measurable business benefits
• How to get started with SAP Fiori today
• How SAP Fiori elements accelerates application development
• How SAP Build Code includes SAP Fiori tools and other generative artificial intelligence capabilities
• How SAP Fiori paves the way for using AI in SAP apps
A tale of scale & speed: How the US Navy is enabling software delivery from l...sonjaschweigert1
Rapid and secure feature delivery is a goal across every application team and every branch of the DoD. The Navy’s DevSecOps platform, Party Barge, has achieved:
- Reduction in onboarding time from 5 weeks to 1 day
- Improved developer experience and productivity through actionable findings and reduction of false positives
- Maintenance of superior security standards and inherent policy enforcement with Authorization to Operate (ATO)
Development teams can ship efficiently and ensure applications are cyber ready for Navy Authorizing Officials (AOs). In this webinar, Sigma Defense and Anchore will give attendees a look behind the scenes and demo secure pipeline automation and security artifacts that speed up application ATO and time to production.
We will cover:
- How to remove silos in DevSecOps
- How to build efficient development pipeline roles and component templates
- How to deliver security artifacts that matter for ATO’s (SBOMs, vulnerability reports, and policy evidence)
- How to streamline operations with automated policy checks on container images
UiPath Test Automation using UiPath Test Suite series, part 4DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 4. In this session, we will cover Test Manager overview along with SAP heatmap.
The UiPath Test Manager overview with SAP heatmap webinar offers a concise yet comprehensive exploration of the role of a Test Manager within SAP environments, coupled with the utilization of heatmaps for effective testing strategies.
Participants will gain insights into the responsibilities, challenges, and best practices associated with test management in SAP projects. Additionally, the webinar delves into the significance of heatmaps as a visual aid for identifying testing priorities, areas of risk, and resource allocation within SAP landscapes. Through this session, attendees can expect to enhance their understanding of test management principles while learning practical approaches to optimize testing processes in SAP environments using heatmap visualization techniques
What will you get from this session?
1. Insights into SAP testing best practices
2. Heatmap utilization for testing
3. Optimization of testing processes
4. Demo
Topics covered:
Execution from the test manager
Orchestrator execution result
Defect reporting
SAP heatmap example with demo
Speaker:
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
UiPath Test Automation using UiPath Test Suite series, part 3DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 3. In this session, we will cover desktop automation along with UI automation.
Topics covered:
UI automation Introduction,
UI automation Sample
Desktop automation flow
Pradeep Chinnala, Senior Consultant Automation Developer @WonderBotz and UiPath MVP
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
Essentials of Automations: Optimizing FME Workflows with ParametersSafe Software
Are you looking to streamline your workflows and boost your projects’ efficiency? Do you find yourself searching for ways to add flexibility and control over your FME workflows? If so, you’re in the right place.
Join us for an insightful dive into the world of FME parameters, a critical element in optimizing workflow efficiency. This webinar marks the beginning of our three-part “Essentials of Automation” series. This first webinar is designed to equip you with the knowledge and skills to utilize parameters effectively: enhancing the flexibility, maintainability, and user control of your FME projects.
Here’s what you’ll gain:
- Essentials of FME Parameters: Understand the pivotal role of parameters, including Reader/Writer, Transformer, User, and FME Flow categories. Discover how they are the key to unlocking automation and optimization within your workflows.
- Practical Applications in FME Form: Delve into key user parameter types including choice, connections, and file URLs. Allow users to control how a workflow runs, making your workflows more reusable. Learn to import values and deliver the best user experience for your workflows while enhancing accuracy.
- Optimization Strategies in FME Flow: Explore the creation and strategic deployment of parameters in FME Flow, including the use of deployment and geometry parameters, to maximize workflow efficiency.
- Pro Tips for Success: Gain insights on parameterizing connections and leveraging new features like Conditional Visibility for clarity and simplicity.
We’ll wrap up with a glimpse into future webinars, followed by a Q&A session to address your specific questions surrounding this topic.
Don’t miss this opportunity to elevate your FME expertise and drive your projects to new heights of efficiency.
Accelerate your Kubernetes clusters with Varnish CachingThijs Feryn
A presentation about the usage and availability of Varnish on Kubernetes. This talk explores the capabilities of Varnish caching and shows how to use the Varnish Helm chart to deploy it to Kubernetes.
This presentation was delivered at K8SUG Singapore. See https://feryn.eu/presentations/accelerate-your-kubernetes-clusters-with-varnish-caching-k8sug-singapore-28-2024 for more details.
State of ICS and IoT Cyber Threat Landscape Report 2024 previewPrayukth K V
The IoT and OT threat landscape report has been prepared by the Threat Research Team at Sectrio using data from Sectrio, cyber threat intelligence farming facilities spread across over 85 cities around the world. In addition, Sectrio also runs AI-based advanced threat and payload engagement facilities that serve as sinks to attract and engage sophisticated threat actors, and newer malware including new variants and latent threats that are at an earlier stage of development.
The latest edition of the OT/ICS and IoT security Threat Landscape Report 2024 also covers:
State of global ICS asset and network exposure
Sectoral targets and attacks as well as the cost of ransom
Global APT activity, AI usage, actor and tactic profiles, and implications
Rise in volumes of AI-powered cyberattacks
Major cyber events in 2024
Malware and malicious payload trends
Cyberattack types and targets
Vulnerability exploit attempts on CVEs
Attacks on counties – USA
Expansion of bot farms – how, where, and why
In-depth analysis of the cyber threat landscape across North America, South America, Europe, APAC, and the Middle East
Why are attacks on smart factories rising?
Cyber risk predictions
Axis of attacks – Europe
Systemic attacks in the Middle East
Download the full report from here:
https://sectrio.com/resources/ot-threat-landscape-reports/sectrio-releases-ot-ics-and-iot-security-threat-landscape-report-2024/
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...DanBrown980551
Do you want to learn how to model and simulate an electrical network from scratch in under an hour?
Then welcome to this PowSyBl workshop, hosted by Rte, the French Transmission System Operator (TSO)!
During the webinar, you will discover the PowSyBl ecosystem as well as handle and study an electrical network through an interactive Python notebook.
PowSyBl is an open source project hosted by LF Energy, which offers a comprehensive set of features for electrical grid modelling and simulation. Among other advanced features, PowSyBl provides:
- A fully editable and extendable library for grid component modelling;
- Visualization tools to display your network;
- Grid simulation tools, such as power flows, security analyses (with or without remedial actions) and sensitivity analyses;
The framework is mostly written in Java, with a Python binding so that Python developers can access PowSyBl functionalities as well.
What you will learn during the webinar:
- For beginners: discover PowSyBl's functionalities through a quick general presentation and the notebook, without needing any expert coding skills;
- For advanced developers: master the skills to efficiently apply PowSyBl functionalities to your real-world scenarios.
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...James Anderson
Effective Application Security in Software Delivery lifecycle using Deployment Firewall and DBOM
The modern software delivery process (or the CI/CD process) includes many tools, distributed teams, open-source code, and cloud platforms. Constant focus on speed to release software to market, along with the traditional slow and manual security checks has caused gaps in continuous security as an important piece in the software supply chain. Today organizations feel more susceptible to external and internal cyber threats due to the vast attack surface in their applications supply chain and the lack of end-to-end governance and risk management.
The software team must secure its software delivery process to avoid vulnerability and security breaches. This needs to be achieved with existing tool chains and without extensive rework of the delivery processes. This talk will present strategies and techniques for providing visibility into the true risk of the existing vulnerabilities, preventing the introduction of security issues in the software, resolving vulnerabilities in production environments quickly, and capturing the deployment bill of materials (DBOM).
Speakers:
Bob Boule
Robert Boule is a technology enthusiast with PASSION for technology and making things work along with a knack for helping others understand how things work. He comes with around 20 years of solution engineering experience in application security, software continuous delivery, and SaaS platforms. He is known for his dynamic presentations in CI/CD and application security integrated in software delivery lifecycle.
Gopinath Rebala
Gopinath Rebala is the CTO of OpsMx, where he has overall responsibility for the machine learning and data processing architectures for Secure Software Delivery. Gopi also has a strong connection with our customers, leading design and architecture for strategic implementations. Gopi is a frequent speaker and well-known leader in continuous delivery and integrating security into software delivery.
DevOps and Testing slides at DASA ConnectKari Kakkonen
My and Rik Marselis slides at 30.5.2024 DASA Connect conference. We discuss about what is testing, then what is agile testing and finally what is Testing in DevOps. Finally we had lovely workshop with the participants trying to find out different ways to think about quality and testing in different parts of the DevOps infinity loop.
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Albert Hoitingh
In this session I delve into the encryption technology used in Microsoft 365 and Microsoft Purview. Including the concepts of Customer Key and Double Key Encryption.
The Art of the Pitch: WordPress Relationships and SalesLaura Byrne
Clients don’t know what they don’t know. What web solutions are right for them? How does WordPress come into the picture? How do you make sure you understand scope and timeline? What do you do if sometime changes?
All these questions and more will be explored as we talk about matching clients’ needs with what your agency offers without pulling teeth or pulling your hair out. Practical tips, and strategies for successful relationship building that leads to closing the deal.
40. Application Code
if ENV[‘VERBOSE’] == ‘true’
log(‘message’)
end
Production Environment
$ export VERBOSE=‘false’
Development Environment
$ export VERBOSE=‘true’
Today I am talking about building apps for the cloud. \n
But wait, weren’t you supposed to talk about the worker pattern? Yes. But I am not going to do that now.\n
To that end, I am talking about building apps for the cloud. Some of the points I will make should be obvious in hindsight. However, some points I will make have not yet proven to be true so look out that!\n
\n
My name is Ryan Smith, you can find me on twitter via @ryandotsmith.\n
\n
I am an engineer at Heroku.\n
I work in The Vault. The Vault is a team within Heroku that is responsible for innovating the usage & billing components of our business. We track all of the events in our cloud an figure out how to make an invoice out of the events. We do all of this in realtime and with large amounts of data.\n
One interesting note. All of The Vault’s components are hosted on Heorku. We have been doing all sorts of strange things related to self hosting these days. Personally, I love the idea. Isn’t self hosting a mind bend? I mean the wrote the C compiler in C.\n
You would think that such an operation requires a large engineering team. However, we get by with a team of 1.\n
Our team’s size would not be feasible if we maintained our own platform. Knowing this, The Vault’s apps were optimized for a cloud based deployment and therein lies the core ideas of this case study. I want to talk about the engineering practices that allowed us a cloud deployment.\n
My goal for this talk is to present a set of engineering concepts that we have maintained in The Vault that have directly led to successful development. I will introduce the concept then follow it up by providing example of how we implement the concept. Lets get started with the first concept.\n
My goal for this talk is to present a set of engineering concepts that we have maintained in The Vault that have directly led to successful development. I will introduce the concept then follow it up by providing example of how we implement the concept. Lets get started with the first concept.\n
There is a lot to learn from the UNIX philosophy. \n
One of the things we picked early on was the need to write many small apps instead of one large app. We have apps for all kinds of things.\n
Web apps for credit card forms.\n
Web apps for invoice archiving and current usage\n
Background apps with no Web UI. Apps that process gigabytes of data.\n
There was a time when all of our code was in 1 large monolithic app and it was quite painful.\nWhen I go to write a feature for an app I not only have to load the code into my editor, I also have to load it into my brain. At that point, I become the bottleneck.\n\n
To that end, I started breaking down the apps into simpler components.\n\n
you can also horizontally scale your app independently of other components\n
I would be remiss if I didn’t inform you of the pitfalls in deploying many small apps in your system. \nThere will be problems in maintaining consistency across dependent APIs. However, The Vault has had great success in overcoming this challenge by setting up inter-team contracts. \n\nIf 1 or more components within our business are dependent upon our API then we draft an informal document describing what we promise to uphold. We typically keep this document in the doc directory of the applications code base. \n
So the first concept was small apps and the next concept is dependency management.\n
Most of our apps share a set of dependencies. Although some may vary by version, they are generally solutions to common problems. We use libraries that help us make HTTP requests, pase JSON, publish and consume on message queues\n
We keep a machine readable list of dependencies in each one of our apps.\n
This allows new developers a wonderful way to bootstrap the app.\n
This also ensures that our production platform knows the exact version of dependency to install. \n
Popular languages support this. It is good. I can’t imagine not using one of these tools with my apps.\n
Even if your project has 0 dependencies, still include a Gemfie. At the end of the day, you are communicating to other developers what a project needs. If you project needs nothing, communicate that.\n
\n
For each app, we have both a staging and production deployment. The two deployments are identical. They are on the same platform, the same OS, they have the same codebase, the same dependencies... IDENTICAL.\n\nWe try and get our development environment identical as well. We develop BSD and Linux and execute the same commands that our server executes.\n
It would be too much work if I had to create servers for each environment. Heroku allows me to quickly create apps.\n\nI don’t have time to provision hardware and setup my runtime.\n
Of course we need to tweak a few settings between environments.\n\nWe use the sandbox API provided by our credit card gateway.\n\nWe use staging for experiments. On heroku it is very easy to load our production dataset into a staging database. So we take the opportunity to test the performance of new algorithms, tune SQL queries, etc....\n\nAnd in development we turn on all of the logging features in our libraries.\n\nThe point is that all of tweaks are defined in the environment via shell variables.\n
Of course we need to tweak a few settings between environments.\n\nWe use the sandbox API provided by our credit card gateway.\n\nWe use staging for experiments. On heroku it is very easy to load our production dataset into a staging database. So we take the opportunity to test the performance of new algorithms, tune SQL queries, etc....\n\nAnd in development we turn on all of the logging features in our libraries.\n\nThe point is that all of tweaks are defined in the environment via shell variables.\n
Our code base remains constant while our environment determines how the system should react.\n
Our code base remains constant while our environment determines how the system should react.\n
I keep a file in my project directory and name it .env\nThis is how I communicate what environment setting my app requires\n
I keep a file in my project directory and name it .env\nThis is how I communicate what environment setting my app requires.\nIf you use foreman, this file will be loaded into your shell environment upon it’s startup.\n
Everything is a service.\n
\n
\n
\n
\n
\n
\n
Everything is a service. I don’t have time to configure and maintain all of the systems. I am a team of 1.\n
The Vault, relies on Postgres. This service is provided by Heroku’s data team. This is definitely a feature we could not do without. I can’t imagine developing new features AND maintaining a database.\n
The only thing remotely close to DBA work that I do is: CREATE INDEX.\n
typically when you create an index it will lock your table. This is bad. Postgres will allow you to create an index without locking the table. Super useful for debugging production performance problems.\n
Just like apps, cloud services can be brought online in seconds, not days.\n
When we provision a database, our provider gives us a URI which we set as a shell variable in our environment. There are no configuration files to track, just set the proper variable in the environment.\n
In my code, I reference a URL that is set in my environment.\n
Because my database is just a URL, I can easily share this database among other apps in the cloud.\n\nThis makes me happy.\n
\n
As a team of 1, I develop the feature, test the system and roll it out to my customers. I have great insight into all of the moving parts of my system.\n
This allows me to quickly ship features into production. When I fix a bug or ship a new UI improvement. I want this in production right away. I don’t want to be blocked by anything! I want prime for my deployment.\n
Even though I have never shipped a bug into production, I like to know that I have a safety net. Incremental Rollout --one of the most valuable practices I have incorporated into The Vault’s repertoire. \n\n\n
I can choose to enable a new feature for a portion of our customers. I deploy the change, watch my logs and if there is a problem, I quickly rollback to the last known commit.\n
When I encounter an unusual amount of exceptions in my app, I rely on the ability to rollback.\n
Developers deploying and incremental rollout describe a more general concept. And that is: Continuous deployment. As we fix bugs, develop features, we deploy the code. Since it takes < 30 seconds to release code to production, it makes a lot of sense for us to push changes at will.\n\nThe days are long over when we deploy hundreds of commits.\n
Visibility is quite important to a team of 1. I don&#x2019;t have time to manually monitor all of my systems. So I rely on cloud technologies to alert me when interesting things happen.\n
On a side note. I have been on a science kick lately. When troubleshooting complex routines or reasoning about the performance of my system, I start by employing the scientific method. \n\n\n
The 3rd step is what I need help with. I need an easy way to make observations.\n
The 3rd step is what I need help with. I need an easy way to make observations.\n
The 3rd step is what I need help with. I need an easy way to make observations.\n
Logging is what helps us observe reality\n
I am not talking about log files. Forget about log files. Start treating your logs as first-class data. Data that streams from all of our apps.\n
We point these streams at cloud logging services. Products like papertrailapp give you a web ui and APIs to do all sorts of analysis on your log data.\n
1 cool feature that we could not live without is log alerts. This service is pioneered by papertrailapp.com We setup search queries for our log data. Whenever a log message comes in that matches that criteria, papertrail will send a message into our group chat service.\n\nFor instance, I log errors when my worker apps start to slow down. When this happens, I get notified immediately in my team&#x2019;s chat room.\n
Not only can i receive campfire messages about this worker problem. I can also write a service that repairs my system for me.\n
If we trust our logs to warn us, why not trust them with other tasks.\n
What if we used the connivence of logging as a transport for data back to our applications.\n
We started treating our logs as first-class data. Data that streams from all of our apps.\n
Event streams are the future. This area is ripe for innovation and standardization.\n
So after we realize that an app is misbehaving, we need some way of easily restarting the process. Jokingly, we call this activity: kicking the vault.\n
\n
\n
There are a million different ways to skin this cat. The Vault has found an approach that works reasonably well. The approach I have outlined here is optimized for rapid change and feedback --the agile process. It is also optimized for scale. The size of my dataset grows geometrically; the size of my team grows linearly at best. These practices maintain sanity in our chaotic environment.\n \nThe concepts we have discussed will help you do the same.\n
There are a million different ways to skin this cat. The Vault has found an approach that works reasonably well. The approach I have outlined here is optimized for rapid change and feedback --the agile process. It is also optimized for scale. The size of my dataset grows geometrically; the size of my team grows linearly at best. These practices maintain sanity in our chaotic environment.\n \nThe concepts we have discussed will help you do the same.\n
There are a million different ways to skin this cat. The Vault has found an approach that works reasonably well. The approach I have outlined here is optimized for rapid change and feedback --the agile process. It is also optimized for scale. The size of my dataset grows geometrically; the size of my team grows linearly at best. These practices maintain sanity in our chaotic environment.\n \nThe concepts we have discussed will help you do the same.\n
There are a million different ways to skin this cat. The Vault has found an approach that works reasonably well. The approach I have outlined here is optimized for rapid change and feedback --the agile process. It is also optimized for scale. The size of my dataset grows geometrically; the size of my team grows linearly at best. These practices maintain sanity in our chaotic environment.\n \nThe concepts we have discussed will help you do the same.\n
There are a million different ways to skin this cat. The Vault has found an approach that works reasonably well. The approach I have outlined here is optimized for rapid change and feedback --the agile process. It is also optimized for scale. The size of my dataset grows geometrically; the size of my team grows linearly at best. These practices maintain sanity in our chaotic environment.\n \nThe concepts we have discussed will help you do the same.\n
There are a million different ways to skin this cat. The Vault has found an approach that works reasonably well. The approach I have outlined here is optimized for rapid change and feedback --the agile process. It is also optimized for scale. The size of my dataset grows geometrically; the size of my team grows linearly at best. These practices maintain sanity in our chaotic environment.\n \nThe concepts we have discussed will help you do the same.\n