Author: Tanya Kravtsov

  • DevOpsQA NJ Meetup – Test Automation Tech Talk

    DevOpsQA NJ Meetup – Test Automation Tech Talk

    DevOpsIMG_9994QA NJ just held our AIMG_9990ugust Meetup on Test Automation Tools and Processes with Polina Rodov and Kamlesh from Medidata, Anil Jaising from JP Morgan Chase and myself, Tanya Kravtsov, from Audible.   The venue, food and refreshments were provided by  Audible at a state-of-the-art, vast office space in
    Jersey City with amazing views of the  NYC skyline.  The main topic of the meetup was Testing and Test Automation tools and processes and how they are used in different companies.


     

    Takeaways from QUEST and StarEast    

    After fun netwIMG_9988orking over pizza, wine and beer, I kicked off with an overview of my takeaways from Quest and StarEast QA Conferences. I gave a brief summary of the session that I presented at the conference titled “The Road to DevOps” followed by highlights from the most memorable sessions on Test Automation, Metrics and Mobile Testing. I focused on the importance of identifying and addressing the bottlenecks in the product delivery cycle which include manual processes such as test data management, environment configuration and test IMG_0001execution.


    WOW (W-What we do O – on time W- with tools) at Medidata

    Next, Polina and Kamlesh from Medidata presented Tools and Frameworks used at Medidata (which provides cutting edge clinical solutions).   The unique presentation style portrayed the overall solution as a cooking pot, with tools presented as ingredients and testing as degustation. Medidata solutions are built on top of Service Oriented Architecture and utilize tools such as Jasmine and Cucumber for automation, Github, TravisCI and HipChat for CI, Medistrana and GoCD for deployment, Mist, JIRA Capture and Bug Magnet for testing, and SumoLogic and NewRelic for monitoring. IMG_0010Polina and Kamlesh also spent some time describing VCR, an alternative way of mocking APIs.   VCR allows to run the tests against prerecorded response, but still faces challenges if cassette files become stale due to backend service changes.   The session was followed by intense Q &A covering Code Coverage tools, PACT and minimizing cycle time.


    Acceptance Test Driven Development

    Our last session of the day was ATDD (Acceptance Test Driven Develoment) with Anil Jaising, Executive Director at JP Morgan Chase. Anil set the background by talking about history of Lean which came from manufacturing, specifically Toyota factory. It isIMG_0004 very important f
    or Testers and to be able to pull the chord whenever they find a critical defect. Anil suggested reading the IEEE paper by Robert Martin and Grigori Melnik, the primary point of which is that we need to start thinking about testing while requirements are still developed and avoid assuming that testing is testing.   He then gave a great definition of ATDD – from user stories to business value, ATDD is a team sport as opposed to test driven development which is more individual.

    At the end of the sessions, we had some great conversations with group members who stayed behind.    Looking forward to our next session. To learn more about exciting opportunities at Audible visit http://about.audible.com/

    IMG_0012

  • DevOpsQA NJ Meetup: Jenkins with Gerrit and BDD Automation

    DevOpsQA NJ Meetup: Jenkins with Gerrit and BDD Automation

    DevOpsQA NJ recently held its April Meetup on Automation with Jenkins and BDD, with Kishore Bhatia from CloudBees  and Tom Bartolucci from Billtrust as speakers. The venue, food and refreshments were provided by  Audible at a state-of-the-art, vast office space in historical city of Newark.

    After fun networking over pizza, wine and beer, we kicked off with Tom Bartolucci’s presentation on BDD Automation framework using Codeception. Tom has been in web software development for over 13 years. He has built applications in Java, .NET, PHP, Python and Javascript for clients in publishing and mobile video. Currently, he is a VP of Development at Billtrust – a SaaS-based payment cycle management cTomPresentation1ompany. His team of 13 web developers works on delivering six of the Billtrust SaaS products and uses Codeception, a PHP-based BDD framework to test.

    According to Tom (and we all agree), the idea is not to find bugs but prevent them. His team at Billtrust chose Codeception because it allows tests to be written in PHP, which is what its development teams use; it also supports Selenium WebDriver, PhantomJS and BrowserStack; and has hooks for various tools and platforms and build-in reports. As a result, it had a low barrier of entry and got Codeception’s team off the ground quickly. Doing cross-browser testing allowed them to find IE bugs, which they previously missed due to testing primarily in Firefox. Codeception allows testers to create BDD-style readable tests, similar to Cucumber spec but written as code. The easy syntax enabled the QA team to write code that they could read and understand. And developers are able to add custom modules because the framework is developed in PHP, which they are familiar with. Codeception has a variety of uses including to write acceptance tests, unit tests and API tests.

    Tom also described how Billtrust integrated Codeception with Jenkins to execute tests and publish reports. He then proceeded with a live demo of the framework. At the end of the session there were a lot of good questions on Vagrant integration, parallelization, failed test rerun and differences between Codeception and Cucumber.

    Next, Kishore BKishorePresentation1hatia from Cloudbees gave a talk on Jenkins pipelines and Gerrit Code reviews. Kishore Bhatia works for CloudBees, building custom frameworks with open source software and helping customers solve engineering problems around continuous delivery and DevOps at scale. Kishore is a Jenkins expert with development experience in FinTech enterprise software and Cloud platforms. Couple of months back,  Kishore and Issac gave a presentation on Jenkins Workflow,  demonstrating how workflow removes bottleneck of connecting multiple pipelines together.

    This time, the focus was on a very valid use case: a large codebase,  many teams contributing to the code. Teams should not collaborate on emails. They should get notifications and post-commit validations done by the tool that they use. In this case it’s Gerrit—Google open source project, offers its own implementation of Git. You just want the job to magically run behind the scenes doing the code reviews for you. The pAttendeesrimary challenges in this scenario are that you want to fail-fast—report CI results as soon as any steps fail and make sure there are no orphaned builds.

    Kishore then demonstrated the steps involved in implementing this use case in Jenkins including adding pull request validation to the build step, allowing developers to get build status directly in the VCS tool only coming  back to Jenkins if something fails. Currently there is a limitation with posting each status to GitHub. Key things that need to be set up—Gerrit infrastructure, Jenkins installation, workflow that Jenkins will refer to. While it might look complex at first it becomes easier once you start using the workflow, with such things as Groovy script helper. Jenkinsfile will define the flow of what should happen in dev, QA, staging and production.
    RafleWinners1   Kishore then gave a great demo of the flow and answered questions from the audience which covered parallel commits and test data management.

    At the end of the sessions, we did a raffle drawing where three lucky winners got prizes sponsored by Audible, including an Amazon Echo. Looking forward to our next session.

    If you would like to learn more about Jenkins Workflow, you can reach Kishore at kbhatia@cloudbees.com.   To learn more about exciting opportunities at Audible visit http://about.audible.com/ or  reach out to sonatore@audible.com.

    GroupPicture

     

  • DevOpsQA NJ Meetup:  Pipeline Patterns with ThoughtWorks

    DevOpsQA NJ Meetup: Pipeline Patterns with ThoughtWorks

    DevOpsQA NJ held our January Meetup on Pipeline Patterns, with Max Griffiths (@_maxamg), Max Lincoln (@devopsy) and Gary Stafford (@garystafford) from ThoughtWorks  as speakers. The meetup took place at the sensational ThoughtWorks NYC location, with welcoming, open meet-and-greet area and a huge presentation area with bright, distinctive wall paintings.

    Following speed networking with pizza and beer, the discussion kicked off with a brief intro from the speakers, who each has been in the DevOps space for 10+ years. They gave a high-level overview of ThoughtWorks and some FullSizeRender (1)book recommendations including, “Continuous Delivery” by Jez Humble, “Release It!” by Michael Nygard and “The Phoenix Project” by Gene Kim.

    So what is the issue that we’re trying to solve? We are trying to gain an ability to make decisions early on to impact how our pipeline is going to scale, with the focus on culture, feedback and governance.

    Max Lincoln gave a good definition of a “good” pipeline. It should have incremental QA, fast feedback, visibility of the progress and a consistent, auditable software delivery process.  It’s a good idea to be very selective with how you name things in the pipeline. “The purpose of the pipeline is to kill the build as soon as possible,” he said. As the pipeline gets longer, quick feedback becomes more difficult.

    Next, each speaker addressed how the pipeline can scale in three difference directions: X (more stages between commit and productions); Y (more projects/applications); and Z (concurrent releases). Max Griffiths gave overview of X-Axis patterns which includIMG_6635e Linear, Parallel and Layered (with artifact promotion and release channels). Linear is the simplest pattern, which works for simple applications. With a parallel pattern, you start to parallelize where possible; however, that might create dependencies and make it difficult to reorder. The layered pattern encourages parallelizing but prevents direct dependencies between stages.

    The layered pattern is further enhanced by adding a separate artifact repository for each layer, which makes artifact retention policies a lot easier. You can use bronze, silver, gold as names for the layers to easily understand how release candidate progresses from one stage to another.

    Gary Stafford introduced Y-axis patterns which include joint labeling, aggregate labeling, independent pipelines and VCS labeling. among FullSizeRender (4)others.  Gary used the Microservices example to demonstrate how to do continuous delivery with loosely related applications or services.

    Max Lincoln spoke about concurrent releases with Z-axis patterns. As per Max,   instead of a branching strategy, dev needs a merging strategy, especially if a release branch gets created six months in advance. “If you have Jenkins do 1,000s of builds a day, it does not mean you have CI,” he said.   IMG_6637

    The speakers concluded by each introducing an extra pattern which they referred to as “different dimensions.” The parting word of advice was to keep CI (whether it’s Jenkins or GoCD) in source control and test your pipeline continuously.   At the end we had a great Q&A session and a very warm, open discussion.

    Looking forward to our next session.

    FullSizeRender (2)
    If you would like to learn more about ThoughtWorks and/or Pipeline Patterns, you can continue the conversation on the GitHub page: https://github.com/thoughtworks/PipelinePatterns

  • DevOpsQA NJ Meetup –  Jenkins Workflow Tech Talk

    DevOpsQA NJ Meetup – Jenkins Workflow Tech Talk

    DevOpsQA NJ just held oIMG_5444ur November Meetup on Jenkins Workflow with Kishore Bhatia and Isaac Cohen from CloudBees  as speakers.   The venue was provided by  ROKITT at a state-of-the-art office space with breathtaking views of NYC.   Even though it was heavily raining outside, there was a great turnout of veteran and new members.     

    We kicked off with a fun speed networking over pizza and drinks provided by TEKSystems.  Following that, I did an introductory session on Transformation thru Automation via Jenkins talking about 10 steps to get a head start on continuous integration and deployment.  The steps include Identifying Bottlenecks, setting up a common repository, automating of the build, unit testing, environment configuration, test data management, regression testing and reporting.   

    Next, Kishore and Isaac gave an introduction to Jenkins Workflow followed by a detailed demo.  IMG_5445

    Kishore started off with a famous saying by Marc Andreessen, co-founder of Netscape –  “Software is eating the world”.   More and more things are getting automated and every business is becoming a software business.   We are automating Ops so that we can do more Ops and automating Manual QA so that we can do real (valuable) Manual QA (e.g. exploratory testing).  

    Jenkins is the tool that orchestrates all the SDLC steps from code commit to binary delivery. There are currently 1183 plugins for Jenkins with new one developed every week.   With today’s plugins, you
    have to create atomic jobs that then call each other, which ends up hard to visualize how the ensemble works, especially when you have a lot of different projects.

    Workflow was designed tIMG_5449o automate and scale pipeline steps and tools and solve common pipeline problems such as Parallelism, Branching, Looping, Restarts, Checkpoints, Manual Input, etc.   Jenkins Workflow is mostly open source with some advance features offered via enterprise edition by CloudBees.  Workflows can be defined in one concise script, with a groovy-based DSL and 15 simple keywords.

    Isaac took over to give the Workflow Demo.  He explained that stages will be the different steps of the pipeline. The workflow script doesn’t have to be written directly in the jenkins job, but as an external file in your source code repository. New DSL can be c
    reated to abstract the individual actions like source code checkout, build, test, etc. It will be possible to share this DSL in your jenkins and with the world, as well as download and use other people’s DSLs to leverage their code and avoid writing it yourself. Checkpoints can be combined with notification methods like email to get the input directly from the notified person. The multibranch Workflow system will support branching, any new branch in git will create a new workflow in Jenkins.  Jenkins will scan all the GitHub repositories and add all the projects with Jenkins files automatically, as well as scan new projects and add them automatically in Jenkins.

    IMG_5450At the end of the session,  Kishore and Isaac gave us a glimpse of Jenkins 2.0 release which includes focus on Continuous Delivery use cases and UI/UX improvements.

    If you would like to learn more about Jenkins Workflow, you can reach Kishore at kbhatia@cloudbees.com  or Isaac  at icohen@cloudbees.com .   For more information about CI/CD transformation you can reach me at tanya.kravtsov@rokittech.com

    At the end we had a great Q&A session and a very warm open discussion.   Looking forward to our next session.

  • DevOpsQA NJ Meetup – NoSQL in Agile DevOps Model

    DevOpsQA NJ Meetup – NoSQL in Agile DevOps Model

    DevOpsQA NJ just held our October Meetup on NoSQL in Agile DevOps Model with Shawn McCarthy from MongoDB, Bhavna Sehgal from Syncsort and Suhas Joshi as speakers.   The venue was provided by ROKITT at a state-of-the-art office space with breathtaking views of NYC. IMG_4572

    Suhas, a Solutions Architect with a vast DevOps experience, gave a great introduction to NoSQL, starting with the history of the journey from relational to NoSQL and then deep diving into NoSQL Data Models including Key Value (e.g. CouchDB, Memcache), Document (e.g. MongoDB), Wide Column Store (e.g. Cassandra, HBase) and Graph (e.g. Neo4J). He alsoIMG_4576 touched upon big data saying that the term “big data” is a misnomer, it should be “huge data” instead.

    Bhavna gave a talk about how Syncsort clients leverage Hadoop and NoSQL database to achieve powerful results. Some of the use
    cases included mainframe data offload to Hadoop, query of large data sets and real time analytics on Hadoop.   Bhavna also covered various options for accessing NoSQL in Hadoop including JDBC/ODBC and Java API among others.

    IMG_4579Next, Shawn gave an exciting overview of MongoDB, starting with how it got started and deep diving into the functionality. MongoDB is a cross-platform document-oriented database. While MongoDB is classified as a NoSQL database, it also supports relational structures. Instead of breaking up data into multiple relational structures, MongoDB can store it in the small number of documents. Shawn went thru the reasons why divelopers like Mongo, which include the following 1) it was built by developers for developers, 2) very easy to setup, 3) availability, 4)automatic partitioning of data, 5) view of the data is abstracted out from the application. MongoDIMG_4571B does not have transactions or joints and should not be used for transaction based banking data, but it’s a great tool for storing log data, user profiles, user-generated content and location based data.   Shawn also covered Rich Query model and how Mongo can be used for real-time analytics. If you would like to learn more about MongoDB, you can reach Shawn at shawn.mccarthy@mongodb.com

    At the end we had a great Q&A session and a very warm open discussion.   Looking forward to our next session in November.

    IMG_9161_All

  • DevOpsQA NJ Meetup –  Configuration Management with Puppet

    DevOpsQA NJ Meetup – Configuration Management with Puppet

    DevOpsQA NJ just held our September Meetup on Configuration Management with David Bowser and Jeremiah Sullivan from Puppet Labs and Michael Pereira from Syncsort as speakers.   The venue was provided by  ROKITT at a state-of-the-art office space with breathtaking views of NYC.

    Mi_DSF5099chael gave a great introduction to Environment Automation by giving a live demo of BCMT –  Bash Configuration Management Tool – which he developed to demonstrate 2 critical concepts – Idempotence and Convergence.   Idempotence means that multiple applications of the same action do not have side effect on the system state while convergence means to bring system state in line with a defined polic
    y.  Changes are made on the system only if they need to be made which is one of the key behind the configuration management tools. My favorite was the definition for Configuration Management provided by Michael – “Whatever you need to run your application”  –  short, simple, straight to the point.

    Next, David and Jeremiah gave a rundown of 2015 State of DevOps Report and a history of Puppet Labs.   Jeremiah covered the Open Source Puppet followed by a live demo of Puppet EntIMG_4176erprise.  Puppet Enterprise offers everything available in Open Source edition, plus support, training and a web based GUI.   Puppet allows to automate provisioning for physical machines, as well as VMs, Docker containers, and AWS instances.  One of the reasons Puppet is so powerful is due to the variety of the existing modules that are available from Puppet community.

    At the end we had a great Q&A session ranging from Jenkins integration,  automated validation of the modules,  extending of the modules and future of Chocolatey.       _DSF5103

  • DevOpsQA NJ Meetup –  Containers with Joyent

    DevOpsQA NJ Meetup – Containers with Joyent

    DeIMG_2381vOpsQA NJ just held our July Meetup on Containers with Casey Bisson from Joyent and Jeremy Rampon from Syncsort as speakers.   The meetup was held at a new ROKITT location,  a state-of-the-art office space with breathtaking views of NYC.   This session marked 1 year since our Meetup was formed in July of 2014 and it was great to celebrate it with a great group of fellow DevOps and Automation enthusiasts.

    Jeremy RIMG_2387ampon gave a great introduction to Docker and container technology.  He spoke about how Docker allows to build, ship and run any app, anywhere with almost no overhead.  We also discussed how Container technology is different from VM and future plans of Docker on Windows.

    Casey Bisson gave a bIMG_2386rief overview of the Joyent technology which offers container native infrastructure that runs in public and private cloud.  We all want to run Docker on bare metal, but don’t want to lose security and elasticity.  Joyent provides a way to do this without the overhead attributed to VMs.  The Triton Elastic Container Infrastructure is build on top of SmartOS  and provides its implementation of the Docker API, with full support for the Docker client and related orchestration tools.  The advantages are the ease of management and improved performance from running on bare metal.    We also got a live demo of the software that runs SmartDataCenter (software that runs the Joyent public sloud and powers private clouds) all the way from install to provisioning customer containers.

    At the end of the session we did a raffle for 3 awesome books sponsored by Pearson and then toasted to 1 year Anniversary of DevOpsQA NJ.

    IMG_2390IMG_7272

  • DevOpsQA NJ Meetup –  ELK Stack

    DevOpsQA NJ Meetup – ELK Stack

    Our guest speaker at the May DevOpsQA NJ Meetup was Peter Kim from Elastic.  Peter  is a Solutions Architect at Elastic with over 10 years of experience architecting and developing search applications with Endeca, MarkLogic and core Lucene.  He gave us a great overview of ELK Stack, which consists of ElasticSearch, LogStash and Kibana.

    In summary,  ELK Stack is an end-to-end stack that delivers real-time insights into data from almost any type of structured and unstructured data sources.  It was designed to address the issues of inconsistent log formats,  log distribution across servers as well as high level of expertise required to understand the log outputs.   ELK Stack provides open source integration with configuration management tools like Chef, Puppet and Ansible as well as a connector for Hadoop.

    Peter then extensively discussed each component of ELK stack.  Logstash manages events logs,  by collecting, parsing and storing data.  It is fully open source with the Apache 2.0 license .  Grok is a tool that can be used to parse unstructured data into something structured and queryable. logstash_logo

    ElasticSearch is schema-free, REST & JSON based document store.  It’s every function is exposed via REST APIs.  ElasticSearch is distributed and horizontally scalable, comes with a log of plugins for analysis,  localization support, etc and client API for various programming languages.

    Kibana is a data visualization and analytics platform integrated with ElasticSearch .  Peter gave a live demo of Kibana with Apache weblog data.

    The session  was followed by a lot of good questions ranging from security,  real-time data to the fuzzy search and complex aggregations.  At the end,  Peter told us about Elastic Roadmap including Watcher for alerting and new  features which are coming out as part of ElasticSearch 2.0.

    If you are interested to learn more about Elastic,  you can reach out to Peter at peter@elastic.co

    Special thanks to IshiSystems  (http://www.ishisystems.com/)  for sponsoring the venue.

    Join us at our next meetup by signing up at  http://www.meetup.com/DevOpsandAutomationNJ/  or follow on Twitter @DevOpsQA

    logo-elastic

  • DevOpsQA NJ Meetup – Virtual Networking with Project Calico

    DevOpsQA NJ Meetup – Virtual Networking with Project Calico

    devopsqa1DevOpsQA NJ held our April Meetup on Virtual Networking with Christopher Lijenstolpe as a speaker.  The meetup was held at the new venue, a state-of-the-art office space overlooking NYC,  kindly provided by Ishi Systems.

    Christopher, who is a Director of Solutions Architecture at Metaswitch Networks , is also the original architect of Project Calico.  Before joining Metaswitch,  Chris ran networks across the globe including Antarctica.

    We got a detailed overview of Project Calico,  which is Apache licensed, pure layer 3 networking solution for container, VM, and hybrid environments.   It’s motto is Scalable, Simple, Open and from the looks of it,  it meets all 3 of those criteria.

    Chris started with introducing us to the Standard Virtual Network Model,  and demonstrated the unnecessary complexities of today’s networking systems.  While all these systems are trying to address a multitude of assumed requirements,  the only Real requirement is to establish Communication.  This complexity results in various issues such as fragile connection, poor performance,  inefficient resource utilization and difficulties in troubleshooting.   These issues are significantly magnified when it comes to Containers.

    So what is Project Calico?   As Christopher simply explained,  it proposes to build data center like the internet,  utilizing 3 key components –  BGP,  IP and Policy.  In Christopher’s words,  “Project Calico is so simple that it was hard to believe no one thought of it before”.  And that is a real  indicator of a truly innovative solution.   If you would like to try out Project Calico on OpenStack or Docker,  you can read more information at http://projectcalico.org  or contact Christopher directly at christopher@projectcalico.orgProject-Calico-logo-456x456-no-text

  • Local DevOps NYC: Container Summit coming to NYC

    Local DevOps NYC: Container Summit coming to NYC

    Container Summit (https://www.joyent.com/containersummit) is a half-day technology conference in NYC on April 8th, focused on the future of containers in production. The event features container and microservices experts from Gartner, Walmart, Lucera, and Shopify as well as container ecosystem players like Docker, Tutum, InfoSiftr and Joyent. The goal of the event is to share best practices and user stories in an interactive forum.

    The event ends with a cocktail hour at the venue, the W Hotel in midtown, which is a great opportunity to network with members of the broader technical community. I am planning to be there and have extended the invitation to the members of DevOps and Automation meetup group in NJ.   Please join me and fellow DevOps enthusiasts at this event.

    container show