THE JAMSTACK AND THE STARTUPS BUILDING IT

technically logo

As the line between frontend and backend has blurred over the past few years (thanks React), the JAMStack has emerged as a new paradigm for building sites and apps. The stack itself is generally easy to understand, but the ecosystem – tools, plugins, and APIs – isn’t. I am going to walk through

1) What the JAMStack is ?

2) How to categorize tooling?

3) Architecture of JAM Stack.

4) Why modular use case specific APIs are going to continue to grow in popularity.

JAVASCRIPT, API, AND MARKUP

The JAMStack is an architectural pattern (sort of) for building apps that moves away from the traditional web server model and focuses on serving static files from “the edge” (data centers physically close to your computer). JAM stands for Javascript, API, and Markup:

  • Javascript: all code is in JS, for both frontend interactivity and API requests and handling
  • API: instead of a monolithic web server, all backend functionality (authentication, users, etc.) is served via APIs
  • Markup: your whole site is just a bunch of HTML files served statically

This is like, very different from what most larger apps look like. If you’re accessing a web app like Twitter in your browser, there’s probably a ton of server side logic dictating what you see, how you log in, and everything else that’s custom about your experience. In a JAMStack app, all of that logic would be encapsulated in simple APIs.

These ideas have been around for a while, but the JAMStack concept is definitely having a moment over the past couple of years:

jamstack google trends

There’s even a JAMStack conference that started in 2018, started by a group of repeat founders from early JAMStack companies (Contentful, Gatsby, etc.) that have continued investing in the ecosystem.

The past few years have been a perfect storm for the kind of apps we’re talking about. Javascript is now the most popular programming language in the world, used by 70% of devs last year and likely more in 2020. GraphQL is used by almost 40% of JS devs, and even Apollo by 25%. Hosting has gotten laughably cheap, and services like Netlify give you automatic deploys, a global CDN, and authentication for free.

As with everything in web development, JAMStack apps vs. traditional web apps isn’t entirely black and white. Even if you hide complex server logic behind easy to use APIs, JAMStack apps need to have a backend somewhere; and caching and serving files from a CDN isn’t exactly a new idea.

Think of JAMStack less as an architecture and more as a philosophy for where application logic should sit and what best practices for serving sites should be. In that vein, keep an eye out for Redwood.js – they’re taking aim at a full framework for JAMStack apps complete with an actual backend.

THE JAMSTACK ECOSYSTEM

The easiest way to understand all of the available tooling out there is to break it down by JAM – Javascript, API, and Markup.

1. J is for Javascript

It’s a meme that Javascript is the worst, and some teams have been focusing on improving ergonomics by building on top of it. The best known example is Typescript – it’s basically strongly typed Javascript. The ability to define static types means you’ll be able to catch errors before your code runs. Static typing is standard in languages like Java and C++, and Python added pseudo-support last year. Another example of a related JS add-on: Purescript.

2. A is for API

Even if your backend is nice and clean and obscured behind a simple API, application logic has to live somewhere. The serverless ecosystem has been growing pretty quickly: all major cloud providers offer the ability to run functions without setting up a server, like Lambda on AWS. Over the past few years though, hosting providers like Netlify and Vercel have started to support serverless functions as add-ons. They’re both just white-labeling other cloud providers for now, but that could change in the future. AWS’s Amplify is lurking (along with ages old Firebase), too.

Another important area of the ecosystem is CMS providers. If you’re running a blog or publication, you’d traditionally need to use a Content Management System like WordPress or Drupal – deployed on a server – to write and manage your content. For JAMStack apps (or regular apps too, really), newer providers like Contentful and Storyblok expose content through REST or GraphQL APIs so you don’t need to manage any servers yourself. There are a lot of headless CMS solutions out there.

3. M is for Markup

This is where things get interesting. Probably the biggest story in frontend over the past few years has been the meteoric rise of client side rendering via ReactVue, and Angular. Building componentized pages that interact well with your data model is now more of a science than an art. Alongside these kinds of libraries, a new suite of static site generators like HugoJekyllGatsby, and Next.js are making it simpler to go from content to built page.

The last missing piece here is hosting and deployment. Like Firebase did for mobile apps, companies like Netlify offer platforms that simplify a lot of the annoying parts of building JAMStack apps, like a global CDN, automatic deploys, identity and login, and serverless functions. More about them in the next section.

The JAMstack: It's Pretty Sweet. The JAMstack represents a major trend… |  by Astasia Myers | Memory Leak | Medium

TWO TYPES OF TOOLS: POINT AND PLATFORM

As with pretty much all developer tools, the JAMStack landscape can be split into two basic approaches: do a really good job at one task, or offer a full platform for accomplishing an entire workflow.

→ Point solutions

Most of the tools we covered across the J,A, and M try to be useful for one particular task: Contentful for CMS, Lambda for Serverless, or Hugo for static site generation. You can’t realistically finish an entire project without using multiple of these, and they don’t necessarily integrate well out of the box.

→ Platforms

Companies like Netlify and Zeit are trying to build full platforms for building JAMStack apps – they take care of almost everything, from deploy to functions to CMS. Individually, each piece that they offer isn’t going to be the best on the market, or even close to that; but the power of features integrated together can sometimes outweigh shortcomings of individual products (just ask Microsoft). This is part of why Netlify is trying to own the content and narrative around JAMStack sites.

