2024 DevOps Lifecycle: Share your expertise on CI/CD, deployment metrics, tech debt, and more for our Feb. Trend Report (+ enter a raffle!).
Kubernetes in the Enterprise: Join our Virtual Roundtable as we dive into Kubernetes over the past year, core usages, and emerging trends.
Staff Engineer at Marqeta @JohnJVester
About
IT professional with 30+ years expertise in app design and architecture, feature development, and project and team management. Currently focusing on establishing resilient cloud-based services running across multiple regions and zones. Additional expertise architecting (Spring Boot) Java and .NET APIs against leading client frameworks, CRM design, and Salesforce integration.
Open Source Projects
May 2019 - Current
The RandomGenerator project provides the ability to randomly sort a given java.util.List object, with the option to return a subset of the original list contents.
Stats
Reputation: | 19755 |
Pageviews: | 29.7M |
Articles: | 136 |
Comments: | 29 |
Articles
Refcards
Getting Started With Log Management
Monitoring and the ELK Stack
Getting Started With Static Code Analysis
Responsive Web Design
RESTful API Lifecycle Management
Trend Reports
Observability and Application Performance
Making data-driven decisions, as well as business-critical and technical considerations, first comes down to the accuracy, depth, and usability of the data itself. To build the most performant and resilient applications, teams must stretch beyond monitoring into the world of data, telemetry, and observability. And as a result, you'll gain a far deeper understanding of system performance, enabling you to tackle key challenges that arise from the distributed, modular, and complex nature of modern technical environments.Today, and moving into the future, it's no longer about monitoring logs, metrics, and traces alone — instead, it’s more deeply rooted in a performance-centric team culture, end-to-end monitoring and observability, and the thoughtful usage of data analytics.In DZone's 2023 Observability and Application Performance Trend Report, we delve into emerging trends, covering everything from site reliability and app performance monitoring to observability maturity and AIOps, in our original research. Readers will also find insights from members of the DZone Community, who cover a selection of hand-picked topics, including the benefits and challenges of managing modern application performance, distributed cloud architecture considerations and design patterns for resiliency, observability vs. monitoring and how to practice both effectively, SRE team scalability, and more.
Development at Scale
As organizations’ needs and requirements evolve, it’s critical for development to meet these demands at scale. The various realms in which mobile, web, and low-code applications are built continue to fluctuate. This Trend Report will further explore these development trends and how they relate to scalability within organizations, highlighting application challenges, code, and more.
DevOps
The DevOps movement has paved the way for CI/CD and streamlined application delivery and release orchestration. These nuanced methodologies have not only increased the scale and speed at which we release software, but also redistributed responsibilities onto the developer and led to innovation and automation throughout the SDLC.DZone's 2023 DevOps: CI/CD, Application Delivery, and Release Orchestration Trend Report explores these derivatives of DevOps by diving into how AIOps and MLOps practices affect CI/CD, the proper way to build an effective CI/CD pipeline, strategies for source code management and branching for GitOps and CI/CD, and more. Our research builds on previous years with its focus on the challenges of CI/CD, a responsibility assessment, and the impact of release strategies, to name a few. The goal of this Trend Report is to provide developers with the information they need to further innovate on their integration and delivery pipelines.
Enterprise Application Integration
As with most 2022 trends in the development world, discussions around integration focus on the same topic: speed. What are the common integration patterns and anti-patterns, and how do they help or hurt overall operational efficiency? The theme of speed is what we aim to cover in DZone’s 2022 "Enterprise Application Integration" Trend Report. Through our expert articles, we offer varying perspectives on cloud-based integrations vs. on-premise models, how organizational culture impacts successful API adoption, the different use cases for GraphQL vs. REST, and why the 2020s should now be considered the "Events decade." The goal of this Trend Report is to provide you with diverse perspectives on integration and allow you to decide which practices are best for your organization.
Enterprise AI
In recent years, artificial intelligence has become less of a buzzword and more of an adopted process across the enterprise. With that, there is a growing need to increase operational efficiency as customer demands arise. AI platforms have become increasingly more sophisticated, and there has become the need to establish guidelines and ownership. In DZone’s 2022 Enterprise AI Trend Report, we explore MLOps, explainability, and how to select the best AI platform for your business. We also share a tutorial on how to create a machine learning service using Spring Boot, and how to deploy AI with an event-driven platform. The goal of this Trend Report is to better inform the developer audience on practical tools and design paradigms, new technologies, and the overall operational impact of AI within the business. This is a technology space that's constantly shifting and evolving. As part of our December 2022 re-launch, we've added new articles pertaining to knowledge graphs, a solutions directory for popular AI tools, and more.
Application Security
In the era of high-profile data breaches, rampant ransomware, and a constantly shifting government regulatory environment, development teams are increasingly taking on the responsibility of integrating security design and practices into all stages of the software development lifecycle (SDLC).In DZone’s 2021 Application Security Trend Report, readers will discover how the shift in security focus across the SDLC is impacting development teams — from addressing the most common threat agents and attack vectors to exploring the best practices and tools being employed to develop secure applications.
Modern Web Development
The web is evolving fast, and developers are quick to adopt new tools and technologies. DZone’s recent 2021 Modern Web Development survey served to help better understand how developers build successful web applications, with a focus on how decisions are made about where computation and storage should occur.This Trend Report will help readers examine the pros and cons of critical web development design choices, explore the latest development tools and technologies, and learn what it takes to build a modern, performant, and scalable web application. Readers will also find contributor insights written by DZone community members, who cover topics ranging from web performance optimization and testing to a comparison of JavaScript frameworks.Read on to learn more!
Comments
Jul 22, 2022 · John Vester
Thank you for the comment and question, Ted.
From what I understand, Skyflow stores data using the infrastructure provided by AWS, who have data centers in Canada. Skyflow can restrict customer data to specific regions by limiting which data centers store that data, keeping your data in your chosen region at all times.
To learn more about how Skyflow supports data residency requirements like these, check out the following link:
https://www.skyflow.com/solutions/data-residency
Dec 04, 2020 · John Vester
Thank you for your thoughts Brian.
As much as possible, I try to remove the aspect of the position out of the equation when I take a step back and look at things. Because, we are hired for our ability to learn, adapt and to be productive - regardless if we are contributing to features and functionality and maybe working in remote call center.
In today's world, a great deal of the call center work is 100% remote. Individuals gain access to the equipment and attend some level of training. Once ready, the call center employees are able to sign in to a system and work remotely - meeting the needs of the customer without being bound to a physical location - with a manager often times at arms reach.
Foolishness ... to echo your words. :)
Dec 04, 2020 · John Vester
Thank you for your thoughts, Tad. It would be cool to have a virtual interview with you to talk about 1987 v 2021 and how things have changed ... and how they have remained the same ... between those data points.
I will always remember sitting at a Gartner conference when the term Service Oriented Architecture was presented. I felt like this metaphor had already been in place for decades on the mainframe. Still, to most it was new and exciting. :)
May 15, 2020 · John Vester
Thanks, Matt!
Feb 28, 2020 · John Vester
So glad the article was able to validate your findings! Thank you, so much, for taking time to submit a comment!
Nov 25, 2019 · John Vester
I wish I could like this comment 1,000 times. :) I feel the same way, Adam.
Nov 25, 2019 · John Vester
Appreciate your honesty, Alaa! :)
Jul 23, 2019 · John Vester
Thank you for comment, Robert and suggestions.
Something that got lost from my real-life example, was the work I needed to do with the AccountLite object before the DTO was created and returned to the user.
I tried to probably over simplify the example in the article, since the object that inspired the solution was far more complex. My idea was to demonstrate this option.
I agree with you that the Lite object could just be the DTO. In my case, the client code had already be defined to use the DTO and there wasn't a 1:1 relationship between the DTO and the Lite object. I needed more items for the processing I noted earlier.
Thanks, again!
Feb 20, 2019 · John Vester
Thank you for the suggestion.
Since the current project is using Microsoft Teams for some of the sprint ceremonies, Russell had to utilize his Windows partition in order to participate using his Linux machine.
Jan 23, 2019 · John Vester
Good point.
Jan 23, 2019 · John Vester
I agree with your thoughts ... as noted in the conclusion, I plan to stick with using .equals().
Jan 17, 2019 · John Vester
Great question! I will have to let you know after the free year expires. I am hopeful the cost won't be very much ... but will reply here in October.
May 17, 2018 · John Vester
I agee with your thought about direct access to the database. Thank you for your comments!
I haven't look at Pact yet, but I am going to look into it this afternoon. Thank you for the suggestion.
May 17, 2018 · John Vester
In this case, it was tough to figure out - since the Agile teams were using the same login information to connect to the database. This was eventually changed, but was spawned from earlier in the development process - when there were far less Agile teams.
As the teams expanded, original team members founded the other teams - naturally using the same/known credentials to login to the same database. As a result, different projects were using that same login information, making it hard to diagnose at the DB level who was making calls into the database.
Thank you for your comment!
Apr 19, 2018 · John Vester
Please do, Candy!!!
Apr 13, 2018 · John Vester
Thank you for your thoughts.
In this case, the images were used alongside the supporting meta-data to describe the multimedia content.
Apr 12, 2018 · John Vester
Thank you for the advice!
Apr 12, 2018 · John Vester
Really appreciate the feedback!
Nov 29, 2017 · John Vester
Thank you for your comment, Chuck.
I agree that those working in areas with a higher cost of living may struggle if their employer decides to open up fully remote FTE positions to other regions of the country - thus, paying less for similar resources. This is very similar to insourcing/outsourcing efforts.
At the same time, I believe the more engaged and knowledgeable about the product/industry that you support will give a better advantage than those who do not.
We all realize that change is a constant in our industry, so keeping up with technology and your personal skills will always help in this regard too.
Both items above will provide more value to the individual, which should account for higher wages.
Nov 29, 2017 · John Vester
Thanks, Randy!
What is interesting is the amount of time and effort that is put forth to find the "right" individuals for a team, only to neglet a growing request due to an inability to trust the very team members who were hard to aquire in the first place.
Nov 29, 2017 · John Vester
I have seen that same pattern and it is a shame that view point still exists in today's world.
Feb 21, 2017 · John Vester
Thank you for your thoughts, but the Pull Request (PR) process should protect against the developer merging in changes that do not reflect the best design.
Feb 19, 2016 · John Vester
Great thoughts, Michael and thank you for the information on VORP. I am going to give your breadth question some thought too.
Thanks for reading my article!
jv
Jan 19, 2016 · John Vester
Thanks for your thoughts, David. It took me a while to understand the criticisms, as well.
Jan 19, 2016 · John Vester
Thank you for your thoughts, Roan.
I agree that using the header is another option to contain the version. My only concern with that approach is that you are passing information in the header, which seems to hide the version in a way. I also feel like taking this approach might have some issues with testing as well.
Have you had much success with the header approach?
Dec 15, 2015 · John Vester
Hello Maciej -
Thank you for your comments and questions.
I opted for using new Double(string) because of a bad experience I had years ago on a project, which was related to BigDecimal if I remember correctly. Since I was writing this code purely for the article, I used the String-based constructor ... since I had the BigDecimal issue in mind. :)
I used assertTrue, because I had already used assertEquals in the second post, which was published recently. So, I added the different assert for variety sake.
Finally, I agree with your comment that test method names should be more descriptive. Since this was a simple example, I was putting the focus on the actual test.
Have a great day!
jv
Dec 15, 2015 · John Vester
Thank you for your comment and for reading my article, Tarek.
I am planning to write a follow-up to this article soon, which will demonstrate one way to accomplish this. Proving out the prototype currently ... just things have been quite busy.
Dec 04, 2015 · John Vester
Hi Jorge!
We are able to pull the workflows into Git without any issues, but have only had success pushing workflows that have had zero updates. So, if you create a new workflow, it will deploy the first time to another Org, but no future updates are actually processed. For workflow updates, we have to use Change Sets at this point.
The other items you noted (layouts and fields) are able to be deployed using the Force Migration Tool. There is a layouts folder that contains the metadata (in XML) to deploy. Some of these items tie back to the profile data (in the profiles folder) or the core objects themselves (stored in the objects folder).
The key is to make sure you configure Eclipse (or just the Force Migration Tool) to pull all data from Salesforce. This way, you can check all of your configuration/code into Git. If the Metadata API ever supports these items, you will be set to deploy.
Hope this helps!
jv
Dec 01, 2015 · John Vester
Thank you for your reply Jorge!
Most of the items you noted we have been able to successfully deploy using our automated process based upon the Force IDE, Eclipse, Stash/Git, Ant, Force Migration Tool and Bamboo. The items that we cannot deploy (app security settings, for example) are tracked in a Confluence page and performed manually in each Org.
I have written the next article in my series, which will be published soon. The focus is configuring Eclipse, Force IDE and Stash/Git. Looking ahead, I will document how Bamboo can be used with the Force Migration Tool and Ant to perform the deployments using the code from Stash/Git.