For an exhaustive list of JAMStack related tools, check out the awesome-jamstack repo on Github.

THE FUTURE: USE CASE SPECIFIC APIS

Earlier, we looked at tools like Contentful; they provide a fully managed CMS that gets exposed via an API. CMS is just one well scoped use case – writing and managing content. But the Contentful model is getting a lot more popular as a broader category: SaaS tools that take care of a full piece of a workflow with a very use case specific series of APIs. Here are a few examples of more established ones:

  • Algolia – search as a service via configurable APIs
  • Auth0 – identity and authentication as a service via API
  • Optimizely – APIs for feature flagging and experimentation
  • Shopify Plus – headless e-commerce, like Contentful
  • Sendgrid – send emails to your users via API
  • Stripe – IDK if you’ve heard of them, they’re hiring

These tools have 2 equally important parts:

  1. A series of APIs to integrate directly into your app
  2. A frontend / admin panel for visibility and management

Take a look at Algolia, for example. You push data, configure indices, and call search all via a client library like Javascript. Once you have the Algolia APIs working in your app, you can use their dashboards to get analytics and see how users are interacting with what you’ve built.

These services have nothing to with each other in terms of what they actually help developers do, but they all rely on the same approach of providing value through a narrowly scoped set of APIs (and they’re API first, even if there are frontends) that solve a particular functional use case.

One way of looking at these third party APIs is as a natural progression from JAMStack’s core tenet: couching complexity behind well designed APIs that make actual deployment easy. The next logical step is outsourcing those APIs.

jamstack diagram

I think this is going to become an increasingly common piece of how developers automate parts of their work. A few newer services I’m keeping an eye on:

  • Memberstack – APIs for building and managing memberships
  • Getform – APIs for building forms into your site with “no backend”
  • Sendbird – APIs for chat and messaging in your app
  • Snipcart – API for adding a shopping cart to your site

Some of these services are more infrastructure-y (think Plaid, Algolia) while some are more functional (Memberstack, Sendbird). The common thread is that they need to solve some non-trivial problem (if it’s too easy to build yourself, you will) while still giving developers the flexibility they’d expect from something more custom.

Thanks to spotify and yputube developer channel for some good ideas.

If you liked or hated this, share it on TwitterReddit, or HackerNews.

SAP FIORI

This Blog is going to be an interesting which will help Non – SAPers and SAP Beginners to understand about SAP Fiori. I will be also guiding the developers/consultants with small demo practise handson.

What is Fiori?
SAP Fiori is a set of apps, newly written by SAP, that address the most broadly and frequently used SAP functions, such as workflow approvals, information lookups, and self-service tasks. They provide simple and easy-to-use access across desktops, tablets, and smartphones.

To get a quick idea of what Fiori is all about, watch this short video with examples of SAP Fiori apps for managers.

Fiori is more than just a new user interface. It is a set of cross-device applications that, among other things, allow users to start a process on their desktop and continue it on a tablet or smartphone. SAP is developing its Fiori apps on its latest user interface framework, SAPUI5.

SAP lists three types of Fiori apps

  1. Transactional apps, which allow users to perform SAP transactions on mobile devices as well as desktops. For instance, there is a transactional app for creating a leave of absence request and another for approving a purchase order.
  2. Fact sheets, which display information about key business objects in SAP. For example, there is a fact-sheet app for viewing a central purchase contract; it allows users to also drill down into related entities, such as vendor contacts, items under contract, and terms.
  3. Analytical apps, which allow users to display key performance measures and other aggregate information about the business.

You might be thinking, what it is ?

Since SAP’s ERP System is mostly used by most of the enterprise customers in World . They want the entire ERP system in mobile phone or tablets. FIORI have some inbuilt transactional apps which is mostly developed on OpenUI5 Framework / SAPUI5 Framework.

I have worked on different frameworks like Angular, Svelte.js and now UI5 . I would like to prefer to all the ERP Developers/Consultants to go with UI5 framework.

There are two reasons:

  1. Easy to learn
  2. Adaptible to ERP Structre.

May be, In my next blog I will come up with a roadmap for beginners .

Now, Let’s get into code work:

Application developers can quickly build extensions application (such as for Line of Business applications), mobile applications or web applications by consuming the SAP Cloud Platform API Management managed APIs directly from SAP Cloud Platform Web IDE or iOS SDK Assistant.

SAP Cloud Platform Web IDE is a powerful, web-based integrated development tool that simplifies end-to-end application development and enables developers to quickly build Fiori applications connecting to APIs from SAP or non-SAP.   From SAP Web IDE, application developers can discover and consume any APIs from SAP Cloud Platform API Management.

To securely connect to APIs from SAP Cloud Platform API Management, we can use the newly launched Create Data Source  functionality in SAP Cloud Platform Web IDE. Using this functionality the required destinations to discover and consume APIs from SAP Cloud Platform API Management can be very easily created from a simplified wizard in a single step.  Follow this blog to create the required destination to connect to APIs from SAP Cloud Platform API Management in your Fiori application.

Prerequisites

This blog is a continuation of our Blog series on Building enterprise digital application via SAP Cloud Platform Integration Suite and in Part 1: Use Common Resource templates for Harmonized APIs to non-SAP CRM Hubs was showcased and in Part 2: Manage APIs from non-SAP CRM Hubs using SAP Cloud Platform API Management.

Build a simple Fiori application using SAP Web IDE

Keeping it very simple in this blog we would be building a simple Fiori application which would show all the accounts maintained in a non-SAP CRM applications of your choice.

Note:- In this blog, UI binding has been done based on the response from the basic-companies common resource templates and therefore the same binding can be re-used irrespective of the actual non-SAP CRM application that you would be connecting to.

  • From the services tab in SAP Cloud Platform cockpit, search and select SAP Web IDE Full-Stack tile and click on the Go to Service link.
  • You will be navigated to the SAP Web IDE Full-Stack. Select the option, New project from template to create an SAP UI5 application.
  • Select SAP UI5 application from the Template Selection screen and select Next.
  • Enter your Fiori Project name say MyCompanies and namespace say ocn and select Next.
  • Enter the name of your main View say App and select Finish.In this blog, XML View type has been used. Alternatively you can select other View Types as well.
  • This would generate a Fiori application.
  • From the generated Fiori application, expand and select the neo-app.json file and enter SAP Cloud Platform Open Connectors destinations details to seamless connect to third-party application from Fiori application. Copy and paste the below snippet to your generated neo-app.json file. Change the value of the name property to the destination name that you would have used

Note based on your tenant configuration, if you had used a different destination name to connect to the API Proxified host from SAP Cloud Platform, the below snippet would have to adjusted.  Update the name attributes in the sample snippet to provide the name of your SAP Cloud Platform API Management destination file.

{
      "path": "/apimanagement_api_proxy_gen",
      "target": {
        "type": "destination",
        "name": "apimanagement_api_proxy_gen"
      },
      "description": "SAP Cloud Platform API Management"
},
  • To easily get data from authenticated non-SAP CRM connectors from SAP Cloud Platform Open Connectors, JSONModel can be used.  To create and load the JSONModel with data from the non-SAP CRM connectors from SAP Cloud Platform Open Connectors, expand the model folder and select the file model.js .  Copy and paste the snippet below to the model.js file.
  • From the copied code, enter your API Proxy URL to your non-SAP CRM Hub application. Details of this URL is available in the blog here.

Note:- The URL format should be /{name_of_your_apimanagement_destination}/{your_apimanagement_proxy_basepath}/{your_commonresources_name}

createDataModel: function () {
			var oModel = new JSONModel();
			oModel.loadData("/apimanagement_api_proxy_gen/{your_api_management_proxified_url}/basic-companies", null, true, "GET", null, false);
			return oModel;
		},
  • The created data model would have to be set to the UI5 view. For this select the Component.js file and then copy and paste the snippet below to the init method.
//set the data model
this.setModel(models.createDataModel(),"data");
  • Using the data binding, JSONModel can be bound to the UI elements to render the response from the third-party application in a simple table view. Expand and select the App.view.xml file from the generated code and copy and paste the snippet below.
<Table items="{data>/}">
							<columns>
								<Column>
									<Text text="Name"/>
								</Column>
								<Column>
									<Text text="Phone"/>
								</Column>
								<Column>
									<Text text="Website"/>
								</Column>
								<Column>
									<Text text="Industry"/>
								</Column>
								<Column>
									<Text text="Shipping Address"/>
								</Column>
								<Column>
									<Text text="Billing Address"/>
								</Column>
							</columns>
							<items>
								<ColumnListItem>
									<cells>
										<ObjectIdentifier title="{data>name}"/>
										<Text text="{data>phone}"/>
										<Text text="{data>website}"/>
										<Text text="{data>industry}"/>
										<Text text="{data>shippingAddress/composite}"/>
										<Text text="{data>billingAddress/composite}"/>
									</cells>
								</ColumnListItem>
							</items>
						</Table>
  • Click on the Save button to save all changes and then Click on Run/Play button to Run the Web applications.

This will launch the Fiori application in a new browser tab and after successful user login, data from your non-SAP application via SAP Cloud Platform Open Connectors which is secured and managed via SAP Cloud Platform API Management would be shown.

With this we come to an end of our blog series on Building enterprise digital application using SAP Cloud Platform Integration Suite. In the blog series, we had showcased the following functionality of SAP Cloud Platform Integration Suite:-

  • Ease of connecting to any non-SAP applications of your choice via the pre-built connectors from SAP Cloud Platform Open Connectors.
  • Benefits of using harmonized resources, leveraging the common resources templates from SAP Cloud Platform Open Connectors.
  • Discover, explore and manage the non-SAP connectivity via the Open Connectors providers in SAP Cloud Platform API Management.
  • Securely connect to SAP Cloud Platform API Management APIs to build, deploy an enterprise grade Fiori application connecting securely to a non-SAP application.

SAP Cloud Platform Integration Suite is a cohesive Integration Suite on the cloud to simplify integration for our customers by combing together the right set of services.

To know more about SAP Cloud Platform Open Connectors visit us at SAP Community

Understanding the CI/CD Pipeline: What It Is? Why It Matters?

This blog can help those developers who used to CI/CD or work in DevOps System without understanding the entire flow. By this blog , developers can understand the workflow of CI/CD regardless of Domain. In my initial days of development, it took me a long hard days to understand this process. But now the process is clear, hope this blog helps developers/testers to understand the workflow of CI/CD which is very important in today’s Software Development ( SaaS/IasS/PaaS).

It used to be that software development was simply about, well, software development. As software continues to eat the world, many adjacent aspects of the development process have become ripe for code to take over. Infrastructure topics such as integration and deployment are prime examples. This explains the rise of DevOps. And within DevOps, the CI/CD pipeline is now mainstream among software companies.

I’m going to dive into what you need to know: the concepts of CI/CD, what the CI/CD pipeline is, and why it matters.

Proof That CI/CD Is Important

Before we talk about what CI/CD is, let’s talk about why you should care.

Both CI and CD form the backbone of the modern DevOps environment. You can think of CI/CD processes as similar to a software development lifecycle. Nowadays, the concept of CI/CD is everywhere. Just take a look at the . I count no less than four topics on CI/CD in the early and late majority. There’s even a fifth topic regarding the use of code vs. config in the CD pipeline.

In other words, the importance of CI/CD is no longer in question. When the community talks about CI/CD and the cutting edge in the same sentence, usually it’s about the implementation details of the CI/CD pipeline.

Continuous Integration (CI)

The term continuous integration (CI) came from the people at ThoughtWorks. I will cite their official definition first. According to them,

Continuous Integration (CI) is a development practice that requires developers to integrate code into a shared repository several times a day. Each check-in is then verified by an automated build, allowing teams to detect problems early.

The key details to note are that you need to run code integration multiple times a day, every day, and you need to run the automated verification of the integration. What’s the motivation for this? Well, in the development process, the earlier we surface errors, the better. And one source of frequently occurring errors is the code integration step.

When you have a team of developers, each of whom is responsible for a separate feature, you need to integrate the different features before you’re ready for a release. By integrating so frequently, your team can surface errors earlier. And when those are caught, the amount of backtracking needed to find the cause is also much reduced. Therefore, your team can resolve the integration errors much faster.

Continuous Integration doesn’t get rid of bugs, but it does make them dramatically easier to find and remove.

How to Practice Continuous Integration

If you want to practice CI, the steps roughly go like this:

  1. Developers check out code from the repository to work on it locally. Ideally, they create a new branch for the feature they want to implement.
  2. When their feature branch is ready, they run tests locally in their development environments.
  3. Once all tests pass, they push the commits to the single source repository.
  4. Whenever there are changes on the repository, a CI server checks out the changes and performs a “build and test.” A build and test is when the CI server builds the entire system on the developer’s feature branch and runs all the unit and integration tests.
  5. The CI server notifies the team of the integration result. There should generally be four outcomes: failed build, successful build, failed tests, successful tests.
  6. If there’s a failure, the team fixes the issue ASAP.
  7. When the feature branch is merged to the main branch, they repeat steps 2–6.
  8. They continue to develop and repeat the steps 2–6 whenever there’s new code to be checked in to the repository.

There are minor variations of the steps, depending on the tools you chose and the processes you agree upon within the team. The main principles of CI are that you:

  1. Check in code in frequently.
  2. Automate the build and test portion.
  3. Always test the code locally before checking it in.
  4. Never merge any failed branches to the main branch.
  5. Return its status back to successful if you’re the developer who causes the failed build or test.
  6. Make it your top priority to do so once the fail happens.

Continuous Deployment (CD)

Jez Humble and David Farley of ThoughtWorks wrote the foundational text on continuous deployment. The official definition stated at the ThoughtWorks website is

Continuous Deployment is closely related to Continuous Integration and refers to the release into production of software that passes the automated tests.

So why do you need to care about continuous deployment as part of your development process? Well, when there are releases, there will be deployment steps. These deployment steps tend to repeat for each release. Instead of performing the deployment manually for each release, why not have the deployment steps be executed automatically? Of course, ideally, this code has been built and tested successfully by the CI server too.

Essentially, it is the practice of releasing every good build to users

— Jez Humble, author of Continuous Delivery

What’s the Difference Between Continuous Deployment and Continuous Delivery?

You may be confused by the fact that there’s another term CD can stand for: continuous delivery. So what’s the difference between the two? According to Jez Humblecontinuous deployment is about automating the release of a good build to the production environment.In fact, Humble thinks it might be more accurate to call it “continuous release.” On the other hand, continuous delivery is about ensuring that every good build is potentially ready for production release.At the very least, it’s sent to the user acceptance test (UAT) environment. Your business team can then decide when a successful build in UAT can be deployed to production —and they can do so at the push of a button.

Sometimes it’s unwise to have every build be an actual release. Such is the case with embedded software. So we need a slightly different definition for builds that potentially can be releases but need not be automatically deployed—hence the existence of “continuous delivery.”

To keep it simple, here’s a diagram.

ci/cd pipeline
Source: Author

When you’ve successfully implemented continuous deployment, it implies that continuous delivery is achieved as well. But the converse isn’t true.

The term “continuous deployment” came before the term “continuous delivery.” However, do note that in most enterprise setups, the business side of the company prefers to manually trigger the deployment. So, chances are your organization will actually be implementing continuous delivery, which is a good enough solution.

What Is the CI/CD Pipeline?

Now that you understand the concepts of CI and CD, it’s time we get more into the weeds of what a CI/CD pipeline is.

A CI/CD pipeline can be easily understood as the process pathway through which we can deliver a single unit of production-ready software. Your team will choose which services they’ll use to build this; there’s no single canonical implementation of a CI/CD pipeline.

The simplest version of the pipeline can best be described by this activity chain:

ci/cd pipeline
Source: Author

Each of these steps in the activity chain can be handled by a single service or piece of software. Alternatively, you can split the tasks into several different tools.

Example of a CI/CD Pipeline Toolchain

To better illustrate a pipeline, I’ll conjure up a fictional example involving an enterprise web software written in Java. Suppose I want to start from scratch and I want to keep things easy. I’d make the following choices:

Source code control: I’ll host the code on GitHub (hosted service) as a private repository. This way, I can use its integrations with major software and services to establish triggers whenever code commits are checked in.

Continuous integration: I’ll get CircleCI and connect it with GitHub integrations. This allows every code commit to notify CircleCI via webhooks. When code changes notify CircleCI, it will then pull the code from the GitHub repository and proceed to build and run the tests. Any failures or successes can be sent by email or Slack notification.

Deploy to UAT: Suppose my UAT is running on a server in AWS ECS. I’ll configure CircleCI to deploy automatically to the AWS UAT server when the build and tests are successful.

Deploy to Production: For deployment to production, I’ll reuse the integration steps for deploying to UAT.

With sufficient configuration at the start and by employing three major services, I’ve designed a good enough CI/CD pipeline.

Why Does the CI/CD Pipeline Matter for IT Leaders?

As an individual in IT leadership, you might be wondering why the CI/CD pipeline is so important for you. If that’s the case, I’d encourage you to consider three key benefits.

The CI/CD Pipeline Focuses Resources on Things That Matter

You always need to juggle resources (developers, budget, time) within the constraints of the business (time to market, deadline, runway). As such, you need to put more wood behind fewer arrows for areas that give you the best bang for your buck. Reducing costs and complexity is a crucial benefit of employing a CI/CD pipeline.

Recall I mentioned that many of the CI and CD steps are highly repetitive. But they’re also not easy to do. And they’re error-prone. By automating the process and delegating that to a CI/CD pipeline, you not only free up precious developer resources for actual product development tasks but you also reduce the chances of error. Plus, you’ll improve the responsiveness of the team.

That brings us to the next point: why this matters for you.

The CI/CD Pipeline Improves Reliability

Jez Humble created a test that can help you know if your team is CI/CD-ready. The last part of that test requires your team to be able to recover from a failed build or test within ten minutes.

Source: Martin Fowler’s “ContinuousIntegrationCertification”

If your team can accomplish all three parts of the test (daily commits to main branch, automated triggering of build and test, and repair within 10 minutes of failure), then Jez Humble would say your team has accomplished CI/CD. In his own words, he admits that integrating software that’s built by different people is hard. In fact, he says

Combining the work of multiple developers is hard. Software systems are complex, and an apparently simple, self-contained change to a single file can easily have unintended consequences which compromise the correctness of the system. As a result, some teams have developers work isolated from each other on their own branches, both to keep trunk / main stable, and to prevent them treading on each other’s toes.

— Jez Humble

It’s precisely this complexity that’s posed by integrating software. That’s why it’s the norm that teams spend days trying to wrangle the branches and commits properly for releases. That’s time spent separated from the actual code development. Imagine if we eliminate this time spend through proper CI/CD pipeline and practices. Your team will be addressing bugs and adding features significantly faster than you would if you didn’t have a pipeline.

And you already know that speed to market matters!

The CI/CD Pipeline Makes Your Team More Attractive to Developers

Joel Spolsky once wrote a 12-step checklist to help job-searching developers evaluate the quality of a software team. That was back in 2008. However, many of the items on that list still apply. Having a proper CI/CD pipeline instantly takes care of two items on that checklist: you make a build in one step and you make daily builds. And typically if you have a CI/CD pipeline, it means you have proper source code control processes, which is another item on that list.

In other words, when you enforce standard CI/CD practices with a proper CI/CD pipeline, you meet 25% of the items on the Joel Test. A company like Microsoft has all 12 requirements met.

Given that developers are hard to hire, it’s imperative that you do your best to make your team attractive to potential hires. Show your potential recruits that they are joining a high-functioning team by having a proper CI/CD pipeline in place.

Pitfalls to Watch Out For When Implementing the CI/CD Pipeline

Sometimes, developers can get carried away with development. If your team suggests rolling out its own CI/CD software, I’d advise gently rejecting it.

Generally, you should avoid building your own CI/CD software in house unless it’s the product you’re selling to your customers. Do you build your own email infrastructure in-house? No. Do you build internal communications tools, like Slack or Skype, in-house? No. You shouldn’t build your own CI/CD software in-house either. CI/CD is just pure infrastructure.

There are plenty of existing services and open-source software that your team can glue together to create your own CI/CD pipeline. Recall that one key motivation for having a CI/CD pipeline is to make integration and deployment work boring and reliable, thus freeing up developer resources for more important work. The same reasoning applies to not building your own CI/CD software. It doesn’t give you a competitive edge when it comes to your business. Thus, the fewer the developer resources you spend on it, the more you can devote those resources to your actual product development.

What Are Your Next Steps?

I’ve dove into the conceptual definitions of continuous integration, continuous deployment, and continuous delivery. Remembering the basics of those concepts will leave you with a good foundation for understanding the other connected concepts, like a CI/CD pipeline.

More importantly, knowing how having a proper pipeline and its associated practices can bring your IT team in line with the most successful companies in the software industry. That will make your team attractive to potential hires and more responsive to the fast-changing business environment.

If your team hasn’t implemented a proper CI/CD pipeline yet, your next step is to plan for it. Talk with your architect and project manager and establish a code-freeze week to set up this pipeline. Remember to keep it simple. Should your team feel unsure about implementing the entire CI/CD pipeline in one shot, phase it in with two stages. My advice is to implement CI first, as that sets the foundation for CD. Then you can set up CD on another occasion. You’ll also want to measure your team’s velocity in delivering software requirements before and after these changes go live. That’s because, as an IT leader, you need to ensure that your changes are demonstrably beneficial for the team and company.

If your team already has a CI/CD pipeline, you’re probably wondering how you can speed it up and improve the quality. Well, it’s hard to do that if you don’t have metrics in place that act a baseline. After all, how can you improve if you can’t measure?

Speed is the name of the game, regardless of whether your team has CI/CD in place or not. When your team can see and feel the difference in their development speed, your executives will be thankful that you bit the bullet to bring about hard but necessary changes for the company

About

My name is Nikhil Chandak and my main hobby is reading technology news. I am passionate about technology. I usually start my day by yoga and meditation and listening to devotional chants then follow up with that I take a healthy breakfast consisting of  Dryfruits, Cut fruits and Juices.

After that 6hours in college and the rest of the day with learning new tech. I usually spend my weekends with friends and families make sure that I give time to everyone.

JAVASCRIPT FRESHERS

If you are confused which programming language to learn after C/C++/Java .I would recommend you to learn JavaScript which is officially known as ECMA script.

What is JavaScript ?

JavaScript (JS) is a programming language mostly used to dynamically script webpages on the client side, but it is also often utilized on the server-side, using packages such as Node.js.

JavaScript should not be confused with the Java programming language. Both “Java” and “JavaScript” are trademarks or registered trademarks of Oracle in the U.S. and other countries. However, the two programming languages are significantly different in their syntax, semantics, and uses.

Top Programming Languages:

I can understand,the first question which comes in mind is. About the trend of JavaScript.

Image result for top 10 programming languages 2020
Survey taken by developers considering all aspects

I know you will be thinking these !!

Image result for What, When , why

Chill ! You will get answers for these questions in ROADMAP section.

Before entering into ROADMAP have a look at CAREER IN JAVASCRIPT which can help you to focus you towards a goal

CAREER IN JAVASCRIPT:

As a Javascript developer, you have these major opportunities —

  1. Front-end developer— In addition to Javascript, you would need to learn HTML5, CSS3, jQuery ( which uses Javascript ), Bootstrap and advance frameworks like Angular, React, or Vue.

As a fresher in front-end development, you can start anywhere between4–5 LPA.

2. Back-end developer— In addition to Javascript, here you would need to know Javascript-based back-end frameworks and technologies including Node.js, Express.jsMeteor.js and databases such as MySQL, MongoDB,etc. Plus, you would need to learn how to set-up cloud servers like AWS, Google cloud etc. Broadly, this is termed as hosting.

As a back-end developer, you can earn anywhere between 6–10 LPA.

3. Full-Stack Javascript developer— This where you need to know technologies for both front-end and back-end development. Currently, MEAN and MERN are two popular Javascript-based technology stacks that you can go for.

MEAN stands for — Mongo DB, Express.js , Angular, Node.js, while MERN stands for Mongo DB, Express.js, React and Node.js. The two technology stacks differ in front-end frameworks, while back-end frameworks remains the same.

As a full-stack Javascript developer, you can earn anywhere between 10–12 LPA. This of course depends on the proficiency in technologies.

Incase you want to go for full-stack development, I would recommend you to go for MEAN stack. As MEAN stack has been hugely in demand. Some of the top companies across world such as PayPal, Fitbit, Barnes& Noble, Teradata etc are using Angular. In fact, Angular is the second most popular framework which is used among developers.

Roadmap for learning the JavaScript language:

JavaScript versions

If you’re new to JavaScript programming, all the buzzwords in the scene can make your head spin: ES6, Node.js, TypeScript, Angular, React, Aurelia. You’re wondering how are you going to tackle all of these technologies – even counting the number of different frameworks out there seems overwhelming.

But, before you dive deeper into any framework, there is one building block that you should have under your belt. And that is the JavaScript language itself. There are many features in the language, but luckily you don’t have to learn all of them – you can focus on important parts.

Here’s a roadmap for learning the JavaScript language.

Know your JavaScript versions

JavaScript is a strange language in the sense that the operating environment can change from one user to another. Web pages leveraging JS can be run on an iPad Pro with the latest iOS update installed or it can be run on an old back office Dell that’s still running Windows XP. As the specification has evolved, browsers have implemented the different versions of the language to a varying degree. The situation is much better than what is used to be, but the support will never be 100% uniform across browsers – there’s always one vendor to implement a new language feature first.

JavaScript is also run on varying environments from servers to embedded devices. On servers, you, as the developer, have more say on which version of JavaScript will be supported, but there are still cases where you don’t have complete control. Maybe you’re fiddling with Raspberry PI or trying out JavaScript for Automation (JXA) – you have to use what’s available on the system. And chances are it will not be the latest Chrome V8.

It is worth knowing the differences between various JavaScript versions so you know what features you’ve got. You’ll also have the “spatial awareness” of whether a language feature is available and safe to use in all environments or if it’s just incubating in one specific vendor’s implementation.

This roadmap will cover important language features starting from ES3, and then advancing to ES5 and ES2015.

ES3

Start with the very basics of JavaScript – the ES3. Released in 1999, this was what JavaScript meant to most people back when the web became more prevalent. It’s a strange, error-prone and lacking language – no wonder it got a bad rap among developers. Fortunately, things have moved forward, and the language is in better shape today. This version is still the perfect starting point for learning JavaScript.

All versions of JavaScript versions are backward compatible, so picking up the versions in incremental batches is a wise move.

There are some features in ES3 that are best left alone, and you should focus your efforts on the better parts. A good resource for learning the valuable parts of ES3 is Douglas Crockford’s JavaScript: The Good Parts. It’s an easy read and will get you up and running quickly. Take the chapter on inheritance with a grain of salt and skip over the railroad diagrams if you’re not aiming to be a language specifier – otherwise, it’s solid gold.

Focus your efforts on the following concepts. You should read the book for the best learning experience, but you can check the links for similar articles on the Mozilla Developer Network (MDN).

Next up after ES3 would be ES4, but the specification was never finished.

ES5

The next version took a while to complete. Released in 2009, the ES5 version aimed to fix shortcomings in security and to prevent using some of the more obscure language features. It didn’t have many new language constructs but augmented the standard library in many ways.

Focus your efforts on the following concepts. At this point, the links to articles in MDN suit us well.

Go through these briefly, so you know they exist when you need to dive in deeper:

ES6 / ECMAScript 2015

ECMAScript 2015 (also known as ES6, or ES2015) released in 2015 contained a fresh new set of language features that brought the language to another level. The improvements were so vast that even the loudest critic had to reconsider JavaScript as a valid option for modern web development.

Focus your efforts on:

And after these are under your belt, continue to:

ES Next generation

At this point, you’ve got the language under wraps. What comes after ES6 is still in development. You should keep an eye on it, but let it finalize before diving into it deeper. One of the most anticipated features is async/await that helps yielding Promises in a more elegant way. What else is in there, we will have to wait and see.

Foundation for learning frameworks

It’s important to know the foundations of JavaScript the language when learning the latest web frameworks. The language versions are backward compatible and are suitable for familiarizing in incremental steps. Not all environments support the latest version of the language. Therefore, it’s good to know which features you’ve got.

References:

The below mentioned links are enough to learn JavaScript as a beginner

I would like to Thank my mentor Mr.Kumanan Murugesan who is guiding my in this JavaScript journey

By 2020, demand for developers to be far higher than available talent pool

Report:

1.4 million computer-science related jobs to be available by 2020, with only 400,000 computer science graduates to fill those roles.Software developers are in high demand. Programming is one of the fastest growing professions, according to the U.S. BUREAU of Labor Statistics. By 2020, there will be 1.4 million computer-science related jobs available with only 400,000 computer science graduates to fill those roles.

As a result, software developers can be selective about where they work, fueling bidding wars and a shortage of developers with computer science degrees. HackerRank, a platform that helps companies evaluate technical talent based on skill, released its annual 2018 Developer Skills Report, which surveyed over 39,000 software developers around the world to get a pulse on the state of developer skills: what they’re learning, what they care about, how to best way to assess their skills.

The findings provide a roadmap for companies and hiring managers to improve the way they hire developers, and reveals the biggest hurdles companies face when growing their developer teams. While 77 percent of hiring managers in India primarily rely on resumes to evaluate developers at the first stage of the recruiting process, nearly all report that actually measuring skill is the hardest part of the technical hiring funnel, above talent shortage and time-consuming interviews. Meanwhile, about half of developers say that resumes are not a good reflection of their abilities.

“2018 will mark the end of the resume for developers. As more and more companies across all industries are hiring software engineers, it’s more important than ever to truly take the time to understand who developers are, what they’re interested in, what drives them, and what they look for in a job. Without this, hiring managers will always struggle to find the best technical people,” said Vivek Ravisankar, co-founder and CEO of HackerRank. “With this report, we’re helping companies become more developer-focused. Very few companies are doing tech hiring well because there’s a gap in developer knowledge.”

The 2018 Developer Skills Report provides insights into the programming languages and frameworks developers are learning, love and dislike; the emerging technologies they’re most interested in building, how they’re learning and what they look for in a job. Key India findings include:

One-third (33 percent) of Indian developers are exclusively self-taught, proving that the ability to self-teach – not just a college degree – is the best path to becoming a skilled software developer. While 76 percent of Indian developers have a computer science degree, roughly 37 percent say they are at least partially self-taught. In fact, 6 out of 10 Indian developers learn to code when they are 16 to 20 years old.

Developers are constantly learning, even after graduating. 97 percent of Indian developers have a college degree or plan on obtaining one. On average, majority of Indian developers know C, Java and C++ with 43 percent developers saying that Python will be the next language they wish to learn. Python is universally the most popular language and is most loved by Indian developers while Node.js is the most loved framework. There is, however, a generational divide around newer languages and frameworks. While millennials generally like JavaScript and dislike Go, the opposite is true among 45-54 year olds. What’s more, younger developers prefer newer frameworks like AngularJS and React, while older developers prefer Vue.js.

YouTube is more popular than books for learning. The very nature by which they learn is evolving, and can’t be quantified by a resume. Eighty-six percent of developers report that they head to Stack Overflow when they need to learn a new skill or tool. As a second source of knowledge, Indian developers head to YouTube (77 percent).

What developer candidates value in a job defies current wisdom. In the hopes of attracting top talent, companies have usually leaned in on perks and stock options. However, when asked what they care most about in a job, developers rank those among the least important priorities. Rather, in India, professional growth and learning opportunities (65 percent) and good work life balance (58 percent) are their true deal-breakers. Companies looking to build a developer-first brand should keep these values in mind.

SECRET FOR SUCCESS

Visualization and blessing

What is Visualization?

Visualization is simply a mental rehearsal. You create images in your mind of having or doing whatever it is that you want.

In simple, visualization is visualizing your future 

 Visualizing can be  a goal related to your:

  • Future 
  • Academics 
  • Sports 
  • Business
  • Financial problem 
  • Health  etc,etc 

Importance of visualization:

  • The road to inner transformation
  • Achieve your goals
  • Improves learning ability
  • Enhance concentration
  • Enhance self esteem 
  • Enhance physical health
  • Improves observation skills
  • Heal the body and set your mind 
  • Reduce stress,anxiety and fear 

Steps For Visualization :

Here are five steps to make this visualization work for you:

  • Step 1: Fix a goal.
  • Step 2: Determine your real-world level of proficiency in executing that goal 
  • Step 3: Visualize yourself executing that goal detail using all your senses.
  • Step 4: Repeat this visualization process for 20 minutes per day for at least 11 days.
  • Step 5: Perform this skill in the real world and measure your improvement. If you’re not satisfied with the results, then continue visualizing while also executing this skill in the real world.

Bless Your Visualization :

              How To Bless ?

The below steps  are guided by Guruji Grandmaster Choa Kok Sui,

Step 1: Deeply  Meditate and open your palm.

Step 2: Visualize Your Goal in front of you.

Step 3 :Continue it daily for 40 mins.(Morn :20 mins and Eve:2o mins )

Let me know share my experience ,how  VISUALIZATION  helped me to achieve my goal. 

 
I fixed my goal to become an organizer of event it may be technical/non-technical related to branch/clubs .This goal was aspiration from seniors when they used to post pics as organizer of event

 I want to be on of the event organizers  in my college. As being a pranic healer due to my Parent’s,Gurus and God’s Blessing I studied GMCK’s pranic healing where I was taught Twin Hearts Meditation(In my next blog,will be giving you a brief explanation of Twin Hearts ).In which I was taught to bless your goal.This was during my first year (13.08.2016).  I was practising pranic healing as well as Twin Hearts Meditation Regularly. After three years i.e (6.09.2018) dream became success.

On 9.07.18  we everyone got a circular that college is organizing TECHNOSUMMIT2k18  on  6th and  7th of September 2018.I was excited and I ran to Student Help Desk by bunking one period , I was the 7th person in line waiting for the application form .On the same day ,night 8:29 pm  I got a message from Student Help Desk ,the next day 10/07/18 there is a meeting regarding  Technosummit2k18  at Admin Block 1st floor. There were around 20 to 30 persons approx.It was just an orientation and finalization of event name.

On 07.08.18 , we were again called for meeting .Only those were  called who attended that 1st day meeting. Kishore Sir, introduced himself and then he said all the people assembled are the organizers . We were some around 25 persons.I was shocked to hear that . One by One event name was announced by sir .Sir started with event name Mathemania,and second name was A Tricky Minute To Win . Some innervoice said me to select and I raised my hand.Sir appointed me as an organizer for that particular event. That day  and that moment was unforgettable for me.

As ,  I was practising  Twin Hearts Meditation ,i visualized the scenario ,how my event should be ? No:of Participants?

The days passed , circumstances was favoring me.I was lucky  I got Albert sir (staff in charge) juniors and my classmates who worked with dedication day and night . And the Event day was about nearer, On, 24.08.18 link was opened.and after a week I got a call from Kishore sir that my event is in last position with only 2 registrations.I was heart broken for a minute ,but inner voice said I can ! I will make it a successfull event .

I was frustrated with work ,less registration .I discussed with my Mom  and with  my mam Vijaylakshmi Mam,who taught me Pranic healing and Twin Hearts Meditation. Both said to me to visualize and bless the visualization. That’s wat I did .

Till before one day of the event i got only 10 registrations and my expectation was around 60 registrations.And the event day came, the previus night before the event my friend suddenly called me and said ” Maccha,don’t fear tommorow you will get 60+ registrations “. 

And on 06.09.18 . My friend was there in registration counter he ringed up and with shocking surprise he gave that my event has crossed 80+ registration which was unexcpected moment/shocking moment .I was filled with tears .and at the same time some difficulties but it was also solved very smoothly without creating a mess.

Visualize the Goal,rest the Universe is Yours .

The event went so smoothly and successfully. Thanks to my parents , My gurus , God and Friends .

I hope after reading my story ,hope everyone will take some steps to visualize your goal and bless the goal. 

Leave a reply by giving the feedback .